{"version":3,"sources":["webpack://gatsby-starter-hello-world/./node_modules/@mikaelkristiansson/domready/ready.js","webpack://gatsby-starter-hello-world/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://gatsby-starter-hello-world/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://gatsby-starter-hello-world/./node_modules/axios/index.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/adapters/xhr.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/axios.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/cancel/Cancel.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/cancel/CancelToken.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/cancel/isCancel.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/Axios.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/InterceptorManager.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/buildFullPath.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/createError.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/dispatchRequest.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/enhanceError.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/mergeConfig.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/settle.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/core/transformData.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/defaults.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/bind.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/buildURL.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/combineURLs.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/cookies.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/helpers/spread.js","webpack://gatsby-starter-hello-world/./node_modules/axios/lib/utils.js","webpack://gatsby-starter-hello-world/./node_modules/camelcase/index.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/html/html.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://gatsby-starter-hello-world/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://gatsby-starter-hello-world/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://gatsby-starter-hello-world/./node_modules/react-helmet/es/Helmet.js","webpack://gatsby-starter-hello-world/./node_modules/react-helmet/node_modules/react-fast-compare/index.js","webpack://gatsby-starter-hello-world/./node_modules/react-side-effect/lib/index.js","webpack://gatsby-starter-hello-world/./node_modules/store/dist/store.legacy.js","webpack://gatsby-starter-hello-world/./node_modules/store/plugins/json2.js","webpack://gatsby-starter-hello-world/./node_modules/store/plugins/lib/json2.js","webpack://gatsby-starter-hello-world/./node_modules/store/src/store-engine.js","webpack://gatsby-starter-hello-world/./node_modules/store/src/util.js","webpack://gatsby-starter-hello-world/./node_modules/store/storages/all.js","webpack://gatsby-starter-hello-world/./node_modules/store/storages/cookieStorage.js","webpack://gatsby-starter-hello-world/./node_modules/store/storages/localStorage.js","webpack://gatsby-starter-hello-world/./node_modules/store/storages/memoryStorage.js","webpack://gatsby-starter-hello-world/./node_modules/store/storages/oldFF-globalStorage.js","webpack://gatsby-starter-hello-world/./node_modules/store/storages/oldIE-userDataStorage.js","webpack://gatsby-starter-hello-world/./node_modules/store/storages/sessionStorage.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-link/index.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-link/parse-path.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-react-router-scroll/index.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://gatsby-starter-hello-world/./src/newcar/core/store/entryFormStore.ts","webpack://gatsby-starter-hello-world/./src/newcar/ui/common/context/EntryFormStoreContext.tsx","webpack://gatsby-starter-hello-world/./src/newcar/core/store/lotteryManagerStore.ts","webpack://gatsby-starter-hello-world/./src/newcar/ui/common/context/LotteryManagerStoreContext.ts","webpack://gatsby-starter-hello-world/./src/newcar/ui/common/context/ContextProvider.tsx","webpack://gatsby-starter-hello-world/./gatsby-browser.tsx","webpack://gatsby-starter-hello-world/./src/common/core/const.ts","webpack://gatsby-starter-hello-world/./src/common/core/store/configure.ts","webpack://gatsby-starter-hello-world/./src/common/core/store/decorator.ts","webpack://gatsby-starter-hello-world/./src/common/util/api.ts","webpack://gatsby-starter-hello-world/./src/common/util/convertibleUnicode/array1.ts","webpack://gatsby-starter-hello-world/./src/common/util/checkConvertibleToShiftJIS.ts","webpack://gatsby-starter-hello-world/./src/common/util/convertibleUnicode/array2.ts","webpack://gatsby-starter-hello-world/./src/common/util/convertibleUnicode/array3.ts","webpack://gatsby-starter-hello-world/./src/common/util/convertibleUnicode/array4.ts","webpack://gatsby-starter-hello-world/./src/common/util/convertibleUnicode/array5.ts","webpack://gatsby-starter-hello-world/./src/common/util/convertibleUnicode/array6.ts","webpack://gatsby-starter-hello-world/./src/common/util/const.ts","webpack://gatsby-starter-hello-world/./src/common/util/gtm.ts","webpack://gatsby-starter-hello-world/./src/common/util/log.ts","webpack://gatsby-starter-hello-world/./src/common/util/util.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/model/searchCondition.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/store/dataset/customerSelection.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/store/dataset/entryBreakdown.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/store/entryBreakdownManagerStore.ts","webpack://gatsby-starter-hello-world/./src/newcar/util/productAPI.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/store/searchCarStore.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/store/dataset/simulationResult.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/store/simulationResultManagerStore.ts","webpack://gatsby-starter-hello-world/./src/newcar/core/store/storeUtil.ts","webpack://gatsby-starter-hello-world/./src/newcar/ui/common/context/EntryBreakdownManagerStoreContext.ts","webpack://gatsby-starter-hello-world/./src/newcar/ui/common/context/SimulationManagerStoreContext.ts","webpack://gatsby-starter-hello-world/./src/newcar/ui/common/context/SimulationResultManagerStoreContext.ts","webpack://gatsby-starter-hello-world/./src/newcar/util/const.ts","webpack://gatsby-starter-hello-world/./src/newcar/util/define.ts","webpack://gatsby-starter-hello-world/./src/newcar/util/uri.ts","webpack://gatsby-starter-hello-world/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://gatsby-starter-hello-world/./.cache/api-runner-browser-plugins.js","webpack://gatsby-starter-hello-world/./.cache/api-runner-browser.js","webpack://gatsby-starter-hello-world/./node_modules/mitt/dist/mitt.es.js","webpack://gatsby-starter-hello-world/./.cache/emitter.js","webpack://gatsby-starter-hello-world/./.cache/normalize-page-path.js","webpack://gatsby-starter-hello-world/./.cache/find-path.js","webpack://gatsby-starter-hello-world/./.cache/gatsby-browser-entry.js","webpack://gatsby-starter-hello-world/./.cache/prefetch.js","webpack://gatsby-starter-hello-world/./.cache/loader.js","webpack://gatsby-starter-hello-world/./.cache/page-renderer.js","webpack://gatsby-starter-hello-world/./.cache/route-announcer-props.js","webpack://gatsby-starter-hello-world/./.cache/navigation.js","webpack://gatsby-starter-hello-world/./node_modules/shallow-compare/es/index.js","webpack://gatsby-starter-hello-world/./.cache/ensure-resources.js","webpack://gatsby-starter-hello-world/./.cache/production-app.js","webpack://gatsby-starter-hello-world/./.cache/public-page-renderer-prod.js","webpack://gatsby-starter-hello-world/./.cache/public-page-renderer.js","webpack://gatsby-starter-hello-world/./.cache/react-lifecycles-compat.js","webpack://gatsby-starter-hello-world/./.cache/register-service-worker.js","webpack://gatsby-starter-hello-world/./.cache/strip-prefix.js","webpack://gatsby-starter-hello-world/../src/image-utils.ts","webpack://gatsby-starter-hello-world/../src/components/hooks.ts","webpack://gatsby-starter-hello-world/../src/components/layout-wrapper.tsx","webpack://gatsby-starter-hello-world/../src/components/picture.tsx","webpack://gatsby-starter-hello-world/../src/components/placeholder.tsx","webpack://gatsby-starter-hello-world/../src/components/main-image.tsx","webpack://gatsby-starter-hello-world/../src/components/gatsby-image.server.tsx","webpack://gatsby-starter-hello-world/../src/components/gatsby-image.browser.tsx","webpack://gatsby-starter-hello-world/../src/components/static-image.server.tsx","webpack://gatsby-starter-hello-world/../src/components/static-image.tsx","webpack://gatsby-starter-hello-world/../src/components/later-hydrator.tsx","webpack://gatsby-starter-hello-world/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-plugin-react-helmet-canonical-urls/gatsby-browser.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby-plugin-react-helmet-canonical-urls/wrap-page.js","webpack://gatsby-starter-hello-world/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://gatsby-starter-hello-world/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://gatsby-starter-hello-world/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/extends.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/helpers/typeof.js","webpack://gatsby-starter-hello-world/./node_modules/gatsby/node_modules/@babel/runtime/regenerator/index.js","webpack://gatsby-starter-hello-world/./node_modules/invariant/browser.js","webpack://gatsby-starter-hello-world/./node_modules/regenerator-runtime/runtime.js"],"names":["module","exports","ie10","navigator","appVersion","indexOf","listener","fns","doc","document","hack","documentElement","doScroll","domContentLoaded","loaded","test","readyState","addEventListener","removeEventListener","shift","fn","setTimeout","push","definition","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","popstateListener","action","filter","navigate","to","_ref","undefined","_ref$replace","replace","go","Date","now","replaceState","pushState","e","transition","Promise","res","forEach","createMemorySource","initialPath","searchIndex","initialLocation","substr","index","stack","states","name","_","uri","_uri$split","split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","createElement","globalHistory","__esModule","shallowCompare","validateRedirect","insertParams","resolve","match","pick","startsWith","obj","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","params","routeSegments","path","max","Math","routeSegment","uriSegment","isSplat","slice","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","value","isDynamic","segment","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","a","b","addQuery","_len","query","Array","_key","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","concat","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","from","obj1","obj2","obj1Keys","keys","every","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","reject","requestData","data","requestHeaders","headers","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","open","method","toUpperCase","paramsSerializer","timeout","onreadystatechange","status","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","val","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","bind","Axios","mergeConfig","createInstance","defaultConfig","context","instance","extend","axios","create","instanceConfig","defaults","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","token","reason","throwIfRequested","c","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","fulfilled","rejected","getUri","handlers","use","eject","id","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","error","Error","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","toJSON","description","number","fileName","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","isArray","mergeDeepProperties","prop","axiosKeys","otherKeys","validateStatus","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","JSON","stringify","parse","maxContentLength","maxBodyLength","thisArg","args","apply","encode","serializedParams","parts","v","isDate","toISOString","hashmarkIndex","relativeURL","write","expires","domain","secure","cookie","isNumber","toGMTString","isString","RegExp","remove","payload","originURL","msie","userAgent","urlParsingNode","resolveURL","setAttribute","charAt","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","trim","callback","arr","getPrototypeOf","isFunction","constructor","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","result","assignValue","str","stripBOM","content","charCodeAt","camelCase","input","pascalCase","x","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","p1","m","strings","raw","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","_templateObject","freeze","_classCallCheck","TemplateTag","_this","transformers","tag","_len2","expressions","_key2","interimTag","transformEndResult","transformString","processSubstitutions","transformer","previousTag","template","_len3","substitutions","_key3","resultSoFar","remainingPart","substitution","transformSubstitution","transform","onString","onSubstitution","endResult","onEndResult","separator","conjunction","serial","opts","arrayLength","indent","separatorIndex","lastIndexOf","_toConsumableArray","arr2","type","min","el","regexp","side","splitBy","includes","isValidValue","Number","isNaN","replaceWhat","replaceWith","api","init","converter","defaultAttributes","set","attributes","toUTCString","escape","stringifiedAttributes","attributeName","get","jar","foundKey","withAttributes","withConverter","clock","Component","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","Symbol","iterator","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","String","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","currentTime","cafPolyfill","clearTimeout","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","g","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","console","_helmetCallback","commitTagChanges","newState","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","splice","_i","removeAttribute","tags","headElement","head","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","link","meta","noscript","script","style","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","subClass","superClass","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","children","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","render","_props","propTypes","defaultTitle","titleTemplate","defaultProps","peek","rewind","mappedState","renderStatic","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","equal","it","size","entries","next","done","has","flags","valueOf","$$typeof","ex","React","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","displayName","getDisplayName","engine","storages","plugins","createStore","rx_one","rx_two","rx_three","rx_four","rx_escapable","rx_dangerous","gap","rep","f","n","this_value","quote","lastIndex","holder","k","partial","mind","isFinite","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","Boolean","\"","replacer","space","text","reviver","j","walk","eval","SyntaxError","util","pluck","each","isList","_createStore","storeAPI","version","enabled","optionalDefaultValue","storage","_namespacePrefix","_deserialize","_serialize","namespacedKey","_namespaceRegexp","clearAll","hasNamespace","namespace","addPlugin","plugin","_addPlugin","_namespace","namespacePrefix","namespaceRegexp","store","_testStorage","testStr","ok","_assignPluginFnProp","pluginFnProp","propName","oldFn","super_fn","arg","newFnArgs","strVal","defaultVal","_addStorage","seenPlugin","pluginProperties","addStorage","_console","log","_warn","props1","props2","etc","assignProps1","assignProps2","assignArgsList","F","make_create","Global","_has","regexpStr","kvp","localStorage","getItem","setItem","removeItem","clear","memoryStorage","globalStorage","unfixedKey","disable","fixedKey","fixKey","_withStorageEl","storageEl","save","storageName","XMLDocument","load","addBehavior","storageOwner","storageContainer","ActiveXObject","close","w","frames","body","storeFunction","_makeIEStorageElFunction","forbiddenCharsRegex","sessionStorage","_interopRequireDefault","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","isAbsolutePath","withPrefix","prefix","_prefix","getGlobalBasePrefix","isLocalLink","getGlobalPathPrefix","endsWith","rewriteLinkPath","relativeTo","absolutify","NavLinkPropTypes","activeClassName","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","Location","GatsbyLink","_location","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","IOSupported","IntersectionObserver","handleRef","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","prevProps","prevState","componentDidMount","io","_this$io","unobserve","disconnect","ref","innerRef","entry","isIntersecting","intersectionRatio","observe","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","___navigate","func","isRequired","_default","forwardRef","hashIndex","_scrollHandler","ScrollHandler","useScrollRestoration","_interopRequireWildcard","ScrollContext","_sessionStorage","createContext","SessionStorage","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","_saveScroll","windowScroll","position","shouldUpdateScroll","scrollTo","scrollToHash","node","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","_this$props$location2","Provider","element","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","storedValue","stateKeyBase","identifier","useLocation","useContext","useRef","useLayoutEffect","onScroll","scrollTop","entryFormStore","persist","setSendContactData","sendContactData","setLastName","lastName","setGender","gender","setYear","year","setQuestion3Answer","question3Answer","setEntryBreakdown","entryBreakdown","addCampaigns","campaigns","updateForm","field","retrieveCVSource","ans","Cookies","retrieveUtmParams","utmSourceList","utmMediumList","lineIdList","utmSource","utmMedium","lineId","month","day","observable","computed","lotteryManagerStore","setResult","setUserInfo","userInfo","resetLottery","licenseNumber","draw","API","surName","reservationId","NestedContext","contexts","renderCustomNestTags","_contexts","currentContext","TmpTag","EntryFormStoreContext","EntryBreakdownManagerStoreContext","entryBreakdownManagerStore","LotteryManagerStoreContext","SimulationManagerStoreContext","simulationManagerStore","SimulationResultManagerStoreContext","simulationResultManagerStore","wrapRootElement","onRouteUpdate","prevLocation","GTM","event","currentPageFullPath","currentPagePath","_hsq","IS_PROD","GATSBY_APP_ENV","IS_MOCKUP","isMobXConfigured","configureMobX","configure","useProxies","makeObservable","initialized","autorun","restore","persisted","API_SETTINGS","CDN_API","endpoint","CARMO_PRODUCT_API_BASE_PATH","EndPoints","apiComplete","Log","apiError","_generatePath","apiName","catch","Addresses","ret","word","Search","axiosPost","responseToBeReturned","convertibleUnicode","array1","s","MALE","FEMALE","GENDER_LIST","REGEX","GENDER","ID","VALUE","LABEL","find","SELECT","price","PREFECTURES","UNSELECTED","isUnselected","img","LEXUS","TOYOTA","NISSAN","HONDA","MAZDA","SUBARU","SUZUKI","DAIHATSU","MITSUBISHI","MAKER","DATA","makerDataFind","findIndex","abb","MINI_CAR","COMPACT_CAR","MINIVAN","SUV","SEDAN","HATCH_BACK","STATION_WAGON","COUPE","OTHER","BODY_TYPE","bodytypeDataFind","SPACIOUS_COMPACT","condition","CARMO_CONST","option","NEWCAR_CONST","benefit","COST_EFFICIENT","BEGINNER_FRIENDLY","COMMUTER_FRIENDLY","PET_FRIENDLY","FAMILY_FRIENDLY","SELECTION","MAGAZINE","PRICE","AGE","REQUEST_INFORMATION","defaultDataLayer","dataLayer","APP_DEBUG","err","filename","lineno","colno","pattern","desc","ogp","tax","ceil","floor","margin","top","getBoundingClientRect","behavior","localStorageUrlList","urlList","Util","SearchCondition","CustomerSelection","WantCarBreakdown","EntryBreakdown","subtotal","term","gradeFee","StoreUtil","grade","optionFee","carNavi","backCamera","floorMat","wantNo","doorVisor","opt","isStandard","bodyColor","acc","cur","maintenancePrice","maintenancePlan","wantCar","restoreFromSessionStorage","saveToSessionStorage","clearEntryBreakdown","updateEntryBreakdown","item","optionKey","months","URI","ProductAPI","searchCarStore","setAllList","CarDigestList","allCarDigests","makerId","makerName","detailList","allCarDetails","vehicleTypes","allBodyColorList","bodyColorInfo","allOptionInfoList","optionInfo","allOptionFeeList","optionFees","setSingleCarInfo","digest","detail","newCarDigest","setViewDetail","addid","lastViewDetailData","browsingList","id__normalized","targetCar","lastViewCarDigestData","resultList","values","carId","resultCar","minPrice","publishStatus","isTargetMaker","maker","isTargetBody","bodyType","isMiniCar","isHatchBack","isTargetPrice","taxedMinPrice","taxedMinPrice11","isBW_10_20K","isBW_20_30K","isBW_30_40K","isBW_40_50K","isOVER_50K","isTargetCapacity","capacity","has4SeatOrLess","has5Seat","has6Seat","has7Seat","has8SeatOrMore","isTargetOptions","has4WD","hasAutomaticBrake","hasCruiseControl","hasHybrid","hasKeylessEntry","hasMT","hasPowerSlideDoor","hasSmartKey","hasLaneDepartureAlert","hasPedalSupport","resultURI","searchHistoryList","orderBy","popularityScore","searchCondition","nextConditionCount","nextCondition","viewCarDetail","setAllCarDigests","cardigests","setAllCarDetails","count","makerCount","bodyCount","priceCount","capacityCount","optionCount","nextCount","targetBodyIdList","targetPrice","taxedMinPrice10","taxedMinPrice9","taxedMinPrice8","taxedMinPrice7","taxedMinPrice6","taxedMinPrice5","taxedMinPrice4","taxedMinPrice3","taxedMinPrice2","taxedMinPrice1","targetPriceId","targetCapacityIdList","targetOptionIdList","isTargetOption","targetHistory","joinName","joinURIParams","bodyId","priceId","capacityId","searchOptId","resulturi","add","masterNumber","getAllCarDigest","getAllDetail","results","SimulationResult","customerSelection","carDigest","totalPrice","optionstring","car","changeSimulationResult","setSimulationResult","simulationList","simulation","gradeName","kudou","mission","gradeId","bodyColorId","newSimulationResult","nowSimulationResult","clearSelection","clearSelectionData","restoreSimulationsLocalStorage","json","addSimulation","updateSimulation","savedata","removeSimulation","deleteSimulation","nowCustomerSelection","nowMasterNumber","newList","saveEntryBreakdownFromSimulationResult","memo","bodyColorName","leasingFee","supportFee","isSelected","dontHaveDoorVisor","checkIsSavedWithParameter","isSaved","vehicleGrades","targetGrade","t","b2","d","d2","w2","m2","loadSavedInfo","simulationResult","nowGrade","subList","sub","colorCode1","colorCode2","selection","optionStr","color","maintenance","calcTAX","taxedLeasingFee","taxedSupportFee","SUPPORT_FEE","leasingFee132","supportFee132","onlineDiscountFee132","leasingFee120","supportFee120","onlineDiscountFee120","leasingFee108","supportFee108","onlineDiscountFee108","leasingFee96","supportFee96","onlineDiscountFee96","leasingFee84","supportFee84","onlineDiscountFee84","leasingFee72","supportFee72","onlineDiscountFee72","leasingFee60","supportFee60","onlineDiscountFee60","leasingFee48","supportFee48","onlineDiscountFee48","leasingFee36","supportFee36","onlineDiscountFee36","leasingFee24","supportFee24","onlineDiscountFee24","leasingFee12","supportFee12","onlineDiscountFee12","STATUS","Type","PLAN","TYPE","SORT","QUICK","EASY","RELIEF","RANKING","NO1","NO2","NO3","POPULERRANKING","NO4","NO5","FUELRANKING","TOPRANKING","miraes","tanto","nbox","none","hustler","spacia","spaciacustom","alt","altolapin","wagonr","taft","delicamini","BREAKDOWN","FORM","SIMULATIONRESULT","PUBLISH","NAME","1","2","3","4","5","6","7","8","9","10","11","YEAR_1","YEAR_2","YEAR_3","YEAR_4","YEAR_5","YEAR_6","YEAR_7","YEAR_8","YEAR_9","YEAR_10","YEAR_11","TERM","BW_10_20K","BW_20_30K","BW_30_40K","BW_40_50K","OVER_50K","OVER_60K","OVER_70K","OVER_80K","taxIncludedPrice","maxCapacity","minCapacity","CAPACITY","OVER_8","SEATER_7","SEATER_6","SEATER_5","UNDER_4","SEARCH_OPTION","Option","MAINTENANCE","NONE","SILVER","GOLD","PLATINUM","jc08","wltc","WLTC","JC08","MILEAGE","SUPPORT_CAR","QUERY","POP","ATOZ","IS_2WD","IS_4WD","KUDOU","IS_TURBO","IS_HYBRID","IS_GAS","ENGINE","0","12","13","14","15","16","NOT_FOUND","MISSION","IS_HONDA","IS_SYOUTOTU","IS_SAFTY","REMOVE_SAFETY_SYSTEM","POWER_SLIDE_DOOR","COMMON_OPTIONS","SIMULATION_MODAL","GRADE","BODY_COLOR","OPTION","MAINRE","RESULT","SIMULATION_PLAN","PLAN_PATTERN","APPLICATION_TYPE","MAIN","NEW_CAR","CAR_MODEL","CONSULTATION","INDIVIDUAL_COST_SIMULATIONS","AFFORDABLE_KEI","COMFORTABLE_KEI","CAMPAIGNS","NEWCAR_DEFINE","LINEUP_TOP","USEDCAR_LINEUP_TOP","PATH","dictionary","en","custom","required","regex","firstName","lastKana","firstKana","phoneNumber","mobileNumber","address3","email","agreement1","agreement2","postalCode","addressPostalCode","addressAddress3","residenceYear","numeric","min_value","livingPersons","livingMinors","businessYears","income","company","companyPostalCode","companyAddress3","companyPhoneNumber","purpose","companyName","companyAddress","nameKana","howToContact","availableTimeFrom","isLessThanOrEqualTo","carModel","budget","other","QUESTIONNAIRE","checkHolder","checkHolderErrMsg","testPhoneNumber","phoneNumberErrMsg","testEmail","emailErrMsg","testJis","checkConvertibleToShiftJIS","jisErrMsg","age","ageErrMsg","list","UI_SETTING","effect","DESCRIPTION","defaultOgpList","OGP_DEFAULT_TITLE","OGP_DEFAULT_DESCRIPTION","OGP_DEFAULT_URL","OGP_DEFAULT_IMAGE","defaultTwitterOgpList","LINEUP_TD_TEXT","makerIds","bodyTypeIds","freeText","makerNames","bodyTypeNames","makerText","bodyTypeText","sortedBy","typeTitle","typeName","maintenanceType","overview","COL","ApiParams","APIEndPoints","Word","MakerId","BodyType","Term","Price","Capacity","components","require","getResourceURLsForPathname","loadPage","loadPageSync","defaultReturn","argTransform","previous","on","handler","off","emit","evt","mitt","pathCache","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","foundPath","StaticQueryContext","loader","useStaticQuery","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","onload","getElementsByName","req","preFetched","PageResourceStatus","Success","preferDefault","createPageDataUrl","stripSurroundingSlashes","doFetch","toPageResources","pageData","component","page","componentChunkName","webpackCompilationHash","staticQueryHashes","BaseLoader","loadComponent","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","prefetchCompleted","memoizedGet","inFlightPromise","inFlightNetworkRequests","delete","setApiRunner","apiRunner","prefetchDisabled","fetchPageDataJson","loadObj","pagePath","retries","jsonPayload","notFound","loadPageDataJson","rawPath","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","width","height","padding","overflow","clip","whiteSpace","border","redirectMap","redirectIgnoreCaseMap","maybeRedirect","redirect","___replace","toPath","redirects","ignoreCase","fromPath","onPreRouteUpdate","___swUpdated","timeoutId","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","pageName","pageHeadings","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shallowDiffers","getDerivedStateFromProps","loadResources","setState","nextState","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Consumer","Router","browserLoc","SiteRoot","App","renderer","ReactDOM","domReady","InternalPageRenderer","register","reg","installingWorker","installing","___failedResources","reload","imageCache","hasNativeLazyLoadSupport","HTMLImageElement","GATSBY___IMAGE","storeImageloaded","cacheKey","hasImageLoaded","format","getMainProps","isLoading","isLoaded","images","loading","toggleLoaded","dataset","objectFit","objectPosition","objectFitPolyfill","import","shouldLoad","opacity","onLoad","currentTarget","Image","src","currentSrc","decode","getPlaceholderProps","placeholder","layout","backgroundColor","wrapperStyle","left","bottom","right","output","Sizer","paddingTop","maxWidth","display","role","LayoutWrapper","Fragment","srcSet","decoding","Picture","fallback","sources","sizes","fallbackImage","media","PropTypes","Placeholder","componentName","MainImage","altValidator","image","GatsbyImageHydrator","root","createRef","hydrated","forceRender","NODE_ENV","lazyHydrator","unobserveRef","_lazyHydrate","hasSSRHtml","lazyHydrate","toggleIsLoaded","_setupIntersectionObserver","useCache","intersectionObserver","createIntersectionObserver","_this4","onStartLoad","wasCached","hasChanged","_this5","ssrElement","complete","wStyle","wClass","wrapperProps","sizer","suppressHydrationWarning","GatsbyImage","propsKey","checkDimensionProps","validLayouts","StaticImage","GatsbyImageBrowser","r","imageData","__imageData","__error","LaterHydrator","wrapPageElement","Helmet","defaultPluginOptions","noTrailingSlash","nopQueryString","nopHash","pluginOptions","siteUrl","excludes","exclude","isExcluded","myUrl","noQueryString","noHash","rel","_objectWithoutProperties","_possibleConstructorReturn","_inherits","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_navigate2","primary","_props$component","domProps","array","createRoute","clone","FocusWrapper","FocusHandler","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_props2","_props2$component","Comp","outline","tabIndex","C","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","o","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","_applyDecoratedDescriptor","decorators","initializer","decorator","_assertThisInitialized","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_defineProperties","_setPrototypeOf","p","_inheritsLoose","_initializerDefineProperty","_arrayLikeToArray","len","iter","minLen","_getRequireWildcardCache","WeakMap","cache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","excluded","sourceKeys","argIndex","framesToPop","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function"],"mappings":"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AA6B,K,mCAG7BA,O,wEAAsB,M,oCAEtBA,O,wEAAuB,M,mCAEvBA,O,wEAAsB,M,oCAEtBA,O,wEAAuB,M,iCAEvBA,O,yEAAmC,Q,+BAEnCA,O,wEAA0C,M,gCAE1CA,O,wEAAoC,M,8BAEpCA,O,wEAAkC,M,gCAElCA,O,wEAAmB,M,sCAEnBA,O,wEAAyB,M,uCAEzBA,O,wEAA0B,M,qCAE1BA,O,wEAAwB,M,mCAExBA,O,wEAAsB,M,mCAEtBA,O,wEAAsB,M,mCAEtBA,O,wEAAsB,M,sCAGtBA,O,wEAAyB,M,+BAEzBA,O,wEAAkB,M,iCAElBA,O,wEAAoB,M,sCAEpBA,O,wEAAyB,M,0CAGzBA,O,wEAA6B,M,8CAE7BA,O,wEAAiC,M,8CAEjCA,O,wEAAiC,M,0CAEjCA,O,wEAA6B,M,0CAE7BA,O,wEAA6B,M,0CAE7BA,O,wEAA6B,M,8CAE7BA,O,wEAAiC,M,0CAEjCA,O,wEAA6B,M,qCAE7BA,O,wEAAwB,M,+BAExBA,O,wEAAkB,M,kCAElBA,O,wEAAqB,M,kCAErBA,O,wEAAqB,M,wCAGrBA,O,wEAA2B,M,4CAE3BA,O,wEAA+B,M,0CAE/BA,O,wEAA6B,M,0CAE7BA,O,wEAA6B,M,0CAE7BA,O,wEAA6B,M,wCAE7BA,O,wEAA2B,M,+CAG3BA,O,wEAAkC,M,wCAElCA,O,wEAA2B,M,0CAE3BA,O,wEAA6B,M,+CAE7BA,O,wEAAkC,M,0CAGlCA,O,yEAA4C,Q,iCAE5CA,O,wEAAoB,M,wCAEpBA,O,yEAA0C,Q,wCAE1CA,O,yEAA0C,Q,uCAE1CA,O,yEAAyC,Q,uCAEzCA,O,yEAAyC,Q,+CAEzCA,O,yEAAgD,Q,wCAEhDA,O,wEAA0B,M,2CAE1BA,O,wEAA6B,M,yCAE7BA,O,yEAA0C,Q,kCAE1CA,O,yEAAmC,Q,mCAEnCA,O,wEAAqB,M,oCAErBA,O,wEAAsB,M,6CAEtBA,O,wEAA+B,M,2CAE/BA,O,wEAA6B,M,2CAE7BA,O,wEAA6B,M,2CAE7BA,O,wEAA6B,M,6CAG7BA,O,wEAA+B,M,sCAE/BA,O,wEAAwB,M,wCAExBA,O,wEAA0B,M,6CAE1BA,O,wEAA+B,M,8CAG/BA,O,yEAA+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,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,GACA,MACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,MACA,KACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,MACA,MACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,MACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,MACA,KACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OCz8DyBC,OCPZ,CACb,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OCj9Da,CACb,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OCj9Da,CACb,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OCj9Da,CACb,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OCj9Da,CACb,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,SLh2CF,EATmC,SAACC,GAClC,IAAK,IAAIphC,EAAI,EAAGA,EAAIohC,EAAElhC,OAAQF,GAAK,EACjC,IAAqD,IAAjDkhC,EAAmBziC,QAAQ2iC,EAAExqB,WAAW5W,IAC1C,OAAO,EAGX,OAAO,I,2EMmCQqhC,EAKAC,EAKAC,E,qBA7CEC,M,EAAAA,Q,EAAAA,M,MAEG,MAAG,SAEI,eAAG,YAEL,aAAG,SAET,OAAG,aAEI,cAAG,cAEc,+BAAG,uBAEpB,cAAG,iBAEA,iBAAG,wBACO,2BAAG,WAEhB,cAAG,mCAEP,UAAG,sCAEC,cAAG,QACS,0BAAG,wCACtB,OAAG,0JAEI,cAAG,mBAER,SAAG,QAES,qBAAG,oB,EAGnBC,M,EAAAA,S,EAAAA,O,KACFJ,EAAI,OAAG,CAClBK,GAAI,WACJC,MAAO,EACPC,MAAO,MAEIN,EAAM,SAAG,CACpBI,GAAI,WACJC,MAAO,EACPC,MAAO,MAEIL,EAAW,cAAG,CAACF,EAAMC,G,oBAC3B,SACLt6B,GAEA,OAAOu6B,EAAYM,MAAK,SAAC5gB,GAAD,OAAOA,EAAE0gB,QAAU36B,O,EAI9B86B,M,EAAAA,S,EAAAA,O,MACa,gBAAG,EACF,mBAAG,K,eAS3B,SAAsBC,GAC3B,YAAcx/B,IAAVw/B,EACK,GAEFjjB,OAAOijB,GAAOt/B,QAAQ,0BAA2B,S,EAGzCu/B,M,EAAAA,c,EAAAA,Y,MACE,KAAG,CAClB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OAEoB,YAAG,CACvB,SACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,OACA,SACA,QACA,OACA,OACA,QACA,QACA,SACA,OACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,U,gBAUUN,G,SAAAA,O,2BAAAA,I,iBAAAA,I,mBAAAA,I,mBAAAA,I,iBAAAA,I,iBAAAA,I,mBAAAA,I,mBAAAA,I,uBAAAA,I,4BAAAA,M,YA0BK,OAAG,CAClB,CACEvxB,GAAIuxB,EAAGO,WACPr+B,KAAM,GACNxD,IAAK,GACL8hC,cAAc,EACdC,IAAK,IAEP,CACEhyB,GAAIuxB,EAAGU,MACPx+B,KAAM,OACNxD,IAAK,QACL+hC,IAAK,aAEP,CACEhyB,GAAIuxB,EAAGW,OACPz+B,KAAM,MACNxD,IAAK,SACL+hC,IAAK,cAEP,CACEhyB,GAAIuxB,EAAGY,OACP1+B,KAAM,KACNxD,IAAK,SACL+hC,IAAK,cAEP,CACEhyB,GAAIuxB,EAAGa,MACP3+B,KAAM,MACNxD,IAAK,QACL+hC,IAAK,aAEP,CACEhyB,GAAIuxB,EAAGc,MACP5+B,KAAM,MACNxD,IAAK,QACL+hC,IAAK,aAEP,CACEhyB,GAAIuxB,EAAGe,OACP7+B,KAAM,MACNxD,IAAK,SACL+hC,IAAK,cAEP,CACEhyB,GAAIuxB,EAAGgB,OACP9+B,KAAM,MACNxD,IAAK,SACL+hC,IAAK,cAEP,CACEhyB,GAAIuxB,EAAGiB,SACP/+B,KAAM,OACNxD,IAAK,WACL+hC,IAAK,gBAEP,CACEhyB,GAAIuxB,EAAGkB,WACPh/B,KAAM,KACNxD,IAAK,aAC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","file":"app-3d850a6fc6f4e6bcb339.js","sourcesContent":["/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n } // Hook up interceptors middleware\n\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\nmodule.exports = function isAxiosError(payload) {\n return typeof payload === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar bind = require('./helpers/bind');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","'use strict';\n\nvar preserveCamelCase = function preserveCamelCase(string) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < string.length; i++) {\n var character = string[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n\n return string;\n};\n\nvar camelCase = function camelCase(input, options) {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n\n options = Object.assign({\n pascalCase: false\n }, options);\n\n var postProcess = function postProcess(x) {\n return options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n };\n\n if (Array.isArray(input)) {\n input = input.map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n input = input.trim();\n }\n\n if (input.length === 0) {\n return '';\n }\n\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n\n var hasUpperCase = input !== input.toLowerCase();\n\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n\n input = input.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (_, p1) {\n return p1.toUpperCase();\n }).replace(/\\d+(\\w|$)/g, function (m) {\n return m.toUpperCase();\n });\n return postProcess(input);\n};\n\nmodule.exports = camelCase; // TODO: Remove this for the next major release\n\nmodule.exports.default = camelCase;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\n\n\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n } // else, return a transformed end result of processing the template with our tag\n\n\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n }; // if first argument is an array, extrude it as a list of transformers\n\n\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n } // if any transformers are functions, this means they are not initiated - automatically initiate them\n\n\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n }); // return an ES2015 template tag\n\n return this.tag;\n }\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n\n return this.transformers.reduce(cb, str);\n }\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n\n return this.transformers.reduce(cb, substitution);\n }\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nexport default TemplateTag;","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\n\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial; // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n } // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n\n\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n\n return substitution;\n }\n };\n};\n\nexport default inlineArrayTransformer;","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\n\n\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n\n return endResult;\n }\n\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n\n throw new Error('Unknown type: ' + type);\n }\n };\n};\n\nexport default stripIndentTransformer;","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\n };\n};\n\nexport default trimResultTransformer;","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n\n return substitution;\n }\n };\n};\n\nexport default splitStringTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsOr;","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n\n if (isValidValue(substitution)) {\n return substitution;\n }\n\n return '';\n }\n };\n};\n\nexport default removeNonPrintingValuesTransformer;","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n } // Do not touch if null or undefined\n\n\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\n\nexport default replaceSubstitutionTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default html;","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nexport default replaceResultTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(//g, '>'), replaceSubstitutionTransformer(/\"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`'));\nexport default safeHtml;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\nexport default oneLine;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\nexport default oneLineTrim;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsOr;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default inlineLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineInlineLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\nexport default stripIndent;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\nexport default stripIndents;","\"use strict\";\n\nmodule.exports = Object.assign;","/*! js-cookie v3.0.1 | MIT */\n\n/* eslint-disable no-var */\nfunction assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n target[key] = source[key];\n }\n }\n\n return target;\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\n\nvar defaultConverter = {\n read: function read(value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\n },\n write: function write(value) {\n return encodeURIComponent(value).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init(converter, defaultAttributes) {\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n } // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n\n\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return document.cookie = key + '=' + converter.write(value, key) + stringifiedAttributes;\n }\n\n function get(key) {\n if (typeof document === 'undefined' || arguments.length && !key) {\n return;\n } // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break;\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar;\n }\n\n return Object.create({\n set: set,\n get: get,\n remove: function remove(key, attributes) {\n set(key, '', assign({}, attributes, {\n expires: -1\n }));\n },\n withAttributes: function withAttributes(attributes) {\n return init(this.converter, assign({}, this.attributes, attributes));\n },\n withConverter: function withConverter(converter) {\n return init(assign({}, this.converter, converter), this.attributes);\n }\n }, {\n attributes: {\n value: Object.freeze(defaultAttributes)\n },\n converter: {\n value: Object.freeze(converter)\n }\n });\n}\n\nvar api = init(defaultConverter, {\n path: '/'\n});\n/* eslint-enable no-var */\n\nexport default api;","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar 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};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar 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 TARGET: \"target\"\n};\nvar 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};\nvar 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};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\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, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, 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 Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, 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[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[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 return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\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(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === 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 }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\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([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\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.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\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 updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\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 if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\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(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(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\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(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + 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 === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === 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(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\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 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 + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + 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 === TAG_PROPERTIES.INNER_HTML || attribute === 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 var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + 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 return Object.keys(attributes).reduce(function (obj, key) {\n obj[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 return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(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[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case 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\n case ATTRIBUTE_NAMES.BODY:\n case 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\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(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\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 return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(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 TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case 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 _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\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 TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\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 _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return 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 warn(\"Only elements types \" + 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 React.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 var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case 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 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 React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\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$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = 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 = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\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;\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 = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\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 var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","var engine = require('../src/store-engine');\n\nvar storages = require('../storages/all');\n\nvar plugins = [require('../plugins/json2')];\nmodule.exports = engine.createStore(storages, plugins);","module.exports = json2Plugin;\n\nfunction json2Plugin() {\n require('./lib/json2');\n\n return {};\n}","/* eslint-disable */\n// json2.js\n// 2016-10-28\n// Public Domain.\n// NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n// See http://www.JSON.org/js.html\n// This code should be minified before deployment.\n// See http://javascript.crockford.com/jsmin.html\n// USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n// NOT CONTROL.\n// This file creates a global JSON object containing two methods: stringify\n// and parse. This file provides the ES5 JSON capability to ES3 systems.\n// If a project might run on IE8 or earlier, then this file should be included.\n// This file does nothing on ES5 systems.\n// JSON.stringify(value, replacer, space)\n// value any JavaScript value, usually an object or array.\n// replacer an optional parameter that determines how object\n// values are stringified for objects. It can be a\n// function or an array of strings.\n// space an optional parameter that specifies the indentation\n// of nested structures. If it is omitted, the text will\n// be packed without extra whitespace. If it is a number,\n// it will specify the number of spaces to indent at each\n// level. If it is a string (such as \"\\t\" or \" \"),\n// it contains the characters used to indent at each level.\n// This method produces a JSON text from a JavaScript value.\n// When an object value is found, if the object contains a toJSON\n// method, its toJSON method will be called and the result will be\n// stringified. A toJSON method does not serialize: it returns the\n// value represented by the name/value pair that should be serialized,\n// or undefined if nothing should be serialized. The toJSON method\n// will be passed the key associated with the value, and this will be\n// bound to the value.\n// For example, this would serialize Dates as ISO strings.\n// Date.prototype.toJSON = function (key) {\n// function f(n) {\n// // Format integers to have at least two digits.\n// return (n < 10)\n// ? \"0\" + n\n// : n;\n// }\n// return this.getUTCFullYear() + \"-\" +\n// f(this.getUTCMonth() + 1) + \"-\" +\n// f(this.getUTCDate()) + \"T\" +\n// f(this.getUTCHours()) + \":\" +\n// f(this.getUTCMinutes()) + \":\" +\n// f(this.getUTCSeconds()) + \"Z\";\n// };\n// You can provide an optional replacer method. It will be passed the\n// key and value of each member, with this bound to the containing\n// object. The value that is returned from your method will be\n// serialized. If your method returns undefined, then the member will\n// be excluded from the serialization.\n// If the replacer parameter is an array of strings, then it will be\n// used to select the members to be serialized. It filters the results\n// such that only members with keys listed in the replacer array are\n// stringified.\n// Values that do not have JSON representations, such as undefined or\n// functions, will not be serialized. Such values in objects will be\n// dropped; in arrays they will be replaced with null. You can use\n// a replacer function to replace those with JSON values.\n// JSON.stringify(undefined) returns undefined.\n// The optional space parameter produces a stringification of the\n// value that is filled with line breaks and indentation to make it\n// easier to read.\n// If the space parameter is a non-empty string, then that string will\n// be used for indentation. If the space parameter is a number, then\n// the indentation will be that many spaces.\n// Example:\n// text = JSON.stringify([\"e\", {pluribus: \"unum\"}]);\n// // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n// text = JSON.stringify([\"e\", {pluribus: \"unum\"}], null, \"\\t\");\n// // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n// text = JSON.stringify([new Date()], function (key, value) {\n// return this[key] instanceof Date\n// ? \"Date(\" + this[key] + \")\"\n// : value;\n// });\n// // text is '[\"Date(---current time---)\"]'\n// JSON.parse(text, reviver)\n// This method parses a JSON text to produce an object or array.\n// It can throw a SyntaxError exception.\n// The optional reviver parameter is a function that can filter and\n// transform the results. It receives each of the keys and values,\n// and its return value is used instead of the original value.\n// If it returns what it received, then the structure is not modified.\n// If it returns undefined then the member is deleted.\n// Example:\n// // Parse the text. Values that look like ISO date strings will\n// // be converted to Date objects.\n// myData = JSON.parse(text, function (key, value) {\n// var a;\n// if (typeof value === \"string\") {\n// a =\n// /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n// if (a) {\n// return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n// +a[5], +a[6]));\n// }\n// }\n// return value;\n// });\n// myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n// var d;\n// if (typeof value === \"string\" &&\n// value.slice(0, 5) === \"Date(\" &&\n// value.slice(-1) === \")\") {\n// d = new Date(value.slice(5, -1));\n// if (d) {\n// return d;\n// }\n// }\n// return value;\n// });\n// This is a reference implementation. You are free to copy, modify, or\n// redistribute.\n\n/*jslint\n eval, for, this\n*/\n\n/*property\n JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\nif (typeof JSON !== \"object\") {\n JSON = {};\n}\n\n(function () {\n \"use strict\";\n\n var rx_one = /^[\\],:{}\\s]*$/;\n var rx_two = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g;\n var rx_three = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\n var rx_four = /(?:^|:|,)(?:\\s*\\[)+/g;\n var rx_escapable = /[\\\\\"\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n var rx_dangerous = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? \"0\" + n : n;\n }\n\n function this_value() {\n return this.valueOf();\n }\n\n if (typeof Date.prototype.toJSON !== \"function\") {\n Date.prototype.toJSON = function () {\n return isFinite(this.valueOf()) ? this.getUTCFullYear() + \"-\" + f(this.getUTCMonth() + 1) + \"-\" + f(this.getUTCDate()) + \"T\" + f(this.getUTCHours()) + \":\" + f(this.getUTCMinutes()) + \":\" + f(this.getUTCSeconds()) + \"Z\" : null;\n };\n\n Boolean.prototype.toJSON = this_value;\n Number.prototype.toJSON = this_value;\n String.prototype.toJSON = this_value;\n }\n\n var gap;\n var indent;\n var meta;\n var rep;\n\n function quote(string) {\n // If the string contains no control characters, no quote characters, and no\n // backslash characters, then we can safely slap some quotes around it.\n // Otherwise we must also replace the offending characters with safe escape\n // sequences.\n rx_escapable.lastIndex = 0;\n return rx_escapable.test(string) ? \"\\\"\" + string.replace(rx_escapable, function (a) {\n var c = meta[a];\n return typeof c === \"string\" ? c : \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n }) + \"\\\"\" : \"\\\"\" + string + \"\\\"\";\n }\n\n function str(key, holder) {\n // Produce a string from holder[key].\n var i; // The loop counter.\n\n var k; // The member key.\n\n var v; // The member value.\n\n var length;\n var mind = gap;\n var partial;\n var value = holder[key]; // If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === \"object\" && typeof value.toJSON === \"function\") {\n value = value.toJSON(key);\n } // If we were called with a replacer function, then call the replacer to\n // obtain a replacement value.\n\n\n if (typeof rep === \"function\") {\n value = rep.call(holder, key, value);\n } // What happens next depends on the value's type.\n\n\n switch (typeof value) {\n case \"string\":\n return quote(value);\n\n case \"number\":\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : \"null\";\n\n case \"boolean\":\n case \"null\":\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce \"null\". The case is included here in\n // the remote chance that this gets fixed someday.\n return String(value);\n // If the type is \"object\", we might be dealing with an object or an array or\n // null.\n\n case \"object\":\n // Due to a specification blunder in ECMAScript, typeof null is \"object\",\n // so watch out for that case.\n if (!value) {\n return \"null\";\n } // Make an array to hold the partial results of stringifying this object value.\n\n\n gap += indent;\n partial = []; // Is the value an array?\n\n if (Object.prototype.toString.apply(value) === \"[object Array]\") {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n length = value.length;\n\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || \"null\";\n } // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n\n\n v = partial.length === 0 ? \"[]\" : gap ? \"[\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"]\" : \"[\" + partial.join(\",\") + \"]\";\n gap = mind;\n return v;\n } // If the replacer is an array, use it to select the members to be stringified.\n\n\n if (rep && typeof rep === \"object\") {\n length = rep.length;\n\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === \"string\") {\n k = rep[i];\n v = str(k, value);\n\n if (v) {\n partial.push(quote(k) + (gap ? \": \" : \":\") + v);\n }\n }\n }\n } else {\n // Otherwise, iterate through all of the keys in the object.\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n\n if (v) {\n partial.push(quote(k) + (gap ? \": \" : \":\") + v);\n }\n }\n }\n } // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n\n\n v = partial.length === 0 ? \"{}\" : gap ? \"{\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"}\" : \"{\" + partial.join(\",\") + \"}\";\n gap = mind;\n return v;\n }\n } // If the JSON object does not yet have a stringify method, give it one.\n\n\n if (typeof JSON.stringify !== \"function\") {\n meta = {\n // table of character substitutions\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n \"\\\"\": \"\\\\\\\"\",\n \"\\\\\": \"\\\\\\\\\"\n };\n\n JSON.stringify = function (value, replacer, space) {\n // The stringify method takes a value and an optional replacer, and an optional\n // space parameter, and returns a JSON text. The replacer can be a function\n // that can replace values, or an array of strings that will select the keys.\n // A default replacer method can be provided. Use of the space parameter can\n // produce text that is more easily readable.\n var i;\n gap = \"\";\n indent = \"\"; // If the space parameter is a number, make an indent string containing that\n // many spaces.\n\n if (typeof space === \"number\") {\n for (i = 0; i < space; i += 1) {\n indent += \" \";\n } // If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === \"string\") {\n indent = space;\n } // If there is a replacer, it must be a function or an array.\n // Otherwise, throw an error.\n\n\n rep = replacer;\n\n if (replacer && typeof replacer !== \"function\" && (typeof replacer !== \"object\" || typeof replacer.length !== \"number\")) {\n throw new Error(\"JSON.stringify\");\n } // Make a fake root object containing our value under the key of \"\".\n // Return the result of stringifying the value.\n\n\n return str(\"\", {\n \"\": value\n });\n };\n } // If the JSON object does not yet have a parse method, give it one.\n\n\n if (typeof JSON.parse !== \"function\") {\n JSON.parse = function (text, reviver) {\n // The parse method takes a text and an optional reviver function, and returns\n // a JavaScript value if the text is a valid JSON text.\n var j;\n\n function walk(holder, key) {\n // The walk method is used to recursively walk the resulting structure so\n // that modifications can be made.\n var k;\n var v;\n var value = holder[key];\n\n if (value && typeof value === \"object\") {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = walk(value, k);\n\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n }\n }\n }\n\n return reviver.call(holder, key, value);\n } // Parsing happens in four stages. In the first stage, we replace certain\n // Unicode characters with escape sequences. JavaScript handles many characters\n // incorrectly, either silently deleting them, or treating them as line endings.\n\n\n text = String(text);\n rx_dangerous.lastIndex = 0;\n\n if (rx_dangerous.test(text)) {\n text = text.replace(rx_dangerous, function (a) {\n return \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n });\n } // In the second stage, we run the text against regular expressions that look\n // for non-JSON patterns. We are especially concerned with \"()\" and \"new\"\n // because they can cause invocation, and \"=\" because it can cause mutation.\n // But just to be safe, we want to reject all unexpected forms.\n // We split the second stage into 4 regexp operations in order to work around\n // crippling inefficiencies in IE's and Safari's regexp engines. First we\n // replace the JSON backslash pairs with \"@\" (a non-JSON character). Second, we\n // replace all simple value tokens with \"]\" characters. Third, we delete all\n // open brackets that follow a colon or comma or that begin the text. Finally,\n // we look to see that the remaining characters are only whitespace or \"]\" or\n // \",\" or \":\" or \"{\" or \"}\". If that is so, then the text is safe for eval.\n\n\n if (rx_one.test(text.replace(rx_two, \"@\").replace(rx_three, \"]\").replace(rx_four, \"\"))) {\n // In the third stage we use the eval function to compile the text into a\n // JavaScript structure. The \"{\" operator is subject to a syntactic ambiguity\n // in JavaScript: it can begin a block or an object literal. We wrap the text\n // in parens to eliminate the ambiguity.\n j = eval(\"(\" + text + \")\"); // In the optional fourth stage, we recursively walk the new structure, passing\n // each name/value pair to a reviver function for possible transformation.\n\n return typeof reviver === \"function\" ? walk({\n \"\": j\n }, \"\") : j;\n } // If the text is not JSON parseable, then a SyntaxError is thrown.\n\n\n throw new SyntaxError(\"JSON.parse\");\n };\n }\n})();","var util = require('./util');\n\nvar slice = util.slice;\nvar pluck = util.pluck;\nvar each = util.each;\nvar bind = util.bind;\nvar create = util.create;\nvar isList = util.isList;\nvar isFunction = util.isFunction;\nvar isObject = util.isObject;\nmodule.exports = {\n createStore: _createStore\n};\nvar storeAPI = {\n version: '2.0.12',\n enabled: false,\n // get returns the value of the given key. If that value\n // is undefined, it returns optionalDefaultValue instead.\n get: function get(key, optionalDefaultValue) {\n var data = this.storage.read(this._namespacePrefix + key);\n return this._deserialize(data, optionalDefaultValue);\n },\n // set will store the given value at key and returns value.\n // Calling set with value === undefined is equivalent to calling remove.\n set: function set(key, value) {\n if (value === undefined) {\n return this.remove(key);\n }\n\n this.storage.write(this._namespacePrefix + key, this._serialize(value));\n return value;\n },\n // remove deletes the key and value stored at the given key.\n remove: function remove(key) {\n this.storage.remove(this._namespacePrefix + key);\n },\n // each will call the given callback once for each key-value pair\n // in this store.\n each: function each(callback) {\n var self = this;\n this.storage.each(function (val, namespacedKey) {\n callback.call(self, self._deserialize(val), (namespacedKey || '').replace(self._namespaceRegexp, ''));\n });\n },\n // clearAll will remove all the stored key-value pairs in this store.\n clearAll: function clearAll() {\n this.storage.clearAll();\n },\n // additional functionality that can't live in plugins\n // ---------------------------------------------------\n // hasNamespace returns true if this store instance has the given namespace.\n hasNamespace: function hasNamespace(namespace) {\n return this._namespacePrefix == '__storejs_' + namespace + '_';\n },\n // createStore creates a store.js instance with the first\n // functioning storage in the list of storage candidates,\n // and applies the the given mixins to the instance.\n createStore: function createStore() {\n return _createStore.apply(this, arguments);\n },\n addPlugin: function addPlugin(plugin) {\n this._addPlugin(plugin);\n },\n namespace: function namespace(_namespace) {\n return _createStore(this.storage, this.plugins, _namespace);\n }\n};\n\nfunction _warn() {\n var _console = typeof console == 'undefined' ? null : console;\n\n if (!_console) {\n return;\n }\n\n var fn = _console.warn ? _console.warn : _console.log;\n fn.apply(_console, arguments);\n}\n\nfunction _createStore(storages, plugins, namespace) {\n if (!namespace) {\n namespace = '';\n }\n\n if (storages && !isList(storages)) {\n storages = [storages];\n }\n\n if (plugins && !isList(plugins)) {\n plugins = [plugins];\n }\n\n var namespacePrefix = namespace ? '__storejs_' + namespace + '_' : '';\n var namespaceRegexp = namespace ? new RegExp('^' + namespacePrefix) : null;\n var legalNamespaces = /^[a-zA-Z0-9_\\-]*$/; // alpha-numeric + underscore and dash\n\n if (!legalNamespaces.test(namespace)) {\n throw new Error('store.js namespaces can only have alphanumerics + underscores and dashes');\n }\n\n var _privateStoreProps = {\n _namespacePrefix: namespacePrefix,\n _namespaceRegexp: namespaceRegexp,\n _testStorage: function _testStorage(storage) {\n try {\n var testStr = '__storejs__test__';\n storage.write(testStr, testStr);\n var ok = storage.read(testStr) === testStr;\n storage.remove(testStr);\n return ok;\n } catch (e) {\n return false;\n }\n },\n _assignPluginFnProp: function _assignPluginFnProp(pluginFnProp, propName) {\n var oldFn = this[propName];\n\n this[propName] = function pluginFn() {\n var args = slice(arguments, 0);\n var self = this; // super_fn calls the old function which was overwritten by\n // this mixin.\n\n function super_fn() {\n if (!oldFn) {\n return;\n }\n\n each(arguments, function (arg, i) {\n args[i] = arg;\n });\n return oldFn.apply(self, args);\n } // Give mixing function access to super_fn by prefixing all mixin function\n // arguments with super_fn.\n\n\n var newFnArgs = [super_fn].concat(args);\n return pluginFnProp.apply(self, newFnArgs);\n };\n },\n _serialize: function _serialize(obj) {\n return JSON.stringify(obj);\n },\n _deserialize: function _deserialize(strVal, defaultVal) {\n if (!strVal) {\n return defaultVal;\n } // It is possible that a raw string value has been previously stored\n // in a storage without using store.js, meaning it will be a raw\n // string value instead of a JSON serialized string. By defaulting\n // to the raw string value in case of a JSON parse error, we allow\n // for past stored values to be forwards-compatible with store.js\n\n\n var val = '';\n\n try {\n val = JSON.parse(strVal);\n } catch (e) {\n val = strVal;\n }\n\n return val !== undefined ? val : defaultVal;\n },\n _addStorage: function _addStorage(storage) {\n if (this.enabled) {\n return;\n }\n\n if (this._testStorage(storage)) {\n this.storage = storage;\n this.enabled = true;\n }\n },\n _addPlugin: function _addPlugin(plugin) {\n var self = this; // If the plugin is an array, then add all plugins in the array.\n // This allows for a plugin to depend on other plugins.\n\n if (isList(plugin)) {\n each(plugin, function (plugin) {\n self._addPlugin(plugin);\n });\n return;\n } // Keep track of all plugins we've seen so far, so that we\n // don't add any of them twice.\n\n\n var seenPlugin = pluck(this.plugins, function (seenPlugin) {\n return plugin === seenPlugin;\n });\n\n if (seenPlugin) {\n return;\n }\n\n this.plugins.push(plugin); // Check that the plugin is properly formed\n\n if (!isFunction(plugin)) {\n throw new Error('Plugins must be function values that return objects');\n }\n\n var pluginProperties = plugin.call(this);\n\n if (!isObject(pluginProperties)) {\n throw new Error('Plugins must return an object of function properties');\n } // Add the plugin function properties to this store instance.\n\n\n each(pluginProperties, function (pluginFnProp, propName) {\n if (!isFunction(pluginFnProp)) {\n throw new Error('Bad plugin property: ' + propName + ' from plugin ' + plugin.name + '. Plugins should only return functions.');\n }\n\n self._assignPluginFnProp(pluginFnProp, propName);\n });\n },\n // Put deprecated properties in the private API, so as to not expose it to accidential\n // discovery through inspection of the store object.\n // Deprecated: addStorage\n addStorage: function addStorage(storage) {\n _warn('store.addStorage(storage) is deprecated. Use createStore([storages])');\n\n this._addStorage(storage);\n }\n };\n var store = create(_privateStoreProps, storeAPI, {\n plugins: []\n });\n store.raw = {};\n each(store, function (prop, propName) {\n if (isFunction(prop)) {\n store.raw[propName] = bind(store, prop);\n }\n });\n each(storages, function (storage) {\n store._addStorage(storage);\n });\n each(plugins, function (plugin) {\n store._addPlugin(plugin);\n });\n return store;\n}","var assign = make_assign();\nvar create = make_create();\nvar trim = make_trim();\nvar Global = typeof window !== 'undefined' ? window : global;\nmodule.exports = {\n assign: assign,\n create: create,\n trim: trim,\n bind: bind,\n slice: slice,\n each: each,\n map: map,\n pluck: pluck,\n isList: isList,\n isFunction: isFunction,\n isObject: isObject,\n Global: Global\n};\n\nfunction make_assign() {\n if (Object.assign) {\n return Object.assign;\n } else {\n return function shimAssign(obj, props1, props2, etc) {\n for (var i = 1; i < arguments.length; i++) {\n each(Object(arguments[i]), function (val, key) {\n obj[key] = val;\n });\n }\n\n return obj;\n };\n }\n}\n\nfunction make_create() {\n if (Object.create) {\n return function create(obj, assignProps1, assignProps2, etc) {\n var assignArgsList = slice(arguments, 1);\n return assign.apply(this, [Object.create(obj)].concat(assignArgsList));\n };\n } else {\n var F = function F() {}; // eslint-disable-line no-inner-declarations\n\n\n return function create(obj, assignProps1, assignProps2, etc) {\n var assignArgsList = slice(arguments, 1);\n F.prototype = obj;\n return assign.apply(this, [new F()].concat(assignArgsList));\n };\n }\n}\n\nfunction make_trim() {\n if (String.prototype.trim) {\n return function trim(str) {\n return String.prototype.trim.call(str);\n };\n } else {\n return function trim(str) {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n }\n}\n\nfunction bind(obj, fn) {\n return function () {\n return fn.apply(obj, Array.prototype.slice.call(arguments, 0));\n };\n}\n\nfunction slice(arr, index) {\n return Array.prototype.slice.call(arr, index || 0);\n}\n\nfunction each(obj, fn) {\n pluck(obj, function (val, key) {\n fn(val, key);\n return false;\n });\n}\n\nfunction map(obj, fn) {\n var res = isList(obj) ? [] : {};\n pluck(obj, function (v, k) {\n res[k] = fn(v, k);\n return false;\n });\n return res;\n}\n\nfunction pluck(obj, fn) {\n if (isList(obj)) {\n for (var i = 0; i < obj.length; i++) {\n if (fn(obj[i], i)) {\n return obj[i];\n }\n }\n } else {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (fn(obj[key], key)) {\n return obj[key];\n }\n }\n }\n }\n}\n\nfunction isList(val) {\n return val != null && typeof val != 'function' && typeof val.length == 'number';\n}\n\nfunction isFunction(val) {\n return val && {}.toString.call(val) === '[object Function]';\n}\n\nfunction isObject(val) {\n return val && {}.toString.call(val) === '[object Object]';\n}","module.exports = [// Listed in order of usage preference\nrequire('./localStorage'), require('./oldFF-globalStorage'), require('./oldIE-userDataStorage'), require('./cookieStorage'), require('./sessionStorage'), require('./memoryStorage')];","// cookieStorage is useful Safari private browser mode, where localStorage\n// doesn't work but cookies do. This implementation is adopted from\n// https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage\nvar util = require('../src/util');\n\nvar Global = util.Global;\nvar trim = util.trim;\nmodule.exports = {\n name: 'cookieStorage',\n read: read,\n write: write,\n each: each,\n remove: remove,\n clearAll: clearAll\n};\nvar doc = Global.document;\n\nfunction read(key) {\n if (!key || !_has(key)) {\n return null;\n }\n\n var regexpStr = \"(?:^|.*;\\\\s*)\" + escape(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*((?:[^;](?!;))*[^;]?).*\";\n return unescape(doc.cookie.replace(new RegExp(regexpStr), \"$1\"));\n}\n\nfunction each(callback) {\n var cookies = doc.cookie.split(/; ?/g);\n\n for (var i = cookies.length - 1; i >= 0; i--) {\n if (!trim(cookies[i])) {\n continue;\n }\n\n var kvp = cookies[i].split('=');\n var key = unescape(kvp[0]);\n var val = unescape(kvp[1]);\n callback(val, key);\n }\n}\n\nfunction write(key, data) {\n if (!key) {\n return;\n }\n\n doc.cookie = escape(key) + \"=\" + escape(data) + \"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/\";\n}\n\nfunction remove(key) {\n if (!key || !_has(key)) {\n return;\n }\n\n doc.cookie = escape(key) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/\";\n}\n\nfunction clearAll() {\n each(function (_, key) {\n remove(key);\n });\n}\n\nfunction _has(key) {\n return new RegExp(\"(?:^|;\\\\s*)\" + escape(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\").test(doc.cookie);\n}","var util = require('../src/util');\n\nvar Global = util.Global;\nmodule.exports = {\n name: 'localStorage',\n read: read,\n write: write,\n each: each,\n remove: remove,\n clearAll: clearAll\n};\n\nfunction localStorage() {\n return Global.localStorage;\n}\n\nfunction read(key) {\n return localStorage().getItem(key);\n}\n\nfunction write(key, data) {\n return localStorage().setItem(key, data);\n}\n\nfunction each(fn) {\n for (var i = localStorage().length - 1; i >= 0; i--) {\n var key = localStorage().key(i);\n fn(read(key), key);\n }\n}\n\nfunction remove(key) {\n return localStorage().removeItem(key);\n}\n\nfunction clearAll() {\n return localStorage().clear();\n}","// memoryStorage is a useful last fallback to ensure that the store\n// is functions (meaning store.get(), store.set(), etc will all function).\n// However, stored values will not persist when the browser navigates to\n// a new page or reloads the current page.\nmodule.exports = {\n name: 'memoryStorage',\n read: read,\n write: write,\n each: each,\n remove: remove,\n clearAll: clearAll\n};\nvar memoryStorage = {};\n\nfunction read(key) {\n return memoryStorage[key];\n}\n\nfunction write(key, data) {\n memoryStorage[key] = data;\n}\n\nfunction each(callback) {\n for (var key in memoryStorage) {\n if (memoryStorage.hasOwnProperty(key)) {\n callback(memoryStorage[key], key);\n }\n }\n}\n\nfunction remove(key) {\n delete memoryStorage[key];\n}\n\nfunction clearAll(key) {\n memoryStorage = {};\n}","// oldFF-globalStorage provides storage for Firefox\n// versions 6 and 7, where no localStorage, etc\n// is available.\nvar util = require('../src/util');\n\nvar Global = util.Global;\nmodule.exports = {\n name: 'oldFF-globalStorage',\n read: read,\n write: write,\n each: each,\n remove: remove,\n clearAll: clearAll\n};\nvar globalStorage = Global.globalStorage;\n\nfunction read(key) {\n return globalStorage[key];\n}\n\nfunction write(key, data) {\n globalStorage[key] = data;\n}\n\nfunction each(fn) {\n for (var i = globalStorage.length - 1; i >= 0; i--) {\n var key = globalStorage.key(i);\n fn(globalStorage[key], key);\n }\n}\n\nfunction remove(key) {\n return globalStorage.removeItem(key);\n}\n\nfunction clearAll() {\n each(function (key, _) {\n delete globalStorage[key];\n });\n}","// oldIE-userDataStorage provides storage for Internet Explorer\n// versions 6 and 7, where no localStorage, sessionStorage, etc\n// is available.\nvar util = require('../src/util');\n\nvar Global = util.Global;\nmodule.exports = {\n name: 'oldIE-userDataStorage',\n write: write,\n read: read,\n each: each,\n remove: remove,\n clearAll: clearAll\n};\nvar storageName = 'storejs';\nvar doc = Global.document;\n\nvar _withStorageEl = _makeIEStorageElFunction();\n\nvar disable = (Global.navigator ? Global.navigator.userAgent : '').match(/ (MSIE 8|MSIE 9|MSIE 10)\\./); // MSIE 9.x, MSIE 10.x\n\nfunction write(unfixedKey, data) {\n if (disable) {\n return;\n }\n\n var fixedKey = fixKey(unfixedKey);\n\n _withStorageEl(function (storageEl) {\n storageEl.setAttribute(fixedKey, data);\n storageEl.save(storageName);\n });\n}\n\nfunction read(unfixedKey) {\n if (disable) {\n return;\n }\n\n var fixedKey = fixKey(unfixedKey);\n var res = null;\n\n _withStorageEl(function (storageEl) {\n res = storageEl.getAttribute(fixedKey);\n });\n\n return res;\n}\n\nfunction each(callback) {\n _withStorageEl(function (storageEl) {\n var attributes = storageEl.XMLDocument.documentElement.attributes;\n\n for (var i = attributes.length - 1; i >= 0; i--) {\n var attr = attributes[i];\n callback(storageEl.getAttribute(attr.name), attr.name);\n }\n });\n}\n\nfunction remove(unfixedKey) {\n var fixedKey = fixKey(unfixedKey);\n\n _withStorageEl(function (storageEl) {\n storageEl.removeAttribute(fixedKey);\n storageEl.save(storageName);\n });\n}\n\nfunction clearAll() {\n _withStorageEl(function (storageEl) {\n var attributes = storageEl.XMLDocument.documentElement.attributes;\n storageEl.load(storageName);\n\n for (var i = attributes.length - 1; i >= 0; i--) {\n storageEl.removeAttribute(attributes[i].name);\n }\n\n storageEl.save(storageName);\n });\n} // Helpers\n//////////\n// In IE7, keys cannot start with a digit or contain certain chars.\n// See https://github.com/marcuswestin/store.js/issues/40\n// See https://github.com/marcuswestin/store.js/issues/83\n\n\nvar forbiddenCharsRegex = new RegExp(\"[!\\\"#$%&'()*+,/\\\\\\\\:;<=>?@[\\\\]^`{|}~]\", \"g\");\n\nfunction fixKey(key) {\n return key.replace(/^\\d/, '___$&').replace(forbiddenCharsRegex, '___');\n}\n\nfunction _makeIEStorageElFunction() {\n if (!doc || !doc.documentElement || !doc.documentElement.addBehavior) {\n return null;\n }\n\n var scriptTag = 'script',\n storageOwner,\n storageContainer,\n storageEl; // Since #userData storage applies only to specific paths, we need to\n // somehow link our data to a specific path. We choose /favicon.ico\n // as a pretty safe option, since all browsers already make a request to\n // this URL anyway and being a 404 will not hurt us here. We wrap an\n // iframe pointing to the favicon in an ActiveXObject(htmlfile) object\n // (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx)\n // since the iframe access rules appear to allow direct access and\n // manipulation of the document element, even for a 404 page. This\n // document can be used instead of the current document (which would\n // have been limited to the current path) to perform #userData storage.\n\n try {\n /* global ActiveXObject */\n storageContainer = new ActiveXObject('htmlfile');\n storageContainer.open();\n storageContainer.write('<' + scriptTag + '>document.w=window');\n storageContainer.close();\n storageOwner = storageContainer.w.frames[0].document;\n storageEl = storageOwner.createElement('div');\n } catch (e) {\n // somehow ActiveXObject instantiation failed (perhaps some special\n // security settings or otherwse), fall back to per-path storage\n storageEl = doc.createElement('div');\n storageOwner = doc.body;\n }\n\n return function (storeFunction) {\n var args = [].slice.call(arguments, 0);\n args.unshift(storageEl); // See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx\n // and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx\n\n storageOwner.appendChild(storageEl);\n storageEl.addBehavior('#default#userData');\n storageEl.load(storageName);\n storeFunction.apply(this, args);\n storageOwner.removeChild(storageEl);\n return;\n };\n}","var util = require('../src/util');\n\nvar Global = util.Global;\nmodule.exports = {\n name: 'sessionStorage',\n read: read,\n write: write,\n each: each,\n remove: remove,\n clearAll: clearAll\n};\n\nfunction sessionStorage() {\n return Global.sessionStorage;\n}\n\nfunction read(key) {\n return sessionStorage().getItem(key);\n}\n\nfunction write(key, data) {\n return sessionStorage().setItem(key, data);\n}\n\nfunction each(fn) {\n for (var i = sessionStorage().length - 1; i >= 0; i--) {\n var key = sessionStorage().key(i);\n fn(read(key), key);\n }\n}\n\nfunction remove(key) {\n return sessionStorage().removeItem(key);\n}\n\nfunction clearAll() {\n return sessionStorage().clear();\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { store } from '@/common/core/store/decorator';\nimport { observable, action, computed } from 'mobx';\nimport Cookies from 'js-cookie';\nimport { EntryBreakdown } from '@/newcar/core/store/dataset/entryBreakdown';\nimport NEWCAR_CONST from '@/newcar/util/const';\n\n/**\n * 審査申込フォーム\n */\n@store({ persist: true, name: 'newcarEntryForm' })\nexport default class EntryFormStore {\n // Flags\n @observable complete = false;\n\n @observable sendContactData = false;\n\n // Personal Info\n @observable lastName = '';\n\n @observable firstName = '';\n\n @observable lastKana = '';\n\n @observable firstKana = '';\n\n @observable gender: number | null = null;\n\n @observable year: number | string | null = '';\n\n @observable month: number | string = '';\n\n @observable day: number | string = '';\n\n @observable email = '';\n\n @observable phoneNumber = '';\n\n @observable mobileNumber = '';\n\n @observable postalCode = '';\n\n @observable address1 = '';\n\n @observable address2 = '';\n\n @observable address3 = '';\n\n // --------------\n @observable prefectures = '';\n\n @observable city = '';\n\n @observable street = '';\n\n @observable addressKana = '';\n\n // --------------\n @observable question1Answer = '';\n\n @observable question1Sub1Answer = '';\n\n @observable question1Sub2Answer = '';\n\n @observable question2Answer = '';\n\n @observable question3Answer = '';\n\n @observable question4Answer = '';\n\n @observable question4AnswerFree = '';\n\n @observable question5Answer = '';\n\n @observable couponCode = '';\n\n @observable note = '';\n\n @observable purpose = '';\n\n @observable trigger = '';\n\n // Review Info\n @observable isSameAddress = ''\n\n @observable addressPostalCode = '';\n\n @observable addressAddress1 = '';\n\n @observable addressAddress2 = '';\n\n @observable addressAddress3 = '';\n\n @observable residenceYear = '';\n\n // --------------\n @observable residencePrefectures = '';\n\n @observable residenceCity = '';\n\n @observable residenceStreet = '';\n\n @observable residenceAddressKana = '';\n\n // --------------\n @observable residenceStatus: number | null = null;\n\n @observable holder = '';\n\n @observable maritalStatus: number | null = null;\n\n @observable livingPersons: number | null = null;\n\n @observable livingMinors: number | null = null;\n\n @observable businessType: number | null = null;\n\n @observable businessAddressType: number | null = null;\n\n @observable industryType = '';\n\n @observable subIndustryType = '';\n\n @observable businessYears: number | null = null;\n\n @observable income: number | null = null;\n\n @observable company = '';\n\n @observable position = '';\n\n @observable companyPostalCode = '';\n\n @observable companyAddress1 = '';\n\n @observable companyAddress2 = '';\n\n @observable companyAddress3 = '';\n\n // --------------\n @observable officePrefectures = '';\n\n @observable officeCity = '';\n\n @observable officeStreet = '';\n\n @observable officeAddressKana = '';\n\n // --------------\n @observable companyPhoneNumber: string | null = null;\n\n @observable licenseNumber: string | null = null;\n\n @observable cvSource?: string;\n\n @observable utmSource = '';\n\n @observable utmMedium = '';\n\n @observable lineId = '';\n\n // 審査申込ID\n @observable reservationId: number | null = null;\n\n // 対象キャンペーン一覧\n @observable campaigns: NEWCAR_CONST.CAMPAIGNS.NAME[] = [];\n\n @observable entryBreakdown: EntryBreakdown = {};\n\n @action\n setSendContactData(data: EntryFormStore['sendContactData']): void {\n this.sendContactData = data;\n }\n\n @action\n setLastName(lastName: EntryFormStore['lastName']): void {\n this.lastName = lastName;\n }\n\n @action\n setGender(gender: EntryFormStore['gender']): void {\n this.gender = gender;\n }\n\n @action\n setYear(year: EntryFormStore['year']): void {\n this.year = year;\n }\n\n @action\n setQuestion3Answer(question3Answer: EntryFormStore['question3Answer']): void {\n this.question3Answer = question3Answer;\n }\n\n @computed\n get getForm(): EntryFormStore {\n return this;\n }\n\n @computed\n get birthDateToISOString(): string | undefined {\n if (this.year && this.month && this.day) {\n return new Date(\n // 日付ゼロ埋め\n `${this.year}-${this.month}-${this.day}T00:00:00Z`.replace(/\\d+/g, (m) => '0'.substr(m.length - 1) + m),\n ).toISOString();\n }\n return undefined;\n }\n\n @action\n setEntryBreakdown(entryBreakdown: EntryFormStore['entryBreakdown']): void {\n this.entryBreakdown = entryBreakdown;\n }\n\n @action\n async addCampaigns(\n ...campaigns: NEWCAR_CONST.CAMPAIGNS.NAME[]\n ): Promise {\n if (Array.isArray(this.campaigns)) {\n return Array.from(new Set([...this.campaigns, ...campaigns]));\n }\n return this.campaigns;\n }\n\n @action\n updateForm(payload: { data: any, field: string }): void {\n (this as any)[payload.field] = payload.data;\n }\n\n /**\n * CVの流入元を取得\n */\n @action\n async retrieveCVSource(): Promise {\n const ans = Cookies.get('satr_source');\n this.updateForm({ data: ans, field: 'cvSource' });\n return ans;\n }\n\n /**\n * UTMパラメータを取得\n */\n @action\n async retrieveUtmParams(): Promise<{ utmSource: string; utmMedium: string; lineId: string;}> {\n let utmSourceList = '';\n let utmMediumList = '';\n let lineIdList = '';\n\n try {\n if (localStorage) {\n utmSourceList = localStorage.getItem('utmSourceList') || '[]';\n utmMediumList = localStorage.getItem('utmMediumList') || '[]';\n lineIdList = localStorage.getItem('lineIdList') || '';\n } else {\n utmSourceList = Cookies.get('utmSourceList') || '[]';\n utmMediumList = Cookies.get('utmMediumList') || '[]';\n lineIdList = Cookies.get('lineIdList') || '';\n }\n\n this.updateForm({ data: utmSourceList, field: 'utmSource' });\n this.updateForm({ data: utmMediumList, field: 'utmMedium' });\n this.updateForm({ data: lineIdList, field: 'lineId' });\n\n return {\n utmSource: (JSON.parse(utmSourceList) as string[]).join(', '),\n utmMedium: (JSON.parse(utmMediumList) as string[]).join(', '),\n lineId: (JSON.parse(lineIdList) as string[]).join(', '),\n };\n } catch (e) {\n this.updateForm({ data: '', field: 'utmSource' });\n this.updateForm({ data: '', field: 'utmMedium' });\n this.updateForm({ data: '', field: 'lineId' });\n\n return {\n utmSource: '',\n utmMedium: '',\n lineId: '',\n };\n }\n }\n}\n\nexport const entryFormStore = new EntryFormStore();\n","import { createContext } from 'react';\nimport { entryFormStore } from '@/newcar/core/store/entryFormStore';\n\nconst EntryFormStoreContext = createContext(entryFormStore);\n\nexport default EntryFormStoreContext;\n","import API from '@/common/util/api';\nimport { store } from '@/common/core/store/decorator';\nimport { observable, action } from 'mobx';\n\nexport interface ILotteryManager {\n result: number | null;\n licenseNumber: string | null;\n lastName: string | null;\n reservationId: number | null;\n}\n\ntype Result = ILotteryManager['result'];\ntype UserInfo = Pick;\n\n@store({ persist: true, name: 'lotteryManager' })\nexport default class LotteryManagerStore {\n @observable result: number | null = null;\n\n @observable licenseNumber: string | null = '';\n\n @observable lastName: string | null = '';\n\n @observable reservationId: number | null = null;\n\n /**\n * くじ引き結果を格納する\n * @param result くじ引き結果\n */\n @action\n private setResult(result: Result): void {\n this.result = result;\n }\n\n /**\n * ユーザー情報を格納する\n * @param userInfo ユーザー情報\n */\n @action\n private setUserInfo(userInfo: UserInfo): void {\n Object.assign(this, userInfo);\n }\n\n /**\n * くじを引ける状態か?\n */\n get isDrawable(): boolean {\n // 免許証番号が格納されている状態で、くじ結果がまだない時に引くことができる\n return !!this.licenseNumber && this.result === null;\n }\n\n /**\n * くじ情報をリセットする\n * @param userInfo ユーザー情報\n */\n @action\n async resetLottery(userInfo: UserInfo): Promise {\n // 免許証番号が前回と違えば、くじ結果をリセットする\n this.setResult(this.licenseNumber !== userInfo.licenseNumber ? null : this.result);\n\n // ユーザー情報返却\n this.setUserInfo(userInfo);\n return userInfo;\n }\n\n /**\n * くじを引く\n */\n @action\n async draw(): Promise {\n // くじ引きAPIを実行する\n const result = await API.post(API.EndPoints.DrawCampaign, {\n licenseNumber: this.licenseNumber,\n surName: this.lastName,\n reservationId: this.reservationId,\n });\n\n // console.log(result);\n // 結果が返ってこなければエラー\n if (!result) throw Error('Failed to get lottery result');\n\n // 引き結果を返却\n this.setResult(result.data.result);\n return result;\n }\n}\n\nexport const lotteryManagerStore = new LotteryManagerStore();\n","import { createContext } from 'react';\nimport { lotteryManagerStore } from '@/newcar/core/store/lotteryManagerStore';\n\nconst LotteryManagerStoreContext = createContext(lotteryManagerStore);\n\nexport default LotteryManagerStoreContext;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport React, { FC } from 'react';\nimport EntryFormStoreContext from '@/newcar/ui/common/context/EntryFormStoreContext';\nimport EntryBreakdownManagerStoreContext from '@/newcar/ui/common/context/EntryBreakdownManagerStoreContext';\nimport LotteryManagerStoreContext from '@/newcar/ui/common/context/LotteryManagerStoreContext';\nimport SimulationManagerStoreContext from '@/newcar/ui/common/context/SimulationManagerStoreContext';\nimport SimulationResultManagerStoreContext from '@/newcar/ui/common/context/SimulationResultManagerStoreContext';\nimport { entryFormStore } from '@/newcar/core/store/entryFormStore';\nimport { lotteryManagerStore } from '@/newcar/core/store/lotteryManagerStore';\nimport { entryBreakdownManagerStore } from '@/newcar/core/store/entryBreakdownManagerStore';\nimport { simulationManagerStore } from '@/newcar/core/store/simulationManagerStore';\nimport { simulationResultManagerStore } from '@/newcar/core/store/simulationResultManagerStore';\n\ntype NestedContextProps = {\n contexts: { context: React.Context; store: any }[];\n children: React.ReactNode;\n};\n\nconst NestedContext: FC = ({\n contexts,\n children,\n}: NestedContextProps) => {\n const renderCustomNestTags = (\n _contexts: { context: React.Context; store: any }[],\n ) => {\n const currentContext = _contexts.pop();\n if (currentContext) {\n const TmpTag = currentContext.context.Provider;\n return (\n \n {renderCustomNestTags(_contexts)}\n \n );\n }\n return children;\n };\n return <>{renderCustomNestTags(contexts)};\n};\n\nconst ContextProvider: FC = ({ children }) => (\n \n {children}\n \n);\n\nexport default ContextProvider;\n","/* eslint-disable no-multi-assign */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { GatsbyBrowser, RouteUpdateArgs, WrapRootElementNodeArgs } from 'gatsby';\nimport { GTM } from '@/common/util/gtm';\nimport ContextProvider from '@/newcar/ui/common/context/ContextProvider';\n\nexport const wrapRootElement = ({ element }: WrapRootElementNodeArgs): React.ReactElement => (\n {element}\n);\n\nexport const onRouteUpdate: GatsbyBrowser['onRouteUpdate'] = ({ location, prevLocation }: RouteUpdateArgs & { prevLocation: Location }) => {\n // ページタイトルが確実に変わってから実行するため、timeoutを設定\n // 参考: https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-google-tagmanager\n setTimeout(() => {\n // SPA用GAページビュー計測イベント\n GTM.dataLayer.push({\n event: 'gaPageView',\n currentPageFullPath: location.href.replace(location.origin, ''),\n currentPagePath: location.pathname,\n });\n\n // 仮想ページビュー(初回ページビューは無視)\n if (prevLocation) {\n GTM.dataLayer.push({\n event: 'virtualPageView',\n currentPageFullPath: location.href.replace(location.origin, ''),\n currentPagePath: location.pathname,\n });\n }\n\n // Hubspot トラッキングAPI\n // eslint-disable-next-line @typescript-eslint/naming-convention\n let _hsq = [];\n if (window) {\n _hsq = (window as any)._hsq = (window as any)._hsq || [];\n }\n\n _hsq.push(['setPath', `${location.pathname}${location.search}${location.hash}`]);\n _hsq.push(['trackPageView']);\n\n // オプティマイズのカスタムイベント\n GTM.dataLayer.push({\n event: 'optimize.activate',\n });\n }, 50);\n};\n","export const GATSBY_APP_ENV: 'prod' | 'stg' | 'dev' | 'mockup' | undefined = process.env.GATSBY_APP_ENV as 'prod' | 'stg' | 'dev' | 'mockup' | undefined;\nexport const IS_PROD: boolean = GATSBY_APP_ENV === 'prod';\nexport const IS_STG: boolean = GATSBY_APP_ENV === 'stg';\nexport const IS_DEV: boolean = GATSBY_APP_ENV === 'dev';\nexport const IS_MOCKUP: boolean = GATSBY_APP_ENV === 'mockup';\n","import { configure } from 'mobx';\n\n/**\n * MobXの初期設定\n */\nlet isMobXConfigured = false;\nexport const configureMobX = (): void => {\n if (!isMobXConfigured) {\n configure({\n useProxies: 'never', // IE11がProxyAPIをサポートしていないため利用しない\n });\n isMobXConfigured = true;\n }\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { action, autorun, makeObservable } from 'mobx';\nimport storage from 'store';\nimport { configureMobX } from '@/common/core/store/configure';\n\nexport type NonPersistentStoreDecoratorOptions = {\n persist?: false;\n}\n\nexport type PersistentStoreDecoratorOptions = {\n name: string;\n persist: true;\n};\n\nexport type StoreDecoratorOptions =\n | NonPersistentStoreDecoratorOptions\n | PersistentStoreDecoratorOptions;\n\n/**\n * classをMobXのStore化するデコレーター\n *\n * @param options Store化オプション\n * @param options.persist ローカルストレージに永続化するかどうか?\n * @param options.name 永続化するローカルストレージのキー\n */\nexport const store: (options?: StoreDecoratorOptions) => Function = (\n options = {},\n) => (\n constructor: T,\n): Function => {\n class PersistentStore extends constructor {\n constructor(...args: any[]) {\n super(args);\n configureMobX();\n makeObservable(this);\n\n const {\n persist = false, // デフォルトは永続化しない\n } = options;\n\n let initialized = false;\n if (persist) {\n const { name } = options as PersistentStoreDecoratorOptions;\n autorun(() => {\n if (!initialized) {\n this.restore(name);\n }\n storage.set(name, this);\n initialized = true;\n });\n } else {\n initialized = true;\n }\n }\n\n @action\n private restore = (name: PersistentStoreDecoratorOptions['name']): void => {\n let persisted = storage.get(name) ?? {};\n persisted = Object.keys(persisted).reduce((obj, key) => (\n Object.prototype.hasOwnProperty.call(this, key) ? { ...obj, [key]: persisted[key] } : obj\n ), {});\n Object.assign(this, persisted);\n };\n }\n return PersistentStore;\n};\n","/* eslint-disable no-param-reassign */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-empty-interface */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport axios, { AxiosError, AxiosResponse } from 'axios';\nimport Log from '@/common/util/log';\nimport { IS_MOCKUP } from '@/common/core/const';\n\nnamespace API {\n export type I_API_NAME = 'CDN' | 'API';\n // FIXME エントリーポイントで一回だけ初期化するようにする\n export const API_SETTINGS = {\n CDN_API: {\n // CDN APIエンドポイント(例:http://127.0.0.1:8080、https://car-mo.jp\n name: IS_MOCKUP ? 'CarmoApiCDNMockup' : 'CarmoApiCDN',\n endpoint: process.env.CARMO_PRODUCT_API_BASE_PATH,\n },\n API: {\n // Amplify APIエンドポイント(モックアップの場合はCDN APIエンドポイントと同じ)\n name: IS_MOCKUP ? 'CarmoApiMockup' : 'CarmoApi',\n endpoint: process.env.GATSBY_CARMO_API_BASE_PATH,\n },\n };\n\n /** エンドポイント定数文字列をカテゴリ( newcar, usedcar 等 )ごとに使用するためのインターフェース */\n // tslint:disable-next-line: no-empty-interface\n export interface IEndPoints {}\n\n /**\n * APIメソッド\n * @export\n * @enum {number}\n */\n export class EndPoints implements API.IEndPoints {\n public static readonly Addresses = '/addresses';\n\n public static readonly EmailSignup = '/api/email/signup';\n\n public static readonly ContactData = '/api/postbaseinfo';\n\n public static readonly DrawCampaign = '/api/draw-campaign';\n\n public static readonly Application = '/api/usedcar/application';\n\n public static readonly Search = '/api/usedcar/search';\n }\n\n const apiComplete = (response: AxiosResponse) => {\n Log.trace(`status:${response.status.toString()}`);\n Log.trace('response data:::');\n Log.trace(response.data);\n };\n\n const apiError = (error: AxiosError) => {\n if (error.response) {\n Log.trace(`data${error.response.data}`);\n Log.trace(`status${error.response.status}`);\n Log.trace(`headers${error.response.headers}`);\n } else {\n Log.trace(`message${error.message}`);\n }\n };\n\n /**\n * APIのパスを生成\n *\n * @param endpoint\n * @param params\n * @private\n */\n const _generatePath = (endpoint: API.IEndPoints, params?: string) => {\n let path = '';\n path = endpoint.toString();\n return path + (params === undefined ? '' : params);\n };\n\n /**\n * LambdaAPI Get\n * @export\n * @param {string} apiName 呼び出しAPI名\n * @param {NewcarURI.APIEndPoints} endpoint\n * @param {string} [params]\n *\n * @returns\n */\n export async function get(\n apiName: string,\n endpoint: API.IEndPoints,\n params = '',\n ): Promise {\n // const uri = \"https://httpbin.org/status/500\";\n try {\n const path = _generatePath(endpoint, encodeURI(params));\n Log.trace(`Call API:${apiName}, path:${path}`);\n let data: any;\n await axios\n .get(API_SETTINGS.API.endpoint + path)\n .then((response: AxiosResponse) => {\n // 正常時の共通処理\n apiComplete(response);\n // 返却用に格納\n data = response.data;\n })\n .catch((e: any) => {\n Log.error(e);\n // 異常時の共通処理\n apiError(e);\n });\n return await data;\n } catch (error) {\n Log.error(error);\n throw error;\n }\n }\n\n export type IAddress = {\n postCode: string;\n isOffice: boolean;\n prefecture: string;\n prefectureKana: string;\n city: string;\n cityKana: string;\n town: string;\n townKana: string;\n block: string;\n blockKana: string;\n };\n\n export async function findAddresses(params = ''): Promise {\n const path = API.EndPoints.Addresses;\n const ret = await get('API', path, params);\n return ret;\n }\n\n export async function findCarsfromFreeText(word: string): Promise {\n const query = `?q=${encodeURI(word)}`;\n const path = API.EndPoints.Search;\n const ret = await get('API', path, query);\n return ret;\n }\n\n /** s\n * AXIOSでのPOST処理\n *\n * @param endpoint APIパス\n * @param body リクエストボディ\n * @param params パラメータ\n */\n export async function axiosPost(\n endpoint: API.IEndPoints,\n body?: any,\n params = '',\n ): Promise {\n try {\n const path = _generatePath(endpoint, encodeURI(params));\n Log.trace(`Call API:${endpoint}, path:${path}`);\n let responseToBeReturned: AxiosResponse | undefined;\n await axios\n .post(process.env.GATSBY_CARMO_API_BASE_PATH + path, body)\n .then((response: AxiosResponse) => {\n // 正常時の共通処理\n apiComplete(response);\n // 返却用に格納\n responseToBeReturned = response;\n })\n .catch((e) => {\n Log.error(e);\n // 異常時の共通処理\n apiError(e);\n });\n return await responseToBeReturned;\n } catch (error) {\n Log.error(error);\n throw error;\n }\n }\n\n /**\n * API POST\n *\n * @param endpoint APIパス\n * @param body リクエストボディ\n * @param params パラメータ\n */\n export async function post(\n endpoint: API.IEndPoints,\n body?: any,\n params = '',\n ): Promise {\n const response = await axiosPost(endpoint, body, params);\n return response;\n }\n\n /**\n * AXIOSでのPOST処理\n * エラー時はエラーを返す\n *\n * @param endpoint APIパス\n * @param body リクエストボディ\n * @param params パラメータ\n */\n // export async function postReturnE(\n // endpoint: API.IEndPoints,\n // body?: any,\n // params = '',\n // ): Promise {\n // try {\n // params = encodeURI(params);\n // const path = _generatePath(endpoint, params);\n // Log.trace(`Call API:${API_NAME}, path:${path}`);\n // let responseToBeReturned: AxiosResponse | undefined;\n\n // AmplifyAPI.configure(API_SETTINGS);\n // await AmplifyAPI.post(API_NAME, path, { body, response: true })\n // .then((response: AxiosResponse) => {\n // // 正常時の共通処理\n // apiComplete(response);\n // // 返却用に格納\n // responseToBeReturned = response;\n // })\n // .catch((e: any) => {\n // Log.error(e);\n // // 異常時の共通処理\n // apiError(e);\n // if (e.response) {\n // responseToBeReturned = e.response;\n // }\n // });\n // return await responseToBeReturned;\n // } catch (error) {\n // Log.error(error);\n // throw error;\n // }\n // }\n}\n\nexport default API;\n","const array1 = [0x0000,\n 0x0001,\n 0x0002,\n 0x0003,\n 0x0004,\n 0x0005,\n 0x0006,\n 0x0007,\n 0x0008,\n 0x0009,\n 0x000A,\n 0x000B,\n 0x000C,\n 0x000D,\n 0x000E,\n 0x000F,\n 0x0010,\n 0x0011,\n 0x0012,\n 0x0013,\n 0x0014,\n 0x0015,\n 0x0016,\n 0x0017,\n 0x0018,\n 0x0019,\n 0x001A,\n 0x001B,\n 0x001C,\n 0x001D,\n 0x001E,\n 0x001F,\n 0x0020,\n 0x0021,\n 0x0022,\n 0x0023,\n 0x0024,\n 0x0025,\n 0x0026,\n 0x0027,\n 0x0028,\n 0x0029,\n 0x002A,\n 0x002B,\n 0x002C,\n 0x002D,\n 0x002E,\n 0x002F,\n 0x0030,\n 0x0031,\n 0x0032,\n 0x0033,\n 0x0034,\n 0x0035,\n 0x0036,\n 0x0037,\n 0x0038,\n 0x0039,\n 0x003A,\n 0x003B,\n 0x003C,\n 0x003D,\n 0x003E,\n 0x003F,\n 0x0040,\n 0x0041,\n 0x0042,\n 0x0043,\n 0x0044,\n 0x0045,\n 0x0046,\n 0x0047,\n 0x0048,\n 0x0049,\n 0x004A,\n 0x004B,\n 0x004C,\n 0x004D,\n 0x004E,\n 0x004F,\n 0x0050,\n 0x0051,\n 0x0052,\n 0x0053,\n 0x0054,\n 0x0055,\n 0x0056,\n 0x0057,\n 0x0058,\n 0x0059,\n 0x005A,\n 0x005B,\n 0x00A5,\n 0x005D,\n 0x005E,\n 0x005F,\n 0x0060,\n 0x0061,\n 0x0062,\n 0x0063,\n 0x0064,\n 0x0065,\n 0x0066,\n 0x0067,\n 0x0068,\n 0x0069,\n 0x006A,\n 0x006B,\n 0x006C,\n 0x006D,\n 0x006E,\n 0x006F,\n 0x0070,\n 0x0071,\n 0x0072,\n 0x0073,\n 0x0074,\n 0x0075,\n 0x0076,\n 0x0077,\n 0x0078,\n 0x0079,\n 0x007A,\n 0x007B,\n 0x007C,\n 0x007D,\n 0x203E,\n 0x007F,\n 0xFF61,\n 0xFF62,\n 0xFF63,\n 0xFF64,\n 0xFF65,\n 0xFF66,\n 0xFF67,\n 0xFF68,\n 0xFF69,\n 0xFF6A,\n 0xFF6B,\n 0xFF6C,\n 0xFF6D,\n 0xFF6E,\n 0xFF6F,\n 0xFF70,\n 0xFF71,\n 0xFF72,\n 0xFF73,\n 0xFF74,\n 0xFF75,\n 0xFF76,\n 0xFF77,\n 0xFF78,\n 0xFF79,\n 0xFF7A,\n 0xFF7B,\n 0xFF7C,\n 0xFF7D,\n 0xFF7E,\n 0xFF7F,\n 0xFF80,\n 0xFF81,\n 0xFF82,\n 0xFF83,\n 0xFF84,\n 0xFF85,\n 0xFF86,\n 0xFF87,\n 0xFF88,\n 0xFF89,\n 0xFF8A,\n 0xFF8B,\n 0xFF8C,\n 0xFF8D,\n 0xFF8E,\n 0xFF8F,\n 0xFF90,\n 0xFF91,\n 0xFF92,\n 0xFF93,\n 0xFF94,\n 0xFF95,\n 0xFF96,\n 0xFF97,\n 0xFF98,\n 0xFF99,\n 0xFF9A,\n 0xFF9B,\n 0xFF9C,\n 0xFF9D,\n 0xFF9E,\n 0xFF9F,\n 0x3000,\n 0x3001,\n 0x3002,\n 0xFF0C,\n 0xFF0E,\n 0x30FB,\n 0xFF1A,\n 0xFF1B,\n 0xFF1F,\n 0xFF01,\n 0x309B,\n 0x309C,\n 0x00B4,\n 0xFF40,\n 0x00A8,\n 0xFF3E,\n 0xFFE3,\n 0xFF3F,\n 0x30FD,\n 0x30FE,\n 0x309D,\n 0x309E,\n 0x3003,\n 0x4EDD,\n 0x3005,\n 0x3006,\n 0x3007,\n 0x30FC,\n 0x2014,\n 0x2010,\n 0xFF0F,\n 0x005C,\n 0x301C,\n 0x2016,\n 0xFF5C,\n 0x2026,\n 0x2025,\n 0x2018,\n 0x2019,\n 0x201C,\n 0x201D,\n 0xFF08,\n 0xFF09,\n 0x3014,\n 0x3015,\n 0xFF3B,\n 0xFF3D,\n 0xFF5B,\n 0xFF5D,\n 0x3008,\n 0x3009,\n 0x300A,\n 0x300B,\n 0x300C,\n 0x300D,\n 0x300E,\n 0x300F,\n 0x3010,\n 0x3011,\n 0xFF0B,\n 0x2212,\n 0x00B1,\n 0x00D7,\n 0x00F7,\n 0xFF1D,\n 0x2260,\n 0xFF1C,\n 0xFF1E,\n 0x2266,\n 0x2267,\n 0x221E,\n 0x2234,\n 0x2642,\n 0x2640,\n 0x00B0,\n 0x2032,\n 0x2033,\n 0x2103,\n 0xFFE5,\n 0xFF04,\n 0x00A2,\n 0x00A3,\n 0xFF05,\n 0xFF03,\n 0xFF06,\n 0xFF0A,\n 0xFF20,\n 0x00A7,\n 0x2606,\n 0x2605,\n 0x25CB,\n 0x25CF,\n 0x25CE,\n 0x25C7,\n 0x25C6,\n 0x25A1,\n 0x25A0,\n 0x25B3,\n 0x25B2,\n 0x25BD,\n 0x25BC,\n 0x203B,\n 0x3012,\n 0x2192,\n 0x2190,\n 0x2191,\n 0x2193,\n 0x3013,\n 0xFF07,\n 0xFF02,\n 0xFF0D,\n 0x007E,\n 0x3033,\n 0x3034,\n 0x3035,\n 0x303B,\n 0x303C,\n 0x30FF,\n 0x309F,\n 0x2208,\n 0x220B,\n 0x2286,\n 0x2287,\n 0x2282,\n 0x2283,\n 0x222A,\n 0x2229,\n 0x2284,\n 0x2285,\n 0x228A,\n 0x228B,\n 0x2209,\n 0x2205,\n 0x2305,\n 0x2306,\n 0x2227,\n 0x2228,\n 0x00AC,\n 0x21D2,\n 0x21D4,\n 0x2200,\n 0x2203,\n 0x2295,\n 0x2296,\n 0x2297,\n 0x2225,\n 0x2226,\n 0xFF5F,\n 0xFF60,\n 0x3018,\n 0x3019,\n 0x3016,\n 0x3017,\n 0x2220,\n 0x22A5,\n 0x2312,\n 0x2202,\n 0x2207,\n 0x2261,\n 0x2252,\n 0x226A,\n 0x226B,\n 0x221A,\n 0x223D,\n 0x221D,\n 0x2235,\n 0x222B,\n 0x222C,\n 0x2262,\n 0x2243,\n 0x2245,\n 0x2248,\n 0x2276,\n 0x2277,\n 0x2194,\n 0x212B,\n 0x2030,\n 0x266F,\n 0x266D,\n 0x266A,\n 0x2020,\n 0x2021,\n 0x00B6,\n 0x266E,\n 0x266B,\n 0x266C,\n 0x2669,\n 0x25EF,\n 0x25B7,\n 0x25B6,\n 0x25C1,\n 0x25C0,\n 0x2197,\n 0x2198,\n 0x2196,\n 0x2199,\n 0x21C4,\n 0x21E8,\n 0x21E6,\n 0x21E7,\n 0x21E9,\n 0x2934,\n 0x2935,\n 0xFF10,\n 0xFF11,\n 0xFF12,\n 0xFF13,\n 0xFF14,\n 0xFF15,\n 0xFF16,\n 0xFF17,\n 0xFF18,\n 0xFF19,\n 0x29BF,\n 0x25C9,\n 0x303D,\n 0xFE46,\n 0xFE45,\n 0x25E6,\n 0x2022,\n 0xFF21,\n 0xFF22,\n 0xFF23,\n 0xFF24,\n 0xFF25,\n 0xFF26,\n 0xFF27,\n 0xFF28,\n 0xFF29,\n 0xFF2A,\n 0xFF2B,\n 0xFF2C,\n 0xFF2D,\n 0xFF2E,\n 0xFF2F,\n 0xFF30,\n 0xFF31,\n 0xFF32,\n 0xFF33,\n 0xFF34,\n 0xFF35,\n 0xFF36,\n 0xFF37,\n 0xFF38,\n 0xFF39,\n 0xFF3A,\n 0x2213,\n 0x2135,\n 0x210F,\n 0x33CB,\n 0x2113,\n 0x2127,\n 0xFF41,\n 0xFF42,\n 0xFF43,\n 0xFF44,\n 0xFF45,\n 0xFF46,\n 0xFF47,\n 0xFF48,\n 0xFF49,\n 0xFF4A,\n 0xFF4B,\n 0xFF4C,\n 0xFF4D,\n 0xFF4E,\n 0xFF4F,\n 0xFF50,\n 0xFF51,\n 0xFF52,\n 0xFF53,\n 0xFF54,\n 0xFF55,\n 0xFF56,\n 0xFF57,\n 0xFF58,\n 0xFF59,\n 0xFF5A,\n 0x30A0,\n 0x2013,\n 0x29FA,\n 0x29FB,\n 0x3041,\n 0x3042,\n 0x3043,\n 0x3044,\n 0x3045,\n 0x3046,\n 0x3047,\n 0x3048,\n 0x3049,\n 0x304A,\n 0x304B,\n 0x304C,\n 0x304D,\n 0x304E,\n 0x304F,\n 0x3050,\n 0x3051,\n 0x3052,\n 0x3053,\n 0x3054,\n 0x3055,\n 0x3056,\n 0x3057,\n 0x3058,\n 0x3059,\n 0x305A,\n 0x305B,\n 0x305C,\n 0x305D,\n 0x305E,\n 0x305F,\n 0x3060,\n 0x3061,\n 0x3062,\n 0x3063,\n 0x3064,\n 0x3065,\n 0x3066,\n 0x3067,\n 0x3068,\n 0x3069,\n 0x306A,\n 0x306B,\n 0x306C,\n 0x306D,\n 0x306E,\n 0x306F,\n 0x3070,\n 0x3071,\n 0x3072,\n 0x3073,\n 0x3074,\n 0x3075,\n 0x3076,\n 0x3077,\n 0x3078,\n 0x3079,\n 0x307A,\n 0x307B,\n 0x307C,\n 0x307D,\n 0x307E,\n 0x307F,\n 0x3080,\n 0x3081,\n 0x3082,\n 0x3083,\n 0x3084,\n 0x3085,\n 0x3086,\n 0x3087,\n 0x3088,\n 0x3089,\n 0x308A,\n 0x308B,\n 0x308C,\n 0x308D,\n 0x308E,\n 0x308F,\n 0x3090,\n 0x3091,\n 0x3092,\n 0x3093,\n 0x3094,\n 0x3095,\n 0x3096,\n 0x30A1,\n 0x30A2,\n 0x30A3,\n 0x30A4,\n 0x30A5,\n 0x30A6,\n 0x30A7,\n 0x30A8,\n 0x30A9,\n 0x30AA,\n 0x30AB,\n 0x30AC,\n 0x30AD,\n 0x30AE,\n 0x30AF,\n 0x30B0,\n 0x30B1,\n 0x30B2,\n 0x30B3,\n 0x30B4,\n 0x30B5,\n 0x30B6,\n 0x30B7,\n 0x30B8,\n 0x30B9,\n 0x30BA,\n 0x30BB,\n 0x30BC,\n 0x30BD,\n 0x30BE,\n 0x30BF,\n 0x30C0,\n 0x30C1,\n 0x30C2,\n 0x30C3,\n 0x30C4,\n 0x30C5,\n 0x30C6,\n 0x30C7,\n 0x30C8,\n 0x30C9,\n 0x30CA,\n 0x30CB,\n 0x30CC,\n 0x30CD,\n 0x30CE,\n 0x30CF,\n 0x30D0,\n 0x30D1,\n 0x30D2,\n 0x30D3,\n 0x30D4,\n 0x30D5,\n 0x30D6,\n 0x30D7,\n 0x30D8,\n 0x30D9,\n 0x30DA,\n 0x30DB,\n 0x30DC,\n 0x30DD,\n 0x30DE,\n 0x30DF,\n 0x30E0,\n 0x30E1,\n 0x30E2,\n 0x30E3,\n 0x30E4,\n 0x30E5,\n 0x30E6,\n 0x30E7,\n 0x30E8,\n 0x30E9,\n 0x30EA,\n 0x30EB,\n 0x30EC,\n 0x30ED,\n 0x30EE,\n 0x30EF,\n 0x30F0,\n 0x30F1,\n 0x30F2,\n 0x30F3,\n 0x30F4,\n 0x30F5,\n 0x30F6,\n 0x0391,\n 0x0392,\n 0x0393,\n 0x0394,\n 0x0395,\n 0x0396,\n 0x0397,\n 0x0398,\n 0x0399,\n 0x039A,\n 0x039B,\n 0x039C,\n 0x039D,\n 0x039E,\n 0x039F,\n 0x03A0,\n 0x03A1,\n 0x03A3,\n 0x03A4,\n 0x03A5,\n 0x03A6,\n 0x03A7,\n 0x03A8,\n 0x03A9,\n 0x2664,\n 0x2660,\n 0x2662,\n 0x2666,\n 0x2661,\n 0x2665,\n 0x2667,\n 0x2663,\n 0x03B1,\n 0x03B2,\n 0x03B3,\n 0x03B4,\n 0x03B5,\n 0x03B6,\n 0x03B7,\n 0x03B8,\n 0x03B9,\n 0x03BA,\n 0x03BB,\n 0x03BC,\n 0x03BD,\n 0x03BE,\n 0x03BF,\n 0x03C0,\n 0x03C1,\n 0x03C3,\n 0x03C4,\n 0x03C5,\n 0x03C6,\n 0x03C7,\n 0x03C8,\n 0x03C9,\n 0x03C2,\n 0x24F5,\n 0x24F6,\n 0x24F7,\n 0x24F8,\n 0x24F9,\n 0x24FA,\n 0x24FB,\n 0x24FC,\n 0x24FD,\n 0x24FE,\n 0x2616,\n 0x2617,\n 0x3020,\n 0x260E,\n 0x2600,\n 0x2601,\n 0x2602,\n 0x2603,\n 0x2668,\n 0x25B1,\n 0x31F0,\n 0x31F1,\n 0x31F2,\n 0x31F3,\n 0x31F4,\n 0x31F5,\n 0x31F6,\n 0x31F7,\n 0x31F8,\n 0x31F9,\n 0x31FA,\n 0x31FB,\n 0x31FC,\n 0x31FD,\n 0x31FE,\n 0x31FF,\n 0x0410,\n 0x0411,\n 0x0412,\n 0x0413,\n 0x0414,\n 0x0415,\n 0x0401,\n 0x0416,\n 0x0417,\n 0x0418,\n 0x0419,\n 0x041A,\n 0x041B,\n 0x041C,\n 0x041D,\n 0x041E,\n 0x041F,\n 0x0420,\n 0x0421,\n 0x0422,\n 0x0423,\n 0x0424,\n 0x0425,\n 0x0426,\n 0x0427,\n 0x0428,\n 0x0429,\n 0x042A,\n 0x042B,\n 0x042C,\n 0x042D,\n 0x042E,\n 0x042F,\n 0x23BE,\n 0x23BF,\n 0x23C0,\n 0x23C1,\n 0x23C2,\n 0x23C3,\n 0x23C4,\n 0x23C5,\n 0x23C6,\n 0x23C7,\n 0x23C8,\n 0x23C9,\n 0x23CA,\n 0x23CB,\n 0x23CC,\n 0x0430,\n 0x0431,\n 0x0432,\n 0x0433,\n 0x0434,\n 0x0435,\n 0x0451,\n 0x0436,\n 0x0437,\n 0x0438,\n 0x0439,\n 0x043A,\n 0x043B,\n 0x043C,\n 0x043D,\n 0x043E,\n 0x043F,\n 0x0440,\n 0x0441,\n 0x0442,\n 0x0443,\n 0x0444,\n 0x0445,\n 0x0446,\n 0x0447,\n 0x0448,\n 0x0449,\n 0x044A,\n 0x044B,\n 0x044C,\n 0x044D,\n 0x044E,\n 0x044F,\n 0x30F7,\n 0x30F8,\n 0x30F9,\n 0x30FA,\n 0x22DA,\n 0x22DB,\n 0x2153,\n 0x2154,\n 0x2155,\n 0x2713,\n 0x2318,\n 0x2423,\n 0x23CE,\n 0x2500,\n 0x2502,\n 0x250C,\n 0x2510,\n 0x2518,\n 0x2514,\n 0x251C,\n 0x252C,\n 0x2524,\n 0x2534,\n 0x253C,\n 0x2501,\n 0x2503,\n 0x250F,\n 0x2513,\n 0x251B,\n 0x2517,\n 0x2523,\n 0x2533,\n 0x252B,\n 0x253B,\n 0x254B,\n 0x2520,\n 0x252F,\n 0x2528,\n 0x2537,\n 0x253F,\n 0x251D,\n 0x2530,\n 0x2525,\n 0x2538,\n 0x2542,\n 0x3251,\n 0x3252,\n 0x3253,\n 0x3254,\n 0x3255,\n 0x3256,\n 0x3257,\n 0x3258,\n 0x3259,\n 0x325A,\n 0x325B,\n 0x325C,\n 0x325D,\n 0x325E,\n 0x325F,\n 0x32B1,\n 0x32B2,\n 0x32B3,\n 0x32B4,\n 0x32B5,\n 0x32B6,\n 0x32B7,\n 0x32B8,\n 0x32B9,\n 0x32BA,\n 0x32BB,\n 0x32BC,\n 0x32BD,\n 0x32BE,\n 0x32BF,\n 0x25D0,\n 0x25D1,\n 0x25D2,\n 0x25D3,\n 0x203C,\n 0x2047,\n 0x2048,\n 0x2049,\n 0x01CD,\n 0x01CE,\n 0x01D0,\n 0x1E3E,\n 0x1E3F,\n 0x01F8,\n 0x01F9,\n 0x01D1,\n 0x01D2,\n 0x01D4,\n 0x01D6,\n 0x01D8,\n 0x01DA,\n 0x01DC,\n 0x20AC,\n 0x00A0,\n 0x00A1,\n 0x00A4,\n 0x00A6,\n 0x00A9,\n 0x00AA,\n 0x00AB,\n 0x00AD,\n 0x00AE,\n 0x00AF,\n 0x00B2,\n 0x00B3,\n 0x00B7,\n 0x00B8,\n 0x00B9,\n 0x00BA,\n 0x00BB,\n 0x00BC,\n 0x00BD,\n 0x00BE,\n 0x00BF,\n 0x00C0,\n 0x00C1,\n 0x00C2,\n 0x00C3,\n 0x00C4,\n 0x00C5,\n 0x00C6,\n 0x00C7,\n 0x00C8,\n 0x00C9,\n 0x00CA,\n 0x00CB,\n 0x00CC,\n 0x00CD,\n 0x00CE,\n 0x00CF,\n 0x00D0,\n 0x00D1,\n 0x00D2,\n 0x00D3,\n 0x00D4,\n 0x00D5,\n 0x00D6,\n 0x00D8,\n 0x00D9,\n 0x00DA,\n 0x00DB,\n 0x00DC,\n 0x00DD,\n 0x00DE,\n 0x00DF,\n 0x00E0,\n 0x00E1,\n 0x00E2,\n 0x00E3,\n 0x00E4,\n 0x00E5,\n 0x00E6,\n 0x00E7,\n 0x00E8,\n 0x00E9,\n 0x00EA,\n 0x00EB,\n 0x00EC,\n 0x00ED,\n 0x00EE,\n 0x00EF,\n 0x00F0,\n 0x00F1,\n 0x00F2,\n 0x00F3,\n 0x00F4,\n 0x00F5,\n 0x00F6,\n 0x00F8,\n 0x00F9,\n 0x00FA,\n 0x00FB,\n 0x00FC,\n 0x00FD,\n 0x00FE,\n 0x00FF,\n 0x0100,\n 0x012A,\n 0x016A,\n 0x0112,\n 0x014C,\n 0x0101,\n 0x012B,\n 0x016B,\n 0x0113,\n 0x014D,\n 0x0104,\n 0x02D8,\n 0x0141,\n 0x013D,\n 0x015A,\n 0x0160,\n 0x015E,\n 0x0164,\n 0x0179,\n 0x017D,\n 0x017B,\n 0x0105,\n 0x02DB,\n 0x0142,\n 0x013E,\n 0x015B,\n 0x02C7,\n 0x0161,\n 0x015F,\n 0x0165,\n 0x017A,\n 0x02DD,\n 0x017E,\n 0x017C,\n 0x0154,\n 0x0102,\n 0x0139,\n 0x0106,\n 0x010C,\n 0x0118,\n 0x011A,\n 0x010E,\n 0x0143,\n 0x0147,\n 0x0150,\n 0x0158,\n 0x016E,\n 0x0170,\n 0x0162,\n 0x0155,\n 0x0103,\n 0x013A,\n 0x0107,\n 0x010D,\n 0x0119,\n 0x011B,\n 0x010F,\n 0x0111,\n 0x0144,\n 0x0148,\n 0x0151,\n 0x0159,\n 0x016F,\n 0x0171,\n 0x0163,\n 0x02D9,\n 0x0108,\n 0x011C,\n 0x0124,\n 0x0134,\n 0x015C,\n 0x016C,\n 0x0109,\n 0x011D,\n 0x0125,\n 0x0135,\n 0x015D,\n 0x016D,\n 0x0271,\n 0x028B,\n 0x027E,\n 0x0283,\n 0x0292,\n 0x026C,\n 0x026E,\n 0x0279,\n 0x0288,\n 0x0256,\n 0x0273,\n 0x027D,\n 0x0282,\n 0x0290,\n 0x027B,\n 0x026D,\n 0x025F,\n 0x0272,\n 0x029D,\n 0x028E,\n 0x0261,\n 0x014B,\n 0x0270,\n 0x0281,\n 0x0127,\n 0x0295,\n 0x0294,\n 0x0266,\n 0x0298,\n 0x01C2,\n 0x0253,\n 0x0257,\n 0x0284,\n 0x0260,\n 0x0193,\n 0x0153,\n 0x0152,\n 0x0268,\n 0x0289,\n 0x0258,\n 0x0275,\n 0x0259,\n 0x025C,\n 0x025E,\n 0x0250,\n 0x026F,\n 0x028A,\n 0x0264,\n 0x028C,\n 0x0254,\n 0x0251,\n 0x0252,\n 0x028D,\n 0x0265,\n 0x02A2,\n 0x02A1,\n 0x0255,\n 0x0291,\n 0x027A,\n 0x0267,\n 0x025A,\n 0x01FD,\n 0x1F70,\n 0x1F71,\n 0x1F72,\n 0x1F73,\n 0x0361,\n 0x02C8,\n 0x02CC,\n 0x02D0,\n 0x02D1,\n 0x0306,\n 0x203F,\n 0x030B,\n 0x0301,\n 0x0304,\n 0x0300,\n 0x030F,\n 0x030C,\n 0x0302,\n 0x02E5,\n 0x02E6,\n 0x02E7,\n 0x02E8,\n 0x02E9,\n 0x0325,\n 0x032C,\n 0x0339,\n 0x031C,\n 0x031F,\n 0x0320,\n 0x0308,\n 0x033D,\n 0x0329,\n 0x032F,\n 0x02DE,\n 0x0324,\n 0x0330,\n 0x033C,\n 0x0334,\n 0x031D,\n 0x031E,\n 0x0318,\n 0x0319,\n 0x032A,\n 0x033A,\n 0x033B,\n 0x0303,\n 0x031A,\n 0x2776,\n 0x2777,\n 0x2778,\n 0x2779,\n 0x277A,\n 0x277B,\n 0x277C,\n 0x277D,\n 0x277E,\n 0x277F,\n 0x24EB,\n 0x24EC,\n 0x24ED,\n 0x24EE,\n 0x24EF,\n 0x24F0,\n 0x24F1,\n 0x24F2,\n 0x24F3,\n 0x24F4,\n 0x2170,\n 0x2171,\n 0x2172,\n 0x2173,\n 0x2174,\n 0x2175,\n 0x2176,\n 0x2177,\n 0x2178,\n 0x2179,\n 0x217A,\n 0x217B,\n 0x24D0,\n 0x24D1,\n 0x24D2,\n 0x24D3,\n 0x24D4,\n 0x24D5,\n 0x24D6,\n 0x24D7,\n 0x24D8,\n 0x24D9,\n 0x24DA,\n 0x24DB,\n 0x24DC,\n 0x24DD,\n 0x24DE,\n 0x24DF,\n 0x24E0,\n 0x24E1,\n 0x24E2,\n 0x24E3,\n 0x24E4,\n 0x24E5,\n 0x24E6,\n 0x24E7,\n 0x24E8,\n 0x24E9,\n 0x32D0,\n 0x32D1,\n 0x32D2,\n 0x32D3,\n 0x32D4,\n 0x32D5,\n 0x32D6,\n 0x32D7,\n 0x32D8,\n 0x32D9,\n 0x32DA,\n 0x32DB,\n 0x32DC,\n 0x32DD,\n 0x32DE,\n 0x32DF,\n 0x32E0,\n 0x32E1,\n 0x32E2,\n 0x32E3,\n 0x32FA,\n 0x32E9,\n 0x32E5,\n 0x32ED,\n 0x32EC,\n 0x2051,\n 0x2042,\n 0x2460,\n 0x2461,\n 0x2462,\n 0x2463,\n 0x2464,\n 0x2465,\n 0x2466,\n 0x2467,\n 0x2468,\n 0x2469,\n 0x246A,\n 0x246B,\n 0x246C,\n 0x246D,\n 0x246E,\n 0x246F,\n 0x2470,\n 0x2471,\n 0x2472,\n 0x2473,\n 0x2160,\n 0x2161,\n 0x2162,\n 0x2163,\n 0x2164,\n 0x2165,\n 0x2166,\n 0x2167,\n 0x2168,\n 0x2169,\n 0x216A,\n 0x3349,\n 0x3314,\n 0x3322,\n 0x334D,\n 0x3318,\n 0x3327,\n 0x3303,\n 0x3336,\n 0x3351,\n 0x3357,\n 0x330D,\n 0x3326,\n 0x3323,\n 0x332B,\n 0x334A,\n 0x333B,\n 0x339C,\n 0x339D,\n 0x339E,\n 0x338E,\n 0x338F,\n 0x33C4,\n 0x33A1,\n 0x216B,\n 0x337B,\n 0x301D,\n 0x301F,\n 0x2116,\n 0x33CD,\n 0x2121,\n 0x32A4,\n 0x32A5,\n 0x32A6,\n 0x32A7,\n 0x32A8,\n 0x3231,\n 0x3232,\n 0x3239,\n 0x337E,\n 0x337D,\n 0x337C,\n 0x222E,\n 0x221F,\n 0x22BF,\n 0x2756,\n 0x261E,\n 0x4FF1,\n 0x2000B,\n 0x3402,\n 0x4E28,\n 0x4E2F,\n 0x4E30,\n 0x4E8D,\n 0x4EE1,\n 0x4EFD,\n 0x4EFF,\n 0x4F03,\n 0x4F0B,\n 0x4F60,\n 0x4F48,\n 0x4F49,\n 0x4F56,\n 0x4F5F,\n 0x4F6A,\n 0x4F6C,\n 0x4F7E,\n 0x4F8A,\n 0x4F94,\n 0x4F97,\n 0xFA30,\n 0x4FC9,\n 0x4FE0,\n 0x5001,\n 0x5002,\n 0x500E,\n 0x5018,\n 0x5027,\n 0x502E,\n 0x5040,\n 0x503B,\n 0x5041,\n 0x5094,\n 0x50CC,\n 0x50F2,\n 0x50D0,\n 0x50E6,\n 0xFA31,\n 0x5106,\n 0x5103,\n 0x510B,\n 0x511E,\n 0x5135,\n 0x514A,\n 0xFA32,\n 0x5155,\n 0x5157,\n 0x34B5,\n 0x519D,\n 0x51C3,\n 0x51CA,\n 0x51DE,\n 0x51E2,\n 0x51EE,\n 0x5201,\n 0x34DB,\n 0x5213,\n 0x5215,\n 0x5249,\n 0x5257,\n 0x5261,\n 0x5293,\n 0x52C8,\n 0xFA33,\n 0x52CC,\n 0x52D0,\n 0x52D6,\n 0x52DB,\n 0xFA34,\n 0x52F0,\n 0x52FB,\n 0x5300,\n 0x5307,\n 0x531C,\n 0xFA35,\n 0x5361,\n 0x5363,\n 0x537D,\n 0x5393,\n 0x539D,\n 0x53B2,\n 0x5412,\n 0x5427,\n 0x544D,\n 0x549C,\n 0x546B,\n 0x5474,\n 0x547F,\n 0x5488,\n 0x5496,\n 0x54A1,\n 0x54A9,\n 0x54C6,\n 0x54FF,\n 0x550E,\n 0x552B,\n 0x5535,\n 0x5550,\n 0x555E,\n 0x5581,\n 0x5586,\n 0x558E,\n 0xFA36,\n 0x55AD,\n 0x55CE,\n 0xFA37,\n 0x5608,\n 0x560E,\n 0x563B,\n 0x5649,\n 0x5676,\n 0x5666,\n 0xFA38,\n 0x566F,\n 0x5671,\n 0x5672,\n 0x5699,\n 0x569E,\n 0x56A9,\n 0x56AC,\n 0x56B3,\n 0x56C9,\n 0x56CA,\n 0x570A,\n 0x2123D,\n 0x5721,\n 0x572F,\n 0x5733,\n 0x5734,\n 0x5770,\n 0x5777,\n 0x577C,\n 0x579C,\n 0xFA0F,\n 0x2131B,\n 0x57B8,\n 0x57C7,\n 0x57C8,\n 0x57CF,\n 0x57E4,\n 0x57ED,\n 0x57F5,\n 0x57F6,\n 0x57FF,\n 0x5809,\n 0xFA10,\n 0x5861,\n 0x5864,\n 0xFA39,\n 0x587C,\n 0x5889,\n 0x589E,\n 0xFA3A,\n 0x58A9,\n 0x2146E,\n 0x58D2,\n 0x58CE,\n 0x58D4,\n 0x58DA,\n 0x58E0,\n 0x58E9,\n 0x590C,\n 0x8641,\n 0x595D,\n 0x596D,\n 0x598B,\n 0x5992,\n 0x59A4,\n 0x59C3,\n 0x59D2,\n 0x59DD,\n 0x5A13,\n 0x5A23,\n 0x5A67,\n 0x5A6D,\n 0x5A77,\n 0x5A7E,\n 0x5A84,\n 0x5A9E,\n 0x5AA7,\n 0x5AC4,\n 0x218BD,\n 0x5B19,\n 0x5B25,\n 0x525D,\n 0x4E9C,\n 0x5516,\n 0x5A03,\n 0x963F,\n 0x54C0,\n 0x611B,\n 0x6328,\n 0x59F6,\n 0x9022,\n 0x8475,\n 0x831C,\n 0x7A50,\n 0x60AA,\n 0x63E1,\n 0x6E25,\n 0x65ED,\n 0x8466,\n 0x82A6,\n 0x9BF5,\n 0x6893,\n 0x5727,\n 0x65A1,\n 0x6271,\n 0x5B9B,\n 0x59D0,\n 0x867B,\n 0x98F4,\n 0x7D62,\n 0x7DBE,\n 0x9B8E,\n 0x6216,\n 0x7C9F,\n 0x88B7,\n 0x5B89,\n 0x5EB5,\n 0x6309,\n 0x6697,\n 0x6848,\n 0x95C7,\n 0x978D,\n 0x674F,\n 0x4EE5,\n 0x4F0A,\n 0x4F4D,\n 0x4F9D,\n 0x5049,\n 0x56F2,\n 0x5937,\n 0x59D4,\n 0x5A01,\n 0x5C09,\n 0x60DF,\n 0x610F,\n 0x6170,\n 0x6613,\n 0x6905,\n 0x70BA,\n 0x754F,\n 0x7570,\n 0x79FB,\n 0x7DAD,\n 0x7DEF,\n 0x80C3,\n 0x840E,\n 0x8863,\n 0x8B02,\n 0x9055,\n 0x907A,\n 0x533B,\n 0x4E95,\n 0x4EA5,\n 0x57DF,\n 0x80B2,\n 0x90C1,\n 0x78EF,\n 0x4E00,\n 0x58F1,\n 0x6EA2,\n 0x9038,\n 0x7A32,\n 0x8328,\n 0x828B,\n 0x9C2F,\n 0x5141,\n 0x5370,\n 0x54BD,\n 0x54E1,\n 0x56E0,\n 0x59FB,\n 0x5F15,\n 0x98F2,\n 0x6DEB,\n 0x80E4,\n 0x852D,\n 0x9662,\n 0x9670,\n 0x96A0,\n 0x97FB,\n 0x540B,\n 0x53F3,\n 0x5B87,\n 0x70CF,\n 0x7FBD,\n 0x8FC2,\n 0x96E8,\n 0x536F,\n 0x9D5C,\n 0x7ABA,\n 0x4E11,\n 0x7893,\n 0x81FC,\n 0x6E26,\n 0x5618,\n 0x5504,\n 0x6B1D,\n 0x851A,\n 0x9C3B,\n 0x59E5,\n 0x53A9,\n 0x6D66,\n 0x74DC,\n 0x958F,\n 0x5642,\n 0x4E91,\n 0x904B,\n 0x96F2,\n 0x834F,\n 0x990C,\n 0x53E1,\n 0x55B6,\n 0x5B30,\n 0x5F71,\n 0x6620,\n 0x66F3,\n 0x6804,\n 0x6C38,\n 0x6CF3,\n 0x6D29,\n 0x745B,\n 0x76C8,\n 0x7A4E,\n 0x9834,\n 0x82F1,\n 0x885B,\n 0x8A60,\n 0x92ED,\n 0x6DB2,\n 0x75AB,\n 0x76CA,\n 0x99C5,\n 0x60A6,\n 0x8B01,\n 0x8D8A,\n 0x95B2,\n 0x698E,\n 0x53AD,\n 0x5186,\n 0x5712,\n 0x5830,\n 0x5944,\n 0x5BB4,\n 0x5EF6,\n 0x6028,\n 0x63A9,\n 0x63F4,\n 0x6CBF,\n 0x6F14,\n 0x708E,\n 0x7114,\n 0x7159,\n 0x71D5,\n 0x733F,\n 0x7E01,\n 0x8276,\n 0x82D1,\n 0x8597,\n 0x9060,\n 0x925B,\n 0x9D1B,\n 0x5869,\n 0x65BC,\n 0x6C5A,\n 0x7525,\n 0x51F9,\n 0x592E,\n 0x5965,\n 0x5F80,\n 0x5FDC,\n 0x62BC,\n 0x65FA,\n 0x6A2A,\n 0x6B27,\n 0x6BB4,\n 0x738B,\n 0x7FC1,\n 0x8956,\n 0x9D2C,\n 0x9D0E,\n 0x9EC4,\n 0x5CA1,\n 0x6C96,\n 0x837B,\n 0x5104,\n 0x5C4B,\n 0x61B6,\n 0x81C6,\n 0x6876,\n 0x7261,\n 0x4E59,\n 0x4FFA,\n 0x5378,\n 0x6069,\n 0x6E29,\n 0x7A4F,\n 0x97F3,\n 0x4E0B,\n 0x5316,\n 0x4EEE,\n 0x4F55,\n 0x4F3D,\n 0x4FA1,\n 0x4F73,\n 0x52A0,\n 0x53EF,\n 0x5609,\n 0x590F,\n 0x5AC1,\n 0x5BB6,\n 0x5BE1,\n 0x79D1,\n 0x6687,\n 0x679C,\n 0x67B6,\n 0x6B4C,\n 0x6CB3,\n 0x706B,\n 0x73C2,\n 0x798D,\n 0x79BE,\n 0x7A3C,\n 0x7B87,\n 0x82B1,\n 0x82DB,\n 0x8304,\n 0x8377,\n 0x83EF,\n 0x83D3,\n 0x8766,\n 0x8AB2,\n 0x5629,\n 0x8CA8,\n 0x8FE6,\n 0x904E,\n 0x971E,\n 0x868A,\n 0x4FC4,\n 0x5CE8,\n 0x6211,\n 0x7259,\n 0x753B,\n 0x81E5,\n 0x82BD,\n 0x86FE,\n 0x8CC0,\n 0x96C5,\n 0x9913,\n 0x99D5,\n 0x4ECB,\n 0x4F1A,\n 0x89E3,\n 0x56DE,\n 0x584A,\n 0x58CA,\n 0x5EFB,\n 0x5FEB,\n 0x602A,\n 0x6094,\n 0x6062,\n 0x61D0,\n 0x6212,\n 0x62D0,\n 0x6539,\n 0x9B41,\n 0x6666,\n 0x68B0,\n 0x6D77,\n 0x7070,\n 0x754C,\n 0x7686,\n 0x7D75,\n 0x82A5,\n 0x87F9,\n 0x958B,\n 0x968E,\n 0x8C9D,\n 0x51F1,\n 0x52BE,\n 0x5916,\n 0x54B3,\n 0x5BB3,\n 0x5D16,\n 0x6168,\n 0x6982,\n 0x6DAF,\n 0x788D,\n 0x84CB,\n 0x8857,\n 0x8A72,\n 0x93A7,\n 0x9AB8,\n 0x6D6C,\n 0x99A8,\n 0x86D9,\n 0x57A3,\n 0x67FF,\n 0x86CE,\n 0x920E,\n 0x5283,\n 0x5687,\n 0x5404,\n 0x5ED3,\n 0x62E1,\n 0x64B9,\n 0x683C,\n 0x6838,\n 0x6BBB,\n 0x7372,\n 0x78BA,\n 0x7A6B,\n 0x899A,\n 0x89D2,\n 0x8D6B,\n 0x8F03,\n 0x90ED,\n 0x95A3,\n 0x9694,\n 0x9769,\n 0x5B66,\n 0x5CB3,\n 0x697D,\n 0x984D,\n 0x984E,\n 0x639B,\n 0x7B20,\n 0x6A2B,\n 0x6A7F,\n 0x68B6,\n 0x9C0D,\n 0x6F5F,\n 0x5272,\n 0x559D,\n 0x6070,\n 0x62EC,\n 0x6D3B,\n 0x6E07,\n 0x6ED1,\n 0x845B,\n 0x8910,\n 0x8F44,\n 0x4E14,\n 0x9C39,\n 0x53F6,\n 0x691B,\n 0x6A3A,\n 0x9784,\n 0x682A,\n 0x515C,\n 0x7AC3,\n 0x84B2,\n 0x91DC,\n 0x938C,\n 0x565B,\n 0x9D28,\n 0x6822,\n 0x8305,\n 0x8431,\n 0x7CA5,\n 0x5208,\n 0x82C5,\n 0x74E6,\n 0x4E7E,\n 0x4F83,\n 0x51A0,\n 0x5BD2,\n 0x520A,\n 0x52D8,\n 0x52E7,\n 0x5DFB,\n 0x559A,\n 0x582A,\n 0x59E6,\n 0x5B8C,\n 0x5B98,\n 0x5BDB,\n 0x5E72,\n 0x5E79,\n 0x60A3,\n 0x611F,\n 0x6163,\n 0x61BE,\n 0x63DB,\n 0x6562,\n 0x67D1,\n 0x6853,\n 0x68FA,\n 0x6B3E,\n 0x6B53,\n 0x6C57,\n 0x6F22,\n 0x6F97,\n 0x6F45,\n 0x74B0,\n 0x7518,\n 0x76E3,\n 0x770B,\n 0x7AFF,\n 0x7BA1,\n 0x7C21,\n 0x7DE9,\n 0x7F36,\n 0x7FF0,\n 0x809D,\n 0x8266,\n 0x839E,\n 0x89B3,\n 0x8ACC,\n 0x8CAB,\n 0x9084,\n 0x9451,\n 0x9593,\n 0x9591,\n 0x95A2,\n 0x9665,\n 0x97D3,\n 0x9928,\n 0x8218,\n 0x4E38,\n 0x542B,\n 0x5CB8,\n 0x5DCC,\n 0x73A9,\n 0x764C,\n 0x773C,\n 0x5CA9,\n 0x7FEB,\n 0x8D0B,\n 0x96C1,\n 0x9811,\n 0x9854,\n 0x9858,\n 0x4F01,\n 0x4F0E,\n 0x5371,\n 0x559C,\n 0x5668,\n 0x57FA,\n 0x5947,\n 0x5B09,\n 0x5BC4,\n 0x5C90,\n 0x5E0C,\n 0x5E7E,\n 0x5FCC,\n 0x63EE,\n];\n\nexport default array1;\n","import array1 from '@/common/util/convertibleUnicode/array1';\nimport array2 from '@/common/util/convertibleUnicode/array2';\nimport array3 from '@/common/util/convertibleUnicode/array3';\nimport array4 from '@/common/util/convertibleUnicode/array4';\nimport array5 from '@/common/util/convertibleUnicode/array5';\nimport array6 from '@/common/util/convertibleUnicode/array6';\n\nconst convertibleUnicode = array1.concat(array2, array3, array4, array5, array6);\n\nconst checkConvertibleToShiftJIS = (s: string): boolean => {\n for (let i = 0; i < s.length; i += 1) {\n if (convertibleUnicode.indexOf(s.charCodeAt(i)) === -1) {\n return false;\n }\n }\n return true;\n};\n\nexport default checkConvertibleToShiftJIS;\n","const array2 = [\n 0x673A,\n 0x65D7,\n 0x65E2,\n 0x671F,\n 0x68CB,\n 0x68C4,\n 0x6A5F,\n 0x5E30,\n 0x6BC5,\n 0x6C17,\n 0x6C7D,\n 0x757F,\n 0x7948,\n 0x5B63,\n 0x7A00,\n 0x7D00,\n 0x5FBD,\n 0x898F,\n 0x8A18,\n 0x8CB4,\n 0x8D77,\n 0x8ECC,\n 0x8F1D,\n 0x98E2,\n 0x9A0E,\n 0x9B3C,\n 0x4E80,\n 0x507D,\n 0x5100,\n 0x5993,\n 0x5B9C,\n 0x622F,\n 0x6280,\n 0x64EC,\n 0x6B3A,\n 0x72A0,\n 0x7591,\n 0x7947,\n 0x7FA9,\n 0x87FB,\n 0x8ABC,\n 0x8B70,\n 0x63AC,\n 0x83CA,\n 0x97A0,\n 0x5409,\n 0x5403,\n 0x55AB,\n 0x6854,\n 0x6A58,\n 0x8A70,\n 0x7827,\n 0x6775,\n 0x9ECD,\n 0x5374,\n 0x5BA2,\n 0x811A,\n 0x8650,\n 0x9006,\n 0x4E18,\n 0x4E45,\n 0x4EC7,\n 0x4F11,\n 0x53CA,\n 0x5438,\n 0x5BAE,\n 0x5F13,\n 0x6025,\n 0x6551,\n 0x673D,\n 0x6C42,\n 0x6C72,\n 0x6CE3,\n 0x7078,\n 0x7403,\n 0x7A76,\n 0x7AAE,\n 0x7B08,\n 0x7D1A,\n 0x7CFE,\n 0x7D66,\n 0x65E7,\n 0x725B,\n 0x53BB,\n 0x5C45,\n 0x5DE8,\n 0x62D2,\n 0x62E0,\n 0x6319,\n 0x6E20,\n 0x865A,\n 0x8A31,\n 0x8DDD,\n 0x92F8,\n 0x6F01,\n 0x79A6,\n 0x9B5A,\n 0x4EA8,\n 0x4EAB,\n 0x4EAC,\n 0x4F9B,\n 0x4FA0,\n 0x50D1,\n 0x5147,\n 0x7AF6,\n 0x5171,\n 0x51F6,\n 0x5354,\n 0x5321,\n 0x537F,\n 0x53EB,\n 0x55AC,\n 0x5883,\n 0x5CE1,\n 0x5F37,\n 0x5F4A,\n 0x602F,\n 0x6050,\n 0x606D,\n 0x631F,\n 0x6559,\n 0x6A4B,\n 0x6CC1,\n 0x72C2,\n 0x72ED,\n 0x77EF,\n 0x80F8,\n 0x8105,\n 0x8208,\n 0x854E,\n 0x90F7,\n 0x93E1,\n 0x97FF,\n 0x9957,\n 0x9A5A,\n 0x4EF0,\n 0x51DD,\n 0x5C2D,\n 0x6681,\n 0x696D,\n 0x5C40,\n 0x66F2,\n 0x6975,\n 0x7389,\n 0x6850,\n 0x7C81,\n 0x50C5,\n 0x52E4,\n 0x5747,\n 0x5DFE,\n 0x9326,\n 0x65A4,\n 0x6B23,\n 0x6B3D,\n 0x7434,\n 0x7981,\n 0x79BD,\n 0x7B4B,\n 0x7DCA,\n 0x82B9,\n 0x83CC,\n 0x887F,\n 0x895F,\n 0x8B39,\n 0x8FD1,\n 0x91D1,\n 0x541F,\n 0x9280,\n 0x4E5D,\n 0x5036,\n 0x53E5,\n 0x533A,\n 0x72D7,\n 0x7396,\n 0x77E9,\n 0x82E6,\n 0x8EAF,\n 0x99C6,\n 0x99C8,\n 0x99D2,\n 0x5177,\n 0x611A,\n 0x865E,\n 0x55B0,\n 0x7A7A,\n 0x5076,\n 0x5BD3,\n 0x9047,\n 0x9685,\n 0x4E32,\n 0x6ADB,\n 0x91E7,\n 0x5C51,\n 0x5C48,\n 0x6398,\n 0x7A9F,\n 0x6C93,\n 0x9774,\n 0x8F61,\n 0x7AAA,\n 0x718A,\n 0x9688,\n 0x7C82,\n 0x6817,\n 0x7E70,\n 0x6851,\n 0x936C,\n 0x52F2,\n 0x541B,\n 0x85AB,\n 0x8A13,\n 0x7FA4,\n 0x8ECD,\n 0x90E1,\n 0x5366,\n 0x8888,\n 0x7941,\n 0x4FC2,\n 0x50BE,\n 0x5211,\n 0x5144,\n 0x5553,\n 0x572D,\n 0x73EA,\n 0x578B,\n 0x5951,\n 0x5F62,\n 0x5F84,\n 0x6075,\n 0x6176,\n 0x6167,\n 0x61A9,\n 0x63B2,\n 0x643A,\n 0x656C,\n 0x666F,\n 0x6842,\n 0x6E13,\n 0x7566,\n 0x7A3D,\n 0x7CFB,\n 0x7D4C,\n 0x7D99,\n 0x7E4B,\n 0x7F6B,\n 0x830E,\n 0x834A,\n 0x86CD,\n 0x8A08,\n 0x8A63,\n 0x8B66,\n 0x8EFD,\n 0x981A,\n 0x9D8F,\n 0x82B8,\n 0x8FCE,\n 0x9BE8,\n 0x5287,\n 0x621F,\n 0x6483,\n 0x6FC0,\n 0x9699,\n 0x6841,\n 0x5091,\n 0x6B20,\n 0x6C7A,\n 0x6F54,\n 0x7A74,\n 0x7D50,\n 0x8840,\n 0x8A23,\n 0x6708,\n 0x4EF6,\n 0x5039,\n 0x5026,\n 0x5065,\n 0x517C,\n 0x5238,\n 0x5263,\n 0x55A7,\n 0x570F,\n 0x5805,\n 0x5ACC,\n 0x5EFA,\n 0x61B2,\n 0x61F8,\n 0x62F3,\n 0x6372,\n 0x691C,\n 0x6A29,\n 0x727D,\n 0x72AC,\n 0x732E,\n 0x7814,\n 0x786F,\n 0x7D79,\n 0x770C,\n 0x80A9,\n 0x898B,\n 0x8B19,\n 0x8CE2,\n 0x8ED2,\n 0x9063,\n 0x9375,\n 0x967A,\n 0x9855,\n 0x9A13,\n 0x9E78,\n 0x5143,\n 0x539F,\n 0x53B3,\n 0x5E7B,\n 0x5F26,\n 0x6E1B,\n 0x6E90,\n 0x7384,\n 0x73FE,\n 0x7D43,\n 0x8237,\n 0x8A00,\n 0x8AFA,\n 0x9650,\n 0x4E4E,\n 0x500B,\n 0x53E4,\n 0x547C,\n 0x56FA,\n 0x59D1,\n 0x5B64,\n 0x5DF1,\n 0x5EAB,\n 0x5F27,\n 0x6238,\n 0x6545,\n 0x67AF,\n 0x6E56,\n 0x72D0,\n 0x7CCA,\n 0x88B4,\n 0x80A1,\n 0x80E1,\n 0x83F0,\n 0x864E,\n 0x8A87,\n 0x8DE8,\n 0x9237,\n 0x96C7,\n 0x9867,\n 0x9F13,\n 0x4E94,\n 0x4E92,\n 0x4F0D,\n 0x5348,\n 0x5449,\n 0x543E,\n 0x5A2F,\n 0x5F8C,\n 0x5FA1,\n 0x609F,\n 0x68A7,\n 0x6A8E,\n 0x745A,\n 0x7881,\n 0x8A9E,\n 0x8AA4,\n 0x8B77,\n 0x9190,\n 0x4E5E,\n 0x9BC9,\n 0x4EA4,\n 0x4F7C,\n 0x4FAF,\n 0x5019,\n 0x5016,\n 0x5149,\n 0x516C,\n 0x529F,\n 0x52B9,\n 0x52FE,\n 0x539A,\n 0x53E3,\n 0x5411,\n 0x540E,\n 0x5589,\n 0x5751,\n 0x57A2,\n 0x597D,\n 0x5B54,\n 0x5B5D,\n 0x5B8F,\n 0x5DE5,\n 0x5DE7,\n 0x5DF7,\n 0x5E78,\n 0x5E83,\n 0x5E9A,\n 0x5EB7,\n 0x5F18,\n 0x6052,\n 0x614C,\n 0x6297,\n 0x62D8,\n 0x63A7,\n 0x653B,\n 0x6602,\n 0x6643,\n 0x66F4,\n 0x676D,\n 0x6821,\n 0x6897,\n 0x69CB,\n 0x6C5F,\n 0x6D2A,\n 0x6D69,\n 0x6E2F,\n 0x6E9D,\n 0x7532,\n 0x7687,\n 0x786C,\n 0x7A3F,\n 0x7CE0,\n 0x7D05,\n 0x7D18,\n 0x7D5E,\n 0x7DB1,\n 0x8015,\n 0x8003,\n 0x80AF,\n 0x80B1,\n 0x8154,\n 0x818F,\n 0x822A,\n 0x8352,\n 0x884C,\n 0x8861,\n 0x8B1B,\n 0x8CA2,\n 0x8CFC,\n 0x90CA,\n 0x9175,\n 0x9271,\n 0x783F,\n 0x92FC,\n 0x95A4,\n 0x964D,\n 0x9805,\n 0x9999,\n 0x9AD8,\n 0x9D3B,\n 0x525B,\n 0x52AB,\n 0x53F7,\n 0x5408,\n 0x58D5,\n 0x62F7,\n 0x6FE0,\n 0x8C6A,\n 0x8F5F,\n 0x9EB9,\n 0x514B,\n 0x523B,\n 0x544A,\n 0x56FD,\n 0x7A40,\n 0x9177,\n 0x9D60,\n 0x9ED2,\n 0x7344,\n 0x6F09,\n 0x8170,\n 0x7511,\n 0x5FFD,\n 0x60DA,\n 0x9AA8,\n 0x72DB,\n 0x8FBC,\n 0x6B64,\n 0x9803,\n 0x4ECA,\n 0x56F0,\n 0x5764,\n 0x58BE,\n 0x5A5A,\n 0x6068,\n 0x61C7,\n 0x660F,\n 0x6606,\n 0x6839,\n 0x68B1,\n 0x6DF7,\n 0x75D5,\n 0x7D3A,\n 0x826E,\n 0x9B42,\n 0x4E9B,\n 0x4F50,\n 0x53C9,\n 0x5506,\n 0x5D6F,\n 0x5DE6,\n 0x5DEE,\n 0x67FB,\n 0x6C99,\n 0x7473,\n 0x7802,\n 0x8A50,\n 0x9396,\n 0x88DF,\n 0x5750,\n 0x5EA7,\n 0x632B,\n 0x50B5,\n 0x50AC,\n 0x518D,\n 0x6700,\n 0x54C9,\n 0x585E,\n 0x59BB,\n 0x5BB0,\n 0x5F69,\n 0x624D,\n 0x63A1,\n 0x683D,\n 0x6B73,\n 0x6E08,\n 0x707D,\n 0x91C7,\n 0x7280,\n 0x7815,\n 0x7826,\n 0x796D,\n 0x658E,\n 0x7D30,\n 0x83DC,\n 0x88C1,\n 0x8F09,\n 0x969B,\n 0x5264,\n 0x5728,\n 0x6750,\n 0x7F6A,\n 0x8CA1,\n 0x51B4,\n 0x5742,\n 0x962A,\n 0x583A,\n 0x698A,\n 0x80B4,\n 0x54B2,\n 0x5D0E,\n 0x57FC,\n 0x7895,\n 0x9DFA,\n 0x4F5C,\n 0x524A,\n 0x548B,\n 0x643E,\n 0x6628,\n 0x6714,\n 0x67F5,\n 0x7A84,\n 0x7B56,\n 0x7D22,\n 0x932F,\n 0x685C,\n 0x9BAD,\n 0x7B39,\n 0x5319,\n 0x518A,\n 0x5237,\n 0x5BDF,\n 0x62F6,\n 0x64AE,\n 0x64E6,\n 0x672D,\n 0x6BBA,\n 0x85A9,\n 0x96D1,\n 0x7690,\n 0x9BD6,\n 0x634C,\n 0x9306,\n 0x9BAB,\n 0x76BF,\n 0x6652,\n 0x4E09,\n 0x5098,\n 0x53C2,\n 0x5C71,\n 0x60E8,\n 0x6492,\n 0x6563,\n 0x685F,\n 0x71E6,\n 0x73CA,\n 0x7523,\n 0x7B97,\n 0x7E82,\n 0x8695,\n 0x8B83,\n 0x8CDB,\n 0x9178,\n 0x9910,\n 0x65AC,\n 0x66AB,\n 0x6B8B,\n 0x4ED5,\n 0x4ED4,\n 0x4F3A,\n 0x4F7F,\n 0x523A,\n 0x53F8,\n 0x53F2,\n 0x55E3,\n 0x56DB,\n 0x58EB,\n 0x59CB,\n 0x59C9,\n 0x59FF,\n 0x5B50,\n 0x5C4D,\n 0x5E02,\n 0x5E2B,\n 0x5FD7,\n 0x601D,\n 0x6307,\n 0x652F,\n 0x5B5C,\n 0x65AF,\n 0x65BD,\n 0x65E8,\n 0x679D,\n 0x6B62,\n 0x6B7B,\n 0x6C0F,\n 0x7345,\n 0x7949,\n 0x79C1,\n 0x7CF8,\n 0x7D19,\n 0x7D2B,\n 0x80A2,\n 0x8102,\n 0x81F3,\n 0x8996,\n 0x8A5E,\n 0x8A69,\n 0x8A66,\n 0x8A8C,\n 0x8AEE,\n 0x8CC7,\n 0x8CDC,\n 0x96CC,\n 0x98FC,\n 0x6B6F,\n 0x4E8B,\n 0x4F3C,\n 0x4F8D,\n 0x5150,\n 0x5B57,\n 0x5BFA,\n 0x6148,\n 0x6301,\n 0x6642,\n 0x6B21,\n 0x6ECB,\n 0x6CBB,\n 0x723E,\n 0x74BD,\n 0x75D4,\n 0x78C1,\n 0x793A,\n 0x800C,\n 0x8033,\n 0x81EA,\n 0x8494,\n 0x8F9E,\n 0x6C50,\n 0x9E7F,\n 0x5F0F,\n 0x8B58,\n 0x9D2B,\n 0x7AFA,\n 0x8EF8,\n 0x5B8D,\n 0x96EB,\n 0x4E03,\n 0x53F1,\n 0x57F7,\n 0x5931,\n 0x5AC9,\n 0x5BA4,\n 0x6089,\n 0x6E7F,\n 0x6F06,\n 0x75BE,\n 0x8CEA,\n 0x5B9F,\n 0x8500,\n 0x7BE0,\n 0x5072,\n 0x67F4,\n 0x829D,\n 0x5C61,\n 0x854A,\n 0x7E1E,\n 0x820E,\n 0x5199,\n 0x5C04,\n 0x6368,\n 0x8D66,\n 0x659C,\n 0x716E,\n 0x793E,\n 0x7D17,\n 0x8005,\n 0x8B1D,\n 0x8ECA,\n 0x906E,\n 0x86C7,\n 0x90AA,\n 0x501F,\n 0x52FA,\n 0x5C3A,\n 0x6753,\n 0x707C,\n 0x7235,\n 0x914C,\n 0x91C8,\n 0x932B,\n 0x82E5,\n 0x5BC2,\n 0x5F31,\n 0x60F9,\n 0x4E3B,\n 0x53D6,\n 0x5B88,\n 0x624B,\n 0x6731,\n 0x6B8A,\n 0x72E9,\n 0x73E0,\n 0x7A2E,\n 0x816B,\n 0x8DA3,\n 0x9152,\n 0x9996,\n 0x5112,\n 0x53D7,\n 0x546A,\n 0x5BFF,\n 0x6388,\n 0x6A39,\n 0x7DAC,\n 0x9700,\n 0x56DA,\n 0x53CE,\n 0x5468,\n 0x5B97,\n 0x5C31,\n 0x5DDE,\n 0x4FEE,\n 0x6101,\n 0x62FE,\n 0x6D32,\n 0x79C0,\n 0x79CB,\n 0x7D42,\n 0x7E4D,\n 0x7FD2,\n 0x81ED,\n 0x821F,\n 0x8490,\n 0x8846,\n 0x8972,\n 0x8B90,\n 0x8E74,\n 0x8F2F,\n 0x9031,\n 0x914B,\n 0x916C,\n 0x96C6,\n 0x919C,\n 0x4EC0,\n 0x4F4F,\n 0x5145,\n 0x5341,\n 0x5F93,\n 0x620E,\n 0x67D4,\n 0x6C41,\n 0x6E0B,\n 0x7363,\n 0x7E26,\n 0x91CD,\n 0x9283,\n 0x53D4,\n 0x5919,\n 0x5BBF,\n 0x6DD1,\n 0x795D,\n 0x7E2E,\n 0x7C9B,\n 0x587E,\n 0x719F,\n 0x51FA,\n 0x8853,\n 0x8FF0,\n 0x4FCA,\n 0x5CFB,\n 0x6625,\n 0x77AC,\n 0x7AE3,\n 0x821C,\n 0x99FF,\n 0x51C6,\n 0x5FAA,\n 0x65EC,\n 0x696F,\n 0x6B89,\n 0x6DF3,\n 0x6E96,\n 0x6F64,\n 0x76FE,\n 0x7D14,\n 0x5DE1,\n 0x9075,\n 0x9187,\n 0x9806,\n 0x51E6,\n 0x521D,\n 0x6240,\n 0x6691,\n 0x66D9,\n 0x6E1A,\n 0x5EB6,\n 0x7DD2,\n 0x7F72,\n 0x66F8,\n 0x85AF,\n 0x85F7,\n 0x8AF8,\n 0x52A9,\n 0x53D9,\n 0x5973,\n 0x5E8F,\n 0x5F90,\n 0x6055,\n 0x92E4,\n 0x9664,\n 0x50B7,\n 0x511F,\n 0x52DD,\n 0x5320,\n 0x5347,\n 0x53EC,\n 0x54E8,\n 0x5546,\n 0x5531,\n 0x5617,\n 0x5968,\n 0x59BE,\n 0x5A3C,\n 0x5BB5,\n 0x5C06,\n 0x5C0F,\n 0x5C11,\n 0x5C1A,\n 0x5E84,\n 0x5E8A,\n 0x5EE0,\n 0x5F70,\n 0x627F,\n 0x6284,\n 0x62DB,\n 0x638C,\n 0x6377,\n 0x6607,\n 0x660C,\n 0x662D,\n 0x6676,\n 0x677E,\n 0x68A2,\n 0x6A1F,\n 0x6A35,\n 0x6CBC,\n 0x6D88,\n 0x6E09,\n 0x6E58,\n 0x713C,\n 0x7126,\n 0x7167,\n 0x75C7,\n 0x7701,\n 0x785D,\n 0x7901,\n 0x7965,\n 0x79F0,\n 0x7AE0,\n 0x7B11,\n 0x7CA7,\n 0x7D39,\n 0x8096,\n 0x83D6,\n 0x848B,\n 0x8549,\n 0x885D,\n 0x88F3,\n 0x8A1F,\n 0x8A3C,\n 0x8A54,\n 0x8A73,\n 0x8C61,\n 0x8CDE,\n 0x91A4,\n 0x9266,\n 0x937E,\n 0x9418,\n 0x969C,\n 0x9798,\n 0x4E0A,\n 0x4E08,\n 0x4E1E,\n 0x4E57,\n 0x5197,\n 0x5270,\n 0x57CE,\n 0x5834,\n 0x58CC,\n 0x5B22,\n 0x5E38,\n 0x60C5,\n 0x64FE,\n 0x6761,\n 0x6756,\n 0x6D44,\n 0x72B6,\n 0x7573,\n 0x7A63,\n 0x84B8,\n 0x8B72,\n 0x91B8,\n 0x9320,\n 0x5631,\n 0x57F4,\n 0x98FE,\n 0x62ED,\n 0x690D,\n 0x6B96,\n 0x71ED,\n 0x7E54,\n 0x8077,\n 0x8272,\n 0x89E6,\n 0x98DF,\n 0x8755,\n 0x8FB1,\n 0x5C3B,\n 0x4F38,\n 0x4FE1,\n 0x4FB5,\n 0x5507,\n 0x5A20,\n 0x5BDD,\n 0x5BE9,\n 0x5FC3,\n 0x614E,\n 0x632F,\n 0x65B0,\n 0x664B,\n 0x68EE,\n 0x699B,\n 0x6D78,\n 0x6DF1,\n 0x7533,\n 0x75B9,\n 0x771F,\n 0x795E,\n 0x79E6,\n 0x7D33,\n 0x81E3,\n 0x82AF,\n 0x85AA,\n 0x89AA,\n 0x8A3A,\n 0x8EAB,\n 0x8F9B,\n 0x9032,\n 0x91DD,\n 0x9707,\n 0x4EBA,\n 0x4EC1,\n 0x5203,\n 0x5875,\n 0x58EC,\n 0x5C0B,\n 0x751A,\n 0x5C3D,\n 0x814E,\n 0x8A0A,\n 0x8FC5,\n 0x9663,\n 0x976D,\n 0x7B25,\n 0x8ACF,\n 0x9808,\n 0x9162,\n 0x56F3,\n 0x53A8,\n 0x9017,\n 0x5439,\n 0x5782,\n 0x5E25,\n 0x63A8,\n 0x6C34,\n 0x708A,\n 0x7761,\n 0x7C8B,\n 0x7FE0,\n 0x8870,\n 0x9042,\n 0x9154,\n 0x9310,\n 0x9318,\n 0x968F,\n 0x745E,\n 0x9AC4,\n 0x5D07,\n 0x5D69,\n 0x6570,\n 0x67A2,\n 0x8DA8,\n 0x96DB,\n 0x636E,\n 0x6749,\n 0x6919,\n 0x83C5,\n 0x9817,\n 0x96C0,\n 0x88FE,\n 0x6F84,\n 0x647A,\n 0x5BF8,\n 0x4E16,\n 0x702C,\n 0x755D,\n 0x662F,\n 0x51C4,\n 0x5236,\n 0x52E2,\n 0x59D3,\n 0x5F81,\n 0x6027,\n 0x6210,\n 0x653F,\n 0x6574,\n 0x661F,\n 0x6674,\n 0x68F2,\n 0x6816,\n 0x6B63,\n 0x6E05,\n 0x7272,\n 0x751F,\n 0x76DB,\n 0x7CBE,\n 0x8056,\n 0x58F0,\n 0x88FD,\n 0x897F,\n 0x8AA0,\n 0x8A93,\n 0x8ACB,\n 0x901D,\n 0x9192,\n 0x9752,\n 0x9759,\n 0x6589,\n 0x7A0E,\n 0x8106,\n 0x96BB,\n 0x5E2D,\n 0x60DC,\n 0x621A,\n 0x65A5,\n 0x6614,\n 0x6790,\n 0x77F3,\n 0x7A4D,\n 0x7C4D,\n 0x7E3E,\n 0x810A,\n 0x8CAC,\n 0x8D64,\n 0x8DE1,\n 0x8E5F,\n 0x78A9,\n 0x5207,\n 0x62D9,\n 0x63A5,\n 0x6442,\n 0x6298,\n 0x8A2D,\n 0x7A83,\n 0x7BC0,\n 0x8AAC,\n 0x96EA,\n 0x7D76,\n 0x820C,\n 0x8749,\n 0x4ED9,\n 0x5148,\n 0x5343,\n 0x5360,\n 0x5BA3,\n 0x5C02,\n 0x5C16,\n 0x5DDD,\n 0x6226,\n 0x6247,\n 0x64B0,\n 0x6813,\n 0x6834,\n 0x6CC9,\n 0x6D45,\n 0x6D17,\n 0x67D3,\n 0x6F5C,\n 0x714E,\n 0x717D,\n 0x65CB,\n 0x7A7F,\n 0x7BAD,\n 0x7DDA,\n 0x7E4A,\n 0x7FA8,\n 0x817A,\n 0x821B,\n 0x8239,\n 0x85A6,\n 0x8A6E,\n 0x8CCE,\n 0x8DF5,\n 0x9078,\n 0x9077,\n 0x92AD,\n 0x9291,\n 0x9583,\n 0x9BAE,\n 0x524D,\n 0x5584,\n 0x6F38,\n 0x7136,\n 0x5168,\n 0x7985,\n 0x7E55,\n 0x81B3,\n 0x7CCE,\n 0x564C,\n 0x5851,\n 0x5CA8,\n 0x63AA,\n 0x66FE,\n 0x66FD,\n 0x695A,\n 0x72D9,\n 0x758F,\n 0x758E,\n 0x790E,\n 0x7956,\n 0x79DF,\n 0x7C97,\n 0x7D20,\n 0x7D44,\n 0x8607,\n 0x8A34,\n 0x963B,\n 0x9061,\n 0x9F20,\n 0x50E7,\n 0x5275,\n 0x53CC,\n 0x53E2,\n 0x5009,\n 0x55AA,\n 0x58EE,\n 0x594F,\n 0x723D,\n 0x5B8B,\n 0x5C64,\n 0x531D,\n 0x60E3,\n 0x60F3,\n 0x635C,\n 0x6383,\n 0x633F,\n 0x63BB,\n 0x64CD,\n 0x65E9,\n 0x66F9,\n 0x5DE3,\n 0x69CD,\n 0x69FD,\n 0x6F15,\n 0x71E5,\n 0x4E89,\n 0x75E9,\n 0x76F8,\n 0x7A93,\n 0x7CDF,\n 0x7DCF,\n 0x7D9C,\n 0x8061,\n 0x8349,\n 0x8358,\n 0x846C,\n 0x84BC,\n 0x85FB,\n 0x88C5,\n 0x8D70,\n 0x9001,\n 0x906D,\n 0x9397,\n 0x971C,\n 0x9A12,\n 0x50CF,\n 0x5897,\n 0x618E,\n 0x81D3,\n 0x8535,\n 0x8D08,\n 0x9020,\n 0x4FC3,\n 0x5074,\n 0x5247,\n 0x5373,\n 0x606F,\n 0x6349,\n 0x675F,\n 0x6E2C,\n 0x8DB3,\n 0x901F,\n 0x4FD7,\n 0x5C5E,\n 0x8CCA,\n 0x65CF,\n 0x7D9A,\n 0x5352,\n 0x8896,\n 0x5176,\n 0x63C3,\n 0x5B58,\n 0x5B6B,\n 0x5C0A,\n 0x640D,\n 0x6751,\n 0x905C,\n 0x4ED6,\n 0x591A,\n 0x592A,\n 0x6C70,\n 0x8A51,\n 0x553E,\n 0x5815,\n 0x59A5,\n 0x60F0,\n 0x6253,\n 0x67C1,\n 0x8235,\n 0x6955,\n 0x9640,\n 0x99C4,\n 0x9A28,\n 0x4F53,\n 0x5806,\n 0x5BFE,\n 0x8010,\n 0x5CB1,\n 0x5E2F,\n 0x5F85,\n 0x6020,\n 0x614B,\n 0x6234,\n 0x66FF,\n 0x6CF0,\n 0x6EDE,\n 0x80CE,\n 0x817F,\n 0x82D4,\n 0x888B,\n 0x8CB8,\n 0x9000,\n 0x902E,\n 0x968A,\n 0x9EDB,\n 0x9BDB,\n 0x4EE3,\n 0x53F0,\n 0x5927,\n 0x7B2C,\n 0x918D,\n 0x984C,\n 0x9DF9,\n 0x6EDD,\n 0x7027,\n 0x5353,\n 0x5544,\n 0x5B85,\n 0x6258,\n 0x629E,\n 0x62D3,\n 0x6CA2,\n 0x6FEF,\n 0x7422,\n 0x8A17,\n 0x9438,\n 0x6FC1,\n 0x8AFE,\n 0x8338,\n 0x51E7,\n 0x86F8,\n 0x53EA,\n 0x53E9,\n 0x4F46,\n 0x9054,\n 0x8FB0,\n 0x596A,\n 0x8131,\n 0x5DFD,\n 0x7AEA,\n 0x8FBF,\n 0x68DA,\n 0x8C37,\n 0x72F8,\n 0x9C48,\n 0x6A3D,\n 0x8AB0,\n 0x4E39,\n 0x5358,\n 0x5606,\n 0x5766,\n 0x62C5,\n 0x63A2,\n 0x65E6,\n 0x6B4E,\n 0x6DE1,\n 0x6E5B,\n 0x70AD,\n 0x77ED,\n 0x7AEF,\n 0x7BAA,\n 0x7DBB,\n 0x803D,\n 0x80C6,\n 0x86CB,\n 0x8A95,\n 0x935B,\n 0x56E3,\n 0x58C7,\n 0x5F3E,\n 0x65AD,\n 0x6696,\n 0x6A80,\n 0x6BB5,\n 0x7537,\n 0x8AC7,\n 0x5024,\n 0x77E5,\n 0x5730,\n 0x5F1B,\n 0x6065,\n 0x667A,\n 0x6C60,\n 0x75F4,\n 0x7A1A,\n 0x7F6E,\n 0x81F4,\n 0x8718,\n 0x9045,\n 0x99B3,\n 0x7BC9,\n 0x755C,\n 0x7AF9,\n 0x7B51,\n 0x84C4,\n 0x9010,\n 0x79E9,\n 0x7A92,\n 0x8336,\n 0x5AE1,\n 0x7740,\n 0x4E2D,\n 0x4EF2,\n 0x5B99,\n 0x5FE0,\n 0x62BD,\n 0x663C,\n 0x67F1,\n 0x6CE8,\n 0x866B,\n 0x8877,\n 0x8A3B,\n 0x914E,\n 0x92F3,\n 0x99D0,\n 0x6A17,\n 0x7026,\n 0x732A,\n 0x82E7,\n 0x8457,\n 0x8CAF,\n 0x4E01,\n 0x5146,\n 0x51CB,\n 0x558B,\n 0x5BF5,\n 0x5E16,\n 0x5E33,\n 0x5E81,\n 0x5F14,\n 0x5F35,\n 0x5F6B,\n 0x5FB4,\n 0x61F2,\n 0x6311,\n 0x66A2,\n 0x671D,\n 0x6F6E,\n 0x7252,\n 0x753A,\n 0x773A,\n 0x8074,\n 0x8139,\n 0x8178,\n 0x8776,\n 0x8ABF,\n 0x8ADC,\n 0x8D85,\n 0x8DF3,\n 0x929A,\n 0x9577,\n 0x9802,\n 0x9CE5,\n 0x52C5,\n 0x6357,\n 0x76F4,\n 0x6715,\n 0x6C88,\n 0x73CD,\n 0x8CC3,\n 0x93AE,\n 0x9673,\n 0x6D25,\n 0x589C,\n 0x690E,\n 0x69CC,\n 0x8FFD,\n 0x939A,\n 0x75DB,\n 0x901A,\n 0x585A,\n 0x6802,\n 0x63B4,\n 0x69FB,\n 0x4F43,\n 0x6F2C,\n 0x67D8,\n 0x8FBB,\n 0x8526,\n 0x7DB4,\n 0x9354,\n 0x693F,\n 0x6F70,\n 0x576A,\n 0x58F7,\n 0x5B2C,\n 0x7D2C,\n 0x722A,\n 0x540A,\n 0x91E3,\n 0x9DB4,\n 0x4EAD,\n 0x4F4E,\n 0x505C,\n 0x5075,\n 0x5243,\n 0x8C9E,\n 0x5448,\n 0x5824,\n 0x5B9A,\n 0x5E1D,\n 0x5E95,\n 0x5EAD,\n 0x5EF7,\n 0x5F1F,\n 0x608C,\n 0x62B5,\n 0x633A,\n 0x63D0,\n 0x68AF,\n 0x6C40,\n 0x7887,\n 0x798E,\n 0x7A0B,\n 0x7DE0,\n 0x8247,\n 0x8A02,\n 0x8AE6,\n 0x8E44,\n 0x9013,\n 0x90B8,\n 0x912D,\n 0x91D8,\n 0x9F0E,\n 0x6CE5,\n 0x6458,\n 0x64E2,\n 0x6575,\n 0x6EF4,\n 0x7684,\n 0x7B1B,\n 0x9069,\n 0x93D1,\n 0x6EBA,\n 0x54F2,\n 0x5FB9,\n 0x64A4,\n 0x8F4D,\n 0x8FED,\n 0x9244,\n 0x5178,\n 0x586B,\n 0x5929,\n 0x5C55,\n 0x5E97,\n 0x6DFB,\n 0x7E8F,\n 0x751C,\n 0x8CBC,\n 0x8EE2,\n 0x985B,\n 0x70B9,\n 0x4F1D,\n 0x6BBF,\n 0x6FB1,\n 0x7530,\n 0x96FB,\n 0x514E,\n 0x5410,\n 0x5835,\n 0x5857,\n 0x59AC,\n 0x5C60,\n 0x5F92,\n 0x6597,\n 0x675C,\n 0x6E21,\n 0x767B,\n 0x83DF,\n 0x8CED,\n 0x9014,\n 0x90FD,\n 0x934D,\n 0x7825,\n 0x783A,\n 0x52AA,\n 0x5EA6,\n 0x571F,\n 0x5974,\n 0x6012,\n 0x5012,\n 0x515A,\n 0x51AC,\n 0x51CD,\n 0x5200,\n 0x5510,\n 0x5854,\n 0x5858,\n 0x5957,\n 0x5B95,\n 0x5CF6,\n 0x5D8B,\n 0x60BC,\n 0x6295,\n 0x642D,\n 0x6771,\n 0x6843,\n 0x68BC,\n 0x68DF,\n 0x76D7,\n 0x6DD8,\n 0x6E6F,\n 0x6D9B,\n 0x706F,\n 0x71C8,\n 0x5F53,\n 0x75D8,\n 0x7977,\n 0x7B49,\n 0x7B54,\n 0x7B52,\n 0x7CD6,\n 0x7D71,\n 0x5230,\n 0x8463,\n 0x8569,\n 0x85E4,\n 0x8A0E,\n 0x8B04,\n 0x8C46,\n 0x8E0F,\n 0x9003,\n 0x900F,\n 0x9419,\n 0x9676,\n 0x982D,\n 0x9A30,\n 0x95D8,\n 0x50CD,\n 0x52D5,\n 0x540C,\n 0x5802,\n 0x5C0E,\n 0x61A7,\n 0x649E,\n 0x6D1E,\n 0x77B3,\n 0x7AE5,\n 0x80F4,\n 0x8404,\n 0x9053,\n 0x9285,\n 0x5CE0,\n 0x9D07,\n 0x533F,\n 0x5F97,\n 0x5FB3,\n 0x6D9C,\n 0x7279,\n 0x7763,\n 0x79BF,\n 0x7BE4,\n 0x6BD2,\n 0x72EC,\n 0x8AAD,\n 0x6803,\n 0x6A61,\n 0x51F8,\n 0x7A81,\n 0x6934,\n 0x5C4A,\n 0x9CF6,\n 0x82EB,\n 0x5BC5,\n 0x9149,\n 0x701E,\n 0x5678,\n 0x5C6F,\n 0x60C7,\n 0x6566,\n 0x6C8C,\n 0x8C5A,\n 0x9041,\n 0x9813,\n 0x5451,\n 0x66C7,\n 0x920D,\n 0x5948,\n 0x90A3,\n 0x5185,\n 0x4E4D,\n 0x51EA,\n 0x8599,\n 0x8B0E,\n 0x7058,\n 0x637A,\n 0x934B,\n 0x6962,\n 0x99B4,\n 0x7E04,\n 0x7577,\n 0x5357,\n 0x6960,\n 0x8EDF,\n 0x96E3,\n 0x6C5D,\n 0x4E8C,\n 0x5C3C,\n 0x5F10,\n 0x8FE9,\n 0x5302,\n 0x8CD1,\n 0x8089,\n 0x8679,\n 0x5EFF,\n 0x65E5,\n 0x4E73,\n 0x5165,\n 0x5982,\n 0x5C3F,\n 0x97EE,\n 0x4EFB,\n 0x598A,\n 0x5FCD,\n 0x8A8D,\n 0x6FE1,\n 0x79B0,\n 0x7962,\n 0x5BE7,\n 0x8471,\n 0x732B,\n 0x71B1,\n 0x5E74,\n 0x5FF5,\n 0x637B,\n 0x649A,\n 0x71C3,\n 0x7C98,\n 0x4E43,\n 0x5EFC,\n 0x4E4B,\n 0x57DC,\n 0x56A2,\n 0x60A9,\n 0x6FC3,\n 0x7D0D,\n 0x80FD,\n 0x8133,\n 0x81BF,\n 0x8FB2,\n 0x8997,\n 0x86A4,\n 0x5DF4,\n 0x628A,\n 0x64AD,\n 0x8987,\n 0x6777,\n 0x6CE2,\n 0x6D3E,\n 0x7436,\n 0x7834,\n 0x5A46,\n 0x7F75,\n 0x82AD,\n 0x99AC,\n 0x4FF3,\n 0x5EC3,\n 0x62DD,\n 0x6392,\n 0x6557,\n 0x676F,\n 0x76C3,\n 0x724C,\n 0x80CC,\n 0x80BA,\n 0x8F29,\n 0x914D,\n 0x500D,\n 0x57F9,\n 0x5A92,\n 0x6885,\n 0x6973,\n 0x7164,\n 0x72FD,\n 0x8CB7,\n 0x58F2,\n 0x8CE0,\n 0x966A,\n 0x9019,\n 0x877F,\n 0x79E4,\n 0x77E7,\n 0x8429,\n 0x4F2F,\n 0x5265,\n 0x535A,\n 0x62CD,\n 0x67CF,\n 0x6CCA,\n 0x767D,\n 0x7B94,\n 0x7C95,\n 0x8236,\n 0x8584,\n 0x8FEB,\n 0x66DD,\n 0x6F20,\n 0x7206,\n 0x7E1B,\n 0x83AB,\n 0x99C1,\n 0x9EA6,\n 0x51FD,\n 0x7BB1,\n 0x7872,\n 0x7BB8,\n 0x8087,\n 0x7B48,\n 0x6AE8,\n 0x5E61,\n 0x808C,\n 0x7551,\n 0x7560,\n 0x516B,\n 0x9262,\n 0x6E8C,\n 0x767A,\n 0x9197,\n 0x9AEA,\n 0x4F10,\n 0x7F70,\n 0x629C,\n 0x7B4F,\n 0x95A5,\n 0x9CE9,\n 0x567A,\n 0x5859,\n 0x86E4,\n 0x96BC,\n 0x4F34,\n 0x5224,\n 0x534A,\n 0x53CD,\n 0x53DB,\n 0x5E06,\n 0x642C,\n 0x6591,\n 0x677F,\n 0x6C3E,\n 0x6C4E,\n 0x7248,\n 0x72AF,\n 0x73ED,\n 0x7554,\n 0x7E41,\n 0x822C,\n 0x85E9,\n 0x8CA9,\n 0x7BC4,\n 0x91C6,\n 0x7169,\n 0x9812,\n 0x98EF,\n 0x633D,\n 0x6669,\n 0x756A,\n 0x76E4,\n 0x78D0,\n 0x8543,\n 0x86EE,\n 0x532A,\n 0x5351,\n 0x5426,\n 0x5983,\n 0x5E87,\n 0x5F7C,\n 0x60B2,\n 0x6249,\n 0x6279,\n 0x62AB,\n 0x6590,\n 0x6BD4,\n 0x6CCC,\n 0x75B2,\n 0x76AE,\n 0x7891,\n 0x79D8,\n 0x7DCB,\n 0x7F77,\n 0x80A5,\n 0x88AB,\n 0x8AB9,\n 0x8CBB,\n 0x907F,\n 0x975E,\n 0x98DB,\n 0x6A0B,\n 0x7C38,\n 0x5099,\n 0x5C3E,\n 0x5FAE,\n 0x6787,\n 0x6BD8,\n 0x7435,\n 0x7709,\n 0x7F8E,\n 0x9F3B,\n 0x67CA,\n 0x7A17,\n 0x5339,\n 0x758B,\n 0x9AED,\n 0x5F66,\n 0x819D,\n 0x83F1,\n 0x8098,\n 0x5F3C,\n 0x5FC5,\n 0x7562,\n 0x7B46,\n 0x903C,\n 0x6867,\n 0x59EB,\n 0x5A9B,\n 0x7D10,\n 0x767E,\n 0x8B2C,\n 0x4FF5,\n 0x5F6A,\n 0x6A19,\n 0x6C37,\n 0x6F02,\n 0x74E2,\n 0x7968,\n 0x8868,\n 0x8A55,\n 0x8C79,\n 0x5EDF,\n 0x63CF,\n 0x75C5,\n 0x79D2,\n 0x82D7,\n 0x9328,\n 0x92F2,\n 0x849C,\n 0x86ED,\n 0x9C2D,\n 0x54C1,\n 0x5F6C,\n 0x658C,\n 0x6D5C,\n 0x7015,\n 0x8CA7,\n 0x8CD3,\n 0x983B,\n 0x654F,\n 0x74F6,\n 0x4E0D,\n 0x4ED8,\n 0x57E0,\n 0x592B,\n 0x5A66,\n 0x5BCC,\n 0x51A8,\n 0x5E03,\n 0x5E9C,\n 0x6016,\n 0x6276,\n 0x6577,\n 0x65A7,\n 0x666E,\n 0x6D6E,\n 0x7236,\n 0x7B26,\n 0x8150,\n 0x819A,\n 0x8299,\n 0x8B5C,\n 0x8CA0,\n 0x8CE6,\n 0x8D74,\n 0x961C,\n 0x9644,\n 0x4FAE,\n 0x64AB,\n 0x6B66,\n 0x821E,\n 0x8461,\n 0x856A,\n 0x90E8,\n 0x5C01,\n 0x6953,\n 0x98A8,\n 0x847A,\n 0x8557,\n 0x4F0F,\n 0x526F,\n 0x5FA9,\n 0x5E45,\n 0x670D,\n 0x798F,\n 0x8179,\n 0x8907,\n 0x8986,\n 0x6DF5,\n 0x5F17,\n 0x6255,\n 0x6CB8,\n 0x4ECF,\n 0x7269,\n 0x9B92,\n 0x5206,\n 0x543B,\n 0x5674,\n 0x58B3,\n 0x61A4,\n 0x626E,\n 0x711A,\n 0x596E,\n 0x7C89,\n 0x7CDE,\n];\n\nexport default array2;\n","const array3 = [\n 0x7D1B,\n 0x96F0,\n 0x6587,\n 0x805E,\n 0x4E19,\n 0x4F75,\n 0x5175,\n 0x5840,\n 0x5E63,\n 0x5E73,\n 0x5F0A,\n 0x67C4,\n 0x4E26,\n 0x853D,\n 0x9589,\n 0x965B,\n 0x7C73,\n 0x9801,\n 0x50FB,\n 0x58C1,\n 0x7656,\n 0x78A7,\n 0x5225,\n 0x77A5,\n 0x8511,\n 0x7B86,\n 0x504F,\n 0x5909,\n 0x7247,\n 0x7BC7,\n 0x7DE8,\n 0x8FBA,\n 0x8FD4,\n 0x904D,\n 0x4FBF,\n 0x52C9,\n 0x5A29,\n 0x5F01,\n 0x97AD,\n 0x4FDD,\n 0x8217,\n 0x92EA,\n 0x5703,\n 0x6355,\n 0x6B69,\n 0x752B,\n 0x88DC,\n 0x8F14,\n 0x7A42,\n 0x52DF,\n 0x5893,\n 0x6155,\n 0x620A,\n 0x66AE,\n 0x6BCD,\n 0x7C3F,\n 0x83E9,\n 0x5023,\n 0x4FF8,\n 0x5305,\n 0x5446,\n 0x5831,\n 0x5949,\n 0x5B9D,\n 0x5CF0,\n 0x5CEF,\n 0x5D29,\n 0x5E96,\n 0x62B1,\n 0x6367,\n 0x653E,\n 0x65B9,\n 0x670B,\n 0x6CD5,\n 0x6CE1,\n 0x70F9,\n 0x7832,\n 0x7E2B,\n 0x80DE,\n 0x82B3,\n 0x840C,\n 0x84EC,\n 0x8702,\n 0x8912,\n 0x8A2A,\n 0x8C4A,\n 0x90A6,\n 0x92D2,\n 0x98FD,\n 0x9CF3,\n 0x9D6C,\n 0x4E4F,\n 0x4EA1,\n 0x508D,\n 0x5256,\n 0x574A,\n 0x59A8,\n 0x5E3D,\n 0x5FD8,\n 0x5FD9,\n 0x623F,\n 0x66B4,\n 0x671B,\n 0x67D0,\n 0x68D2,\n 0x5192,\n 0x7D21,\n 0x80AA,\n 0x81A8,\n 0x8B00,\n 0x8C8C,\n 0x8CBF,\n 0x927E,\n 0x9632,\n 0x5420,\n 0x982C,\n 0x5317,\n 0x50D5,\n 0x535C,\n 0x58A8,\n 0x64B2,\n 0x6734,\n 0x7267,\n 0x7766,\n 0x7A46,\n 0x91E6,\n 0x52C3,\n 0x6CA1,\n 0x6B86,\n 0x5800,\n 0x5E4C,\n 0x5954,\n 0x672C,\n 0x7FFB,\n 0x51E1,\n 0x76C6,\n 0x6469,\n 0x78E8,\n 0x9B54,\n 0x9EBB,\n 0x57CB,\n 0x59B9,\n 0x6627,\n 0x679A,\n 0x6BCE,\n 0x54E9,\n 0x69D9,\n 0x5E55,\n 0x819C,\n 0x6795,\n 0x9BAA,\n 0x67FE,\n 0x9C52,\n 0x685D,\n 0x4EA6,\n 0x4FE3,\n 0x53C8,\n 0x62B9,\n 0x672B,\n 0x6CAB,\n 0x8FC4,\n 0x4FAD,\n 0x7E6D,\n 0x9EBF,\n 0x4E07,\n 0x6162,\n 0x6E80,\n 0x6F2B,\n 0x8513,\n 0x5473,\n 0x672A,\n 0x9B45,\n 0x5DF3,\n 0x7B95,\n 0x5CAC,\n 0x5BC6,\n 0x871C,\n 0x6E4A,\n 0x84D1,\n 0x7A14,\n 0x8108,\n 0x5999,\n 0x7C8D,\n 0x6C11,\n 0x7720,\n 0x52D9,\n 0x5922,\n 0x7121,\n 0x725F,\n 0x77DB,\n 0x9727,\n 0x9D61,\n 0x690B,\n 0x5A7F,\n 0x5A18,\n 0x51A5,\n 0x540D,\n 0x547D,\n 0x660E,\n 0x76DF,\n 0x8FF7,\n 0x9298,\n 0x9CF4,\n 0x59EA,\n 0x725D,\n 0x6EC5,\n 0x514D,\n 0x68C9,\n 0x7DBF,\n 0x7DEC,\n 0x9762,\n 0x9EBA,\n 0x6478,\n 0x6A21,\n 0x8302,\n 0x5984,\n 0x5B5F,\n 0x6BDB,\n 0x731B,\n 0x76F2,\n 0x7DB2,\n 0x8017,\n 0x8499,\n 0x5132,\n 0x6728,\n 0x9ED9,\n 0x76EE,\n 0x6762,\n 0x52FF,\n 0x9905,\n 0x5C24,\n 0x623B,\n 0x7C7E,\n 0x8CB0,\n 0x554F,\n 0x60B6,\n 0x7D0B,\n 0x9580,\n 0x5301,\n 0x4E5F,\n 0x51B6,\n 0x591C,\n 0x723A,\n 0x8036,\n 0x91CE,\n 0x5F25,\n 0x77E2,\n 0x5384,\n 0x5F79,\n 0x7D04,\n 0x85AC,\n 0x8A33,\n 0x8E8D,\n 0x9756,\n 0x67F3,\n 0x85AE,\n 0x9453,\n 0x6109,\n 0x6108,\n 0x6CB9,\n 0x7652,\n 0x8AED,\n 0x8F38,\n 0x552F,\n 0x4F51,\n 0x512A,\n 0x52C7,\n 0x53CB,\n 0x5BA5,\n 0x5E7D,\n 0x60A0,\n 0x6182,\n 0x63D6,\n 0x6709,\n 0x67DA,\n 0x6E67,\n 0x6D8C,\n 0x7336,\n 0x7337,\n 0x7531,\n 0x7950,\n 0x88D5,\n 0x8A98,\n 0x904A,\n 0x9091,\n 0x90F5,\n 0x96C4,\n 0x878D,\n 0x5915,\n 0x4E88,\n 0x4F59,\n 0x4E0E,\n 0x8A89,\n 0x8F3F,\n 0x9810,\n 0x50AD,\n 0x5E7C,\n 0x5996,\n 0x5BB9,\n 0x5EB8,\n 0x63DA,\n 0x63FA,\n 0x64C1,\n 0x66DC,\n 0x694A,\n 0x69D8,\n 0x6D0B,\n 0x6EB6,\n 0x7194,\n 0x7528,\n 0x7AAF,\n 0x7F8A,\n 0x8000,\n 0x8449,\n 0x84C9,\n 0x8981,\n 0x8B21,\n 0x8E0A,\n 0x9065,\n 0x967D,\n 0x990A,\n 0x617E,\n 0x6291,\n 0x6B32,\n 0x6C83,\n 0x6D74,\n 0x7FCC,\n 0x7FFC,\n 0x6DC0,\n 0x7F85,\n 0x87BA,\n 0x88F8,\n 0x6765,\n 0x83B1,\n 0x983C,\n 0x96F7,\n 0x6D1B,\n 0x7D61,\n 0x843D,\n 0x916A,\n 0x4E71,\n 0x5375,\n 0x5D50,\n 0x6B04,\n 0x6FEB,\n 0x85CD,\n 0x862D,\n 0x89A7,\n 0x5229,\n 0x540F,\n 0x5C65,\n 0x674E,\n 0x68A8,\n 0x7406,\n 0x7483,\n 0x75E2,\n 0x88CF,\n 0x88E1,\n 0x91CC,\n 0x96E2,\n 0x9678,\n 0x5F8B,\n 0x7387,\n 0x7ACB,\n 0x844E,\n 0x63A0,\n 0x7565,\n 0x5289,\n 0x6D41,\n 0x6E9C,\n 0x7409,\n 0x7559,\n 0x786B,\n 0x7C92,\n 0x9686,\n 0x7ADC,\n 0x9F8D,\n 0x4FB6,\n 0x616E,\n 0x65C5,\n 0x865C,\n 0x4E86,\n 0x4EAE,\n 0x50DA,\n 0x4E21,\n 0x51CC,\n 0x5BEE,\n 0x6599,\n 0x6881,\n 0x6DBC,\n 0x731F,\n 0x7642,\n 0x77AD,\n 0x7A1C,\n 0x7CE7,\n 0x826F,\n 0x8AD2,\n 0x907C,\n 0x91CF,\n 0x9675,\n 0x9818,\n 0x529B,\n 0x7DD1,\n 0x502B,\n 0x5398,\n 0x6797,\n 0x6DCB,\n 0x71D0,\n 0x7433,\n 0x81E8,\n 0x8F2A,\n 0x96A3,\n 0x9C57,\n 0x9E9F,\n 0x7460,\n 0x5841,\n 0x6D99,\n 0x7D2F,\n 0x985E,\n 0x4EE4,\n 0x4F36,\n 0x4F8B,\n 0x51B7,\n 0x52B1,\n 0x5DBA,\n 0x601C,\n 0x73B2,\n 0x793C,\n 0x82D3,\n 0x9234,\n 0x96B7,\n 0x96F6,\n 0x970A,\n 0x9E97,\n 0x9F62,\n 0x66A6,\n 0x6B74,\n 0x5217,\n 0x52A3,\n 0x70C8,\n 0x88C2,\n 0x5EC9,\n 0x604B,\n 0x6190,\n 0x6F23,\n 0x7149,\n 0x7C3E,\n 0x7DF4,\n 0x806F,\n 0x84EE,\n 0x9023,\n 0x932C,\n 0x5442,\n 0x9B6F,\n 0x6AD3,\n 0x7089,\n 0x8CC2,\n 0x8DEF,\n 0x9732,\n 0x52B4,\n 0x5A41,\n 0x5ECA,\n 0x5F04,\n 0x6717,\n 0x697C,\n 0x6994,\n 0x6D6A,\n 0x6F0F,\n 0x7262,\n 0x72FC,\n 0x7BED,\n 0x8001,\n 0x807E,\n 0x874B,\n 0x90CE,\n 0x516D,\n 0x9E93,\n 0x7984,\n 0x808B,\n 0x9332,\n 0x8AD6,\n 0x502D,\n 0x548C,\n 0x8A71,\n 0x6B6A,\n 0x8CC4,\n 0x8107,\n 0x60D1,\n 0x67A0,\n 0x9DF2,\n 0x4E99,\n 0x4E98,\n 0x9C10,\n 0x8A6B,\n 0x85C1,\n 0x8568,\n 0x6900,\n 0x6E7E,\n 0x7897,\n 0x8155,\n 0x20B9F,\n 0x5B41,\n 0x5B56,\n 0x5B7D,\n 0x5B93,\n 0x5BD8,\n 0x5BEC,\n 0x5C12,\n 0x5C1E,\n 0x5C23,\n 0x5C2B,\n 0x378D,\n 0x5C62,\n 0xFA3B,\n 0xFA3C,\n 0x216B4,\n 0x5C7A,\n 0x5C8F,\n 0x5C9F,\n 0x5CA3,\n 0x5CAA,\n 0x5CBA,\n 0x5CCB,\n 0x5CD0,\n 0x5CD2,\n 0x5CF4,\n 0x21E34,\n 0x37E2,\n 0x5D0D,\n 0x5D27,\n 0xFA11,\n 0x5D46,\n 0x5D47,\n 0x5D53,\n 0x5D4A,\n 0x5D6D,\n 0x5D81,\n 0x5DA0,\n 0x5DA4,\n 0x5DA7,\n 0x5DB8,\n 0x5DCB,\n 0x541E,\n 0x5F0C,\n 0x4E10,\n 0x4E15,\n 0x4E2A,\n 0x4E31,\n 0x4E36,\n 0x4E3C,\n 0x4E3F,\n 0x4E42,\n 0x4E56,\n 0x4E58,\n 0x4E82,\n 0x4E85,\n 0x8C6B,\n 0x4E8A,\n 0x8212,\n 0x5F0D,\n 0x4E8E,\n 0x4E9E,\n 0x4E9F,\n 0x4EA0,\n 0x4EA2,\n 0x4EB0,\n 0x4EB3,\n 0x4EB6,\n 0x4ECE,\n 0x4ECD,\n 0x4EC4,\n 0x4EC6,\n 0x4EC2,\n 0x4ED7,\n 0x4EDE,\n 0x4EED,\n 0x4EDF,\n 0x4EF7,\n 0x4F09,\n 0x4F5A,\n 0x4F30,\n 0x4F5B,\n 0x4F5D,\n 0x4F57,\n 0x4F47,\n 0x4F76,\n 0x4F88,\n 0x4F8F,\n 0x4F98,\n 0x4F7B,\n 0x4F69,\n 0x4F70,\n 0x4F91,\n 0x4F6F,\n 0x4F86,\n 0x4F96,\n 0x5118,\n 0x4FD4,\n 0x4FDF,\n 0x4FCE,\n 0x4FD8,\n 0x4FDB,\n 0x4FD1,\n 0x4FDA,\n 0x4FD0,\n 0x4FE4,\n 0x4FE5,\n 0x501A,\n 0x5028,\n 0x5014,\n 0x502A,\n 0x5025,\n 0x5005,\n 0x4F1C,\n 0x4FF6,\n 0x5021,\n 0x5029,\n 0x502C,\n 0x4FFE,\n 0x4FEF,\n 0x5011,\n 0x5006,\n 0x5043,\n 0x5047,\n 0x6703,\n 0x5055,\n 0x5050,\n 0x5048,\n 0x505A,\n 0x5056,\n 0x506C,\n 0x5078,\n 0x5080,\n 0x509A,\n 0x5085,\n 0x50B4,\n 0x50B2,\n 0x50C9,\n 0x50CA,\n 0x50B3,\n 0x50C2,\n 0x50D6,\n 0x50DE,\n 0x50E5,\n 0x50ED,\n 0x50E3,\n 0x50EE,\n 0x50F9,\n 0x50F5,\n 0x5109,\n 0x5101,\n 0x5102,\n 0x5116,\n 0x5115,\n 0x5114,\n 0x511A,\n 0x5121,\n 0x513A,\n 0x5137,\n 0x513C,\n 0x513B,\n 0x513F,\n 0x5140,\n 0x5152,\n 0x514C,\n 0x5154,\n 0x5162,\n 0x7AF8,\n 0x5169,\n 0x516A,\n 0x516E,\n 0x5180,\n 0x5182,\n 0x56D8,\n 0x518C,\n 0x5189,\n 0x518F,\n 0x5191,\n 0x5193,\n 0x5195,\n 0x5196,\n 0x51A4,\n 0x51A6,\n 0x51A2,\n 0x51A9,\n 0x51AA,\n 0x51AB,\n 0x51B3,\n 0x51B1,\n 0x51B2,\n 0x51B0,\n 0x51B5,\n 0x51BD,\n 0x51C5,\n 0x51C9,\n 0x51DB,\n 0x51E0,\n 0x8655,\n 0x51E9,\n 0x51ED,\n 0x51F0,\n 0x51F5,\n 0x51FE,\n 0x5204,\n 0x520B,\n 0x5214,\n 0x520E,\n 0x5227,\n 0x522A,\n 0x522E,\n 0x5233,\n 0x5239,\n 0x524F,\n 0x5244,\n 0x524B,\n 0x524C,\n 0x525E,\n 0x5254,\n 0x526A,\n 0x5274,\n 0x5269,\n 0x5273,\n 0x527F,\n 0x527D,\n 0x528D,\n 0x5294,\n 0x5292,\n 0x5271,\n 0x5288,\n 0x5291,\n 0x8FA8,\n 0x8FA7,\n 0x52AC,\n 0x52AD,\n 0x52BC,\n 0x52B5,\n 0x52C1,\n 0x52CD,\n 0x52D7,\n 0x52DE,\n 0x52E3,\n 0x52E6,\n 0x98ED,\n 0x52E0,\n 0x52F3,\n 0x52F5,\n 0x52F8,\n 0x52F9,\n 0x5306,\n 0x5308,\n 0x7538,\n 0x530D,\n 0x5310,\n 0x530F,\n 0x5315,\n 0x531A,\n 0x5323,\n 0x532F,\n 0x5331,\n 0x5333,\n 0x5338,\n 0x5340,\n 0x5346,\n 0x5345,\n 0x4E17,\n 0x5349,\n 0x534D,\n 0x51D6,\n 0x535E,\n 0x5369,\n 0x536E,\n 0x5918,\n 0x537B,\n 0x5377,\n 0x5382,\n 0x5396,\n 0x53A0,\n 0x53A6,\n 0x53A5,\n 0x53AE,\n 0x53B0,\n 0x53B6,\n 0x53C3,\n 0x7C12,\n 0x96D9,\n 0x53DF,\n 0x66FC,\n 0x71EE,\n 0x53EE,\n 0x53E8,\n 0x53ED,\n 0x53FA,\n 0x5401,\n 0x543D,\n 0x5440,\n 0x542C,\n 0x542D,\n 0x543C,\n 0x542E,\n 0x5436,\n 0x5429,\n 0x541D,\n 0x544E,\n 0x548F,\n 0x5475,\n 0x548E,\n 0x545F,\n 0x5471,\n 0x5477,\n 0x5470,\n 0x5492,\n 0x547B,\n 0x5480,\n 0x5476,\n 0x5484,\n 0x5490,\n 0x5486,\n 0x54C7,\n 0x54A2,\n 0x54B8,\n 0x54A5,\n 0x54AC,\n 0x54C4,\n 0x54C8,\n 0x54A8,\n 0x54AB,\n 0x54C2,\n 0x54A4,\n 0x54BE,\n 0x54BC,\n 0x54D8,\n 0x54E5,\n 0x54E6,\n 0x550F,\n 0x5514,\n 0x54FD,\n 0x54EE,\n 0x54ED,\n 0x54FA,\n 0x54E2,\n 0x5539,\n 0x5540,\n 0x5563,\n 0x554C,\n 0x552E,\n 0x555C,\n 0x5545,\n 0x5556,\n 0x5557,\n 0x5538,\n 0x5533,\n 0x555D,\n 0x5599,\n 0x5580,\n 0x54AF,\n 0x558A,\n 0x559F,\n 0x557B,\n 0x557E,\n 0x5598,\n 0x559E,\n 0x55AE,\n 0x557C,\n 0x5583,\n 0x55A9,\n 0x5587,\n 0x55A8,\n 0x55DA,\n 0x55C5,\n 0x55DF,\n 0x55C4,\n 0x55DC,\n 0x55E4,\n 0x55D4,\n 0x5614,\n 0x55F7,\n 0x5616,\n 0x55FE,\n 0x55FD,\n 0x561B,\n 0x55F9,\n 0x564E,\n 0x5650,\n 0x71DF,\n 0x5634,\n 0x5636,\n 0x5632,\n 0x5638,\n 0x566B,\n 0x5664,\n 0x562F,\n 0x566C,\n 0x566A,\n 0x5686,\n 0x5680,\n 0x568A,\n 0x56A0,\n 0x5694,\n 0x568F,\n 0x56A5,\n 0x56AE,\n 0x56B6,\n 0x56B4,\n 0x56C2,\n 0x56BC,\n 0x56C1,\n 0x56C3,\n 0x56C0,\n 0x56C8,\n 0x56CE,\n 0x56D1,\n 0x56D3,\n 0x56D7,\n 0x56EE,\n 0x56F9,\n 0x5700,\n 0x56FF,\n 0x5704,\n 0x5709,\n 0x5708,\n 0x570B,\n 0x570D,\n 0x5713,\n 0x5718,\n 0x5716,\n 0x55C7,\n 0x571C,\n 0x5726,\n 0x5737,\n 0x5738,\n 0x574E,\n 0x573B,\n 0x5740,\n 0x574F,\n 0x5769,\n 0x57C0,\n 0x5788,\n 0x5761,\n 0x577F,\n 0x5789,\n 0x5793,\n 0x57A0,\n 0x57B3,\n 0x57A4,\n 0x57AA,\n 0x57B0,\n 0x57C3,\n 0x57C6,\n 0x57D4,\n 0x57D2,\n 0x57D3,\n 0x580A,\n 0x57D6,\n 0x57E3,\n 0x580B,\n 0x5819,\n 0x581D,\n 0x5872,\n 0x5821,\n 0x5862,\n 0x584B,\n 0x5870,\n 0x6BC0,\n 0x5852,\n 0x583D,\n 0x5879,\n 0x5885,\n 0x58B9,\n 0x589F,\n 0x58AB,\n 0x58BA,\n 0x58DE,\n 0x58BB,\n 0x58B8,\n 0x58AE,\n 0x58C5,\n 0x58D3,\n 0x58D1,\n 0x58D7,\n 0x58D9,\n 0x58D8,\n 0x58E5,\n 0x58DC,\n 0x58E4,\n 0x58DF,\n 0x58EF,\n 0x58FA,\n 0x58F9,\n 0x58FB,\n 0x58FC,\n 0x58FD,\n 0x5902,\n 0x590A,\n 0x5910,\n 0x591B,\n 0x68A6,\n 0x5925,\n 0x592C,\n 0x592D,\n 0x5932,\n 0x5938,\n 0x593E,\n 0x7AD2,\n 0x5955,\n 0x5950,\n 0x594E,\n 0x595A,\n 0x5958,\n 0x5962,\n 0x5960,\n 0x5967,\n 0x596C,\n 0x5969,\n 0x5978,\n 0x5981,\n 0x599D,\n 0x4F5E,\n 0x4FAB,\n 0x59A3,\n 0x59B2,\n 0x59C6,\n 0x59E8,\n 0x59DC,\n 0x598D,\n 0x59D9,\n 0x59DA,\n 0x5A25,\n 0x5A1F,\n 0x5A11,\n 0x5A1C,\n 0x5A09,\n 0x5A1A,\n 0x5A40,\n 0x5A6C,\n 0x5A49,\n 0x5A35,\n 0x5A36,\n 0x5A62,\n 0x5A6A,\n 0x5A9A,\n 0x5ABC,\n 0x5ABE,\n 0x5ACB,\n 0x5AC2,\n 0x5ABD,\n 0x5AE3,\n 0x5AD7,\n 0x5AE6,\n 0x5AE9,\n 0x5AD6,\n 0x5AFA,\n 0x5AFB,\n 0x5B0C,\n 0x5B0B,\n 0x5B16,\n 0x5B32,\n 0x5AD0,\n 0x5B2A,\n 0x5B36,\n 0x5B3E,\n 0x5B43,\n 0x5B45,\n 0x5B40,\n 0x5B51,\n 0x5B55,\n 0x5B5A,\n 0x5B5B,\n 0x5B65,\n 0x5B69,\n 0x5B70,\n 0x5B73,\n 0x5B75,\n 0x5B78,\n 0x6588,\n 0x5B7A,\n 0x5B80,\n 0x5B83,\n 0x5BA6,\n 0x5BB8,\n 0x5BC3,\n 0x5BC7,\n 0x5BC9,\n 0x5BD4,\n 0x5BD0,\n 0x5BE4,\n 0x5BE6,\n 0x5BE2,\n 0x5BDE,\n 0x5BE5,\n 0x5BEB,\n 0x5BF0,\n 0x5BF6,\n 0x5BF3,\n 0x5C05,\n 0x5C07,\n 0x5C08,\n 0x5C0D,\n 0x5C13,\n 0x5C20,\n 0x5C22,\n 0x5C28,\n 0x5C38,\n 0x5C39,\n 0x5C41,\n 0x5C46,\n 0x5C4E,\n 0x5C53,\n 0x5C50,\n 0x5C4F,\n 0x5B71,\n 0x5C6C,\n 0x5C6E,\n 0x4E62,\n 0x5C76,\n 0x5C79,\n 0x5C8C,\n 0x5C91,\n 0x5C94,\n 0x599B,\n 0x5CAB,\n 0x5CBB,\n 0x5CB6,\n 0x5CBC,\n 0x5CB7,\n 0x5CC5,\n 0x5CBE,\n 0x5CC7,\n 0x5CD9,\n 0x5CE9,\n 0x5CFD,\n 0x5CFA,\n 0x5CED,\n 0x5D8C,\n 0x5CEA,\n 0x5D0B,\n 0x5D15,\n 0x5D17,\n 0x5D5C,\n 0x5D1F,\n 0x5D1B,\n 0x5D11,\n 0x5D14,\n 0x5D22,\n 0x5D1A,\n 0x5D19,\n 0x5D18,\n 0x5D4C,\n 0x5D52,\n 0x5D4E,\n 0x5D4B,\n 0x5D6C,\n 0x5D73,\n 0x5D76,\n 0x5D87,\n 0x5D84,\n 0x5D82,\n 0x5DA2,\n 0x5D9D,\n 0x5DAC,\n 0x5DAE,\n 0x5DBD,\n 0x5D90,\n 0x5DB7,\n 0x5DBC,\n 0x5DC9,\n 0x5DCD,\n 0x5DD3,\n 0x5DD2,\n 0x5DD6,\n 0x5DDB,\n 0x5DEB,\n 0x5DF2,\n 0x5DF5,\n 0x5E0B,\n 0x5E1A,\n 0x5E19,\n 0x5E11,\n 0x5E1B,\n 0x5E36,\n 0x5E37,\n 0x5E44,\n 0x5E43,\n 0x5E40,\n 0x5E4E,\n 0x5E57,\n 0x5E54,\n 0x5E5F,\n 0x5E62,\n 0x5E64,\n 0x5E47,\n 0x5E75,\n 0x5E76,\n 0x5E7A,\n 0x9EBC,\n 0x5E7F,\n 0x5EA0,\n 0x5EC1,\n 0x5EC2,\n 0x5EC8,\n 0x5ED0,\n 0x5ECF,\n 0x5ED6,\n 0x5EE3,\n 0x5EDD,\n 0x5EDA,\n 0x5EDB,\n 0x5EE2,\n 0x5EE1,\n 0x5EE8,\n 0x5EE9,\n 0x5EEC,\n 0x5EF1,\n 0x5EF3,\n 0x5EF0,\n 0x5EF4,\n 0x5EF8,\n 0x5EFE,\n 0x5F03,\n 0x5F09,\n 0x5F5D,\n 0x5F5C,\n 0x5F0B,\n 0x5F11,\n 0x5F16,\n 0x5F29,\n 0x5F2D,\n 0x5F38,\n 0x5F41,\n 0x5F48,\n 0x5F4C,\n 0x5F4E,\n 0x5F2F,\n 0x5F51,\n 0x5F56,\n 0x5F57,\n 0x5F59,\n 0x5F61,\n 0x5F6D,\n 0x5F73,\n 0x5F77,\n 0x5F83,\n 0x5F82,\n 0x5F7F,\n 0x5F8A,\n 0x5F88,\n 0x5F91,\n 0x5F87,\n 0x5F9E,\n 0x5F99,\n 0x5F98,\n 0x5FA0,\n 0x5FA8,\n 0x5FAD,\n 0x5FBC,\n 0x5FD6,\n 0x5FFB,\n 0x5FE4,\n 0x5FF8,\n 0x5FF1,\n 0x5FDD,\n 0x60B3,\n 0x5FFF,\n 0x6021,\n 0x6060,\n 0x6019,\n 0x6010,\n 0x6029,\n 0x600E,\n 0x6031,\n 0x601B,\n 0x6015,\n 0x602B,\n 0x6026,\n 0x600F,\n 0x603A,\n 0x605A,\n 0x6041,\n 0x606A,\n 0x6077,\n 0x605F,\n 0x604A,\n 0x6046,\n 0x604D,\n 0x6063,\n 0x6043,\n 0x6064,\n 0x6042,\n 0x606C,\n 0x606B,\n 0x6059,\n 0x6081,\n 0x608D,\n 0x60E7,\n 0x6083,\n 0x609A,\n 0x6084,\n 0x609B,\n 0x6096,\n 0x6097,\n 0x6092,\n 0x60A7,\n 0x608B,\n 0x60E1,\n 0x60B8,\n 0x60E0,\n 0x60D3,\n 0x60B4,\n 0x5FF0,\n 0x60BD,\n 0x60C6,\n 0x60B5,\n 0x60D8,\n 0x614D,\n 0x6115,\n 0x6106,\n 0x60F6,\n 0x60F7,\n 0x6100,\n 0x60F4,\n 0x60FA,\n 0x6103,\n 0x6121,\n 0x60FB,\n 0x60F1,\n 0x610D,\n 0x610E,\n 0x6147,\n 0x613E,\n 0x6128,\n 0x6127,\n 0x614A,\n 0x613F,\n 0x613C,\n 0x612C,\n 0x6134,\n 0x613D,\n 0x6142,\n 0x6144,\n 0x6173,\n 0x6177,\n 0x6158,\n 0x6159,\n 0x615A,\n 0x616B,\n 0x6174,\n 0x616F,\n 0x6165,\n 0x6171,\n 0x615F,\n 0x615D,\n 0x6153,\n 0x6175,\n 0x6199,\n 0x6196,\n 0x6187,\n 0x61AC,\n 0x6194,\n 0x619A,\n 0x618A,\n 0x6191,\n 0x61AB,\n 0x61AE,\n 0x61CC,\n 0x61CA,\n 0x61C9,\n 0x61F7,\n 0x61C8,\n 0x61C3,\n 0x61C6,\n 0x61BA,\n 0x61CB,\n 0x7F79,\n 0x61CD,\n 0x61E6,\n 0x61E3,\n 0x61F6,\n 0x61FA,\n 0x61F4,\n 0x61FF,\n 0x61FD,\n 0x61FC,\n 0x61FE,\n 0x6200,\n 0x6208,\n 0x6209,\n 0x620D,\n 0x620C,\n 0x6214,\n 0x621B,\n 0x621E,\n 0x6221,\n 0x622A,\n 0x622E,\n 0x6230,\n 0x6232,\n 0x6233,\n 0x6241,\n 0x624E,\n 0x625E,\n 0x6263,\n 0x625B,\n 0x6260,\n 0x6268,\n 0x627C,\n 0x6282,\n 0x6289,\n 0x627E,\n 0x6292,\n 0x6293,\n 0x6296,\n 0x62D4,\n 0x6283,\n 0x6294,\n 0x62D7,\n 0x62D1,\n 0x62BB,\n 0x62CF,\n 0x62FF,\n 0x62C6,\n 0x64D4,\n 0x62C8,\n 0x62DC,\n 0x62CC,\n 0x62CA,\n 0x62C2,\n 0x62C7,\n 0x629B,\n 0x62C9,\n 0x630C,\n 0x62EE,\n 0x62F1,\n 0x6327,\n 0x6302,\n 0x6308,\n 0x62EF,\n 0x62F5,\n 0x6350,\n 0x633E,\n 0x634D,\n 0x641C,\n 0x634F,\n 0x6396,\n 0x638E,\n 0x6380,\n 0x63AB,\n 0x6376,\n 0x63A3,\n 0x638F,\n 0x6389,\n 0x639F,\n 0x63B5,\n 0x636B,\n 0x6369,\n 0x63BE,\n 0x63E9,\n 0x63C0,\n 0x63C6,\n 0x63E3,\n 0x63C9,\n 0x63D2,\n 0x63F6,\n 0x63C4,\n 0x6416,\n 0x6434,\n 0x6406,\n 0x6413,\n 0x6426,\n 0x6436,\n 0x651D,\n 0x6417,\n 0x6428,\n 0x640F,\n 0x6467,\n 0x646F,\n 0x6476,\n 0x644E,\n 0x652A,\n 0x6495,\n 0x6493,\n 0x64A5,\n 0x64A9,\n 0x6488,\n 0x64BC,\n 0x64DA,\n 0x64D2,\n 0x64C5,\n 0x64C7,\n 0x64BB,\n 0x64D8,\n 0x64C2,\n 0x64F1,\n 0x64E7,\n 0x8209,\n 0x64E0,\n 0x64E1,\n 0x62AC,\n 0x64E3,\n 0x64EF,\n 0x652C,\n 0x64F6,\n 0x64F4,\n 0x64F2,\n 0x64FA,\n 0x6500,\n 0x64FD,\n 0x6518,\n 0x651C,\n 0x6505,\n 0x6524,\n 0x6523,\n 0x652B,\n 0x6534,\n 0x6535,\n 0x6537,\n 0x6536,\n 0x6538,\n 0x754B,\n 0x6548,\n 0x6556,\n 0x6555,\n 0x654D,\n 0x6558,\n 0x655E,\n 0x655D,\n 0x6572,\n 0x6578,\n 0x6582,\n 0x6583,\n 0x8B8A,\n 0x659B,\n 0x659F,\n 0x65AB,\n 0x65B7,\n 0x65C3,\n 0x65C6,\n 0x65C1,\n 0x65C4,\n 0x65CC,\n 0x65D2,\n 0x65DB,\n 0x65D9,\n 0x65E0,\n 0x65E1,\n 0x65F1,\n 0x6772,\n 0x660A,\n 0x6603,\n 0x65FB,\n 0x6773,\n 0x6635,\n 0x6636,\n 0x6634,\n 0x661C,\n 0x664F,\n 0x6644,\n 0x6649,\n 0x6641,\n 0x665E,\n 0x665D,\n 0x6664,\n 0x6667,\n 0x6668,\n 0x665F,\n 0x6662,\n 0x6670,\n 0x6683,\n 0x6688,\n 0x668E,\n 0x6689,\n 0x6684,\n 0x6698,\n 0x669D,\n 0x66C1,\n 0x66B9,\n 0x66C9,\n 0x66BE,\n 0x66BC,\n 0x66C4,\n 0x66B8,\n 0x66D6,\n 0x66DA,\n 0x66E0,\n 0x663F,\n 0x66E6,\n 0x66E9,\n 0x66F0,\n 0x66F5,\n 0x66F7,\n 0x670F,\n 0x6716,\n 0x671E,\n 0x6726,\n 0x6727,\n 0x9738,\n 0x672E,\n 0x673F,\n 0x6736,\n 0x6741,\n 0x6738,\n 0x6737,\n 0x6746,\n 0x675E,\n 0x6760,\n 0x6759,\n 0x6763,\n 0x6764,\n 0x6789,\n 0x6770,\n 0x67A9,\n 0x677C,\n 0x676A,\n 0x678C,\n 0x678B,\n 0x67A6,\n 0x67A1,\n 0x6785,\n 0x67B7,\n 0x67EF,\n 0x67B4,\n 0x67EC,\n 0x67B3,\n 0x67E9,\n 0x67B8,\n 0x67E4,\n 0x67DE,\n 0x67DD,\n 0x67E2,\n 0x67EE,\n 0x67B9,\n 0x67CE,\n 0x67C6,\n 0x67E7,\n 0x6A9C,\n 0x681E,\n 0x6846,\n 0x6829,\n 0x6840,\n 0x684D,\n 0x6832,\n 0x684E,\n 0x68B3,\n 0x682B,\n 0x6859,\n 0x6863,\n 0x6877,\n 0x687F,\n 0x689F,\n 0x688F,\n 0x68AD,\n 0x6894,\n 0x689D,\n 0x689B,\n 0x6883,\n 0x6AAE,\n 0x68B9,\n 0x6874,\n 0x68B5,\n 0x68A0,\n 0x68BA,\n 0x690F,\n 0x688D,\n 0x687E,\n 0x6901,\n 0x68CA,\n 0x6908,\n 0x68D8,\n 0x6922,\n 0x6926,\n 0x68E1,\n 0x690C,\n 0x68CD,\n 0x68D4,\n 0x68E7,\n 0x68D5,\n 0x6936,\n 0x6912,\n 0x6904,\n 0x68D7,\n 0x68E3,\n 0x6925,\n 0x68F9,\n 0x68E0,\n 0x68EF,\n 0x6928,\n 0x692A,\n 0x691A,\n 0x6923,\n 0x6921,\n 0x68C6,\n 0x6979,\n 0x6977,\n 0x695C,\n 0x6978,\n 0x696B,\n 0x6954,\n 0x697E,\n 0x696E,\n 0x6939,\n 0x6974,\n 0x693D,\n 0x6959,\n 0x6930,\n 0x6961,\n 0x695E,\n 0x695D,\n 0x6981,\n 0x696A,\n 0x69B2,\n 0x69AE,\n 0x69D0,\n 0x69BF,\n 0x69C1,\n 0x69D3,\n 0x69BE,\n 0x69CE,\n 0x5BE8,\n 0x69CA,\n 0x69DD,\n 0x69BB,\n 0x69C3,\n 0x69A7,\n 0x6A2E,\n 0x6991,\n 0x69A0,\n 0x699C,\n 0x6995,\n 0x69B4,\n 0x69DE,\n 0x69E8,\n 0x6A02,\n 0x6A1B,\n 0x69FF,\n 0x6B0A,\n 0x69F9,\n 0x69F2,\n 0x69E7,\n 0x6A05,\n 0x69B1,\n 0x6A1E,\n 0x69ED,\n 0x6A14,\n 0x69EB,\n 0x6A0A,\n 0x6A12,\n 0x6AC1,\n 0x6A23,\n 0x6A13,\n 0x6A44,\n 0x6A0C,\n 0x6A72,\n 0x6A36,\n 0x6A78,\n 0x6A47,\n 0x6A62,\n 0x6A59,\n 0x6A66,\n 0x6A48,\n 0x6A38,\n 0x6A22,\n 0x6A90,\n 0x6A8D,\n 0x6AA0,\n 0x6A84,\n 0x6AA2,\n 0x6AA3,\n 0x6A97,\n 0x8617,\n 0x6ABB,\n 0x6AC3,\n 0x6AC2,\n 0x6AB8,\n 0x6AB3,\n 0x6AAC,\n 0x6ADE,\n 0x6AD1,\n 0x6ADF,\n 0x6AAA,\n 0x6ADA,\n 0x6AEA,\n 0x6AFB,\n 0x6B05,\n 0x8616,\n 0x6AFA,\n 0x6B12,\n 0x6B16,\n 0x9B31,\n 0x6B1F,\n 0x6B38,\n 0x6B37,\n 0x76DC,\n 0x6B39,\n 0x98EE,\n 0x6B47,\n 0x6B43,\n 0x6B49,\n 0x6B50,\n 0x6B59,\n 0x6B54,\n 0x6B5B,\n 0x6B5F,\n 0x6B61,\n 0x6B78,\n 0x6B79,\n 0x6B7F,\n 0x6B80,\n 0x6B84,\n 0x6B83,\n 0x6B8D,\n 0x6B98,\n 0x6B95,\n 0x6B9E,\n 0x6BA4,\n 0x6BAA,\n 0x6BAB,\n 0x6BAF,\n 0x6BB2,\n 0x6BB1,\n 0x6BB3,\n 0x6BB7,\n 0x6BBC,\n 0x6BC6,\n 0x6BCB,\n 0x6BD3,\n 0x6BDF,\n 0x6BEC,\n 0x6BEB,\n 0x6BF3,\n 0x6BEF,\n 0x9EBE,\n 0x6C08,\n 0x6C13,\n 0x6C14,\n 0x6C1B,\n 0x6C24,\n 0x6C23,\n 0x6C5E,\n 0x6C55,\n 0x6C62,\n 0x6C6A,\n 0x6C82,\n 0x6C8D,\n 0x6C9A,\n 0x6C81,\n 0x6C9B,\n 0x6C7E,\n 0x6C68,\n 0x6C73,\n 0x6C92,\n 0x6C90,\n 0x6CC4,\n 0x6CF1,\n 0x6CD3,\n 0x6CBD,\n 0x6CD7,\n 0x6CC5,\n 0x6CDD,\n 0x6CAE,\n 0x6CB1,\n 0x6CBE,\n 0x6CBA,\n 0x6CDB,\n 0x6CEF,\n 0x6CD9,\n 0x6CEA,\n 0x6D1F,\n 0x884D,\n 0x6D36,\n 0x6D2B,\n 0x6D3D,\n 0x6D38,\n 0x6D19,\n 0x6D35,\n 0x6D33,\n 0x6D12,\n 0x6D0C,\n 0x6D63,\n 0x6D93,\n 0x6D64,\n 0x6D5A,\n 0x6D79,\n 0x6D59,\n 0x6D8E,\n 0x6D95,\n 0x6FE4,\n 0x6D85,\n 0x6DF9,\n 0x6E15,\n 0x6E0A,\n 0x6DB5,\n 0x6DC7,\n 0x6DE6,\n 0x6DB8,\n 0x6DC6,\n 0x6DEC,\n 0x6DDE,\n 0x6DCC,\n 0x6DE8,\n 0x6DD2,\n 0x6DC5,\n 0x6DFA,\n 0x6DD9,\n 0x6DE4,\n 0x6DD5,\n 0x6DEA,\n 0x6DEE,\n 0x6E2D,\n 0x6E6E,\n 0x6E2E,\n 0x6E19,\n 0x6E72,\n 0x6E5F,\n 0x6E3E,\n 0x6E23,\n 0x6E6B,\n 0x6E2B,\n 0x6E76,\n 0x6E4D,\n 0x6E1F,\n 0x6E43,\n 0x6E3A,\n 0x6E4E,\n 0x6E24,\n 0x6EFF,\n 0x6E1D,\n 0x6E38,\n 0x6E82,\n 0x6EAA,\n 0x6E98,\n 0x6EC9,\n 0x6EB7,\n 0x6ED3,\n 0x6EBD,\n 0x6EAF,\n 0x6EC4,\n 0x6EB2,\n 0x6ED4,\n 0x6ED5,\n 0x6E8F,\n 0x6EA5,\n 0x6EC2,\n 0x6E9F,\n 0x6F41,\n 0x6F11,\n 0x704C,\n 0x6EEC,\n 0x6EF8,\n 0x6EFE,\n 0x6F3F,\n 0x6EF2,\n 0x6F31,\n 0x6EEF,\n 0x6F32,\n 0x6ECC,\n 0x6F3E,\n 0x6F13,\n 0x6EF7,\n 0x6F86,\n 0x6F7A,\n 0x6F78,\n 0x6F81,\n 0x6F80,\n 0x6F6F,\n 0x6F5B,\n 0x6FF3,\n 0x6F6D,\n 0x6F82,\n 0x6F7C,\n 0x6F58,\n 0x6F8E,\n 0x6F91,\n 0x6FC2,\n 0x6F66,\n 0x6FB3,\n 0x6FA3,\n 0x6FA1,\n 0x6FA4,\n 0x6FB9,\n 0x6FC6,\n 0x6FAA,\n 0x6FDF,\n 0x6FD5,\n 0x6FEC,\n 0x6FD4,\n 0x6FD8,\n 0x6FF1,\n 0x6FEE,\n 0x6FDB,\n 0x7009,\n 0x700B,\n 0x6FFA,\n 0x7011,\n 0x7001,\n 0x700F,\n 0x6FFE,\n 0x701B,\n 0x701A,\n 0x6F74,\n 0x701D,\n 0x7018,\n 0x701F,\n 0x7030,\n];\n\nexport default array3;\n","const array4 = [\n 0x703E,\n 0x7032,\n 0x7051,\n 0x7063,\n 0x7099,\n 0x7092,\n 0x70AF,\n 0x70F1,\n 0x70AC,\n 0x70B8,\n 0x70B3,\n 0x70AE,\n 0x70DF,\n 0x70CB,\n 0x70DD,\n 0x70D9,\n 0x7109,\n 0x70FD,\n 0x711C,\n 0x7119,\n 0x7165,\n 0x7155,\n 0x7188,\n 0x7166,\n 0x7162,\n 0x714C,\n 0x7156,\n 0x716C,\n 0x718F,\n 0x71FB,\n 0x7184,\n 0x7195,\n 0x71A8,\n 0x71AC,\n 0x71D7,\n 0x71B9,\n 0x71BE,\n 0x71D2,\n 0x71C9,\n 0x71D4,\n 0x71CE,\n 0x71E0,\n 0x71EC,\n 0x71E7,\n 0x71F5,\n 0x71FC,\n 0x71F9,\n 0x71FF,\n 0x720D,\n 0x7210,\n 0x721B,\n 0x7228,\n 0x722D,\n 0x722C,\n 0x7230,\n 0x7232,\n 0x723B,\n 0x723C,\n 0x723F,\n 0x7240,\n 0x7246,\n 0x724B,\n 0x7258,\n 0x7274,\n 0x727E,\n 0x7282,\n 0x7281,\n 0x7287,\n 0x7292,\n 0x7296,\n 0x72A2,\n 0x72A7,\n 0x72B9,\n 0x72B2,\n 0x72C3,\n 0x72C6,\n 0x72C4,\n 0x72CE,\n 0x72D2,\n 0x72E2,\n 0x72E0,\n 0x72E1,\n 0x72F9,\n 0x72F7,\n 0x500F,\n 0x7317,\n 0x730A,\n 0x731C,\n 0x7316,\n 0x731D,\n 0x7334,\n 0x732F,\n 0x7329,\n 0x7325,\n 0x733E,\n 0x734E,\n 0x734F,\n 0x9ED8,\n 0x7357,\n 0x736A,\n 0x7368,\n 0x7370,\n 0x7378,\n 0x7375,\n 0x737B,\n 0x737A,\n 0x73C8,\n 0x73B3,\n 0x73CE,\n 0x73BB,\n 0x73C0,\n 0x73E5,\n 0x73EE,\n 0x73DE,\n 0x74A2,\n 0x7405,\n 0x746F,\n 0x7425,\n 0x73F8,\n 0x7432,\n 0x743A,\n 0x7455,\n 0x743F,\n 0x745F,\n 0x7459,\n 0x7441,\n 0x745C,\n 0x7469,\n 0x7470,\n 0x7463,\n 0x746A,\n 0x7476,\n 0x747E,\n 0x748B,\n 0x749E,\n 0x74A7,\n 0x74CA,\n 0x74CF,\n 0x74D4,\n 0x73F1,\n 0x74E0,\n 0x74E3,\n 0x74E7,\n 0x74E9,\n 0x74EE,\n 0x74F2,\n 0x74F0,\n 0x74F1,\n 0x74F8,\n 0x74F7,\n 0x7504,\n 0x7503,\n 0x7505,\n 0x750C,\n 0x750E,\n 0x750D,\n 0x7515,\n 0x7513,\n 0x751E,\n 0x7526,\n 0x752C,\n 0x753C,\n 0x7544,\n 0x754D,\n 0x754A,\n 0x7549,\n 0x755B,\n 0x7546,\n 0x755A,\n 0x7569,\n 0x7564,\n 0x7567,\n 0x756B,\n 0x756D,\n 0x7578,\n 0x7576,\n 0x7586,\n 0x7587,\n 0x7574,\n 0x758A,\n 0x7589,\n 0x7582,\n 0x7594,\n 0x759A,\n 0x759D,\n 0x75A5,\n 0x75A3,\n 0x75C2,\n 0x75B3,\n 0x75C3,\n 0x75B5,\n 0x75BD,\n 0x75B8,\n 0x75BC,\n 0x75B1,\n 0x75CD,\n 0x75CA,\n 0x75D2,\n 0x75D9,\n 0x75E3,\n 0x75DE,\n 0x75FE,\n 0x75FF,\n 0x75FC,\n 0x7601,\n 0x75F0,\n 0x75FA,\n 0x75F2,\n 0x75F3,\n 0x760B,\n 0x760D,\n 0x7609,\n 0x761F,\n 0x7627,\n 0x7620,\n 0x7621,\n 0x7622,\n 0x7624,\n 0x7634,\n 0x7630,\n 0x763B,\n 0x7647,\n 0x7648,\n 0x7646,\n 0x765C,\n 0x7658,\n 0x7661,\n 0x7662,\n 0x7668,\n 0x7669,\n 0x766A,\n 0x7667,\n 0x766C,\n 0x7670,\n 0x7672,\n 0x7676,\n 0x7678,\n 0x767C,\n 0x7680,\n 0x7683,\n 0x7688,\n 0x768B,\n 0x768E,\n 0x7696,\n 0x7693,\n 0x7699,\n 0x769A,\n 0x76B0,\n 0x76B4,\n 0x76B8,\n 0x76B9,\n 0x76BA,\n 0x76C2,\n 0x76CD,\n 0x76D6,\n 0x76D2,\n 0x76DE,\n 0x76E1,\n 0x76E5,\n 0x76E7,\n 0x76EA,\n 0x862F,\n 0x76FB,\n 0x7708,\n 0x7707,\n 0x7704,\n 0x7729,\n 0x7724,\n 0x771E,\n 0x7725,\n 0x7726,\n 0x771B,\n 0x7737,\n 0x7738,\n 0x7747,\n 0x775A,\n 0x7768,\n 0x776B,\n 0x775B,\n 0x7765,\n 0x777F,\n 0x777E,\n 0x7779,\n 0x778E,\n 0x778B,\n 0x7791,\n 0x77A0,\n 0x779E,\n 0x77B0,\n 0x77B6,\n 0x77B9,\n 0x77BF,\n 0x77BC,\n 0x77BD,\n 0x77BB,\n 0x77C7,\n 0x77CD,\n 0x77D7,\n 0x77DA,\n 0x77DC,\n 0x77E3,\n 0x77EE,\n 0x77FC,\n 0x780C,\n 0x7812,\n 0x7926,\n 0x7820,\n 0x792A,\n 0x7845,\n 0x788E,\n 0x7874,\n 0x7886,\n 0x787C,\n 0x789A,\n 0x788C,\n 0x78A3,\n 0x78B5,\n 0x78AA,\n 0x78AF,\n 0x78D1,\n 0x78C6,\n 0x78CB,\n 0x78D4,\n 0x78BE,\n 0x78BC,\n 0x78C5,\n 0x78CA,\n 0x78EC,\n 0x78E7,\n 0x78DA,\n 0x78FD,\n 0x78F4,\n 0x7907,\n 0x7912,\n 0x7911,\n 0x7919,\n 0x792C,\n 0x792B,\n 0x7940,\n 0x7960,\n 0x7957,\n 0x795F,\n 0x795A,\n 0x7955,\n 0x7953,\n 0x797A,\n 0x797F,\n 0x798A,\n 0x799D,\n 0x79A7,\n 0x9F4B,\n 0x79AA,\n 0x79AE,\n 0x79B3,\n 0x79B9,\n 0x79BA,\n 0x79C9,\n 0x79D5,\n 0x79E7,\n 0x79EC,\n 0x79E1,\n 0x79E3,\n 0x7A08,\n 0x7A0D,\n 0x7A18,\n 0x7A19,\n 0x7A20,\n 0x7A1F,\n 0x7980,\n 0x7A31,\n 0x7A3B,\n 0x7A3E,\n 0x7A37,\n 0x7A43,\n 0x7A57,\n 0x7A49,\n 0x7A61,\n 0x7A62,\n 0x7A69,\n 0x9F9D,\n 0x7A70,\n 0x7A79,\n 0x7A7D,\n 0x7A88,\n 0x7A97,\n 0x7A95,\n 0x7A98,\n 0x7A96,\n 0x7AA9,\n 0x7AC8,\n 0x7AB0,\n 0x7AB6,\n 0x7AC5,\n 0x7AC4,\n 0x7ABF,\n 0x9083,\n 0x7AC7,\n 0x7ACA,\n 0x7ACD,\n 0x7ACF,\n 0x7AD5,\n 0x7AD3,\n 0x7AD9,\n 0x7ADA,\n 0x7ADD,\n 0x7AE1,\n 0x7AE2,\n 0x7AE6,\n 0x7AED,\n 0x7AF0,\n 0x7B02,\n 0x7B0F,\n 0x7B0A,\n 0x7B06,\n 0x7B33,\n 0x7B18,\n 0x7B19,\n 0x7B1E,\n 0x7B35,\n 0x7B28,\n 0x7B36,\n 0x7B50,\n 0x7B7A,\n 0x7B04,\n 0x7B4D,\n 0x7B0B,\n 0x7B4C,\n 0x7B45,\n 0x7B75,\n 0x7B65,\n 0x7B74,\n 0x7B67,\n 0x7B70,\n 0x7B71,\n 0x7B6C,\n 0x7B6E,\n 0x7B9D,\n 0x7B98,\n 0x7B9F,\n 0x7B8D,\n 0x7B9C,\n 0x7B9A,\n 0x7B8B,\n 0x7B92,\n 0x7B8F,\n 0x7B5D,\n 0x7B99,\n 0x7BCB,\n 0x7BC1,\n 0x7BCC,\n 0x7BCF,\n 0x7BB4,\n 0x7BC6,\n 0x7BDD,\n 0x7BE9,\n 0x7C11,\n 0x7C14,\n 0x7BE6,\n 0x7BE5,\n 0x7C60,\n 0x7C00,\n 0x7C07,\n 0x7C13,\n 0x7BF3,\n 0x7BF7,\n 0x7C17,\n 0x7C0D,\n 0x7BF6,\n 0x7C23,\n 0x7C27,\n 0x7C2A,\n 0x7C1F,\n 0x7C37,\n 0x7C2B,\n 0x7C3D,\n 0x7C4C,\n 0x7C43,\n 0x7C54,\n 0x7C4F,\n 0x7C40,\n 0x7C50,\n 0x7C58,\n 0x7C5F,\n 0x7C64,\n 0x7C56,\n 0x7C65,\n 0x7C6C,\n 0x7C75,\n 0x7C83,\n 0x7C90,\n 0x7CA4,\n 0x7CAD,\n 0x7CA2,\n 0x7CAB,\n 0x7CA1,\n 0x7CA8,\n 0x7CB3,\n 0x7CB2,\n 0x7CB1,\n 0x7CAE,\n 0x7CB9,\n 0x7CBD,\n 0x7CC0,\n 0x7CC5,\n 0x7CC2,\n 0x7CD8,\n 0x7CD2,\n 0x7CDC,\n 0x7CE2,\n 0x9B3B,\n 0x7CEF,\n 0x7CF2,\n 0x7CF4,\n 0x7CF6,\n 0x7CFA,\n 0x7D06,\n 0x7D02,\n 0x7D1C,\n 0x7D15,\n 0x7D0A,\n 0x7D45,\n 0x7D4B,\n 0x7D2E,\n 0x7D32,\n 0x7D3F,\n 0x7D35,\n 0x7D46,\n 0x7D73,\n 0x7D56,\n 0x7D4E,\n 0x7D72,\n 0x7D68,\n 0x7D6E,\n 0x7D4F,\n 0x7D63,\n 0x7D93,\n 0x7D89,\n 0x7D5B,\n 0x7D8F,\n 0x7D7D,\n 0x7D9B,\n 0x7DBA,\n 0x7DAE,\n 0x7DA3,\n 0x7DB5,\n 0x7DC7,\n 0x7DBD,\n 0x7DAB,\n 0x7E3D,\n 0x7DA2,\n 0x7DAF,\n 0x7DDC,\n 0x7DB8,\n 0x7D9F,\n 0x7DB0,\n 0x7DD8,\n 0x7DDD,\n 0x7DE4,\n 0x7DDE,\n 0x7DFB,\n 0x7DF2,\n 0x7DE1,\n 0x7E05,\n 0x7E0A,\n 0x7E23,\n 0x7E21,\n 0x7E12,\n 0x7E31,\n 0x7E1F,\n 0x7E09,\n 0x7E0B,\n 0x7E22,\n 0x7E46,\n 0x7E66,\n 0x7E3B,\n 0x7E35,\n 0x7E39,\n 0x7E43,\n 0x7E37,\n 0x7E32,\n 0x7E3A,\n 0x7E67,\n 0x7E5D,\n 0x7E56,\n 0x7E5E,\n 0x7E59,\n 0x7E5A,\n 0x7E79,\n 0x7E6A,\n 0x7E69,\n 0x7E7C,\n 0x7E7B,\n 0x7E83,\n 0x7DD5,\n 0x7E7D,\n 0x8FAE,\n 0x7E7F,\n 0x7E88,\n 0x7E89,\n 0x7E8C,\n 0x7E92,\n 0x7E90,\n 0x7E93,\n 0x7E94,\n 0x7E96,\n 0x7E8E,\n 0x7E9B,\n 0x7E9C,\n 0x7F38,\n 0x7F3A,\n 0x7F45,\n 0x7F4C,\n 0x7F4D,\n 0x7F4E,\n 0x7F50,\n 0x7F51,\n 0x7F55,\n 0x7F54,\n 0x7F58,\n 0x7F5F,\n 0x7F60,\n 0x7F68,\n 0x7F69,\n 0x7F67,\n 0x7F78,\n 0x7F82,\n 0x7F86,\n 0x7F83,\n 0x7F88,\n 0x7F87,\n 0x7F8C,\n 0x7F94,\n 0x7F9E,\n 0x7F9D,\n 0x7F9A,\n 0x7FA3,\n 0x7FAF,\n 0x7FB2,\n 0x7FB9,\n 0x7FAE,\n 0x7FB6,\n 0x7FB8,\n 0x8B71,\n 0x7FC5,\n 0x7FC6,\n 0x7FCA,\n 0x7FD5,\n 0x7FD4,\n 0x7FE1,\n 0x7FE6,\n 0x7FE9,\n 0x7FF3,\n 0x7FF9,\n 0x98DC,\n 0x8006,\n 0x8004,\n 0x800B,\n 0x8012,\n 0x8018,\n 0x8019,\n 0x801C,\n 0x8021,\n 0x8028,\n 0x803F,\n 0x803B,\n 0x804A,\n 0x8046,\n 0x8052,\n 0x8058,\n 0x805A,\n 0x805F,\n 0x8062,\n 0x8068,\n 0x8073,\n 0x8072,\n 0x8070,\n 0x8076,\n 0x8079,\n 0x807D,\n 0x807F,\n 0x8084,\n 0x8086,\n 0x8085,\n 0x809B,\n 0x8093,\n 0x809A,\n 0x80AD,\n 0x5190,\n 0x80AC,\n 0x80DB,\n 0x80E5,\n 0x80D9,\n 0x80DD,\n 0x80C4,\n 0x80DA,\n 0x80D6,\n 0x8109,\n 0x80EF,\n 0x80F1,\n 0x811B,\n 0x8129,\n 0x8123,\n 0x812F,\n 0x814B,\n 0x968B,\n 0x8146,\n 0x813E,\n 0x8153,\n 0x8151,\n 0x80FC,\n 0x8171,\n 0x816E,\n 0x8165,\n 0x8166,\n 0x8174,\n 0x8183,\n 0x8188,\n 0x818A,\n 0x8180,\n 0x8182,\n 0x81A0,\n 0x8195,\n 0x81A4,\n 0x81A3,\n 0x815F,\n 0x8193,\n 0x81A9,\n 0x81B0,\n 0x81B5,\n 0x81BE,\n 0x81B8,\n 0x81BD,\n 0x81C0,\n 0x81C2,\n 0x81BA,\n 0x81C9,\n 0x81CD,\n 0x81D1,\n 0x81D9,\n 0x81D8,\n 0x81C8,\n 0x81DA,\n 0x81DF,\n 0x81E0,\n 0x81E7,\n 0x81FA,\n 0x81FB,\n 0x81FE,\n 0x8201,\n 0x8202,\n 0x8205,\n 0x8207,\n 0x820A,\n 0x820D,\n 0x8210,\n 0x8216,\n 0x8229,\n 0x822B,\n 0x8238,\n 0x8233,\n 0x8240,\n 0x8259,\n 0x8258,\n 0x825D,\n 0x825A,\n 0x825F,\n 0x8264,\n 0x8262,\n 0x8268,\n 0x826A,\n 0x826B,\n 0x822E,\n 0x8271,\n 0x8277,\n 0x8278,\n 0x827E,\n 0x828D,\n 0x8292,\n 0x82AB,\n 0x829F,\n 0x82BB,\n 0x82AC,\n 0x82E1,\n 0x82E3,\n 0x82DF,\n 0x82D2,\n 0x82F4,\n 0x82F3,\n 0x82FA,\n 0x8393,\n 0x8303,\n 0x82FB,\n 0x82F9,\n 0x82DE,\n 0x8306,\n 0x82DC,\n 0x8309,\n 0x82D9,\n 0x8335,\n 0x8334,\n 0x8316,\n 0x8332,\n 0x8331,\n 0x8340,\n 0x8339,\n 0x8350,\n 0x8345,\n 0x832F,\n 0x832B,\n 0x8317,\n 0x8318,\n 0x8385,\n 0x839A,\n 0x83AA,\n 0x839F,\n 0x83A2,\n 0x8396,\n 0x8323,\n 0x838E,\n 0x8387,\n 0x838A,\n 0x837C,\n 0x83B5,\n 0x8373,\n 0x8375,\n 0x83A0,\n 0x8389,\n 0x83A8,\n 0x83F4,\n 0x8413,\n 0x83EB,\n 0x83CE,\n 0x83FD,\n 0x8403,\n 0x83D8,\n 0x840B,\n 0x83C1,\n 0x83F7,\n 0x8407,\n 0x83E0,\n 0x83F2,\n 0x840D,\n 0x8422,\n 0x8420,\n 0x83BD,\n 0x8438,\n 0x8506,\n 0x83FB,\n 0x846D,\n 0x842A,\n 0x843C,\n 0x855A,\n 0x8484,\n 0x8477,\n 0x846B,\n 0x84AD,\n 0x846E,\n 0x8482,\n 0x8469,\n 0x8446,\n 0x842C,\n 0x846F,\n 0x8479,\n 0x8435,\n 0x84CA,\n 0x8462,\n 0x84B9,\n 0x84BF,\n 0x849F,\n 0x84D9,\n 0x84CD,\n 0x84BB,\n 0x84DA,\n 0x84D0,\n 0x84C1,\n 0x84C6,\n 0x84D6,\n 0x84A1,\n 0x8521,\n 0x84FF,\n 0x84F4,\n 0x8517,\n 0x8518,\n 0x852C,\n 0x851F,\n 0x8515,\n 0x8514,\n 0x84FC,\n 0x8540,\n 0x8563,\n 0x8558,\n 0x8548,\n 0x8541,\n 0x8602,\n 0x854B,\n 0x8555,\n 0x8580,\n 0x85A4,\n 0x8588,\n 0x8591,\n 0x858A,\n 0x85A8,\n 0x856D,\n 0x8594,\n 0x859B,\n 0x85EA,\n 0x8587,\n 0x859C,\n 0x8577,\n 0x857E,\n 0x8590,\n 0x85C9,\n 0x85BA,\n 0x85CF,\n 0x85B9,\n 0x85D0,\n 0x85D5,\n 0x85DD,\n 0x85E5,\n 0x85DC,\n 0x85F9,\n 0x860A,\n 0x8613,\n 0x860B,\n 0x85FE,\n 0x85FA,\n 0x8606,\n 0x8622,\n 0x861A,\n 0x8630,\n 0x863F,\n 0x864D,\n 0x4E55,\n 0x8654,\n 0x865F,\n 0x8667,\n 0x8671,\n 0x8693,\n 0x86A3,\n 0x86A9,\n 0x86AA,\n 0x868B,\n 0x868C,\n 0x86B6,\n 0x86AF,\n 0x86C4,\n 0x86C6,\n 0x86B0,\n 0x86C9,\n 0x8823,\n 0x86AB,\n 0x86D4,\n 0x86DE,\n 0x86E9,\n 0x86EC,\n 0x86DF,\n 0x86DB,\n 0x86EF,\n 0x8712,\n 0x8706,\n 0x8708,\n 0x8700,\n 0x8703,\n 0x86FB,\n 0x8711,\n 0x8709,\n 0x870D,\n 0x86F9,\n 0x870A,\n 0x8734,\n 0x873F,\n 0x8737,\n 0x873B,\n 0x8725,\n 0x8729,\n 0x871A,\n 0x8760,\n 0x875F,\n 0x8778,\n 0x874C,\n 0x874E,\n 0x8774,\n 0x8757,\n 0x8768,\n 0x876E,\n 0x8759,\n 0x8753,\n 0x8763,\n 0x876A,\n 0x8805,\n 0x87A2,\n 0x879F,\n 0x8782,\n 0x87AF,\n 0x87CB,\n 0x87BD,\n 0x87C0,\n 0x87D0,\n 0x96D6,\n 0x87AB,\n 0x87C4,\n 0x87B3,\n 0x87C7,\n 0x87C6,\n 0x87BB,\n 0x87EF,\n 0x87F2,\n 0x87E0,\n 0x880F,\n 0x880D,\n 0x87FE,\n 0x87F6,\n 0x87F7,\n 0x880E,\n 0x87D2,\n 0x8811,\n 0x8816,\n 0x8815,\n 0x8822,\n 0x8821,\n 0x8831,\n 0x8836,\n 0x8839,\n 0x8827,\n 0x883B,\n 0x8844,\n 0x8842,\n 0x8852,\n 0x8859,\n 0x885E,\n 0x8862,\n 0x886B,\n 0x8881,\n 0x887E,\n 0x889E,\n 0x8875,\n 0x887D,\n 0x88B5,\n 0x8872,\n 0x8882,\n 0x8897,\n 0x8892,\n 0x88AE,\n 0x8899,\n 0x88A2,\n 0x888D,\n 0x88A4,\n 0x88B0,\n 0x88BF,\n 0x88B1,\n 0x88C3,\n 0x88C4,\n 0x88D4,\n 0x88D8,\n 0x88D9,\n 0x88DD,\n 0x88F9,\n 0x8902,\n 0x88FC,\n 0x88F4,\n 0x88E8,\n 0x88F2,\n 0x8904,\n 0x890C,\n 0x890A,\n 0x8913,\n 0x8943,\n 0x891E,\n 0x8925,\n 0x892A,\n 0x892B,\n 0x8941,\n 0x8944,\n 0x893B,\n 0x8936,\n 0x8938,\n 0x894C,\n 0x891D,\n 0x8960,\n 0x895E,\n 0x8966,\n 0x8964,\n 0x896D,\n 0x896A,\n 0x896F,\n 0x8974,\n 0x8977,\n 0x897E,\n 0x8983,\n 0x8988,\n 0x898A,\n 0x8993,\n 0x8998,\n 0x89A1,\n 0x89A9,\n 0x89A6,\n 0x89AC,\n 0x89AF,\n 0x89B2,\n 0x89BA,\n 0x89BD,\n 0x89BF,\n 0x89C0,\n 0x89DA,\n 0x89DC,\n 0x89DD,\n 0x89E7,\n 0x89F4,\n 0x89F8,\n 0x8A03,\n 0x8A16,\n 0x8A10,\n 0x8A0C,\n 0x8A1B,\n 0x8A1D,\n 0x8A25,\n 0x8A36,\n 0x8A41,\n 0x8A5B,\n 0x8A52,\n 0x8A46,\n 0x8A48,\n 0x8A7C,\n 0x8A6D,\n 0x8A6C,\n 0x8A62,\n 0x8A85,\n 0x8A82,\n 0x8A84,\n 0x8AA8,\n 0x8AA1,\n 0x8A91,\n 0x8AA5,\n 0x8AA6,\n 0x8A9A,\n 0x8AA3,\n 0x8AC4,\n 0x8ACD,\n 0x8AC2,\n 0x8ADA,\n 0x8AEB,\n 0x8AF3,\n 0x8AE7,\n 0x8AE4,\n 0x8AF1,\n 0x8B14,\n 0x8AE0,\n 0x8AE2,\n 0x8AF7,\n 0x8ADE,\n 0x8ADB,\n 0x8B0C,\n 0x8B07,\n 0x8B1A,\n 0x8AE1,\n 0x8B16,\n 0x8B10,\n 0x8B17,\n 0x8B20,\n 0x8B33,\n 0x97AB,\n 0x8B26,\n 0x8B2B,\n 0x8B3E,\n 0x8B28,\n 0x8B41,\n 0x8B4C,\n 0x8B4F,\n 0x8B4E,\n 0x8B49,\n 0x8B56,\n 0x8B5B,\n 0x8B5A,\n 0x8B6B,\n 0x8B5F,\n 0x8B6C,\n 0x8B6F,\n 0x8B74,\n 0x8B7D,\n 0x8B80,\n 0x8B8C,\n 0x8B8E,\n 0x8B92,\n 0x8B93,\n 0x8B96,\n 0x8B99,\n 0x8B9A,\n 0x8C3A,\n 0x8C41,\n 0x8C3F,\n 0x8C48,\n 0x8C4C,\n 0x8C4E,\n 0x8C50,\n 0x8C55,\n 0x8C62,\n 0x8C6C,\n 0x8C78,\n 0x8C7A,\n 0x8C82,\n 0x8C89,\n 0x8C85,\n 0x8C8A,\n 0x8C8D,\n 0x8C8E,\n 0x8C94,\n 0x8C7C,\n 0x8C98,\n 0x621D,\n 0x8CAD,\n 0x8CAA,\n 0x8CBD,\n 0x8CB2,\n 0x8CB3,\n 0x8CAE,\n 0x8CB6,\n 0x8CC8,\n 0x8CC1,\n 0x8CE4,\n 0x8CE3,\n 0x8CDA,\n 0x8CFD,\n 0x8CFA,\n 0x8CFB,\n 0x8D04,\n 0x8D05,\n 0x8D0A,\n 0x8D07,\n 0x8D0F,\n 0x8D0D,\n 0x8D10,\n 0x9F4E,\n 0x8D13,\n 0x8CCD,\n 0x8D14,\n 0x8D16,\n 0x8D67,\n 0x8D6D,\n 0x8D71,\n 0x8D73,\n 0x8D81,\n 0x8D99,\n 0x8DC2,\n 0x8DBE,\n 0x8DBA,\n 0x8DCF,\n 0x8DDA,\n 0x8DD6,\n 0x8DCC,\n 0x8DDB,\n 0x8DCB,\n 0x8DEA,\n 0x8DEB,\n 0x8DDF,\n 0x8DE3,\n 0x8DFC,\n 0x8E08,\n 0x8E09,\n 0x8DFF,\n 0x8E1D,\n 0x8E1E,\n 0x8E10,\n 0x8E1F,\n 0x8E42,\n 0x8E35,\n 0x8E30,\n 0x8E34,\n 0x8E4A,\n 0x8E47,\n 0x8E49,\n 0x8E4C,\n 0x8E50,\n 0x8E48,\n 0x8E59,\n 0x8E64,\n 0x8E60,\n 0x8E2A,\n 0x8E63,\n 0x8E55,\n 0x8E76,\n 0x8E72,\n 0x8E7C,\n 0x8E81,\n 0x8E87,\n 0x8E85,\n 0x8E84,\n 0x8E8B,\n 0x8E8A,\n 0x8E93,\n 0x8E91,\n 0x8E94,\n 0x8E99,\n 0x8EAA,\n 0x8EA1,\n 0x8EAC,\n 0x8EB0,\n 0x8EC6,\n 0x8EB1,\n 0x8EBE,\n 0x8EC5,\n 0x8EC8,\n 0x8ECB,\n 0x8EDB,\n 0x8EE3,\n 0x8EFC,\n 0x8EFB,\n 0x8EEB,\n 0x8EFE,\n 0x8F0A,\n 0x8F05,\n 0x8F15,\n 0x8F12,\n 0x8F19,\n 0x8F13,\n 0x8F1C,\n 0x8F1F,\n 0x8F1B,\n 0x8F0C,\n 0x8F26,\n 0x8F33,\n 0x8F3B,\n 0x8F39,\n 0x8F45,\n 0x8F42,\n 0x8F3E,\n 0x8F4C,\n 0x8F49,\n 0x8F46,\n 0x8F4E,\n 0x8F57,\n 0x8F5C,\n 0x8F62,\n 0x8F63,\n 0x8F64,\n 0x8F9C,\n 0x8F9F,\n 0x8FA3,\n 0x8FAD,\n 0x8FAF,\n 0x8FB7,\n 0x8FDA,\n 0x8FE5,\n 0x8FE2,\n 0x8FEA,\n 0x8FEF,\n 0x9087,\n 0x8FF4,\n 0x9005,\n 0x8FF9,\n 0x8FFA,\n 0x9011,\n 0x9015,\n 0x9021,\n 0x900D,\n 0x901E,\n 0x9016,\n 0x900B,\n 0x9027,\n 0x9036,\n 0x9035,\n 0x9039,\n 0x8FF8,\n 0x904F,\n 0x9050,\n 0x9051,\n 0x9052,\n 0x900E,\n 0x9049,\n 0x903E,\n 0x9056,\n 0x9058,\n 0x905E,\n 0x9068,\n 0x906F,\n 0x9076,\n 0x96A8,\n 0x9072,\n 0x9082,\n 0x907D,\n 0x9081,\n 0x9080,\n 0x908A,\n 0x9089,\n 0x908F,\n 0x90A8,\n 0x90AF,\n 0x90B1,\n 0x90B5,\n 0x90E2,\n 0x90E4,\n 0x6248,\n 0x90DB,\n 0x9102,\n 0x9112,\n 0x9119,\n 0x9132,\n 0x9130,\n 0x914A,\n 0x9156,\n 0x9158,\n 0x9163,\n 0x9165,\n 0x9169,\n 0x9173,\n 0x9172,\n 0x918B,\n 0x9189,\n 0x9182,\n 0x91A2,\n 0x91AB,\n 0x91AF,\n 0x91AA,\n 0x91B5,\n 0x91B4,\n 0x91BA,\n 0x91C0,\n 0x91C1,\n 0x91C9,\n 0x91CB,\n 0x91D0,\n 0x91D6,\n 0x91DF,\n 0x91E1,\n 0x91DB,\n 0x91FC,\n 0x91F5,\n 0x91F6,\n 0x921E,\n 0x91FF,\n 0x9214,\n 0x922C,\n 0x9215,\n 0x9211,\n 0x925E,\n 0x9257,\n 0x9245,\n 0x9249,\n 0x9264,\n 0x9248,\n 0x9295,\n 0x923F,\n 0x924B,\n 0x9250,\n 0x929C,\n 0x9296,\n 0x9293,\n 0x929B,\n 0x925A,\n 0x92CF,\n 0x92B9,\n 0x92B7,\n 0x92E9,\n 0x930F,\n 0x92FA,\n 0x9344,\n 0x932E,\n 0x9319,\n 0x9322,\n 0x931A,\n 0x9323,\n 0x933A,\n 0x9335,\n 0x933B,\n 0x935C,\n 0x9360,\n 0x937C,\n 0x936E,\n 0x9356,\n 0x93B0,\n 0x93AC,\n 0x93AD,\n 0x9394,\n 0x93B9,\n 0x93D6,\n 0x93D7,\n 0x93E8,\n 0x93E5,\n 0x93D8,\n 0x93C3,\n 0x93DD,\n 0x93D0,\n 0x93C8,\n 0x93E4,\n 0x941A,\n 0x9414,\n 0x9413,\n 0x9403,\n 0x9407,\n 0x9410,\n 0x9436,\n 0x942B,\n 0x9435,\n 0x9421,\n 0x943A,\n 0x9441,\n 0x9452,\n 0x9444,\n 0x945B,\n 0x9460,\n 0x9462,\n 0x945E,\n 0x946A,\n 0x9229,\n 0x9470,\n 0x9475,\n 0x9477,\n 0x947D,\n 0x945A,\n 0x947C,\n 0x947E,\n 0x9481,\n 0x947F,\n 0x9582,\n 0x9587,\n 0x958A,\n 0x9594,\n 0x9596,\n 0x9598,\n 0x9599,\n 0x95A0,\n 0x95A8,\n 0x95A7,\n 0x95AD,\n 0x95BC,\n 0x95BB,\n 0x95B9,\n 0x95BE,\n 0x95CA,\n 0x6FF6,\n 0x95C3,\n 0x95CD,\n 0x95CC,\n 0x95D5,\n 0x95D4,\n 0x95D6,\n 0x95DC,\n 0x95E1,\n 0x95E5,\n 0x95E2,\n 0x9621,\n 0x9628,\n 0x962E,\n 0x962F,\n 0x9642,\n 0x964C,\n 0x964F,\n 0x964B,\n 0x9677,\n 0x965C,\n 0x965E,\n 0x965D,\n 0x965F,\n 0x9666,\n 0x9672,\n 0x966C,\n 0x968D,\n 0x9698,\n 0x9695,\n 0x9697,\n 0x96AA,\n 0x96A7,\n 0x96B1,\n 0x96B2,\n 0x96B0,\n 0x96B4,\n 0x96B6,\n 0x96B8,\n 0x96B9,\n 0x96CE,\n 0x96CB,\n 0x96C9,\n 0x96CD,\n 0x894D,\n 0x96DC,\n 0x970D,\n 0x96D5,\n 0x96F9,\n 0x9704,\n 0x9706,\n 0x9708,\n 0x9713,\n 0x970E,\n 0x9711,\n 0x970F,\n 0x9716,\n 0x9719,\n 0x9724,\n 0x972A,\n 0x9730,\n 0x9739,\n 0x973D,\n 0x973E,\n 0x9744,\n 0x9746,\n 0x9748,\n 0x9742,\n 0x9749,\n 0x975C,\n 0x9760,\n 0x9764,\n 0x9766,\n 0x9768,\n 0x52D2,\n 0x976B,\n 0x9771,\n 0x9779,\n 0x9785,\n 0x977C,\n 0x9781,\n 0x977A,\n 0x9786,\n 0x978B,\n 0x978F,\n 0x9790,\n 0x979C,\n 0x97A8,\n 0x97A6,\n 0x97A3,\n 0x97B3,\n 0x97B4,\n 0x97C3,\n 0x97C6,\n 0x97C8,\n 0x97CB,\n 0x97DC,\n 0x97ED,\n 0x9F4F,\n 0x97F2,\n 0x7ADF,\n 0x97F6,\n 0x97F5,\n 0x980F,\n 0x980C,\n 0x9838,\n 0x9824,\n 0x9821,\n 0x9837,\n 0x983D,\n 0x9846,\n 0x984F,\n 0x984B,\n 0x986B,\n 0x986F,\n 0x9870,\n 0x9871,\n 0x9874,\n 0x9873,\n 0x98AA,\n 0x98AF,\n 0x98B1,\n 0x98B6,\n 0x98C4,\n 0x98C3,\n 0x98C6,\n 0x98E9,\n 0x98EB,\n 0x9903,\n 0x9909,\n 0x9912,\n 0x9914,\n 0x9918,\n 0x9921,\n 0x991D,\n 0x991E,\n 0x9924,\n 0x9920,\n 0x992C,\n 0x992E,\n 0x993D,\n 0x993E,\n 0x9942,\n 0x9949,\n 0x9945,\n 0x9950,\n 0x994B,\n 0x9951,\n 0x9952,\n 0x994C,\n 0x9955,\n 0x9997,\n 0x9998,\n 0x99A5,\n 0x99AD,\n 0x99AE,\n 0x99BC,\n 0x99DF,\n 0x99DB,\n 0x99DD,\n 0x99D8,\n 0x99D1,\n 0x99ED,\n 0x99EE,\n 0x99F1,\n 0x99F2,\n 0x99FB,\n 0x99F8,\n 0x9A01,\n 0x9A0F,\n 0x9A05,\n 0x99E2,\n 0x9A19,\n 0x9A2B,\n 0x9A37,\n 0x9A45,\n 0x9A42,\n 0x9A40,\n 0x9A43,\n 0x9A3E,\n 0x9A55,\n 0x9A4D,\n 0x9A5B,\n 0x9A57,\n 0x9A5F,\n 0x9A62,\n 0x9A65,\n 0x9A64,\n 0x9A69,\n 0x9A6B,\n 0x9A6A,\n 0x9AAD,\n 0x9AB0,\n 0x9ABC,\n 0x9AC0,\n 0x9ACF,\n 0x9AD1,\n 0x9AD3,\n 0x9AD4,\n 0x9ADE,\n 0x9ADF,\n 0x9AE2,\n 0x9AE3,\n 0x9AE6,\n 0x9AEF,\n 0x9AEB,\n 0x9AEE,\n 0x9AF4,\n 0x9AF1,\n 0x9AF7,\n 0x9AFB,\n 0x9B06,\n 0x9B18,\n 0x9B1A,\n 0x9B1F,\n 0x9B22,\n 0x9B23,\n 0x9B25,\n 0x9B27,\n 0x9B28,\n 0x9B29,\n 0x9B2A,\n 0x9B2E,\n 0x9B2F,\n 0x9B32,\n 0x9B44,\n 0x9B43,\n 0x9B4F,\n 0x9B4D,\n 0x9B4E,\n 0x9B51,\n 0x9B58,\n 0x9B74,\n 0x9B93,\n 0x9B83,\n 0x9B91,\n 0x9B96,\n 0x9B97,\n 0x9B9F,\n 0x9BA0,\n 0x9BA8,\n 0x9BB4,\n 0x9BC0,\n 0x9BCA,\n 0x9BB9,\n 0x9BC6,\n 0x9BCF,\n 0x9BD1,\n 0x9BD2,\n 0x9BE3,\n 0x9BE2,\n 0x9BE4,\n 0x9BD4,\n 0x9BE1,\n 0x9C3A,\n 0x9BF2,\n 0x9BF1,\n 0x9BF0,\n 0x9C15,\n 0x9C14,\n 0x9C09,\n 0x9C13,\n 0x9C0C,\n 0x9C06,\n 0x9C08,\n 0x9C12,\n 0x9C0A,\n 0x9C04,\n 0x9C2E,\n 0x9C1B,\n 0x9C25,\n 0x9C24,\n 0x9C21,\n 0x9C30,\n 0x9C47,\n 0x9C32,\n 0x9C46,\n 0x9C3E,\n 0x9C5A,\n 0x9C60,\n 0x9C67,\n 0x9C76,\n 0x9C78,\n 0x9CE7,\n 0x9CEC,\n 0x9CF0,\n 0x9D09,\n 0x9D08,\n 0x9CEB,\n 0x9D03,\n 0x9D06,\n 0x9D2A,\n 0x9D26,\n 0x9DAF,\n 0x9D23,\n 0x9D1F,\n 0x9D44,\n 0x9D15,\n 0x9D12,\n 0x9D41,\n 0x9D3F,\n 0x9D3E,\n 0x9D46,\n 0x9D48,\n 0x9D5D,\n 0x9D5E,\n 0x9D64,\n 0x9D51,\n 0x9D50,\n 0x9D59,\n 0x9D72,\n 0x9D89,\n 0x9D87,\n 0x9DAB,\n 0x9D6F,\n 0x9D7A,\n 0x9D9A,\n 0x9DA4,\n 0x9DA9,\n 0x9DB2,\n 0x9DC4,\n 0x9DC1,\n 0x9DBB,\n 0x9DB8,\n 0x9DBA,\n 0x9DC6,\n 0x9DCF,\n 0x9DC2,\n 0x9DD9,\n 0x9DD3,\n 0x9DF8,\n 0x9DE6,\n 0x9DED,\n 0x9DEF,\n 0x9DFD,\n 0x9E1A,\n 0x9E1B,\n 0x9E1E,\n 0x9E75,\n 0x9E79,\n 0x9E7D,\n 0x9E81,\n 0x9E88,\n 0x9E8B,\n 0x9E8C,\n 0x9E92,\n 0x9E95,\n 0x9E91,\n 0x9E9D,\n 0x9EA5,\n 0x9EA9,\n 0x9EB8,\n 0x9EAA,\n 0x9EAD,\n 0x9761,\n 0x9ECC,\n 0x9ECE,\n 0x9ECF,\n 0x9ED0,\n 0x9ED4,\n 0x9EDC,\n 0x9EDE,\n 0x9EDD,\n 0x9EE0,\n 0x9EE5,\n 0x9EE8,\n 0x9EEF,\n 0x9EF4,\n 0x9EF6,\n 0x9EF7,\n 0x9EF9,\n 0x9EFB,\n 0x9EFC,\n 0x9EFD,\n 0x9F07,\n 0x9F08,\n 0x76B7,\n 0x9F15,\n 0x9F21,\n 0x9F2C,\n 0x9F3E,\n 0x9F4A,\n 0x9F52,\n 0x9F54,\n 0x9F63,\n 0x9F5F,\n 0x9F60,\n 0x9F61,\n 0x9F66,\n 0x9F67,\n 0x9F6C,\n 0x9F6A,\n 0x9F77,\n 0x9F72,\n 0x9F76,\n 0x9F95,\n 0x9F9C,\n 0x9FA0,\n 0x582F,\n 0x69C7,\n 0x9059,\n 0x7464,\n 0x51DC,\n 0x7199,\n 0x5653,\n 0x5DE2,\n 0x5E14,\n 0x5E18,\n 0x5E58,\n 0x5E5E,\n 0x5EBE,\n 0xF928,\n 0x5ECB,\n 0x5EF9,\n 0x5F00,\n 0x5F02,\n 0x5F07,\n 0x5F1D,\n 0x5F23,\n 0x5F34,\n 0x5F36,\n 0x5F3D,\n 0x5F40,\n 0x5F45,\n 0x5F54,\n 0x5F58,\n 0x5F64,\n 0x5F67,\n 0x5F7D,\n 0x5F89,\n 0x5F9C,\n 0x5FA7,\n 0x5FAF,\n 0x5FB5,\n 0x5FB7,\n 0x5FC9,\n 0x5FDE,\n 0x5FE1,\n 0x5FE9,\n 0x600D,\n 0x6014,\n 0x6018,\n 0x6033,\n 0x6035,\n 0x6047,\n 0xFA3D,\n 0x609D,\n 0x609E,\n 0x60CB,\n 0x60D4,\n 0x60D5,\n 0x60DD,\n 0x60F8,\n 0x611C,\n 0x612B,\n 0x6130,\n 0x6137,\n 0xFA3E,\n 0x618D,\n 0xFA3F,\n 0x61BC,\n 0x61B9,\n 0xFA40,\n 0x6222,\n 0x623E,\n 0x6243,\n 0x6256,\n 0x625A,\n 0x626F,\n 0x6285,\n 0x62C4,\n 0x62D6,\n 0x62FC,\n];\n\nexport default array4;\n","const array5 = [\n 0x630A,\n 0x6318,\n 0x6339,\n 0x6343,\n 0x6365,\n 0x637C,\n 0x63E5,\n 0x63ED,\n 0x63F5,\n 0x6410,\n 0x6414,\n 0x6422,\n 0x6479,\n 0x6451,\n 0x6460,\n 0x646D,\n 0x64CE,\n 0x64BE,\n 0x64BF,\n 0x64C4,\n 0x64CA,\n 0x64D0,\n 0x64F7,\n 0x64FB,\n 0x6522,\n 0x6529,\n 0xFA41,\n 0x6567,\n 0x659D,\n 0xFA42,\n 0x6600,\n 0x6609,\n 0x6615,\n 0x661E,\n 0x663A,\n 0x6622,\n 0x6624,\n 0x662B,\n 0x6630,\n 0x6631,\n 0x6633,\n 0x66FB,\n 0x6648,\n 0x664C,\n 0x231C4,\n 0x6659,\n 0x665A,\n 0x6661,\n 0x6665,\n 0x6673,\n 0x6677,\n 0x6678,\n 0x668D,\n 0xFA43,\n 0x66A0,\n 0x66B2,\n 0x66BB,\n 0x66C6,\n 0x66C8,\n 0x3B22,\n 0x66DB,\n 0x66E8,\n 0x66FA,\n 0x6713,\n 0xF929,\n 0x6733,\n 0x6766,\n 0x6747,\n 0x6748,\n 0x677B,\n 0x6781,\n 0x6793,\n 0x6798,\n 0x679B,\n 0x67BB,\n 0x67F9,\n 0x67C0,\n 0x67D7,\n 0x67FC,\n 0x6801,\n 0x6852,\n 0x681D,\n 0x682C,\n 0x6831,\n 0x685B,\n 0x6872,\n 0x6875,\n 0xFA44,\n 0x68A3,\n 0x68A5,\n 0x68B2,\n 0x68C8,\n 0x68D0,\n 0x68E8,\n 0x68ED,\n 0x68F0,\n 0x68F1,\n 0x68FC,\n 0x690A,\n 0x6949,\n 0x235C4,\n 0x6935,\n 0x6942,\n 0x6957,\n 0x6963,\n 0x6964,\n 0x6968,\n 0x6980,\n 0xFA14,\n 0x69A5,\n 0x69AD,\n 0x69CF,\n 0x3BB6,\n 0x3BC3,\n 0x69E2,\n 0x69E9,\n 0x69EA,\n 0x69F5,\n 0x69F6,\n 0x6A0F,\n 0x6A15,\n 0x2373F,\n 0x6A3B,\n 0x6A3E,\n 0x6A45,\n 0x6A50,\n 0x6A56,\n 0x6A5B,\n 0x6A6B,\n 0x6A73,\n 0x23763,\n 0x6A89,\n 0x6A94,\n 0x6A9D,\n 0x6A9E,\n 0x6AA5,\n 0x6AE4,\n 0x6AE7,\n 0x3C0F,\n 0xF91D,\n 0x6B1B,\n 0x6B1E,\n 0x6B2C,\n 0x6B35,\n 0x6B46,\n 0x6B56,\n 0x6B60,\n 0x6B65,\n 0x6B67,\n 0x6B77,\n 0x6B82,\n 0x6BA9,\n 0x6BAD,\n 0xF970,\n 0x6BCF,\n 0x6BD6,\n 0x6BD7,\n 0x6BFF,\n 0x6C05,\n 0x6C10,\n 0x6C33,\n 0x6C59,\n 0x6C5C,\n 0x6CAA,\n 0x6C74,\n 0x6C76,\n 0x6C85,\n 0x6C86,\n 0x6C98,\n 0x6C9C,\n 0x6CFB,\n 0x6CC6,\n 0x6CD4,\n 0x6CE0,\n 0x6CEB,\n 0x6CEE,\n 0x23CFE,\n 0x6D04,\n 0x6D0E,\n 0x6D2E,\n 0x6D31,\n 0x6D39,\n 0x6D3F,\n 0x6D58,\n 0x6D65,\n 0xFA45,\n 0x6D82,\n 0x6D87,\n 0x6D89,\n 0x6D94,\n 0x6DAA,\n 0x6DAC,\n 0x6DBF,\n 0x6DC4,\n 0x6DD6,\n 0x6DDA,\n 0x6DDB,\n 0x6DDD,\n 0x6DFC,\n 0xFA46,\n 0x6E34,\n 0x6E44,\n 0x6E5C,\n 0x6E5E,\n 0x6EAB,\n 0x6EB1,\n 0x6EC1,\n 0x6EC7,\n 0x6ECE,\n 0x6F10,\n 0x6F1A,\n 0xFA47,\n 0x6F2A,\n 0x6F2F,\n 0x6F33,\n 0x6F51,\n 0x6F59,\n 0x6F5E,\n 0x6F61,\n 0x6F62,\n 0x6F7E,\n 0x6F88,\n 0x6F8C,\n 0x6F8D,\n 0x6F94,\n 0x6FA0,\n 0x6FA7,\n 0x6FB6,\n 0x6FBC,\n 0x6FC7,\n 0x6FCA,\n 0x6FF9,\n 0x6FF0,\n 0x6FF5,\n 0x7005,\n 0x7006,\n 0x7028,\n 0x704A,\n 0x705D,\n 0x705E,\n 0x704E,\n 0x7064,\n 0x7075,\n 0x7085,\n 0x70A4,\n 0x70AB,\n 0x70B7,\n 0x70D4,\n 0x70D8,\n 0x70E4,\n 0x710F,\n 0x712B,\n 0x711E,\n 0x7120,\n 0x712E,\n 0x7130,\n 0x7146,\n 0x7147,\n 0x7151,\n 0xFA48,\n 0x7152,\n 0x715C,\n 0x7160,\n 0x7168,\n 0xFA15,\n 0x7185,\n 0x7187,\n 0x7192,\n 0x71C1,\n 0x71BA,\n 0x71C4,\n 0x71FE,\n 0x7200,\n 0x7215,\n 0x7255,\n 0x7256,\n 0x3E3F,\n 0x728D,\n 0x729B,\n 0x72BE,\n 0x72C0,\n 0x72FB,\n 0x247F1,\n 0x7327,\n 0x7328,\n 0xFA16,\n 0x7350,\n 0x7366,\n 0x737C,\n 0x7395,\n 0x739F,\n 0x73A0,\n 0x73A2,\n 0x73A6,\n 0x73AB,\n 0x73C9,\n 0x73CF,\n 0x73D6,\n 0x73D9,\n 0x73E3,\n 0x73E9,\n 0x7407,\n 0x740A,\n 0x741A,\n 0x741B,\n 0xFA4A,\n 0x7426,\n 0x7428,\n 0x742A,\n 0x742B,\n 0x742C,\n 0x742E,\n 0x742F,\n 0x7430,\n 0x7444,\n 0x7446,\n 0x7447,\n 0x744B,\n 0x7457,\n 0x7462,\n 0x746B,\n 0x746D,\n 0x7486,\n 0x7487,\n 0x7489,\n 0x7498,\n 0x749C,\n 0x749F,\n 0x74A3,\n 0x7490,\n 0x74A6,\n 0x74A8,\n 0x74A9,\n 0x74B5,\n 0x74BF,\n 0x74C8,\n 0x74C9,\n 0x74DA,\n 0x74FF,\n 0x7501,\n 0x7517,\n 0x752F,\n 0x756F,\n 0x7579,\n 0x7592,\n 0x3F72,\n 0x75CE,\n 0x75E4,\n 0x7600,\n 0x7602,\n 0x7608,\n 0x7615,\n 0x7616,\n 0x7619,\n 0x761E,\n 0x762D,\n 0x7635,\n 0x7643,\n 0x764B,\n 0x7664,\n 0x7665,\n 0x766D,\n 0x766F,\n 0x7671,\n 0x7681,\n 0x769B,\n 0x769D,\n 0x769E,\n 0x76A6,\n 0x76AA,\n 0x76B6,\n 0x76C5,\n 0x76CC,\n 0x76CE,\n 0x76D4,\n 0x76E6,\n 0x76F1,\n 0x76FC,\n 0x770A,\n 0x7719,\n 0x7734,\n 0x7736,\n 0x7746,\n 0x774D,\n 0x774E,\n 0x775C,\n 0x775F,\n 0x7762,\n 0x777A,\n 0x7780,\n 0x7794,\n 0x77AA,\n 0x77E0,\n 0x782D,\n 0x2548E,\n 0x7843,\n 0x784E,\n 0x784F,\n 0x7851,\n 0x7868,\n 0x786E,\n 0xFA4B,\n 0x78B0,\n 0x2550E,\n 0x78AD,\n 0x78E4,\n 0x78F2,\n 0x7900,\n 0x78F7,\n 0x791C,\n 0x792E,\n 0x7931,\n 0x7934,\n 0xFA4C,\n 0xFA4D,\n 0x7945,\n 0x7946,\n 0xFA4E,\n 0xFA4F,\n 0xFA50,\n 0x795C,\n 0xFA51,\n 0xFA19,\n 0xFA1A,\n 0x7979,\n 0xFA52,\n 0xFA53,\n 0xFA1B,\n 0x7998,\n 0x79B1,\n 0x79B8,\n 0x79C8,\n 0x79CA,\n 0x25771,\n 0x79D4,\n 0x79DE,\n 0x79EB,\n 0x79ED,\n 0x7A03,\n 0xFA54,\n 0x7A39,\n 0x7A5D,\n 0x7A6D,\n 0xFA55,\n 0x7A85,\n 0x7AA0,\n 0x259C4,\n 0x7AB3,\n 0x7ABB,\n 0x7ACE,\n 0x7AEB,\n 0x7AFD,\n 0x7B12,\n 0x7B2D,\n 0x7B3B,\n 0x7B47,\n 0x7B4E,\n 0x7B60,\n 0x7B6D,\n 0x7B6F,\n 0x7B72,\n 0x7B9E,\n 0xFA56,\n 0x7BD7,\n 0x7BD9,\n 0x7C01,\n 0x7C31,\n 0x7C1E,\n 0x7C20,\n 0x7C33,\n 0x7C36,\n 0x4264,\n 0x25DA1,\n 0x7C59,\n 0x7C6D,\n 0x7C79,\n 0x7C8F,\n 0x7C94,\n 0x7CA0,\n 0x7CBC,\n 0x7CD5,\n 0x7CD9,\n 0x7CDD,\n 0x7D07,\n 0x7D08,\n 0x7D13,\n 0x7D1D,\n 0x7D23,\n 0x7D31,\n 0x7D41,\n 0x7D48,\n 0x7D53,\n 0x7D5C,\n 0x7D7A,\n 0x7D83,\n 0x7D8B,\n 0x7DA0,\n 0x7DA6,\n 0x7DC2,\n 0x7DCC,\n 0x7DD6,\n 0x7DE3,\n 0xFA57,\n 0x7E28,\n 0x7E08,\n 0x7E11,\n 0x7E15,\n 0xFA59,\n 0x7E47,\n 0x7E52,\n 0x7E61,\n 0x7E8A,\n 0x7E8D,\n 0x7F47,\n 0xFA5A,\n 0x7F91,\n 0x7F97,\n 0x7FBF,\n 0x7FCE,\n 0x7FDB,\n 0x7FDF,\n 0x7FEC,\n 0x7FEE,\n 0x7FFA,\n 0xFA5B,\n 0x8014,\n 0x8026,\n 0x8035,\n 0x8037,\n 0x803C,\n 0x80CA,\n 0x80D7,\n 0x80E0,\n 0x80F3,\n 0x8118,\n 0x814A,\n 0x8160,\n 0x8167,\n 0x8168,\n 0x816D,\n 0x81BB,\n 0x81CA,\n 0x81CF,\n 0x81D7,\n 0xFA5C,\n 0x4453,\n 0x445B,\n 0x8260,\n 0x8274,\n 0x26AFF,\n 0x828E,\n 0x82A1,\n 0x82A3,\n 0x82A4,\n 0x82A9,\n 0x82AE,\n 0x82B7,\n 0x82BE,\n 0x82BF,\n 0x82C6,\n 0x82D5,\n 0x82FD,\n 0x82FE,\n 0x8300,\n 0x8301,\n 0x8362,\n 0x8322,\n 0x832D,\n 0x833A,\n 0x8343,\n 0x8347,\n 0x8351,\n 0x8355,\n 0x837D,\n 0x8386,\n 0x8392,\n 0x8398,\n 0x83A7,\n 0x83A9,\n 0x83BF,\n 0x83C0,\n 0x83C7,\n 0x83CF,\n 0x83D1,\n 0x83E1,\n 0x83EA,\n 0x8401,\n 0x8406,\n 0x840A,\n 0xFA5F,\n 0x8448,\n 0x845F,\n 0x8470,\n 0x8473,\n 0x8485,\n 0x849E,\n 0x84AF,\n 0x84B4,\n 0x84BA,\n 0x84C0,\n 0x84C2,\n 0x26E40,\n 0x8532,\n 0x851E,\n 0x8523,\n 0x852F,\n 0x8559,\n 0x8564,\n 0xFA1F,\n 0x85AD,\n 0x857A,\n 0x858C,\n 0x858F,\n 0x85A2,\n 0x85B0,\n 0x85CB,\n 0x85CE,\n 0x85ED,\n 0x8612,\n 0x85FF,\n 0x8604,\n 0x8605,\n 0x8610,\n 0x270F4,\n 0x8618,\n 0x8629,\n 0x8638,\n 0x8657,\n 0x865B,\n 0xF936,\n 0x8662,\n 0x459D,\n 0x866C,\n 0x8675,\n 0x8698,\n 0x86B8,\n 0x86FA,\n 0x86FC,\n 0x86FD,\n 0x870B,\n 0x8771,\n 0x8787,\n 0x8788,\n 0x87AC,\n 0x87AD,\n 0x87B5,\n 0x45EA,\n 0x87D6,\n 0x87EC,\n 0x8806,\n 0x880A,\n 0x8810,\n 0x8814,\n 0x881F,\n 0x8898,\n 0x88AA,\n 0x88CA,\n 0x88CE,\n 0x27684,\n 0x88F5,\n 0x891C,\n 0xFA60,\n 0x8918,\n 0x8919,\n 0x891A,\n 0x8927,\n 0x8930,\n 0x8932,\n 0x8939,\n 0x8940,\n 0x8994,\n 0xFA61,\n 0x89D4,\n 0x89E5,\n 0x89F6,\n 0x8A12,\n 0x8A15,\n 0x8A22,\n 0x8A37,\n 0x8A47,\n 0x8A4E,\n 0x8A5D,\n 0x8A61,\n 0x8A75,\n 0x8A79,\n 0x8AA7,\n 0x8AD0,\n 0x8ADF,\n 0x8AF4,\n 0x8AF6,\n 0xFA22,\n 0xFA62,\n 0xFA63,\n 0x8B46,\n 0x8B54,\n 0x8B59,\n 0x8B69,\n 0x8B9D,\n 0x8C49,\n 0x8C68,\n 0xFA64,\n 0x8CE1,\n 0x8CF4,\n 0x8CF8,\n 0x8CFE,\n 0xFA65,\n 0x8D12,\n 0x8D1B,\n 0x8DAF,\n 0x8DCE,\n 0x8DD1,\n 0x8DD7,\n 0x8E20,\n 0x8E23,\n 0x8E3D,\n 0x8E70,\n 0x8E7B,\n 0x28277,\n 0x8EC0,\n 0x4844,\n 0x8EFA,\n 0x8F1E,\n 0x8F2D,\n 0x8F36,\n 0x8F54,\n 0x283CD,\n 0x8FA6,\n 0x8FB5,\n 0x8FE4,\n 0x8FE8,\n 0x8FEE,\n 0x9008,\n 0x902D,\n 0xFA67,\n 0x9088,\n 0x9095,\n 0x9097,\n 0x9099,\n 0x909B,\n 0x90A2,\n 0x90B3,\n 0x90BE,\n 0x90C4,\n 0x90C5,\n 0x90C7,\n 0x90D7,\n 0x90DD,\n 0x90DE,\n 0x90EF,\n 0x90F4,\n 0xFA26,\n 0x9114,\n 0x9115,\n 0x9116,\n 0x9122,\n 0x9123,\n 0x9127,\n 0x912F,\n 0x9131,\n 0x9134,\n 0x913D,\n 0x9148,\n 0x915B,\n 0x9183,\n 0x919E,\n 0x91AC,\n 0x91B1,\n 0x91BC,\n 0x91D7,\n 0x91FB,\n 0x91E4,\n 0x91E5,\n 0x91ED,\n 0x91F1,\n 0x9207,\n 0x9210,\n 0x9238,\n 0x9239,\n 0x923A,\n 0x923C,\n 0x9240,\n 0x9243,\n 0x924F,\n 0x9278,\n 0x9288,\n 0x92C2,\n 0x92CB,\n 0x92CC,\n 0x92D3,\n 0x92E0,\n 0x92FF,\n 0x9304,\n 0x931F,\n 0x9321,\n 0x9325,\n 0x9348,\n 0x9349,\n 0x934A,\n 0x9364,\n 0x9365,\n 0x936A,\n 0x9370,\n 0x939B,\n 0x93A3,\n 0x93BA,\n 0x93C6,\n 0x93DE,\n 0x93DF,\n 0x9404,\n 0x93FD,\n 0x9433,\n 0x944A,\n 0x9463,\n 0x946B,\n 0x9471,\n 0x9472,\n 0x958E,\n 0x959F,\n 0x95A6,\n 0x95A9,\n 0x95AC,\n 0x95B6,\n 0x95BD,\n 0x95CB,\n 0x95D0,\n 0x95D3,\n 0x49B0,\n 0x95DA,\n 0x95DE,\n 0x9658,\n 0x9684,\n 0xF9DC,\n 0x969D,\n 0x96A4,\n 0x96A5,\n 0x96D2,\n 0x96DE,\n 0xFA68,\n 0x96E9,\n 0x96EF,\n 0x9733,\n 0x973B,\n 0x974D,\n 0x974E,\n 0x974F,\n 0x975A,\n 0x976E,\n 0x9773,\n 0x9795,\n 0x97AE,\n 0x97BA,\n 0x97C1,\n 0x97C9,\n 0x97DE,\n 0x97DB,\n 0x97F4,\n 0xFA69,\n 0x980A,\n 0x981E,\n 0x982B,\n 0x9830,\n 0xFA6A,\n 0x9852,\n 0x9853,\n 0x9856,\n 0x9857,\n 0x9859,\n 0x985A,\n 0xF9D0,\n 0x9865,\n 0x986C,\n 0x98BA,\n 0x98C8,\n 0x98E7,\n 0x9958,\n 0x999E,\n 0x9A02,\n 0x9A03,\n 0x9A24,\n 0x9A2D,\n 0x9A2E,\n 0x9A38,\n 0x9A4A,\n 0x9A4E,\n 0x9A52,\n 0x9AB6,\n 0x9AC1,\n 0x9AC3,\n 0x9ACE,\n 0x9AD6,\n 0x9AF9,\n 0x9B02,\n 0x9B08,\n 0x9B20,\n 0x4C17,\n 0x9B2D,\n 0x9B5E,\n 0x9B79,\n 0x9B66,\n 0x9B72,\n 0x9B75,\n 0x9B84,\n 0x9B8A,\n 0x9B8F,\n 0x9B9E,\n 0x9BA7,\n 0x9BC1,\n 0x9BCE,\n 0x9BE5,\n 0x9BF8,\n 0x9BFD,\n 0x9C00,\n 0x9C23,\n 0x9C41,\n 0x9C4F,\n 0x9C50,\n 0x9C53,\n 0x9C63,\n 0x9C65,\n 0x9C77,\n 0x9D1D,\n 0x9D1E,\n 0x9D43,\n 0x9D47,\n 0x9D52,\n 0x9D63,\n 0x9D70,\n 0x9D7C,\n 0x9D8A,\n 0x9D96,\n 0x9DC0,\n 0x9DAC,\n 0x9DBC,\n 0x9DD7,\n 0x2A190,\n 0x9DE7,\n 0x9E07,\n 0x9E15,\n 0x9E7C,\n 0x9E9E,\n 0x9EA4,\n 0x9EAC,\n 0x9EAF,\n 0x9EB4,\n 0x9EB5,\n 0x9EC3,\n 0x9ED1,\n 0x9F10,\n 0x9F39,\n 0x9F57,\n 0x9F90,\n 0x9F94,\n 0x9F97,\n 0x9FA2,\n 0x59F8,\n 0x5C5B,\n 0x5E77,\n 0x7626,\n 0x7E6B,\n 0x20089,\n 0x4E02,\n 0x4E0F,\n 0x4E12,\n 0x4E29,\n 0x4E2B,\n 0x4E2E,\n 0x4E40,\n 0x4E47,\n 0x4E48,\n 0x200A2,\n 0x4E51,\n 0x3406,\n 0x200A4,\n 0x4E5A,\n 0x4E69,\n 0x4E9D,\n 0x342C,\n 0x342E,\n 0x4EB9,\n 0x4EBB,\n 0x201A2,\n 0x4EBC,\n 0x4EC3,\n 0x4EC8,\n 0x4ED0,\n 0x4EEB,\n 0x4EDA,\n 0x4EF1,\n 0x4EF5,\n 0x4F00,\n 0x4F16,\n 0x4F64,\n 0x4F37,\n 0x4F3E,\n 0x4F54,\n 0x4F58,\n 0x20213,\n 0x4F77,\n 0x4F78,\n 0x4F7A,\n 0x4F7D,\n 0x4F82,\n 0x4F85,\n 0x4F92,\n 0x4F9A,\n 0x4FE6,\n 0x4FB2,\n 0x4FBE,\n 0x4FC5,\n 0x4FCB,\n 0x4FCF,\n 0x4FD2,\n 0x346A,\n 0x4FF2,\n 0x5000,\n 0x5010,\n 0x5013,\n 0x501C,\n 0x501E,\n 0x5022,\n 0x3468,\n 0x5042,\n 0x5046,\n 0x504E,\n 0x5053,\n 0x5057,\n 0x5063,\n 0x5066,\n 0x506A,\n 0x5070,\n 0x50A3,\n 0x5088,\n 0x5092,\n 0x5093,\n 0x5095,\n 0x5096,\n 0x509C,\n 0x50AA,\n 0x2032B,\n 0x50B1,\n 0x50BA,\n 0x50BB,\n 0x50C4,\n 0x50C7,\n 0x50F3,\n 0x20381,\n 0x50CE,\n 0x20371,\n 0x50D4,\n 0x50D9,\n 0x50E1,\n 0x50E9,\n 0x3492,\n 0x5108,\n 0x203F9,\n 0x5117,\n 0x511B,\n 0x2044A,\n 0x5160,\n 0x20509,\n 0x5173,\n 0x5183,\n 0x518B,\n 0x34BC,\n 0x5198,\n 0x51A3,\n 0x51AD,\n 0x34C7,\n 0x51BC,\n 0x205D6,\n 0x20628,\n 0x51F3,\n 0x51F4,\n 0x5202,\n 0x5212,\n 0x5216,\n 0x2074F,\n 0x5255,\n 0x525C,\n 0x526C,\n 0x5277,\n 0x5284,\n 0x5282,\n 0x20807,\n 0x5298,\n 0x2083A,\n 0x52A4,\n 0x52A6,\n 0x52AF,\n 0x52BA,\n 0x52BB,\n 0x52CA,\n 0x351F,\n 0x52D1,\n 0x208B9,\n 0x52F7,\n 0x530A,\n 0x530B,\n 0x5324,\n 0x5335,\n 0x533E,\n 0x5342,\n 0x2097C,\n 0x2099D,\n 0x5367,\n 0x536C,\n 0x537A,\n 0x53A4,\n 0x53B4,\n 0x20AD3,\n 0x53B7,\n 0x53C0,\n 0x20B1D,\n 0x355D,\n 0x355E,\n 0x53D5,\n 0x53DA,\n 0x3563,\n 0x53F4,\n 0x53F5,\n 0x5455,\n 0x5424,\n 0x5428,\n 0x356E,\n 0x5443,\n 0x5462,\n 0x5466,\n 0x546C,\n 0x548A,\n 0x548D,\n 0x5495,\n 0x54A0,\n 0x54A6,\n 0x54AD,\n 0x54AE,\n 0x54B7,\n 0x54BA,\n 0x54BF,\n 0x54C3,\n 0x20D45,\n 0x54EC,\n 0x54EF,\n 0x54F1,\n 0x54F3,\n 0x5500,\n 0x5501,\n 0x5509,\n 0x553C,\n 0x5541,\n 0x35A6,\n 0x5547,\n 0x554A,\n 0x35A8,\n 0x5560,\n 0x5561,\n 0x5564,\n 0x20DE1,\n 0x557D,\n 0x5582,\n 0x5588,\n 0x5591,\n 0x35C5,\n 0x55D2,\n 0x20E95,\n 0x20E6D,\n 0x55BF,\n 0x55C9,\n 0x55CC,\n 0x55D1,\n 0x55DD,\n 0x35DA,\n 0x55E2,\n 0x20E64,\n 0x55E9,\n 0x5628,\n 0x20F5F,\n 0x5607,\n 0x5610,\n 0x5630,\n 0x5637,\n 0x35F4,\n 0x563D,\n 0x563F,\n 0x5640,\n 0x5647,\n 0x565E,\n 0x5660,\n 0x566D,\n 0x3605,\n 0x5688,\n 0x568C,\n 0x5695,\n 0x569A,\n 0x569D,\n 0x56A8,\n 0x56AD,\n 0x56B2,\n 0x56C5,\n 0x56CD,\n 0x56DF,\n 0x56E8,\n 0x56F6,\n 0x56F7,\n 0x21201,\n 0x5715,\n 0x5723,\n 0x21255,\n 0x5729,\n 0x2127B,\n 0x5745,\n 0x5746,\n 0x574C,\n 0x574D,\n 0x21274,\n 0x5768,\n 0x576F,\n 0x5773,\n 0x5774,\n 0x5775,\n 0x577B,\n 0x212E4,\n 0x212D7,\n 0x57AC,\n 0x579A,\n 0x579D,\n 0x579E,\n 0x57A8,\n 0x57D7,\n 0x212FD,\n 0x57CC,\n 0x21336,\n 0x21344,\n 0x57DE,\n 0x57E6,\n 0x57F0,\n 0x364A,\n 0x57F8,\n 0x57FB,\n 0x57FD,\n 0x5804,\n 0x581E,\n 0x5820,\n 0x5827,\n 0x5832,\n 0x5839,\n 0x213C4,\n 0x5849,\n 0x584C,\n 0x5867,\n 0x588A,\n 0x588B,\n 0x588D,\n 0x588F,\n 0x5890,\n 0x5894,\n 0x589D,\n 0x58AA,\n 0x58B1,\n 0x2146D,\n 0x58C3,\n 0x58CD,\n 0x58E2,\n 0x58F3,\n 0x58F4,\n 0x5905,\n 0x5906,\n 0x590B,\n 0x590D,\n 0x5914,\n 0x5924,\n 0x215D7,\n 0x3691,\n 0x593D,\n 0x3699,\n 0x5946,\n 0x3696,\n 0x26C29,\n 0x595B,\n 0x595F,\n 0x21647,\n 0x5975,\n 0x5976,\n 0x597C,\n 0x599F,\n 0x59AE,\n 0x59BC,\n 0x59C8,\n 0x59CD,\n 0x59DE,\n 0x59E3,\n 0x59E4,\n 0x59E7,\n 0x59EE,\n 0x21706,\n 0x21742,\n 0x36CF,\n 0x5A0C,\n 0x5A0D,\n 0x5A17,\n 0x5A27,\n 0x5A2D,\n 0x5A55,\n 0x5A65,\n 0x5A7A,\n 0x5A8B,\n 0x5A9C,\n 0x5A9F,\n 0x5AA0,\n 0x5AA2,\n 0x5AB1,\n 0x5AB3,\n 0x5AB5,\n 0x5ABA,\n 0x5ABF,\n 0x5ADA,\n 0x5ADC,\n 0x5AE0,\n 0x5AE5,\n 0x5AF0,\n 0x5AEE,\n 0x5AF5,\n 0x5B00,\n 0x5B08,\n 0x5B17,\n 0x5B34,\n 0x5B2D,\n 0x5B4C,\n 0x5B52,\n 0x5B68,\n 0x5B6F,\n 0x5B7C,\n 0x5B7F,\n 0x5B81,\n 0x5B84,\n 0x219C3,\n 0x5B96,\n 0x5BAC,\n 0x3761,\n 0x5BC0,\n 0x3762,\n 0x5BCE,\n 0x5BD6,\n 0x376C,\n 0x376B,\n 0x5BF1,\n 0x5BFD,\n 0x3775,\n 0x5C03,\n 0x5C29,\n 0x5C30,\n 0x21C56,\n 0x5C5F,\n 0x5C63,\n 0x5C67,\n 0x5C68,\n 0x5C69,\n 0x5C70,\n 0x21D2D,\n 0x21D45,\n 0x5C7C,\n 0x21D78,\n 0x21D62,\n 0x5C88,\n 0x5C8A,\n 0x37C1,\n 0x21DA1,\n 0x21D9C,\n 0x5CA0,\n 0x5CA2,\n 0x5CA6,\n 0x5CA7,\n 0x21D92,\n 0x5CAD,\n 0x5CB5,\n 0x21DB7,\n 0x5CC9,\n 0x21DE0,\n 0x21E33,\n 0x5D06,\n 0x5D10,\n 0x5D2B,\n 0x5D1D,\n 0x5D20,\n 0x5D24,\n 0x5D26,\n 0x5D31,\n 0x5D39,\n 0x5D42,\n 0x37E8,\n 0x5D61,\n 0x5D6A,\n 0x37F4,\n 0x5D70,\n 0x21F1E,\n 0x37FD,\n 0x5D88,\n 0x3800,\n 0x5D92,\n 0x5D94,\n 0x5D97,\n 0x5D99,\n 0x5DB0,\n 0x5DB2,\n 0x5DB4,\n 0x21F76,\n 0x5DB9,\n 0x5DD1,\n 0x5DD7,\n 0x5DD8,\n 0x5DE0,\n 0x21FFA,\n 0x5DE4,\n 0x5DE9,\n 0x382F,\n 0x5E00,\n 0x3836,\n 0x5E12,\n 0x5E15,\n 0x3840,\n 0x5E1F,\n 0x5E2E,\n 0x5E3E,\n 0x5E49,\n 0x385C,\n 0x5E56,\n 0x3861,\n 0x5E6B,\n 0x5E6C,\n 0x5E6D,\n 0x5E6E,\n 0x2217B,\n 0x5EA5,\n 0x5EAA,\n 0x5EAC,\n 0x5EB9,\n 0x5EBF,\n 0x5EC6,\n 0x5ED2,\n 0x5ED9,\n 0x2231E,\n 0x5EFD,\n 0x5F08,\n 0x5F0E,\n 0x5F1C,\n 0x223AD,\n 0x5F1E,\n 0x5F47,\n 0x5F63,\n 0x5F72,\n 0x5F7E,\n 0x5F8F,\n 0x5FA2,\n 0x5FA4,\n 0x5FB8,\n 0x5FC4,\n 0x38FA,\n 0x5FC7,\n 0x5FCB,\n 0x5FD2,\n 0x5FD3,\n 0x5FD4,\n 0x5FE2,\n 0x5FEE,\n 0x5FEF,\n 0x5FF3,\n 0x5FFC,\n 0x3917,\n 0x6017,\n 0x6022,\n 0x6024,\n 0x391A,\n 0x604C,\n 0x607F,\n 0x608A,\n 0x6095,\n 0x60A8,\n 0x226F3,\n 0x60B0,\n 0x60B1,\n 0x60BE,\n 0x60C8,\n 0x60D9,\n 0x60DB,\n 0x60EE,\n 0x60F2,\n 0x60F5,\n 0x6110,\n 0x6112,\n 0x6113,\n 0x6119,\n 0x611E,\n 0x613A,\n 0x396F,\n 0x6141,\n 0x6146,\n 0x6160,\n 0x617C,\n 0x2285B,\n 0x6192,\n 0x6193,\n 0x6197,\n 0x6198,\n 0x61A5,\n 0x61A8,\n 0x61AD,\n 0x228AB,\n 0x61D5,\n 0x61DD,\n 0x61DF,\n 0x61F5,\n 0x2298F,\n 0x6215,\n 0x6223,\n 0x6229,\n 0x6246,\n 0x624C,\n 0x6251,\n 0x6252,\n 0x6261,\n 0x6264,\n 0x627B,\n 0x626D,\n 0x6273,\n 0x6299,\n 0x62A6,\n 0x62D5,\n 0x22AB8,\n 0x62FD,\n 0x6303,\n 0x630D,\n 0x6310,\n 0x22B4F,\n 0x22B50,\n 0x6332,\n 0x6335,\n 0x633B,\n 0x633C,\n 0x6341,\n 0x6344,\n 0x634E,\n 0x22B46,\n 0x6359,\n 0x22C1D,\n 0x22BA6,\n 0x636C,\n 0x6384,\n 0x6399,\n 0x22C24,\n 0x6394,\n 0x63BD,\n 0x63F7,\n 0x63D4,\n 0x63D5,\n 0x63DC,\n 0x63E0,\n 0x63EB,\n 0x63EC,\n 0x63F2,\n 0x6409,\n 0x641E,\n 0x6425,\n 0x6429,\n 0x642F,\n 0x645A,\n 0x645B,\n 0x645D,\n 0x6473,\n 0x647D,\n 0x6487,\n 0x6491,\n 0x649D,\n 0x649F,\n 0x64CB,\n 0x64CC,\n 0x64D5,\n 0x64D7,\n 0x22DE1,\n 0x64E4,\n 0x64E5,\n 0x64FF,\n 0x6504,\n 0x3A6E,\n 0x650F,\n 0x6514,\n 0x6516,\n 0x3A73,\n 0x651E,\n 0x6532,\n 0x6544,\n 0x6554,\n 0x656B,\n 0x657A,\n 0x6581,\n 0x6584,\n 0x6585,\n 0x658A,\n 0x65B2,\n 0x65B5,\n 0x65B8,\n 0x65BF,\n 0x65C2,\n 0x65C9,\n 0x65D4,\n 0x3AD6,\n 0x65F2,\n 0x65F9,\n 0x65FC,\n 0x6604,\n 0x6608,\n 0x6621,\n 0x662A,\n 0x6645,\n 0x6651,\n 0x664E,\n 0x3AEA,\n 0x231C3,\n 0x6657,\n 0x665B,\n 0x6663,\n 0x231F5,\n 0x231B6,\n 0x666A,\n 0x666B,\n 0x666C,\n 0x666D,\n 0x667B,\n 0x6680,\n 0x6690,\n 0x6692,\n 0x6699,\n 0x3B0E,\n 0x66AD,\n 0x66B1,\n 0x66B5,\n 0x3B1A,\n 0x66BF,\n 0x3B1C,\n 0x66EC,\n 0x3AD7,\n 0x6701,\n 0x6705,\n 0x6712,\n 0x23372,\n 0x6719,\n 0x233D3,\n 0x233D2,\n 0x674C,\n 0x674D,\n 0x6754,\n 0x675D,\n 0x233D0,\n 0x233E4,\n 0x233D5,\n 0x6774,\n 0x6776,\n 0x233DA,\n 0x6792,\n 0x233DF,\n 0x8363,\n 0x6810,\n 0x67B0,\n 0x67B2,\n 0x67C3,\n 0x67C8,\n 0x67D2,\n 0x67D9,\n 0x67DB,\n 0x67F0,\n 0x67F7,\n 0x2344A,\n 0x23451,\n 0x2344B,\n 0x6818,\n 0x681F,\n 0x682D,\n 0x23465,\n 0x6833,\n 0x683B,\n 0x683E,\n 0x6844,\n 0x6845,\n 0x6849,\n 0x684C,\n 0x6855,\n 0x6857,\n 0x3B77,\n 0x686B,\n 0x686E,\n 0x687A,\n 0x687C,\n 0x6882,\n 0x6890,\n 0x6896,\n 0x3B6D,\n 0x6898,\n 0x6899,\n 0x689A,\n 0x689C,\n 0x68AA,\n 0x68AB,\n 0x68B4,\n 0x68BB,\n 0x68FB,\n 0x234E4,\n 0x2355A,\n 0xFA13,\n 0x68C3,\n 0x68C5,\n 0x68CC,\n 0x68CF,\n 0x68D6,\n 0x68D9,\n 0x68E4,\n 0x68E5,\n 0x68EC,\n 0x68F7,\n 0x6903,\n 0x6907,\n 0x3B87,\n 0x3B88,\n 0x23594,\n 0x693B,\n 0x3B8D,\n 0x6946,\n 0x6969,\n 0x696C,\n 0x6972,\n 0x697A,\n 0x697F,\n 0x6992,\n 0x3BA4,\n 0x6996,\n 0x6998,\n 0x69A6,\n 0x69B0,\n 0x69B7,\n 0x69BA,\n 0x69BC,\n 0x69C0,\n 0x69D1,\n 0x69D6,\n 0x23639,\n 0x23647,\n 0x6A30,\n 0x23638,\n 0x2363A,\n 0x69E3,\n 0x69EE,\n 0x69EF,\n 0x69F3,\n 0x3BCD,\n 0x69F4,\n 0x69FE,\n 0x6A11,\n 0x6A1A,\n 0x6A1D,\n 0x2371C,\n 0x6A32,\n 0x6A33,\n 0x6A34,\n 0x6A3F,\n 0x6A46,\n 0x6A49,\n 0x6A7A,\n 0x6A4E,\n 0x6A52,\n 0x6A64,\n 0x2370C,\n 0x6A7E,\n 0x6A83,\n 0x6A8B,\n 0x3BF0,\n 0x6A91,\n 0x6A9F,\n 0x6AA1,\n 0x23764,\n 0x6AAB,\n 0x6ABD,\n 0x6AC6,\n 0x6AD4,\n 0x6AD0,\n 0x6ADC,\n 0x6ADD,\n 0x237FF,\n 0x237E7,\n 0x6AEC,\n 0x6AF1,\n 0x6AF2,\n 0x6AF3,\n 0x6AFD,\n 0x23824,\n 0x6B0B,\n 0x6B0F,\n 0x6B10,\n 0x6B11,\n 0x2383D,\n 0x6B17,\n 0x3C26,\n 0x6B2F,\n 0x6B4A,\n 0x6B58,\n 0x6B6C,\n 0x6B75,\n 0x6B7A,\n 0x6B81,\n 0x6B9B,\n 0x6BAE,\n 0x23A98,\n 0x6BBD,\n 0x6BBE,\n 0x6BC7,\n 0x6BC8,\n 0x6BC9,\n 0x6BDA,\n 0x6BE6,\n 0x6BE7,\n 0x6BEE,\n 0x6BF1,\n 0x6C02,\n 0x6C0A,\n 0x6C0E,\n 0x6C35,\n 0x6C36,\n 0x6C3A,\n 0x23C7F,\n 0x6C3F,\n 0x6C4D,\n 0x6C5B,\n 0x6C6D,\n 0x6C84,\n 0x6C89,\n 0x3CC3,\n 0x6C94,\n 0x6C95,\n 0x6C97,\n 0x6CAD,\n 0x6CC2,\n 0x6CD0,\n 0x3CD2,\n 0x6CD6,\n 0x6CDA,\n 0x6CDC,\n 0x6CE9,\n 0x6CEC,\n 0x6CED,\n 0x23D00,\n 0x6D00,\n 0x6D0A,\n 0x6D24,\n 0x6D26,\n 0x6D27,\n 0x6C67,\n 0x6D2F,\n 0x6D3C,\n 0x6D5B,\n 0x6D5E,\n 0x6D60,\n 0x6D70,\n 0x6D80,\n 0x6D81,\n 0x6D8A,\n 0x6D8D,\n 0x6D91,\n 0x6D98,\n 0x23D40,\n 0x6E17,\n 0x23DFA,\n 0x23DF9,\n 0x23DD3,\n 0x6DAB,\n 0x6DAE,\n 0x6DB4,\n 0x6DC2,\n 0x6D34,\n 0x6DC8,\n 0x6DCE,\n 0x6DCF,\n 0x6DD0,\n 0x6DDF,\n 0x6DE9,\n 0x6DF6,\n 0x6E36,\n 0x6E1E,\n 0x6E22,\n 0x6E27,\n 0x3D11,\n 0x6E32,\n 0x6E3C,\n 0x6E48,\n 0x6E49,\n 0x6E4B,\n 0x6E4C,\n 0x6E4F,\n 0x6E51,\n 0x6E53,\n 0x6E54,\n 0x6E57,\n 0x6E63,\n 0x3D1E,\n 0x6E93,\n 0x6EA7,\n 0x6EB4,\n 0x6EBF,\n 0x6EC3,\n 0x6ECA,\n 0x6ED9,\n 0x6F35,\n 0x6EEB,\n 0x6EF9,\n 0x6EFB,\n 0x6F0A,\n 0x6F0C,\n 0x6F18,\n 0x6F25,\n 0x6F36,\n 0x6F3C,\n 0x23F7E,\n 0x6F52,\n 0x6F57,\n 0x6F5A,\n 0x6F60,\n 0x6F68,\n 0x6F98,\n 0x6F7D,\n 0x6F90,\n 0x6F96,\n 0x6FBE,\n 0x6F9F,\n 0x6FA5,\n 0x6FAF,\n 0x3D64,\n 0x6FB5,\n 0x6FC8,\n 0x6FC9,\n 0x6FDA,\n 0x6FDE,\n 0x6FE9,\n 0x24096,\n 0x6FFC,\n 0x7000,\n 0x7007,\n 0x700A,\n 0x7023,\n 0x24103,\n 0x7039,\n 0x703A,\n 0x703C,\n 0x7043,\n 0x7047,\n 0x704B,\n 0x3D9A,\n 0x7054,\n 0x7065,\n 0x7069,\n 0x706C,\n 0x706E,\n 0x7076,\n 0x707E,\n 0x7081,\n 0x7086,\n 0x7095,\n 0x7097,\n 0x70BB,\n 0x241C6,\n 0x709F,\n 0x70B1,\n 0x241FE,\n 0x70EC,\n 0x70CA,\n 0x70D1,\n 0x70D3,\n 0x70DC,\n 0x7103,\n 0x7104,\n 0x7106,\n 0x7107,\n 0x7108,\n 0x710C,\n 0x3DC0,\n 0x712F,\n 0x7131,\n 0x7150,\n 0x714A,\n 0x7153,\n 0x715E,\n 0x3DD4,\n 0x7196,\n 0x7180,\n 0x719B,\n 0x71A0,\n 0x71A2,\n 0x71AE,\n 0x71AF,\n 0x71B3,\n 0x243BC,\n 0x71CB,\n 0x71D3,\n 0x71D9,\n 0x71DC,\n 0x7207,\n 0x3E05,\n];\n\nexport default array5;\n","const array6 = [\n 0xFA49,\n 0x722B,\n 0x7234,\n 0x7238,\n 0x7239,\n 0x4E2C,\n 0x7242,\n 0x7253,\n 0x7257,\n 0x7263,\n 0x24629,\n 0x726E,\n 0x726F,\n 0x7278,\n 0x727F,\n 0x728E,\n 0x246A5,\n 0x72AD,\n 0x72AE,\n 0x72B0,\n 0x72B1,\n 0x72C1,\n 0x3E60,\n 0x72CC,\n 0x3E66,\n 0x3E68,\n 0x72F3,\n 0x72FA,\n 0x7307,\n 0x7312,\n 0x7318,\n 0x7319,\n 0x3E83,\n 0x7339,\n 0x732C,\n 0x7331,\n 0x7333,\n 0x733D,\n 0x7352,\n 0x3E94,\n 0x736B,\n 0x736C,\n 0x24896,\n 0x736E,\n 0x736F,\n 0x7371,\n 0x7377,\n 0x7381,\n 0x7385,\n 0x738A,\n 0x7394,\n 0x7398,\n 0x739C,\n 0x739E,\n 0x73A5,\n 0x73A8,\n 0x73B5,\n 0x73B7,\n 0x73B9,\n 0x73BC,\n 0x73BF,\n 0x73C5,\n 0x73CB,\n 0x73E1,\n 0x73E7,\n 0x73F9,\n 0x7413,\n 0x73FA,\n 0x7401,\n 0x7424,\n 0x7431,\n 0x7439,\n 0x7453,\n 0x7440,\n 0x7443,\n 0x744D,\n 0x7452,\n 0x745D,\n 0x7471,\n 0x7481,\n 0x7485,\n 0x7488,\n 0x24A4D,\n 0x7492,\n 0x7497,\n 0x7499,\n 0x74A0,\n 0x74A1,\n 0x74A5,\n 0x74AA,\n 0x74AB,\n 0x74B9,\n 0x74BB,\n 0x74BA,\n 0x74D6,\n 0x74D8,\n 0x74DE,\n 0x74EF,\n 0x74EB,\n 0x24B56,\n 0x74FA,\n 0x24B6F,\n 0x7520,\n 0x7524,\n 0x752A,\n 0x3F57,\n 0x24C16,\n 0x753D,\n 0x753E,\n 0x7540,\n 0x7548,\n 0x754E,\n 0x7550,\n 0x7552,\n 0x756C,\n 0x7572,\n 0x7571,\n 0x757A,\n 0x757D,\n 0x757E,\n 0x7581,\n 0x24D14,\n 0x758C,\n 0x3F75,\n 0x75A2,\n 0x3F77,\n 0x75B0,\n 0x75B7,\n 0x75BF,\n 0x75C0,\n 0x75C6,\n 0x75CF,\n 0x75D3,\n 0x75DD,\n 0x75DF,\n 0x75E0,\n 0x75E7,\n 0x75EC,\n 0x75EE,\n 0x75F1,\n 0x75F9,\n 0x7603,\n 0x7618,\n 0x7607,\n 0x760F,\n 0x3FAE,\n 0x24E0E,\n 0x7613,\n 0x761B,\n 0x761C,\n 0x24E37,\n 0x7625,\n 0x7628,\n 0x763C,\n 0x7633,\n 0x24E6A,\n 0x3FC9,\n 0x7641,\n 0x24E8B,\n 0x7649,\n 0x7655,\n 0x3FD7,\n 0x766E,\n 0x7695,\n 0x769C,\n 0x76A1,\n 0x76A0,\n 0x76A7,\n 0x76A8,\n 0x76AF,\n 0x2504A,\n 0x76C9,\n 0x25055,\n 0x76E8,\n 0x76EC,\n 0x25122,\n 0x7717,\n 0x771A,\n 0x772D,\n 0x7735,\n 0x251A9,\n 0x4039,\n 0x251E5,\n 0x251CD,\n 0x7758,\n 0x7760,\n 0x776A,\n 0x2521E,\n 0x7772,\n 0x777C,\n 0x777D,\n 0x2524C,\n 0x4058,\n 0x779A,\n 0x779F,\n 0x77A2,\n 0x77A4,\n 0x77A9,\n 0x77DE,\n 0x77DF,\n 0x77E4,\n 0x77E6,\n 0x77EA,\n 0x77EC,\n 0x4093,\n 0x77F0,\n 0x77F4,\n 0x77FB,\n 0x2542E,\n 0x7805,\n 0x7806,\n 0x7809,\n 0x780D,\n 0x7819,\n 0x7821,\n 0x782C,\n 0x7847,\n 0x7864,\n 0x786A,\n 0x254D9,\n 0x788A,\n 0x7894,\n 0x78A4,\n 0x789D,\n 0x789E,\n 0x789F,\n 0x78BB,\n 0x78C8,\n 0x78CC,\n 0x78CE,\n 0x78D5,\n 0x78E0,\n 0x78E1,\n 0x78E6,\n 0x78F9,\n 0x78FA,\n 0x78FB,\n 0x78FE,\n 0x255A7,\n 0x7910,\n 0x791B,\n 0x7930,\n 0x7925,\n 0x793B,\n 0x794A,\n 0x7958,\n 0x795B,\n 0x4105,\n 0x7967,\n 0x7972,\n 0x7994,\n 0x7995,\n 0x7996,\n 0x799B,\n 0x79A1,\n 0x79A9,\n 0x79B4,\n 0x79BB,\n 0x79C2,\n 0x79C7,\n 0x79CC,\n 0x79CD,\n 0x79D6,\n 0x4148,\n 0x257A9,\n 0x257B4,\n 0x414F,\n 0x7A0A,\n 0x7A11,\n 0x7A15,\n 0x7A1B,\n 0x7A1E,\n 0x4163,\n 0x7A2D,\n 0x7A38,\n 0x7A47,\n 0x7A4C,\n 0x7A56,\n 0x7A59,\n 0x7A5C,\n 0x7A5F,\n 0x7A60,\n 0x7A67,\n 0x7A6A,\n 0x7A75,\n 0x7A78,\n 0x7A82,\n 0x7A8A,\n 0x7A90,\n 0x7AA3,\n 0x7AAC,\n 0x259D4,\n 0x41B4,\n 0x7AB9,\n 0x7ABC,\n 0x7ABE,\n 0x41BF,\n 0x7ACC,\n 0x7AD1,\n 0x7AE7,\n 0x7AE8,\n 0x7AF4,\n 0x25AE4,\n 0x25AE3,\n 0x7B07,\n 0x25AF1,\n 0x7B3D,\n 0x7B27,\n 0x7B2A,\n 0x7B2E,\n 0x7B2F,\n 0x7B31,\n 0x41E6,\n 0x41F3,\n 0x7B7F,\n 0x7B41,\n 0x41EE,\n 0x7B55,\n 0x7B79,\n 0x7B64,\n 0x7B66,\n 0x7B69,\n 0x7B73,\n 0x25BB2,\n 0x4207,\n 0x7B90,\n 0x7B91,\n 0x7B9B,\n 0x420E,\n 0x7BAF,\n 0x7BB5,\n 0x7BBC,\n 0x7BC5,\n 0x7BCA,\n 0x25C4B,\n 0x25C64,\n 0x7BD4,\n 0x7BD6,\n 0x7BDA,\n 0x7BEA,\n 0x7BF0,\n 0x7C03,\n 0x7C0B,\n 0x7C0E,\n 0x7C0F,\n 0x7C26,\n 0x7C45,\n 0x7C4A,\n 0x7C51,\n 0x7C57,\n 0x7C5E,\n 0x7C61,\n 0x7C69,\n 0x7C6E,\n 0x7C6F,\n 0x7C70,\n 0x25E2E,\n 0x25E56,\n 0x25E65,\n 0x7CA6,\n 0x25E62,\n 0x7CB6,\n 0x7CB7,\n 0x7CBF,\n 0x25ED8,\n 0x7CC4,\n 0x25EC2,\n 0x7CC8,\n 0x7CCD,\n 0x25EE8,\n 0x7CD7,\n 0x25F23,\n 0x7CE6,\n 0x7CEB,\n 0x25F5C,\n 0x7CF5,\n 0x7D03,\n 0x7D09,\n 0x42C6,\n 0x7D12,\n 0x7D1E,\n 0x25FE0,\n 0x25FD4,\n 0x7D3D,\n 0x7D3E,\n 0x7D40,\n 0x7D47,\n 0x2600C,\n 0x25FFB,\n 0x42D6,\n 0x7D59,\n 0x7D5A,\n 0x7D6A,\n 0x7D70,\n 0x42DD,\n 0x7D7F,\n 0x26017,\n 0x7D86,\n 0x7D88,\n 0x7D8C,\n 0x7D97,\n 0x26060,\n 0x7D9D,\n 0x7DA7,\n 0x7DAA,\n 0x7DB6,\n 0x7DB7,\n 0x7DC0,\n 0x7DD7,\n 0x7DD9,\n 0x7DE6,\n 0x7DF1,\n 0x7DF9,\n 0x4302,\n 0x260ED,\n 0xFA58,\n 0x7E10,\n 0x7E17,\n 0x7E1D,\n 0x7E20,\n 0x7E27,\n 0x7E2C,\n 0x7E45,\n 0x7E73,\n 0x7E75,\n 0x7E7E,\n 0x7E86,\n 0x7E87,\n 0x432B,\n 0x7E91,\n 0x7E98,\n 0x7E9A,\n 0x4343,\n 0x7F3C,\n 0x7F3B,\n 0x7F3E,\n 0x7F43,\n 0x7F44,\n 0x7F4F,\n 0x34C1,\n 0x26270,\n 0x7F52,\n 0x26286,\n 0x7F61,\n 0x7F63,\n 0x7F64,\n 0x7F6D,\n 0x7F7D,\n 0x7F7E,\n 0x2634C,\n 0x7F90,\n 0x517B,\n 0x23D0E,\n 0x7F96,\n 0x7F9C,\n 0x7FAD,\n 0x26402,\n 0x7FC3,\n 0x7FCF,\n 0x7FE3,\n 0x7FE5,\n 0x7FEF,\n 0x7FF2,\n 0x8002,\n 0x800A,\n 0x8008,\n 0x800E,\n 0x8011,\n 0x8016,\n 0x8024,\n 0x802C,\n 0x8030,\n 0x8043,\n 0x8066,\n 0x8071,\n 0x8075,\n 0x807B,\n 0x8099,\n 0x809C,\n 0x80A4,\n 0x80A7,\n 0x80B8,\n 0x2667E,\n 0x80C5,\n 0x80D5,\n 0x80D8,\n 0x80E6,\n 0x266B0,\n 0x810D,\n 0x80F5,\n 0x80FB,\n 0x43EE,\n 0x8135,\n 0x8116,\n 0x811E,\n 0x43F0,\n 0x8124,\n 0x8127,\n 0x812C,\n 0x2671D,\n 0x813D,\n 0x4408,\n 0x8169,\n 0x4417,\n 0x8181,\n 0x441C,\n 0x8184,\n 0x8185,\n 0x4422,\n 0x8198,\n 0x81B2,\n 0x81C1,\n 0x81C3,\n 0x81D6,\n 0x81DB,\n 0x268DD,\n 0x81E4,\n 0x268EA,\n 0x81EC,\n 0x26951,\n 0x81FD,\n 0x81FF,\n 0x2696F,\n 0x8204,\n 0x269DD,\n 0x8219,\n 0x8221,\n 0x8222,\n 0x26A1E,\n 0x8232,\n 0x8234,\n 0x823C,\n 0x8246,\n 0x8249,\n 0x8245,\n 0x26A58,\n 0x824B,\n 0x4476,\n 0x824F,\n 0x447A,\n 0x8257,\n 0x26A8C,\n 0x825C,\n 0x8263,\n 0x26AB7,\n 0xFA5D,\n 0xFA5E,\n 0x8279,\n 0x4491,\n 0x827D,\n 0x827F,\n 0x8283,\n 0x828A,\n 0x8293,\n 0x82A7,\n 0x82A8,\n 0x82B2,\n 0x82B4,\n 0x82BA,\n 0x82BC,\n 0x82E2,\n 0x82E8,\n 0x82F7,\n 0x8307,\n 0x8308,\n 0x830C,\n 0x8354,\n 0x831B,\n 0x831D,\n 0x8330,\n 0x833C,\n 0x8344,\n 0x8357,\n 0x44BE,\n 0x837F,\n 0x44D4,\n 0x44B3,\n 0x838D,\n 0x8394,\n 0x8395,\n 0x839B,\n 0x839D,\n 0x83C9,\n 0x83D0,\n 0x83D4,\n 0x83DD,\n 0x83E5,\n 0x83F9,\n 0x840F,\n 0x8411,\n 0x8415,\n 0x26C73,\n 0x8417,\n 0x8439,\n 0x844A,\n 0x844F,\n 0x8451,\n 0x8452,\n 0x8459,\n 0x845A,\n 0x845C,\n 0x26CDD,\n 0x8465,\n 0x8476,\n 0x8478,\n 0x847C,\n 0x8481,\n 0x450D,\n 0x84DC,\n 0x8497,\n 0x84A6,\n 0x84BE,\n 0x4508,\n 0x84CE,\n 0x84CF,\n 0x84D3,\n 0x26E65,\n 0x84E7,\n 0x84EA,\n 0x84EF,\n 0x84F0,\n 0x84F1,\n 0x84FA,\n 0x84FD,\n 0x850C,\n 0x851B,\n 0x8524,\n 0x8525,\n 0x852B,\n 0x8534,\n 0x854F,\n 0x856F,\n 0x4525,\n 0x4543,\n 0x853E,\n 0x8551,\n 0x8553,\n 0x855E,\n 0x8561,\n 0x8562,\n 0x26F94,\n 0x857B,\n 0x857D,\n 0x857F,\n 0x8581,\n 0x8586,\n 0x8593,\n 0x859D,\n 0x859F,\n 0x26FF8,\n 0x26FF6,\n 0x26FF7,\n 0x85B7,\n 0x85BC,\n 0x85C7,\n 0x85CA,\n 0x85D8,\n 0x85D9,\n 0x85DF,\n 0x85E1,\n 0x85E6,\n 0x85F6,\n 0x8600,\n 0x8611,\n 0x861E,\n 0x8621,\n 0x8624,\n 0x8627,\n 0x2710D,\n 0x8639,\n 0x863C,\n 0x27139,\n 0x8640,\n 0xFA20,\n 0x8653,\n 0x8656,\n 0x866F,\n 0x8677,\n 0x867A,\n 0x8687,\n 0x8689,\n 0x868D,\n 0x8691,\n 0x869C,\n 0x869D,\n 0x86A8,\n 0xFA21,\n 0x86B1,\n 0x86B3,\n 0x86C1,\n 0x86C3,\n 0x86D1,\n 0x86D5,\n 0x86D7,\n 0x86E3,\n 0x86E6,\n 0x45B8,\n 0x8705,\n 0x8707,\n 0x870E,\n 0x8710,\n 0x8713,\n 0x8719,\n 0x871F,\n 0x8721,\n 0x8723,\n 0x8731,\n 0x873A,\n 0x873E,\n 0x8740,\n 0x8743,\n 0x8751,\n 0x8758,\n 0x8764,\n 0x8765,\n 0x8772,\n 0x877C,\n 0x273DB,\n 0x273DA,\n 0x87A7,\n 0x8789,\n 0x878B,\n 0x8793,\n 0x87A0,\n 0x273FE,\n 0x45E5,\n 0x87BE,\n 0x27410,\n 0x87C1,\n 0x87CE,\n 0x87F5,\n 0x87DF,\n 0x27449,\n 0x87E3,\n 0x87E5,\n 0x87E6,\n 0x87EA,\n 0x87EB,\n 0x87ED,\n 0x8801,\n 0x8803,\n 0x880B,\n 0x8813,\n 0x8828,\n 0x882E,\n 0x8832,\n 0x883C,\n 0x460F,\n 0x884A,\n 0x8858,\n 0x885F,\n 0x8864,\n 0x27615,\n 0x27614,\n 0x8869,\n 0x27631,\n 0x886F,\n 0x88A0,\n 0x88BC,\n 0x88BD,\n 0x88BE,\n 0x88C0,\n 0x88D2,\n 0x27693,\n 0x88D1,\n 0x88D3,\n 0x88DB,\n 0x88F0,\n 0x88F1,\n 0x4641,\n 0x8901,\n 0x2770E,\n 0x8937,\n 0x27723,\n 0x8942,\n 0x8945,\n 0x8949,\n 0x27752,\n 0x4665,\n 0x8962,\n 0x8980,\n 0x8989,\n 0x8990,\n 0x899F,\n 0x89B0,\n 0x89B7,\n 0x89D6,\n 0x89D8,\n 0x89EB,\n 0x46A1,\n 0x89F1,\n 0x89F3,\n 0x89FD,\n 0x89FF,\n 0x46AF,\n 0x8A11,\n 0x8A14,\n 0x27985,\n 0x8A21,\n 0x8A35,\n 0x8A3E,\n 0x8A45,\n 0x8A4D,\n 0x8A58,\n 0x8AAE,\n 0x8A90,\n 0x8AB7,\n 0x8ABE,\n 0x8AD7,\n 0x8AFC,\n 0x27A84,\n 0x8B0A,\n 0x8B05,\n 0x8B0D,\n 0x8B1C,\n 0x8B1F,\n 0x8B2D,\n 0x8B43,\n 0x470C,\n 0x8B51,\n 0x8B5E,\n 0x8B76,\n 0x8B7F,\n 0x8B81,\n 0x8B8B,\n 0x8B94,\n 0x8B95,\n 0x8B9C,\n 0x8B9E,\n 0x8C39,\n 0x27BB3,\n 0x8C3D,\n 0x27BBE,\n 0x27BC7,\n 0x8C45,\n 0x8C47,\n 0x8C4F,\n 0x8C54,\n 0x8C57,\n 0x8C69,\n 0x8C6D,\n 0x8C73,\n 0x27CB8,\n 0x8C93,\n 0x8C92,\n 0x8C99,\n 0x4764,\n 0x8C9B,\n 0x8CA4,\n 0x8CD6,\n 0x8CD5,\n 0x8CD9,\n 0x27DA0,\n 0x8CF0,\n 0x8CF1,\n 0x27E10,\n 0x8D09,\n 0x8D0E,\n 0x8D6C,\n 0x8D84,\n 0x8D95,\n 0x8DA6,\n 0x27FB7,\n 0x8DC6,\n 0x8DC8,\n 0x8DD9,\n 0x8DEC,\n 0x8E0C,\n 0x47FD,\n 0x8DFD,\n 0x8E06,\n 0x2808A,\n 0x8E14,\n 0x8E16,\n 0x8E21,\n 0x8E22,\n 0x8E27,\n 0x280BB,\n 0x4816,\n 0x8E36,\n 0x8E39,\n 0x8E4B,\n 0x8E54,\n 0x8E62,\n 0x8E6C,\n 0x8E6D,\n 0x8E6F,\n 0x8E98,\n 0x8E9E,\n 0x8EAE,\n 0x8EB3,\n 0x8EB5,\n 0x8EB6,\n 0x8EBB,\n 0x28282,\n 0x8ED1,\n 0x8ED4,\n 0x484E,\n 0x8EF9,\n 0x282F3,\n 0x8F00,\n 0x8F08,\n 0x8F17,\n 0x8F2B,\n 0x8F40,\n 0x8F4A,\n 0x8F58,\n 0x2840C,\n 0x8FA4,\n 0x8FB4,\n 0xFA66,\n 0x8FB6,\n 0x28455,\n 0x8FC1,\n 0x8FC6,\n 0xFA24,\n 0x8FCA,\n 0x8FCD,\n 0x8FD3,\n 0x8FD5,\n 0x8FE0,\n 0x8FF1,\n 0x8FF5,\n 0x8FFB,\n 0x9002,\n 0x900C,\n 0x9037,\n 0x2856B,\n 0x9043,\n 0x9044,\n 0x905D,\n 0x285C8,\n 0x285C9,\n 0x9085,\n 0x908C,\n 0x9090,\n 0x961D,\n 0x90A1,\n 0x48B5,\n 0x90B0,\n 0x90B6,\n 0x90C3,\n 0x90C8,\n 0x286D7,\n 0x90DC,\n 0x90DF,\n 0x286FA,\n 0x90F6,\n 0x90F2,\n 0x9100,\n 0x90EB,\n 0x90FE,\n 0x90FF,\n 0x9104,\n 0x9106,\n 0x9118,\n 0x911C,\n 0x911E,\n 0x9137,\n 0x9139,\n 0x913A,\n 0x9146,\n 0x9147,\n 0x9157,\n 0x9159,\n 0x9161,\n 0x9164,\n 0x9174,\n 0x9179,\n 0x9185,\n 0x918E,\n 0x91A8,\n 0x91AE,\n 0x91B3,\n 0x91B6,\n 0x91C3,\n 0x91C4,\n 0x91DA,\n 0x28949,\n 0x28946,\n 0x91EC,\n 0x91EE,\n 0x9201,\n 0x920A,\n 0x9216,\n 0x9217,\n 0x2896B,\n 0x9233,\n 0x9242,\n 0x9247,\n 0x924A,\n 0x924E,\n 0x9251,\n 0x9256,\n 0x9259,\n 0x9260,\n 0x9261,\n 0x9265,\n 0x9267,\n 0x9268,\n 0x28987,\n 0x28988,\n 0x927C,\n 0x927D,\n 0x927F,\n 0x9289,\n 0x928D,\n 0x9297,\n 0x9299,\n 0x929F,\n 0x92A7,\n 0x92AB,\n 0x289BA,\n 0x289BB,\n 0x92B2,\n 0x92BF,\n 0x92C0,\n 0x92C6,\n 0x92CE,\n 0x92D0,\n 0x92D7,\n 0x92D9,\n 0x92E5,\n 0x92E7,\n 0x9311,\n 0x28A1E,\n 0x28A29,\n 0x92F7,\n 0x92F9,\n 0x92FB,\n 0x9302,\n 0x930D,\n 0x9315,\n 0x931D,\n 0x931E,\n 0x9327,\n 0x9329,\n 0x28A71,\n 0x28A43,\n 0x9347,\n 0x9351,\n 0x9357,\n 0x935A,\n 0x936B,\n 0x9371,\n 0x9373,\n 0x93A1,\n 0x28A99,\n 0x28ACD,\n 0x9388,\n 0x938B,\n 0x938F,\n 0x939E,\n 0x93F5,\n 0x28AE4,\n 0x28ADD,\n 0x93F1,\n 0x93C1,\n 0x93C7,\n 0x93DC,\n 0x93E2,\n 0x93E7,\n 0x9409,\n 0x940F,\n 0x9416,\n 0x9417,\n 0x93FB,\n 0x9432,\n 0x9434,\n 0x943B,\n 0x9445,\n 0x28BC1,\n 0x28BEF,\n 0x946D,\n 0x946F,\n 0x9578,\n 0x9579,\n 0x9586,\n 0x958C,\n 0x958D,\n 0x28D10,\n 0x95AB,\n 0x95B4,\n 0x28D71,\n 0x95C8,\n 0x28DFB,\n 0x28E1F,\n 0x962C,\n 0x9633,\n 0x9634,\n 0x28E36,\n 0x963C,\n 0x9641,\n 0x9661,\n 0x28E89,\n 0x9682,\n 0x28EEB,\n 0x969A,\n 0x28F32,\n 0x49E7,\n 0x96A9,\n 0x96AF,\n 0x96B3,\n 0x96BA,\n 0x96BD,\n 0x49FA,\n 0x28FF8,\n 0x96D8,\n 0x96DA,\n 0x96DD,\n 0x4A04,\n 0x9714,\n 0x9723,\n 0x4A29,\n 0x9736,\n 0x9741,\n 0x9747,\n 0x9755,\n 0x9757,\n 0x975B,\n 0x976A,\n 0x292A0,\n 0x292B1,\n 0x9796,\n 0x979A,\n 0x979E,\n 0x97A2,\n 0x97B1,\n 0x97B2,\n 0x97BE,\n 0x97CC,\n 0x97D1,\n 0x97D4,\n 0x97D8,\n 0x97D9,\n 0x97E1,\n 0x97F1,\n 0x9804,\n 0x980D,\n 0x980E,\n 0x9814,\n 0x9816,\n 0x4ABC,\n 0x29490,\n 0x9823,\n 0x9832,\n 0x9833,\n 0x9825,\n 0x9847,\n 0x9866,\n 0x98AB,\n 0x98AD,\n 0x98B0,\n 0x295CF,\n 0x98B7,\n 0x98B8,\n 0x98BB,\n 0x98BC,\n 0x98BF,\n 0x98C2,\n 0x98C7,\n 0x98CB,\n 0x98E0,\n 0x2967F,\n 0x98E1,\n 0x98E3,\n 0x98E5,\n 0x98EA,\n 0x98F0,\n 0x98F1,\n 0x98F3,\n 0x9908,\n 0x4B3B,\n 0x296F0,\n 0x9916,\n 0x9917,\n 0x29719,\n 0x991A,\n 0x991B,\n 0x991C,\n 0x29750,\n 0x9931,\n 0x9932,\n 0x9933,\n 0x993A,\n 0x993B,\n 0x993C,\n 0x9940,\n 0x9941,\n 0x9946,\n 0x994D,\n 0x994E,\n 0x995C,\n 0x995F,\n 0x9960,\n 0x99A3,\n 0x99A6,\n 0x99B9,\n 0x99BD,\n 0x99BF,\n 0x99C3,\n 0x99C9,\n 0x99D4,\n 0x99D9,\n 0x99DE,\n 0x298C6,\n 0x99F0,\n 0x99F9,\n 0x99FC,\n 0x9A0A,\n 0x9A11,\n 0x9A16,\n 0x9A1A,\n 0x9A20,\n 0x9A31,\n 0x9A36,\n 0x9A44,\n 0x9A4C,\n 0x9A58,\n 0x4BC2,\n 0x9AAF,\n 0x4BCA,\n 0x9AB7,\n 0x4BD2,\n 0x9AB9,\n 0x29A72,\n 0x9AC6,\n 0x9AD0,\n 0x9AD2,\n 0x9AD5,\n 0x4BE8,\n 0x9ADC,\n 0x9AE0,\n 0x9AE5,\n 0x9AE9,\n 0x9B03,\n 0x9B0C,\n 0x9B10,\n 0x9B12,\n 0x9B16,\n 0x9B1C,\n 0x9B2B,\n 0x9B33,\n 0x9B3D,\n 0x4C20,\n 0x9B4B,\n 0x9B63,\n 0x9B65,\n 0x9B6B,\n 0x9B6C,\n 0x9B73,\n 0x9B76,\n 0x9B77,\n 0x9BA6,\n 0x9BAC,\n 0x9BB1,\n 0x29DDB,\n 0x29E3D,\n 0x9BB2,\n 0x9BB8,\n 0x9BBE,\n 0x9BC7,\n 0x9BF3,\n 0x9BD8,\n 0x9BDD,\n 0x9BE7,\n 0x9BEA,\n 0x9BEB,\n 0x9BEF,\n 0x9BEE,\n 0x29E15,\n 0x9BFA,\n 0x29E8A,\n 0x9BF7,\n 0x29E49,\n 0x9C16,\n 0x9C18,\n 0x9C19,\n 0x9C1A,\n 0x9C1D,\n 0x9C22,\n 0x9C27,\n 0x9C29,\n 0x9C2A,\n 0x29EC4,\n 0x9C31,\n 0x9C36,\n 0x9C37,\n 0x9C45,\n 0x9C5C,\n 0x29EE9,\n 0x9C49,\n 0x9C4A,\n 0x29EDB,\n 0x9C54,\n 0x9C58,\n 0x9C5B,\n 0x9C5D,\n 0x9C5F,\n 0x9C69,\n 0x9C6A,\n 0x9C6B,\n 0x9C6D,\n 0x9C6E,\n 0x9C70,\n 0x9C72,\n 0x9C75,\n 0x9C7A,\n 0x9CE6,\n 0x9CF2,\n 0x9D0B,\n 0x9D02,\n 0x29FCE,\n 0x9D11,\n 0x9D17,\n 0x9D18,\n 0x2A02F,\n 0x4CC4,\n 0x2A01A,\n 0x9D32,\n 0x4CD1,\n 0x9D42,\n 0x9D4A,\n 0x9D5F,\n 0x9D62,\n 0x2A0F9,\n 0x9D69,\n 0x9D6B,\n 0x2A082,\n 0x9D73,\n 0x9D76,\n 0x9D77,\n 0x9D7E,\n 0x9D84,\n 0x9D8D,\n 0x9D99,\n 0x9DA1,\n 0x9DBF,\n 0x9DB5,\n 0x9DB9,\n 0x9DBD,\n 0x9DC3,\n 0x9DC7,\n 0x9DC9,\n 0x9DD6,\n 0x9DDA,\n 0x9DDF,\n 0x9DE0,\n 0x9DE3,\n 0x9DF4,\n 0x4D07,\n 0x9E0A,\n 0x9E02,\n 0x9E0D,\n 0x9E19,\n 0x9E1C,\n 0x9E1D,\n 0x9E7B,\n 0x22218,\n 0x9E80,\n 0x9E85,\n 0x9E9B,\n 0x9EA8,\n 0x2A38C,\n 0x9EBD,\n 0x2A437,\n 0x9EDF,\n 0x9EE7,\n 0x9EEE,\n 0x9EFF,\n 0x9F02,\n 0x4D77,\n 0x9F03,\n 0x9F17,\n 0x9F19,\n 0x9F2F,\n 0x9F37,\n 0x9F3A,\n 0x9F3D,\n 0x9F41,\n 0x9F45,\n 0x9F46,\n 0x9F53,\n 0x9F55,\n 0x9F58,\n 0x2A5F1,\n 0x9F5D,\n 0x2A602,\n 0x9F69,\n 0x2A61A,\n 0x9F6D,\n 0x9F70,\n 0x9F75,\n 0x2A6B2,\n];\n\nexport default array6;\n","/* eslint-disable no-useless-escape */\n/* eslint-disable no-irregular-whitespace */\n/* eslint-disable no-shadow */\n/* eslint-disable no-inner-declarations */\n/* eslint-disable no-template-curly-in-string */\n/* eslint-disable max-len */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-namespace */\n\nimport NEWCAR_CONST from '@/newcar/util/const';\n\n/** カルモ定数 */\nnamespace CARMO_CONST {\n\n /** バリデーション正規表現 */\n export namespace REGEX {\n /** 電話番号 */\n export const PHONE = /^0\\d+$/;\n /** 携帯電話番号 */\n export const MOBILE_PHONE = /^0[5789]0/;\n /** 固定電話番号 */\n export const HOME_PHONE = /^0[5]0/;\n /** カタカナ */\n export const KANA = /^[ァ-ンヴー]+$/;\n /** 名義人カタカナ */\n export const HOLDER_KANA = /^[^ァ-ンヴー]*$/;\n /** 全角カナ英数字 */\n export const ZENKAKU_KANA_ALPHABET_NUMBER = /^[ァ-ンヴー0-9a-zA-Z ]+$/;\n /** 郵便番号 */\n export const POSTAL_CODE = /^\\d{3}-?\\d{4}$/;\n /** 免許証番号 */\n export const LICENSE_NUMBER = /^\\d{4}-?\\d{4}-?\\d{4}$/;\n export const LICENSE_NUMBER_NO_HYPHEN = /^\\d{12}$/;\n /** 住所 */\n export const ADDRESS_END = /[A-Za-za-zA-Zぁ-んァ-ヶ一-龠0-90-9々〇]$/;\n /** 住所 */\n export const ADDRESS = /[A-Za-za-zA-Zぁ-んァ-ヶ一-龠0-90-9々〇ー-]+$/;\n /** メールアドレス */\n export const MAIL_PIRIOD = /@\\w+$/;\n export const MAIL_INVALID_CHARACTERS = /[^a-zA-Z0-9.!#$%&\\'*+\\/=?^_`{|}~\\-@]+/;\n export const MAIL = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n /** 社名カナ */\n export const OFFICE_KANA = /^[ァ-ンヴー&',ー.・]+$/;\n /** 数字 */\n export const NUMBER = /^\\d+$/;\n /** 氏名禁止ワード */\n export const UNUSABLE_NAME_WORD = /^(?!.*(会社|法人)).*$/;\n }\n\n export namespace GENDER {\n export const MALE = {\n ID: 'gender_1',\n VALUE: 1,\n LABEL: '男性',\n };\n export const FEMALE = {\n ID: 'gender_2',\n VALUE: 2,\n LABEL: '女性',\n };\n export const GENDER_LIST = [MALE, FEMALE];\n export function findGenderByValue(\n value?: number | null,\n ): typeof MALE | undefined {\n return GENDER_LIST.find((g) => g.VALUE === value);\n }\n }\n\n export namespace SELECT {\n export const SHOUWA_LAST_DAY = 7;\n export const SHOUWA_LAST_YEAR = 1988;\n }\n\n /**\n * カンマ付けにフォーマット\n * @export\n * @param {number} price\n * @returns {string}\n */\n export function COMMA_FORMAT(price?: number): string {\n if (price === undefined) {\n return '';\n }\n return String(price).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n }\n\n export namespace PREFECTURES {\n export const DATA = [\n '北海道',\n '青森県',\n '岩手県',\n '宮城県',\n '秋田県',\n '山形県',\n '福島県',\n '茨城県',\n '栃木県',\n '群馬県',\n '埼玉県',\n '千葉県',\n '東京都',\n '神奈川県',\n '新潟県',\n '富山県',\n '石川県',\n '福井県',\n '山梨県',\n '長野県',\n '岐阜県',\n '静岡県',\n '愛知県',\n '三重県',\n '滋賀県',\n '京都府',\n '大阪府',\n '兵庫県',\n '奈良県',\n '和歌山県',\n '鳥取県',\n '島根県',\n '岡山県',\n '広島県',\n '山口県',\n '徳島県',\n '香川県',\n '愛媛県',\n '高知県',\n '福岡県',\n '佐賀県',\n '長崎県',\n '熊本県',\n '大分県',\n '宮崎県',\n '鹿児島県',\n '沖縄県',\n ];\n export const DATA_KANA = [\n 'ホッカイドウ',\n 'アオモリケン',\n 'イワテケン',\n 'ミヤギケン',\n 'アキタケン',\n 'ヤマガタケン',\n 'フクシマケン',\n 'イバラキケン',\n 'トチギケン',\n 'グンマケン',\n 'サイタマケン',\n 'チバケン',\n 'トウキョウト',\n 'カナガワケン',\n 'ニイガタケン',\n 'トヤマケン',\n 'イシカワケン',\n 'フクイケン',\n 'ヤマナシケン',\n 'ナガノケン',\n 'ギフケン',\n 'シズオカケン',\n 'アイチケン',\n 'ミエケン',\n 'シガケン',\n 'キョウトフ',\n 'オオサカフ',\n 'ヒョウゴケン',\n 'ナラケン',\n 'ワカヤマケン',\n 'トットリケン',\n 'シマネケン',\n 'オカヤマケン',\n 'ヒロシマケン',\n 'ヤマグチケン',\n 'トクシマケン',\n 'カガワケン',\n 'エヒメケン',\n 'コウチケン',\n 'フクオカケン',\n 'サガケン',\n 'ナガサキケン',\n 'クマモトケン',\n 'オオイタケン',\n 'ミヤザキケン',\n 'カゴシマケン',\n 'オキナワケン',\n ];\n }\n\n /** メーカー */\n export namespace MAKER {\n /** ID\n * @export LEXUS:1,TOYOTA:2,NISSAN:3,HONDA:4,MAZDA:5,SUBARU:6,SUZUKI:7,DAIHATSU:8,MITSUBISHI:9\n * @enum {number}\n */\n export enum ID {\n /** 未選択 */\n UNSELECTED = 0,\n /** レクサス */\n LEXUS = 1,\n /** トヨタ */\n TOYOTA = 2,\n /** 日産 */\n NISSAN = 3,\n /** ホンダ */\n HONDA = 4,\n /** マツダ */\n MAZDA = 5,\n /** スバル */\n SUBARU = 6,\n /** スズキ */\n SUZUKI = 7,\n /** ダイハツ */\n DAIHATSU = 8,\n /** 三菱 */\n MITSUBISHI = 9,\n }\n\n /** データ構造\n * 配列順序がリスト表示の順番に相当\n */\n export const DATA = [\n {\n id: ID.UNSELECTED,\n name: '',\n key: '',\n isUnselected: true,\n img: '',\n },\n {\n id: ID.LEXUS,\n name: 'レクサス',\n key: 'lexus',\n img: 'lexus.png',\n },\n {\n id: ID.TOYOTA,\n name: 'トヨタ',\n key: 'toyota',\n img: 'toyota.png',\n },\n {\n id: ID.NISSAN,\n name: '日産',\n key: 'nissan',\n img: 'nissan.png',\n },\n {\n id: ID.HONDA,\n name: 'ホンダ',\n key: 'honda',\n img: 'honda.png',\n },\n {\n id: ID.MAZDA,\n name: 'マツダ',\n key: 'mazda',\n img: 'mazda.png',\n },\n {\n id: ID.SUBARU,\n name: 'スバル',\n key: 'subaru',\n img: 'subaru.png',\n },\n {\n id: ID.SUZUKI,\n name: 'スズキ',\n key: 'suzuki',\n img: 'suzuki.png',\n },\n {\n id: ID.DAIHATSU,\n name: 'ダイハツ',\n key: 'daihatsu',\n img: 'daihatsu.png',\n },\n {\n id: ID.MITSUBISHI,\n name: '三菱',\n key: 'mitsubishi',\n img: 'mitsubishi.png',\n },\n ];\n\n /**\n * 未選択データ、レクサスを除外したメーカーデータ\n */\n export const FILTERED_MAKER_DATA = MAKER.DATA.slice(2);\n\n /** 内部関数idでデータ探索\n * @param {MAKER.ID} id メーカーOD\n * @returns {number} index\n */\n function makerDataFind(id: MAKER.ID): number {\n const target = MAKER.DATA.findIndex((data) => data.id === id);\n if (target >= 0) {\n return target;\n }\n throw new Error('Invalid value');\n }\n\n /**\n * メーカー名\n * @export\n * @param {MAKER.ID} id\n * @returns {string}\n */\n export function NAME(id: MAKER.ID): string {\n return MAKER.DATA[makerDataFind(id)].name;\n }\n\n /** ID → KEY\n * @export\n * @param {MAKER.ID} id メーカID\n * @returns {string} KEY\n */\n export function ID_TO_KEY(id: MAKER.ID): string {\n return MAKER.DATA[makerDataFind(id)].key;\n }\n\n /** KEY → ID\n * @export\n * @param {string} key KEY\n * @returns {MAKER.ID} メーカID\n */\n export function KEY_TO_ID(key: string): MAKER.ID {\n const target = MAKER.DATA.find((data) => data.key === key);\n if (target) {\n return target.id;\n }\n throw new Error('Invalid value');\n }\n }\n\n /** ボディタイプ */\n export namespace BODY_TYPE {\n /**\n * ID\n * ※8は欠番。旧ハイブリッド\n * @export MINI_CAR:0,COMPACT_CAR:1,HATCH_BACK:2,MINIVAN:3,SUV:4,SEDAN:5,STATION_WAGON:6,COUPE:7\n * @enum {number}\n */\n\n // @export SEDAN:1,STATION_WAGON:2,MINIVAN:3,SUV:4,MINI_CAR:5,COMPACT_CAR:6,HATCH_BACK:7,COUPE:9\n // @enum {number}\n\n export enum ID {\n /** 未選択 */\n UNSELECTED = 0,\n /** セダン */\n SEDAN = 1,\n /** ステーションワゴン */\n STATION_WAGON = 2,\n /** ミニバン・ワゴン */\n MINIVAN = 3,\n /** SUV・クロカン */\n SUV = 4,\n /** 軽自動車 */\n MINI_CAR = 5,\n /** コンパクトカー */\n COMPACT_CAR = 6,\n /** ハッチバック */\n HATCH_BACK = 7,\n /** クーペ・オープンカー */\n COUPE = 9,\n /** その他 */\n OTHER = 10,\n }\n\n /** データ構造\n * 配列順序がリスト表示の順番に相当\n */\n export const DATA = [\n {\n id: ID.UNSELECTED,\n name: '',\n abb: '',\n key: '',\n isUnselected: true,\n },\n {\n id: ID.MINI_CAR,\n name: '軽自動車',\n abb: '軽自動車',\n key: 'mini',\n uri: '/lineup/mini/',\n },\n {\n id: ID.COMPACT_CAR,\n name: 'コンパクトカー',\n abb: 'コンパクト',\n key: 'compact',\n uri: '/lineup/compact/',\n },\n {\n id: ID.MINIVAN,\n name: 'ミニバン・ワゴン',\n abb: 'ミニバン',\n key: 'minivan',\n uri: '/lineup/minivan/',\n },\n {\n id: ID.SUV,\n name: 'SUV・クロカン',\n abb: 'SUV',\n key: 'suv',\n uri: '/lineup/suv/',\n },\n {\n id: ID.SEDAN,\n name: 'セダン',\n abb: 'セダン',\n key: 'sedan',\n uri: '/lineup/sedan/',\n },\n {\n id: ID.HATCH_BACK,\n name: 'ハッチバック',\n abb: '',\n key: 'hatchback',\n uri: '/lineup/hatchback/',\n },\n {\n id: ID.STATION_WAGON,\n name: 'ステーションワゴン',\n abb: '',\n key: 'stationwagon',\n uri: '/lineup/stationwagon/',\n },\n {\n id: ID.COUPE,\n name: 'クーペ・オープンカー',\n abb: 'クーペ',\n key: 'coupe',\n uri: '/lineup/coupe/',\n },\n {\n id: ID.OTHER,\n name: 'その他',\n abb: 'その他',\n key: 'other',\n uri: '/lineup/other/',\n },\n ];\n\n export const FILTERED_BODYTYPE_DATA = BODY_TYPE.DATA.slice(1, 9);\n\n /** 内部関数idでデータ探索\n * @param {BODY_TYPE.ID} id\n * @returns {number}\n */\n function bodytypeDataFind(id: BODY_TYPE.ID): number {\n const target = BODY_TYPE.DATA.findIndex((data) => data.id === id);\n if (target >= 0) {\n return target;\n }\n return BODY_TYPE.DATA.findIndex((data) => data.id === BODY_TYPE.ID.OTHER);\n }\n /**\n * メーカー名\n * @export\n * @param {BODY_TYPE.ID} id\n * @returns {string}\n */\n export function NAME(id: BODY_TYPE.ID): string {\n return BODY_TYPE.DATA[bodytypeDataFind(id)].name;\n }\n\n /**\n * ID → ABB\n * @export\n * @param {BODY_TYPE.ID} id\n * @returns {string}\n */\n export function ABB(id: BODY_TYPE.ID): string {\n return BODY_TYPE.DATA[bodytypeDataFind(id)].abb;\n }\n\n /** ID → KEY\n * @export\n * @param {BODY_TYPE.ID} id メーカID\n * @returns {string} KEY\n */\n export function ID_TO_KEY(id: BODY_TYPE.ID): string {\n return BODY_TYPE.DATA[bodytypeDataFind(id)].key;\n }\n\n /** KEY → ID\n * @export\n * @param {string} key KEY\n * @returns {BODY_TYPE.ID} メーカID\n */\n export function KEY_TO_ID(key: string): BODY_TYPE.ID {\n const target = BODY_TYPE.DATA.find((data) => data.key === key);\n if (target) {\n return target.id;\n }\n throw new Error('Invalid value');\n }\n }\n\n export namespace SELECTION {\n enum ID {\n SPACIOUS_COMPACT = '00010',\n COST_EFFICIENT = '00020',\n BEGINNER_FRIENDLY = '00030',\n COMMUTER_FRIENDLY = '00040',\n PET_FRIENDLY = '00050',\n FAMILY_FRIENDLY = '00060',\n }\n export const ITEMS = [\n {\n id: ID.SPACIOUS_COMPACT,\n condition: {\n body: [CARMO_CONST.BODY_TYPE.ID.MINI_CAR],\n option: [NEWCAR_CONST.SEARCH_OPTION.ID.HAS_POWER_SLIDE_DOOR],\n },\n benefit: {\n title: '広い軽自動車',\n description: '軽自動車の利点は多く、狭い道でもスムーズに通行できること、低燃費で経済的なこと、税金や保険料がお得なことなどが挙げられます。しかしながら、一般的な軽自動車では狭さや利便性に不満を感じる方も少なくありません。そこで注目したいのが、「電動スライドドア」を装備した広い軽自動車です。
「電動スライドドア」のメリットは、狭い駐車スペースでもドアを開けやすいこと、子供や高齢者も扱いやすいこと、荷物を持っている際でもスムーズに乗り降りできることなどがあります。これに広い軽自動車の空間性を加えると、使い勝手と快適性が格段にアップします。
車探しで「広さ」「使い勝手」を重視する方にとって、この組み合わせはまさに理想的。都市部での移動からアウトドアシーンまで幅広く対応します。狭い道や駐車場でもストレスフリーに過ごしたい方、新しい軽自動車の選択肢として、ぜひこの組み合わせを考慮してみてください。',\n },\n meta: {\n title: '車内が広くて安い軽自動車人気おすすめ厳選$${carsLength}$$選|新車カーリース(車のサブスク)|定額カルモくん',\n description: '軽自動車の新定番、電動スライドドア装備!狭い場所でもスムーズ、子供・高齢者も安心。広さと使い勝手を両立した新車の軽自動車をご紹介。都市の移動からアウトドアまで、あなたの新しいカーリース選びに最適。定額カルモくんで理想の一台を見つけよう!',\n },\n },\n {\n id: ID.COST_EFFICIENT,\n condition: {\n price: [NEWCAR_CONST.PRICE.ID.BW_10_20K, NEWCAR_CONST.PRICE.ID.BW_20_30K],\n body: [CARMO_CONST.BODY_TYPE.ID.MINI_CAR, CARMO_CONST.BODY_TYPE.ID.COMPACT_CAR, CARMO_CONST.BODY_TYPE.ID.MINIVAN],\n option: [NEWCAR_CONST.SEARCH_OPTION.ID.HAS_HYBRID],\n },\n benefit: {\n title: '維持費の安い',\n description: '維持費を抑えた車を選びたいと考える方に、月々の支払いが1万円代、2万円代と非常にリーズナブルな上、軽自動車やコンパクトカーの取り回しの良さ、ミニバンの収容力、そしてハイブリッド車の燃費の良さを兼ね備えている車が挙げられます。維持費を重視するだけでなく、日常の使い勝手や環境への配慮も考える方、車探しに迷っている方、初めての車購入を考えている方、家計の助けとなる低維持費の車を求めている方などあなたのカーライフをより豊かに、そして経済的にサポートします。',\n },\n meta: {\n title: '維持費の安い新車人気おすすめ厳選$${carsLength}$$選|新車カーリース(車のサブスク)|定額カルモくん',\n description: '維持費が安いだけじゃない!月々の支払いがリーズナブルな新車をご紹介。軽自動車の取り回し、ミニバンの収容力、ハイブリッドの燃費効率...全部揃ってます。日常使いから環境への配慮、家計の助けまで。定額カルモくんで、あなたのカーライフを経済的に豊かにサポート!',\n },\n },\n {\n id: ID.BEGINNER_FRIENDLY,\n condition: {\n price: [NEWCAR_CONST.PRICE.ID.BW_10_20K],\n body: [CARMO_CONST.BODY_TYPE.ID.MINI_CAR, CARMO_CONST.BODY_TYPE.ID.COMPACT_CAR, CARMO_CONST.BODY_TYPE.ID.MINIVAN, CARMO_CONST.BODY_TYPE.ID.SUV],\n },\n benefit: {\n title: '初心者向け',\n description: '初めての車選びはドキドキのワクワクと、同時に「どれがいいのだろう」という迷いが交錯しますね。そんなあなたの迷いを解消すべく、初心者の方にぴったりの車を厳選してご紹介します。特に注目したいのは、11年カーリースで月額わずか1万円代という経済的な魅力
そして、初心者でも扱いやすい軽自動車都市部での移動に適したコンパクトカー家族のお出かけに最適なミニバンアウトドア派には欠かせないSUVと、様々なライフスタイルに合わせた選択が可能です。
車は単なる移動手段ではなく、日々の生活の大切なパートナー。初めての選択を心から後悔しないよう、信頼できる車をお求め安い価格でご提供することを心掛けています。初めての車選びでの不安や疑問、私たちがしっかりサポートします。
このオンラインサイトをあなたの新しいカーライフのスタート地点として、最適な選択の一助としていただければ幸いです。',\n },\n meta: {\n title: '初心者に人気おすすめの新車厳選$${carsLength}$$選|新車カーリース(車のサブスク)|定額カルモくん',\n description: '初めての車選び、迷いますよね?初心者にぴったりな新車をご紹介!月々1万円代でのカーリースや、初心者向け軽自動車からSUVまで、あらゆるライフスタイルに応えます。車はあなたの日常のパートナー。不安や疑問は私たちがサポート。定額カルモくんで、新しいカーライフのスタートを!',\n },\n },\n {\n id: ID.COMMUTER_FRIENDLY,\n condition: {\n price: [NEWCAR_CONST.PRICE.ID.BW_10_20K, NEWCAR_CONST.PRICE.ID.BW_20_30K],\n option: [NEWCAR_CONST.SEARCH_OPTION.ID.HAS_CRUISE_CTRL],\n },\n benefit: {\n title: '通勤・長距離',\n description: '通勤や長距離ドライブに頼りになる車をお探しのあなたのドライブをより快適にサポートする新車を取り揃えています。
特に、11年カーリースの月額1万円代から2万円代の経済的な範囲で、クルーズコントロール搭載の車をご紹介しております。
クルーズコントロールは、長距離運転の際の疲れを軽減させるため、非常に重宝する機能です。
定速運転をサポートすることで、ドライバーの疲労を減少させ、より安全な運転を実現します。
また、燃費の向上にも寄与するため、経済的な運転をサポートする点でも魅力的です。',\n },\n meta: {\n title: '通勤・長距離ドライブに人気おすすめの新車厳選$${carsLength}$$選|新車カーリース(車のサブスク)|定額カルモくん',\n description: '通勤や長距離の運転、もっと快適に。厳選された新車の中で、月額1万円代からクルーズコントロール搭載の新車を提供!長時間の運転でも疲れにくく、燃費向上もサポート。より安全で経済的なドライブを実現します。定額カルモくんで、あなたの理想のカーライフをサポート!',\n },\n },\n {\n id: ID.PET_FRIENDLY,\n condition: {\n price: [NEWCAR_CONST.PRICE.ID.BW_10_20K, NEWCAR_CONST.PRICE.ID.BW_20_30K],\n body: [CARMO_CONST.BODY_TYPE.ID.MINI_CAR, CARMO_CONST.BODY_TYPE.ID.COMPACT_CAR, CARMO_CONST.BODY_TYPE.ID.MINIVAN, CARMO_CONST.BODY_TYPE.ID.SUV],\n option: [NEWCAR_CONST.SEARCH_OPTION.ID.HAS_SMART_KEY],\n },\n benefit: {\n title: 'ペット(犬)向け',\n description: 'ペットや愛犬とのドライブは、私たちの特別な時間となるものです。しかし、ペットを安心して乗せることができる車を見つけるのは簡単ではありません。あなたのペットや愛犬との最高のドライブをサポートする新車をご紹介します。
こちらの新車一覧では、11年カーリースで月額1万円代および2万円代という家計に優しい車を豊富に取り揃え、軽自動車からミニバン、コンパクトカー、そしてSUVまで、ペットとの移動に適した種類の車を幅広く選べます。
また、スマートキー搭載という便利機能も多数の車に取り入れられています。手が塞がった際にも、鍵を取り出さずにドアの開閉やエンジンの始動ができるスマートキーは、ペットのお世話をしながらの移動時にも大変役立ちます。',\n },\n meta: {\n title: 'ペット(犬)にやさしい人気おすすめの新車厳選$${carsLength}$$選|新車カーリース(車のサブスク)|定額カルモくん',\n description: 'ペットや愛犬とのドライブをもっと快適に。月額1万円代・2万円代でお求めやすい新車をご紹介。軽自動車からSUVまで、ペットの安全・快適さを考慮したモデルを幅広くラインナップ。さらに、ペットのお世話中でも便利なスマートキー搭載車も多数。定額カルモくんで、ペットとの特別なドライブをサポートします!',\n },\n },\n {\n id: ID.FAMILY_FRIENDLY,\n condition: {\n price: [NEWCAR_CONST.PRICE.ID.BW_10_20K, NEWCAR_CONST.PRICE.ID.BW_20_30K],\n option: [NEWCAR_CONST.SEARCH_OPTION.ID.HAS_POWER_SLIDE_DOOR],\n },\n benefit: {\n title: 'ファミリー向け',\n description: '新しい家族の仲間、そして新たなる生活の節目に、車選びは欠かせない大切な一つです。特に、お子様が生まれた際の車選びは、快適さはもちろん、安全性や機能性が求められます。そんなご家族のニーズに答える新車をご紹介しております。こちらの新車一覧では、11年カーリースで月額1万円代および2万円代というリーズナブルな価格帯で、お子様の成長を見守りながら長くお使いいただける車を厳選しています。
そして、子育ての日常に役立つ電動スライドドアを搭載したモデルも多数取り揃えております。お子様や荷物を乗せる際のストレスを軽減し、毎日の移動をより楽しく、より快適にサポートします。また、子供の成長とともに変わるライフスタイルに対応できるよう、多機能で使い勝手の良い内装や収納スペースを持つ車も多数ご用意しています。新しい家族のための新しい車、その選び方一つで日常がぐっと快適になります。',\n },\n meta: {\n title: 'ファミリーカー人気おすすめ厳選$${carsLength}$$選|新車カーリース(車のサブスク)|定額カルモくん',\n description: '新しい家族の節目に最適なファミリーカーをご紹介。月額1万円代・2万円代のリーズナブルな価格で、安全性・快適さを兼ね備えた車を厳選。電動スライドドア搭載のモデルや、子育ての日常をサポートする多機能内装を持つ車も。お子様の成長を見守る長く使える車で、毎日の移動をもっと快適に。定額カルモくんで家族の新たな一歩をサポートします!',\n },\n },\n ];\n }\n\n /** カルモマガジン */\n export namespace MAGAZINE {\n export const NO_POPUP_LOCAL_STORAGE_KEY = 'no_mag_popup';\n }\n\n /** 金額 */\n export namespace PRICE {\n export const TAX = 1.1;\n }\n\n export const copyright = '©2018- Nyle Inc.';\n\n /** 申込できる年齢 */\n export namespace AGE {\n export const OLDEST_AGE = 75;\n export const YOUNGEST_AGE = 18;\n }\n\n /** 資料請求 */\n export namespace REQUEST_INFORMATION {\n export const ALREADY_READ = 'is_already_read';\n }\n}\n\nexport default CARMO_CONST;\n","type GTMWindow = {\n dataLayer: Array\n}\n\nexport class GTM {\n static get dataLayer(): Array {\n const defaultDataLayer = ((window as object) as GTMWindow).dataLayer ?? [];\n ((window as object) as GTMWindow).dataLayer = defaultDataLayer;\n\n return ((window as object) as GTMWindow).dataLayer;\n }\n}\n","/* eslint-disable @typescript-eslint/no-namespace */\nnamespace Log {\n /**\n * traceログ\n * デバッグモードが有効で、console.log()が使える時に、\n * コンソールに文字列を出力します。\n * @param {string[]} ...args 出力したい文字列です。\n */\n export function trace(msg: string): void {\n if (\n process.env.APP_DEBUG === 'true'\n && window.console\n && typeof window.console.log !== 'undefined'\n ) {\n window.console.log(msg);\n }\n }\n\n /**\n * errorログ\n * デバッグモードが有効の場合、console.errorで文字列出力。\n * デバッグモードが無効の場合、サーバー通信\n * @export\n * @param {Error} err\n */\n export function error(err: Error): void {\n if (\n process.env.APP_DEBUG === 'true'\n && window.console\n && typeof window.console.error !== 'undefined'\n ) {\n window.console.error(err.stack);\n } else {\n // todo\n }\n }\n\n /**\n * errorEventログ\n * デバッグモードが有効の場合、console.errorで文字列出力。\n * デバッグモードが無効の場合、サーバー通信\n * @export\n * @param {ErrorEvent} e\n */\n export function errorEvent(e: ErrorEvent): void {\n if (\n process.env.APP_DEBUG === 'true'\n && window.console\n && typeof window.console.error !== 'undefined'\n ) {\n window.console.error(\n `${e.message\n }|${\n e.filename\n }[${\n e.lineno\n }-${\n e.colno\n }]${\n e.error}`,\n );\n } else {\n // todo\n }\n }\n}\nexport default Log;\n","/* eslint-disable no-empty */\n/* eslint-disable @typescript-eslint/no-namespace */\nimport CARMO_CONST from '@/common/util/const';\n\nnamespace Util {\n /**\n * Metaのtitle,descriptionの設定\n * @export\n * @param {string} title\n * @param {string} description\n */\n export function setMeta(title: string, description: string): void {\n if (title) {\n document.title = title;\n }\n const desc = document.querySelector(\"meta[name='description']\");\n if (desc) {\n desc.setAttribute('content', description);\n }\n }\n\n /**\n * Metaのrobotsを設定\n */\n export function setRobots(): void {\n let meta = document.querySelector('meta[name=\\'robots\\']');\n if (!meta) {\n meta = document.createElement('meta');\n document.head.appendChild(meta);\n meta.setAttribute('name', 'robots');\n }\n meta.setAttribute('content', 'noindex');\n }\n /**\n * Metaのrobotsを削除\n */\n export function removeRobots(): void {\n const meta = document.querySelector('meta[name=\\'robots\\']');\n if (meta) {\n meta.remove();\n }\n }\n\n /**\n * OGP の設定\n *\n * @export\n * @param {{ property: string, content: string }} ogp\n */\n export function setOgp(ogp: { property: string, content: string }): void {\n let meta = document.querySelector(`meta[property='og:${ogp.property}']`);\n if (!meta) {\n meta = document.createElement('meta');\n document.head.appendChild(meta);\n }\n meta.setAttribute('property', `og:${ogp.property}`);\n meta.setAttribute('content', ogp.content);\n }\n\n /**\n * Twitter OGP の設定\n *\n * @export\n * @param {{ name: string, content: string }} ogp\n */\n export function setTwitterOgp(ogp: { name: string, content: string }): void {\n let meta = document.querySelector(`meta[name='twitter:${ogp.name}']`);\n if (!meta) {\n meta = document.createElement('meta');\n document.head.appendChild(meta);\n }\n meta.setAttribute('name', `twitter:${ogp.name}`);\n meta.setAttribute('content', ogp.content);\n }\n\n /**\n * カルモマガジンポップアップの非表示設定\n */\n export function setNoMagazinePopup(): void {\n if (window.localStorage) {\n try {\n // ポップアップ非表示フラグ格納\n window.localStorage.setItem(CARMO_CONST.MAGAZINE.NO_POPUP_LOCAL_STORAGE_KEY, 'true');\n } catch (e) {}\n }\n }\n\n /**\n * 消費税計算\n */\n export function calcTAX(arg?: number): number {\n const tax = CARMO_CONST.PRICE.TAX;\n if (arg) {\n return (arg < 0) ? Math.ceil(arg * tax) : Math.floor(arg * tax);\n }\n // undefined時は0\n return 0;\n }\n\n /**\n * 指定位置までスムーススクロール\n * @param id\n */\n export function scrollToId(id: string, margin?: number): void {\n // 画面の変更を考慮して気持ち遅らせる\n setTimeout(() => {\n const target: HTMLElement | null = document.getElementById(id);\n if (target) {\n window.scrollTo({\n top:\n window.scrollY + target.getBoundingClientRect().top - (margin || 0),\n behavior: 'smooth',\n });\n }\n }, 100);\n }\n\n export function setItem(key: string, value: object): void {\n try {\n if (window.localStorage) {\n window.localStorage.setItem(key, JSON.stringify(value));\n } else {\n document.cookie = `${key}=${JSON.stringify(value)};domain=${window.location.hostname};path=/;max-age=31536000`;\n }\n } catch (e) {}\n }\n\n export function getItem(key: string): string | undefined {\n try {\n let value;\n if (window.localStorage) {\n value = window.localStorage.getItem(key) || '';\n } else {\n const pattern = new RegExp(`(?:(?:^|.*;\\\\s*)${key}\\\\s*=\\\\s*([^;]*).*$)|^.*$`);\n value = document.cookie.replace(pattern, '$1');\n }\n return JSON.parse(value);\n } catch (e) { return undefined; }\n }\n\n /**\n * contract/contact_infoを閲覧したことを記録する\n */\n export function setAlreadyReadContactInfo(): void {\n if (window.localStorage) {\n try {\n // 既読フラグ格納\n window.localStorage.setItem(\n CARMO_CONST.REQUEST_INFORMATION.ALREADY_READ,\n 'true',\n );\n // urlリストの設定\n const localStorageUrlList = getItem('urlList') || '';\n let urlList = [];\n if (typeof localStorageUrlList === 'object') {\n urlList = localStorageUrlList;\n }\n if (localStorageUrlList[localStorageUrlList.length - 1] !== window.location.pathname\n && window.location.pathname === '/contract/contact_info/'\n ) {\n urlList.push(window.location.pathname);\n }\n if (urlList.length > 3) {\n urlList = urlList.slice(-3);\n }\n setItem('urlList', urlList);\n } catch (e) {}\n }\n }\n}\nexport default Util;\n","import CARMO_CONST from '@/common/util/const';\nimport NEWCAR_CONST from '@/newcar/util/const';\n\n/**\n * 検索条件\n * @export\n * @class SearchCondition\n */\nexport default class SearchCondition {\n /**\n * 検索を実施した場合の遷移先URI\n * @type {(string | undefined)}\n * @memberof SearchCondition\n */\n public resultURI: string | undefined = undefined;\n\n /**\n * ワード検索\n * @type {(string | undefined)}\n * @memberof SearchCondition\n */\n public word: string | undefined = undefined;\n\n /**\n * ワード検索結果\n * @type {(string[] | undefined)}\n * @memberof SearchCondition\n */\n public wordResult: string[] = [];\n\n /**\n * メーカー\n * @type {CARMO_CONST.MAKER.ID[]}\n * @memberof SearchCondition\n */\n public maker: CARMO_CONST.MAKER.ID[] = [];\n\n /**\n * ボディタイプ\n * @type {CARMO_CONST.BODY_TYPE.ID[]}\n * @memberof SearchCondition\n */\n public body: CARMO_CONST.BODY_TYPE.ID[] = [];\n\n /**\n * 期間\n * @type {NEWCAR_CONST.TERM.ID}\n * @memberof SearchCondition\n */\n public term: NEWCAR_CONST.TERM.ID = NEWCAR_CONST.TERM.ID.YEAR_11;\n\n /**\n * 価格\n * @type {NEWCAR_CONST.PRICE.ID[]}\n * @memberof SearchCondition\n */\n public price: NEWCAR_CONST.PRICE.ID[] = [];\n\n /**\n * 定員\n * @type {NEWCAR_CONST.PRICE.ID[]}\n * @memberof SearchCondition\n */\n public capacity: NEWCAR_CONST.CAPACITY.ID[] = [];\n\n /**\n * その他条件\n * @type {NEWCAR_CONST.SEARCH_OPTION.ID[]}\n * @memberof SearchCondition\n */\n public option: NEWCAR_CONST.SEARCH_OPTION.ID[] = [];\n\n /**\n * 並び順\n * @type {(boolean | undefined)}\n * @memberof SearchCondition\n */\n public orderBy: NEWCAR_CONST.SORT | undefined = undefined;\n}\n","import NEWCAR_CONST from '@/newcar/util/const';\n\n/**\n * 利用者の選択結果\n * @export\n * @class CustomerSelection\n */\nexport default class CustomerSelection {\n /**\n * 車種ID\n * @type {string}\n * @memberof CustomerSelection\n */\n public id = '';\n\n /**\n * 期間\n * @type {NEWCAR_CONST.TERM.ID}\n * @memberof CustomerSelection\n */\n public term?: NEWCAR_CONST.TERM.ID;\n\n /**\n * エンジン種別\n * @type {NEWCAR_CONST.ENGINE.ID}\n * @memberof CustomerSelection\n */\n public engine?: NEWCAR_CONST.ENGINE.ID;\n\n /**\n * 駆動方式\n * @type {NEWCAR_CONST.KUDOU.ID}\n * @memberof CustomerSelection\n */\n public kudou?: NEWCAR_CONST.KUDOU.ID;\n\n /**\n * ミッション\n * @type {'AT' | 'MT'}\n * @memberof CustomerSelection\n */\n public mission?: 'AT' | 'MT';\n\n /**\n * グレードID\n * @type {number}\n * @memberof CustomerSelection\n */\n public gradeId?: number;\n\n /**\n * グレード名称\n * @type {string}\n * @memberof CustomerSelection\n */\n public gradeName?: string;\n\n /**\n * 発注グレード名\n * @type {string}\n * @memberof CustomerSelection\n */\n public orderName?: string;\n\n /**\n * ボディーカラーID\n * @type {string}\n * @memberof CustomerSelection\n */\n public bodyColorId?: string;\n\n // カーナビ\n public carNavi?: string | undefined;\n\n // ETC\n public etc?: string | undefined;\n\n // バックカメラ\n public backCamera?: string | undefined;\n\n // フロアマット\n public floorMat?: string | undefined;\n\n // ドアバイザー\n public doorVisor?: string | undefined;\n\n // ドアバイザー無しの車両\n public dontHaveDoorVisor?: boolean;\n\n // 希望ナンバー\n public wantNo?: string | undefined;\n\n // もらえるオプション\n public wantCar?: string;\n\n // メンテナンスプラン\n public maintenancePlan?: NEWCAR_CONST.MAINTENANCE.PLAN;\n\n // マスタ番号\n public masterNumber?: string;\n}\n","/* eslint-disable max-classes-per-file */\nimport CarDigest from '@/common/core/model/carDigest';\nimport VehicleGrade from '@/common/core/model/catalog/vehicleGrade';\nimport { IMaintenancePlan } from '@/newcar/core/store/dataset/maintenance';\nimport NEWCAR_CONST from '@/newcar/util/const';\n\n/**\n * ボディカラーの内訳\n */\nexport class BodyColorBreakdown {\n public id?: string;\n\n public name?: string;\n\n public leasingFee?: number;\n\n public supportFee?: number;\n}\n\n/**\n * オプションの内訳\n */\nexport class OptionBreakdown {\n public id?: string;\n\n public name?: string;\n\n public isStandard?: boolean;\n\n public leasingFee?: number;\n\n public supportFee?: number;\n}\n\n/**\n * もらえるオプション\n */\nexport class WantCarBreakdown {\n public price!: number;\n}\n\n/**\n * 審査申込内訳\n */\nexport class EntryBreakdown {\n /**\n * 賃貸期間(年)\n */\n public term?: NEWCAR_CONST.TERM.ID;\n\n /**\n * 車種\n */\n public car?: CarDigest;\n\n /**\n * グレード\n */\n public grade?: VehicleGrade;\n\n /**\n * ボディカラー\n */\n public bodyColor?: BodyColorBreakdown;\n\n /**\n * ボディタイプ\n */\n public bodyType?: string;\n\n /**\n * カーナビ\n */\n public carNavi?: OptionBreakdown;\n\n /**\n * ETC\n */\n public etc?: OptionBreakdown;\n\n /**\n * バックカメラ\n */\n public backCamera?: OptionBreakdown;\n\n /**\n * フロアマット\n */\n public floorMat?: OptionBreakdown;\n\n /**\n * 希望ナンバー\n */\n public wantNo?: OptionBreakdown;\n\n /**\n * ドアバイザー\n */\n public doorVisor?: OptionBreakdown;\n\n /**\n * メンテナンスプラン\n */\n public maintenancePlan?: IMaintenancePlan;\n\n /**\n * もらえるオプション\n */\n public wantCar?: WantCarBreakdown;\n\n /**\n * 備考\n */\n public memo?: string;\n\n /**\n * マスタ番号\n */\n public masterNumber?: string;\n\n /**\n * 流入元\n */\n public from?: string;\n\n /**\n * LPプラン名\n */\n public referrerPlan?: string;\n\n /**\n * LP月額\n */\n public referrerLpMonthlyPrice?: string;\n\n /**\n * LP流入元\n */\n public referrerLpLink?: string;\n\n /**\n * 流入元分類\n */\n public referrerType?: string;\n\n /**\n * 車種状態\n */\n public carCondition?: string;\n\n /**\n * 車種選択状況\n */\n public carSelectStatus?: string;\n\n /**\n * プラン詳細\n */\n public planDetails?: string;\n\n /**\n * CTA\n */\n public cta?: string;\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-empty */\nimport { observable, action, computed } from 'mobx';\nimport { store } from '@/common/core/store/decorator';\n\nimport { EntryBreakdown } from '@/newcar/core/store/dataset/entryBreakdown';\nimport NEWCAR_CONST from '@/newcar/util/const';\nimport StoreUtil from '@/newcar/core/store/storeUtil';\n\n/**\n * 小計の計算\n * @param entryBreakdown 申込内訳\n */\nfunction subtotal(entryBreakdown: EntryBreakdown) {\n if (!entryBreakdown || !entryBreakdown.term) {\n return 0;\n }\n\n // グレード料金\n const gradeFee = StoreUtil.taxedTotalFee(\n entryBreakdown.grade,\n NEWCAR_CONST.TERM.TO_MONTHS(entryBreakdown.term),\n ) + StoreUtil.calcTAX(NEWCAR_CONST.BREAKDOWN.CUSTOMER_SUPPORT_FEE);\n\n // オプション料金\n const optionFee = [\n entryBreakdown.carNavi,\n entryBreakdown.etc,\n entryBreakdown.backCamera,\n entryBreakdown.floorMat,\n entryBreakdown.wantNo,\n entryBreakdown.doorVisor,\n ]\n .filter((opt) => opt && opt.isStandard !== true) // 標準装備は除く\n .concat([entryBreakdown.bodyColor])\n .reduce((acc, cur) => acc + StoreUtil.taxedTotalFee(cur), 0);\n\n // メンテナンス料金\n let maintenancePrice = 0;\n if (entryBreakdown.maintenancePlan) {\n maintenancePrice = entryBreakdown.maintenancePlan.price;\n }\n\n // もらえるオプション料金\n const wantCarPrice = entryBreakdown && entryBreakdown.wantCar ? entryBreakdown.wantCar.price : 0;\n\n // 小計\n return gradeFee + optionFee + maintenancePrice + wantCarPrice;\n}\n\n@store()\nexport default class EntryBreakdownManagerStore {\n @observable entryBreakdown: EntryBreakdown = {};\n\n @action\n setEntryBreakdown(entryBreakdown: EntryBreakdown): void {\n this.entryBreakdown = entryBreakdown;\n }\n\n @action\n restoreFromSessionStorage(): void {\n this.entryBreakdown = {};\n try {\n if (sessionStorage.entryBreakdown) {\n this.entryBreakdown = JSON.parse(sessionStorage.entryBreakdown);\n }\n } catch (e) {}\n }\n\n @action\n saveToSessionStorage(): void {\n try {\n if (this.entryBreakdown) {\n sessionStorage.entryBreakdown = JSON.stringify(this.entryBreakdown);\n }\n } catch (e) {}\n }\n\n @action\n async clearEntryBreakdown(): Promise {\n try {\n if (this.entryBreakdown) {\n this.entryBreakdown = {};\n sessionStorage.removeItem('entryBreakdown');\n }\n } catch (e) {}\n }\n\n @action\n updateEntryBreakdown(item: { field: string; payload: any }): void {\n this.entryBreakdown = {\n ...this.entryBreakdown,\n [item.field]: item.payload,\n } as EntryBreakdown;\n }\n\n @computed\n get getEntryBreakdown(): EntryBreakdown {\n return this.entryBreakdown;\n }\n\n @computed\n get formData(): EntryBreakdown {\n // TODO\n return this.entryBreakdown;\n }\n\n /**\n * 契約月数\n */\n @computed\n get months(): number | undefined {\n return NEWCAR_CONST.TERM.TO_MONTHS(\n this.entryBreakdown && this.entryBreakdown.term,\n );\n }\n\n /**\n * 税込グレード料金\n */\n @computed\n get taxedGradeFee(): number {\n return (\n StoreUtil.taxedTotalFee(\n this.entryBreakdown && this.entryBreakdown.grade,\n NEWCAR_CONST.TERM.TO_MONTHS(\n this.entryBreakdown && this.entryBreakdown.term,\n ),\n ) + StoreUtil.calcTAX(NEWCAR_CONST.BREAKDOWN.CUSTOMER_SUPPORT_FEE)\n );\n }\n\n /**\n * 各オプション料金\n */\n @computed\n get taxedTotalFeeOfOption(): (optionKey: string, months?: number) => number {\n return (optionKey: string, months?: number): number => {\n const data = this.entryBreakdown\n && (this.entryBreakdown as { [optionKey: string]: any })[optionKey];\n if (!data || data.isStandard === true) {\n return 0;\n }\n\n return StoreUtil.taxedTotalFee(data, months);\n };\n }\n\n /**\n * オプション名\n */\n @computed\n get optionName(): (optionKey: string) => string {\n return (optionKey: string): string => {\n const data = this.entryBreakdown\n && (this.entryBreakdown as { [optionKey: string]: any })[optionKey];\n if (!data) {\n return 'なし';\n }\n if (data.isStandard === true) {\n return '標準装備';\n }\n\n return data.name || 'なし';\n };\n }\n\n /**\n * 小計\n */\n @computed\n get subtotal(): number {\n return subtotal(this.entryBreakdown);\n }\n\n /**\n * 月額料金\n */\n @computed\n get monthlyFee(): number {\n return (\n subtotal(this.entryBreakdown)\n + StoreUtil.taxedoOlineDiscount(\n this.entryBreakdown.grade,\n NEWCAR_CONST.TERM.TO_MONTHS(this.entryBreakdown.term),\n )\n );\n }\n\n /**\n * 仲介手数料\n */\n @computed\n get brokerageFee(): number {\n if (!this.entryBreakdown || !this.entryBreakdown.term) {\n return 0;\n }\n const gradeSupportFee = StoreUtil.taxedSupportFee(\n this.entryBreakdown.grade,\n NEWCAR_CONST.TERM.TO_MONTHS(this.entryBreakdown.term),\n );\n\n const targetOptions = [\n this.entryBreakdown.carNavi,\n this.entryBreakdown.etc,\n this.entryBreakdown.backCamera,\n this.entryBreakdown.floorMat,\n this.entryBreakdown.wantNo,\n this.entryBreakdown.doorVisor,\n ]\n .filter((opt) => opt && opt.isStandard !== true) // 標準装備は除く\n .concat([this.entryBreakdown.bodyColor]);\n\n const optionSupportFee = targetOptions.reduce(\n (acc, cur) => acc + StoreUtil.taxedSupportFee(cur),\n 0,\n );\n\n return gradeSupportFee + optionSupportFee;\n }\n\n /** ネット割 */\n @computed\n get taxedoOlineDiscount(): number {\n return StoreUtil.taxedoOlineDiscount(\n this.entryBreakdown.grade,\n NEWCAR_CONST.TERM.TO_MONTHS(this.entryBreakdown.term),\n );\n }\n}\n\nexport const entryBreakdownManagerStore = new EntryBreakdownManagerStore();\n","/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport API from '@/common/util/api';\nimport URI from '@/newcar/util/uri';\n\n/**\n * 商品情報API\n */\nnamespace ProductAPI {\n\n export async function getDigest(): Promise {\n return API.get(API.API_SETTINGS.CDN_API.name, URI.APIEndPoints.Digest);\n }\n\n export async function getDetail(): Promise {\n return API.get(API.API_SETTINGS.CDN_API.name, URI.APIEndPoints.Detail);\n }\n}\n\nexport default ProductAPI;\n","/* eslint-disable eqeqeq */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable max-len */\n/* eslint-disable camelcase */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { observable, action, computed } from 'mobx';\nimport { store } from '@/common/core/store/decorator';\nimport SearchCondition from '@/newcar/core/model/searchCondition';\nimport NEWCAR_CONST from '@/newcar/util/const';\nimport CARMO_CONST from '@/common/util/const';\nimport { AxiosResponse } from 'axios';\nimport Log from '@/common/util/log';\nimport API from '@/common/util/api';\nimport URI from '@/newcar/util/uri';\nimport CarDigest from '@/common/core/model/carDigest';\nimport CarDetail from '@/common/core/model/carDetail';\nimport { VehicleTypes } from '@/common/core/model/catalog/vehicleTypes';\nimport BodyColorInfo from '@/common/core/model/catalog/bodyColorInfo';\nimport OptionFee from '@/common/core/model/catalog/optionFee';\nimport OptionInfo from '@/common/core/model/catalog/optionInfo';\nimport ProductAPI from '@/newcar/util/productAPI';\n\n/**\n * 車種 概要\n * @class SearchCarStore\n */\n@store({ persist: true, name: 'SearchCarStore' })\nexport default class SearchCarStore {\n /** state:全車種CarDigestリスト */\n @observable public allCarDigests: CarDigest[] = [];\n\n /** state:全車種Detailリスト */\n @observable public allCarDetails?: VehicleTypes[] = [];\n\n /** state:全車種BodyColorリスト */\n @observable public allBodyColorList?: BodyColorInfo[] = [];\n\n /** state:全車種オプション情報リスト */\n @observable public allOptionInfoList?: OptionInfo[] = [];\n\n /** state:全車種オプション料金リスト */\n @observable public allOptionFeeList?: OptionFee[] = [];\n\n /** state:検索結果リスト */\n @observable public resultList: CarDigest[] = [];\n\n /** state:こだわり用次条件 */\n @observable public nextCondition: SearchCondition = new SearchCondition();\n\n /** state:検索履歴リスト */\n @observable public searchHistoryList: SearchCondition[] = [];\n\n /** state:閲覧履歴リスト */\n @observable public browsingList: CarDigest[] = [];\n\n /** 最後に閲覧した車種のCarDigest */\n @observable public lastViewCarDigestData: CarDigest | undefined = undefined;\n\n /** 最後に閲覧した車種のDetail */\n @observable public lastViewDetailData: VehicleTypes | undefined = undefined;\n\n /**\n * 最後に閲覧した車種のCarDigest\n * @readonly\n * @memberof SearchCarStore\n */\n @computed\n get lastViewCarDigest(): CarDigest | undefined {\n return this.lastViewCarDigestData;\n }\n\n /**\n * 最後に閲覧した車種のDetail\n * @readonly\n * @memberof SearchCarStore\n */\n @computed\n get lastViewDetail(): VehicleTypes | undefined {\n return this.lastViewDetailData;\n }\n\n /**\n * メーカーID件数リスト\n * 販売停止中は除外\n * @readonly\n * @memberof SearchCarStore\n */\n get countAllMaker(): { [key: number]: number; } {\n const count: { [key: number]: number; } = [];\n // 全件リストを対象に\n for (const targetCar of this.allCarDigests) {\n if (targetCar.publishStatus === NEWCAR_CONST.PUBLISH.STATUS.SALE) {\n const id: number = targetCar.makerId;\n // 連想配列で該当メーカーIDをインクリメント。初回は存在しないので1を設定(null+1=null)\n count[id] = (count[id]) ? count[id] + 1 : 1;\n }\n }\n return count;\n }\n\n /**\n * BodyTypeID件数リスト\n * 販売停止中は除外\n * @readonly\n * @memberof SearchCarStore\n */\n get countAllBody(): { [key: number]: number; } {\n const count: { [key: number]: number; } = [];\n // 全件リストを対象に\n this.allCarDigests.forEach((targetCar) => {\n if (targetCar.publishStatus === NEWCAR_CONST.PUBLISH.STATUS.SALE) {\n const id: number = targetCar.bodyType;\n // 連想配列で該当メーカーIDをインクリメント。初回は存在しないので1を設定(null+1=null)\n count[id] = (count[id]) ? count[id] + 1 : 1;\n // 軽自動車・ハッチバック、その他は二重カウント\n if (targetCar.isMiniCar) {\n count[CARMO_CONST.BODY_TYPE.ID.MINI_CAR] = (count[CARMO_CONST.BODY_TYPE.ID.MINI_CAR]) ? count[CARMO_CONST.BODY_TYPE.ID.MINI_CAR] + 1 : 1;\n } else if (targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.STATION_WAGON || targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.UNSELECTED) {\n // 軽自動車でも無く、ボディタイプがステーションワゴンか未設定の場合、その他にカウント\n count[CARMO_CONST.BODY_TYPE.ID.OTHER] = (count[CARMO_CONST.BODY_TYPE.ID.OTHER]) ? count[CARMO_CONST.BODY_TYPE.ID.OTHER] + 1 : 1;\n }\n if (targetCar.isHatchBack) {\n count[CARMO_CONST.BODY_TYPE.ID.HATCH_BACK] = (count[CARMO_CONST.BODY_TYPE.ID.HATCH_BACK]) ? count[CARMO_CONST.BODY_TYPE.ID.HATCH_BACK] + 1 : 1;\n }\n }\n });\n return count;\n }\n\n /**\n * メーカー別の全BodyTypeID件数リスト\n * 販売停止中は除外\n * @readonly\n * @memberof SearchCarStore\n */\n get countAllMakerBody(): { [key: number]: number; } {\n const count: { [key: number]: number; } = [];\n // 全件リストを対象に\n this.allCarDigests.forEach((targetCar) => {\n if (targetCar.publishStatus === NEWCAR_CONST.PUBLISH.STATUS.SALE) {\n const { makerId } = targetCar;\n const bodyId: number = targetCar.bodyType;\n // 連想配列で該当メーカーIDをインクリメント。初回は存在しないので1を設定(null+1=null)\n let id: number = makerId * 100 + bodyId;\n count[id] = (count[id]) ? count[id] + 1 : 1;\n // 軽自動車・ハッチバック、その他は二重カウント\n if (targetCar.isMiniCar) {\n id = makerId * 100 + CARMO_CONST.BODY_TYPE.ID.MINI_CAR;\n count[id] = (count[id]) ? count[id] + 1 : 1;\n } else if (targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.STATION_WAGON || targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.UNSELECTED) {\n // 軽自動車でも無く、ボディタイプがステーションワゴンか未設定の場合、その他にカウント\n id = makerId * 100 + CARMO_CONST.BODY_TYPE.ID.OTHER;\n count[id] = (count[id]) ? count[id] + 1 : 1;\n }\n if (targetCar.isHatchBack) {\n id = makerId * 100 + CARMO_CONST.BODY_TYPE.ID.HATCH_BACK;\n count[id] = (count[id]) ? count[id] + 1 : 1;\n }\n }\n });\n return count;\n }\n\n /**\n * こだわり条件件数リスト\n * 現在の条件に条件を追加時の件数\n * メーカー、ボディタイプ、月額料金、定員は最初の1件選択だけは絞り込みだが、\n * 以降はOR条件で追加。その他条件はAND条件で絞り込み\n * @readonly\n * @memberof SearchCarStore\n */\n get countNextCondition(): {\n makerCount: {\n [key: number]: number;\n };\n bodyCount: {\n [key: number]: number;\n };\n priceCount: {\n [key: number]: number;\n };\n capacityCount: {\n [key: number]: number;\n };\n optionCount: {\n [key: string]: number;\n };\n nextCount: number;\n } {\n // 返却用のカウンター変数を定義\n const makerCount: { [key: number]: number; } = [];\n const bodyCount: { [key: number]: number; } = [];\n const priceCount: { [key: number]: number; } = [];\n const capacityCount: { [key: number]: number; } = [];\n const optionCount: { [key: string]: number; } = {};\n let nextCount = 0;\n\n // 全件リストから条件に該当するかチェックしてNextリストに追加\n this.allCarDigests.forEach((targetCar) => {\n // 販売中止はスキップ\n if (targetCar.publishStatus === NEWCAR_CONST.PUBLISH.STATUS.SALE) {\n // ID変換 ボディタイプ\n const targetBodyIdList: number[] = [];\n if (targetCar.bodyType !== CARMO_CONST.BODY_TYPE.ID.UNSELECTED) {\n targetBodyIdList.push(targetCar.bodyType);\n }\n // 軽自動車は二重カウント\n if (targetCar.isMiniCar) {\n targetBodyIdList.push(CARMO_CONST.BODY_TYPE.ID.MINI_CAR);\n } else if (targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.STATION_WAGON || targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.UNSELECTED) {\n // 軽自動車でも無く、ボディタイプがステーションワゴンか未設定の場合、その他にカウント\n targetBodyIdList.push(CARMO_CONST.BODY_TYPE.ID.OTHER);\n }\n\n // ID変換 料金\n let targetPrice = 0;\n switch (this.nextCondition.term) {\n case NEWCAR_CONST.TERM.ID.YEAR_11: targetPrice = targetCar.taxedMinPrice11; break;\n // todo税抜きで他も持つ?\n case NEWCAR_CONST.TERM.ID.YEAR_10: targetPrice = targetCar.taxedMinPrice10; break;\n case NEWCAR_CONST.TERM.ID.YEAR_9: targetPrice = targetCar.taxedMinPrice9; break;\n case NEWCAR_CONST.TERM.ID.YEAR_8: targetPrice = targetCar.taxedMinPrice8; break;\n case NEWCAR_CONST.TERM.ID.YEAR_7: targetPrice = targetCar.taxedMinPrice7; break;\n case NEWCAR_CONST.TERM.ID.YEAR_6: targetPrice = targetCar.taxedMinPrice6; break;\n case NEWCAR_CONST.TERM.ID.YEAR_5: targetPrice = targetCar.taxedMinPrice5; break;\n case NEWCAR_CONST.TERM.ID.YEAR_4: targetPrice = targetCar.taxedMinPrice4; break;\n case NEWCAR_CONST.TERM.ID.YEAR_3: targetPrice = targetCar.taxedMinPrice3; break;\n case NEWCAR_CONST.TERM.ID.YEAR_2: targetPrice = targetCar.taxedMinPrice2; break;\n case NEWCAR_CONST.TERM.ID.YEAR_1: targetPrice = targetCar.taxedMinPrice1; break;\n default:\n }\n const targetPriceId: NEWCAR_CONST.PRICE.ID = NEWCAR_CONST.PRICE.TERM_PRICE_TO_ID(this.nextCondition.term, targetPrice);\n\n // ID変換 定員\n const targetCapacityIdList: number[] = [];\n if (targetCar.has4SeatOrLess) {\n targetCapacityIdList.push(NEWCAR_CONST.CAPACITY.ID.UNDER_4);\n }\n if (targetCar.has5Seat) {\n targetCapacityIdList.push(NEWCAR_CONST.CAPACITY.ID.SEATER_5);\n }\n if (targetCar.has6Seat) {\n targetCapacityIdList.push(NEWCAR_CONST.CAPACITY.ID.SEATER_6);\n }\n if (targetCar.has7Seat) {\n targetCapacityIdList.push(NEWCAR_CONST.CAPACITY.ID.SEATER_7);\n }\n if (targetCar.has8SeatOrMore) {\n targetCapacityIdList.push(NEWCAR_CONST.CAPACITY.ID.OVER_8);\n }\n\n // ID変換 その他条件\n const targetOptionIdList: string[] = [];\n if (targetCar.hasHybrid) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_HYBRID);\n }\n if (targetCar.has4WD) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_4WD);\n }\n if (targetCar.hasMT) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_MT);\n }\n if (targetCar.hasPowerSlideDoor) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_POWER_SLIDE_DOOR);\n }\n if (targetCar.hasKeylessEntry) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_KEYLESS_ENTRY);\n }\n if (targetCar.hasSmartKey) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_SMART_KEY);\n }\n if (targetCar.hasCruiseControl) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_CRUISE_CTRL);\n }\n if (targetCar.hasAutomaticBrake) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_AUTO_BRAKE);\n }\n if (targetCar.hasPedalSupport) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_SUPPORT_PEDAL);\n }\n if (targetCar.hasLaneDepartureAlert) {\n targetOptionIdList.push(NEWCAR_CONST.SEARCH_OPTION.ID.HAS_SUPPORT_LANE);\n }\n\n // メーカーが該当かチェック\n const isTargetMaker = (this.nextCondition.maker.length === 0) || (this.nextCondition.maker.find((id) => (id === targetCar.makerId)));\n // ボディタイプが該当かチェック\n const isTargetBody = (this.nextCondition.body.length === 0) || (this.nextCondition.body.find((id) => {\n for (let j = 0; j < targetBodyIdList.length; j += 1) {\n if (targetBodyIdList[j] === id) {\n return true;\n }\n }\n return false;\n }));\n // 料金が該当かチェック\n const isTargetPrice = (this.nextCondition.price.length === 0) || (this.nextCondition.price.find((id) => (id === targetPriceId)));\n // 定員が該当かチェック\n const isTargetCapacity = (this.nextCondition.capacity.length === 0) || (this.nextCondition.capacity.find((id) => {\n for (let j = 0; j < targetCapacityIdList.length; j += 1) {\n if (targetCapacityIdList[j] === id) {\n return true;\n }\n }\n return false;\n }));\n\n // オプションが該当かチェック\n const isTargetOption = (this.nextCondition.option.length === 0) || (this.nextCondition.option.find((id) => {\n for (let j = 0; j < targetOptionIdList.length; j += 1) {\n if (targetOptionIdList[j] === id) {\n return true;\n }\n }\n return false;\n }));\n\n // 次候補メーカーのカウント\n if (isTargetBody && isTargetPrice && isTargetCapacity && isTargetOption) {\n const { makerId } = targetCar;\n makerCount[makerId] = (makerCount[makerId]) ? makerCount[makerId] + 1 : 1;\n }\n // 次候補ボディタイプのカウント\n if (isTargetMaker && isTargetPrice && isTargetCapacity && isTargetOption) {\n for (let j = 0; j < targetBodyIdList.length; j += 1) {\n bodyCount[targetBodyIdList[j]] = (bodyCount[targetBodyIdList[j]]) ? bodyCount[targetBodyIdList[j]] + 1 : 1;\n }\n }\n // 次候補料金のカウント\n if (isTargetMaker && isTargetBody && isTargetCapacity && isTargetOption) {\n priceCount[targetPriceId] = (priceCount[targetPriceId]) ? priceCount[targetPriceId] + 1 : 1;\n }\n // 次候補定員のカウント\n if (isTargetMaker && isTargetBody && isTargetPrice && isTargetOption) {\n for (let j = 0; j < targetCapacityIdList.length; j += 1) {\n capacityCount[targetCapacityIdList[j]] = (capacityCount[targetCapacityIdList[j]]) ? capacityCount[targetCapacityIdList[j]] + 1 : 1;\n }\n }\n // 次候補オプションのカウント\n if (isTargetMaker && isTargetBody && isTargetPrice && isTargetCapacity) {\n for (let j = 0; j < targetOptionIdList.length; j += 1) {\n optionCount[targetOptionIdList[j]] = (optionCount[targetOptionIdList[j]]) ? optionCount[targetOptionIdList[j]] + 1 : 1;\n }\n }\n // 現条件での総件数カウント\n if (isTargetMaker && isTargetBody && isTargetPrice && isTargetCapacity && isTargetOption) {\n nextCount += 1;\n }\n }\n });\n\n return {\n makerCount, bodyCount, priceCount, capacityCount, optionCount, nextCount,\n };\n }\n\n /**\n * 検索履歴の取得\n * @readonly\n * @type {{ name: string, uri: string }[]}\n * @memberof SearchCarStore\n */\n get searchHistory(): Array<{ name: string, uri: string }> {\n let result: Array<{ name: string, uri: string }> = [];\n // 全件リストを対象に\n for (const targetHistory of this.searchHistoryList) {\n const joinName: string[] = [];\n const joinURIParams: string[] = [];\n if (targetHistory.word !== undefined) {\n // フリーワード検索の場合\n // 上記だけだとコンパイルエラーになるので一旦const格納で別途undefinedを除外して格納\n const ret: string | undefined = targetHistory.word;\n if (ret !== undefined) {\n joinName.push(ret);\n joinURIParams.push(`${URI.ApiParams.Word}=${encodeURIComponent(ret)}`);\n }\n } else {\n // メーカーで生成\n const makerId: string[] = [];\n for (let j = 0; j < targetHistory.maker.length; j += 1) {\n joinName.push(CARMO_CONST.MAKER.NAME(targetHistory.maker[j]));\n makerId.push(targetHistory.maker[j].toString());\n }\n // メーカーが1件以上ある場合\n if (makerId.length > 0) {\n joinURIParams.push(`${URI.ApiParams.MakerId}=${makerId.join(',')}`);\n }\n // ボディタイプで生成\n const bodyId: string[] = [];\n for (let j = 0; j < targetHistory.body.length; j += 1) {\n joinName.push(CARMO_CONST.BODY_TYPE.NAME(targetHistory.body[j]));\n bodyId.push(targetHistory.body[j].toString());\n }\n // ボディタイプが1件以上ある場合\n if (bodyId.length > 0) {\n joinURIParams.push(`${URI.ApiParams.BodyType}=${bodyId.join(',')}`);\n }\n\n // 月額料金で生成\n if (targetHistory.price.length > 0) {\n // 期間を設定\n joinName.push(NEWCAR_CONST.TERM.NAME[targetHistory.term]);\n joinURIParams.push(`${URI.ApiParams.Term}=${targetHistory.term}`);\n const priceId: string[] = [];\n for (let j = 0; j < targetHistory.price.length; j += 1) {\n joinName.push(NEWCAR_CONST.PRICE.NAME[targetHistory.price[j]]);\n priceId.push(targetHistory.price[j].toString());\n }\n joinURIParams.push(`${URI.ApiParams.Price}=${priceId.join(',')}`);\n }\n\n // 定員で生成\n const capacityId: string[] = [];\n for (let j = 0; j < targetHistory.capacity.length; j += 1) {\n joinName.push(NEWCAR_CONST.CAPACITY.NAME[targetHistory.capacity[j]]);\n capacityId.push(targetHistory.capacity[j].toString());\n }\n // 定員が1件以上ある場合\n if (capacityId.length > 0) {\n joinURIParams.push(`${URI.ApiParams.Capacity}=${capacityId.join(',')}`);\n }\n\n // その他の条件で生成\n const searchOptId: string[] = [];\n for (let j = 0; j < targetHistory.option.length; j += 1) {\n joinName.push(NEWCAR_CONST.SEARCH_OPTION.NAME(targetHistory.option[j]));\n searchOptId.push(targetHistory.option[j].toString());\n }\n // 定員が1件以上ある場合\n if (searchOptId.length > 0) {\n joinURIParams.push(`${URI.ApiParams.Option}=${searchOptId.join(',')}`);\n }\n }\n // 生成結果をカンマ区切りの文字列化して格納\n const target: string | undefined = targetHistory.resultURI;\n let resulturi = '';\n if (target !== undefined) {\n resulturi = target;\n }\n // 履歴の生成\n const add = { name: joinName.join('、'), uri: resulturi };\n // 同一条件が過去にあったら過去のを削除して追加\n result = result.filter((x) => x.uri !== add.uri);\n result.push(add);\n }\n\n return result;\n }\n\n get masterNumber() : string | undefined {\n if (this.allCarDigests && this.allCarDigests[0]) {\n return this.allCarDigests[0].masterNumber;\n }\n return undefined;\n }\n\n /**\n * action:車種情報全件取得\n * @param {CarDigest[]} list\n * @memberof SearchCarStore\n */\n @action\n public setAllList(result: any[]): void {\n const CarDigestList: CarDigest[] = result[0];\n\n // メーカー名称を割り当て\n this.allCarDigests = CarDigestList.map((element) => {\n if (element.makerId) { element.makerName = CARMO_CONST.MAKER.NAME(element.makerId); }\n return element;\n });\n\n const detailList: CarDetail = result[1];\n this.allCarDetails = detailList.vehicleTypes;\n this.allBodyColorList = detailList.bodyColorInfo;\n this.allOptionInfoList = detailList.optionInfo;\n this.allOptionFeeList = detailList.optionFees;\n }\n\n /**\n * action:車種情報を1件のみセット\n * @param CarDigest\n * @param CarDetail\n * @memberof SearchCarStore\n */\n @action\n public setSingleCarInfo(digest: CarDigest, detail: CarDetail): void {\n // メーカー名称を割り当て\n const newCarDigest = { ...digest, makerName: CARMO_CONST.MAKER.NAME(digest.makerId) };\n this.allCarDigests = [newCarDigest];\n\n const detailList: CarDetail = detail;\n this.allCarDetails = detailList.vehicleTypes;\n this.allBodyColorList = detailList.bodyColorInfo;\n this.allOptionInfoList = detailList.optionInfo;\n this.allOptionFeeList = detailList.optionFees;\n }\n\n /**\n * action:表示Detail設定、閲覧履歴追加\n * @param {string} addid\n * @memberof SearchCarStore\n */\n @action\n public setViewDetail(addid: string): void {\n // Detailの設定\n if (this.allCarDetails) {\n this.lastViewDetailData = this.allCarDetails.find((x) => x.id.toString() === addid);\n }\n\n // 閲覧履歴設定\n // 同一車種IDが過去にあったら削除\n this.browsingList = this.browsingList.filter((x) => {\n if (x) {\n return x.id__normalized.toString() !== addid;\n }\n return false;\n });\n const targetCar = this.allCarDigests.filter((x) => x.id__normalized.toString() === addid)[0];\n // 最終閲覧として登録\n this.lastViewCarDigestData = targetCar;\n // 末尾に追加\n this.browsingList.push(targetCar);\n }\n\n /**\n * 現在の検索条件に当てはまる車をresultListに追加\n * @param {CARMO_CONST.MAKER.ID} makerId\n * @memberof SearchCarStore\n */\n @action\n public async search(condition: SearchCondition): Promise {\n // ワードの有無で切り分け\n if (condition.word) {\n // 結果リストの初期化\n this.resultList = [];\n let result: string[];\n // 検索結果の車種データをresultListに格納\n await API.get(API.API_SETTINGS.API.name, URI.APIEndPoints.Search, `?q=${condition.word}`)\n .then((res: AxiosResponse) => {\n // 結果を格納\n result = Object.values(res).map((carId) => carId);\n result.forEach((value: string) => {\n const resultCar = this.allCarDigests.filter((x) => x.id__normalized === value)[0];\n if (resultCar.minPrice > 0) this.resultList.push(resultCar);\n });\n });\n } else {\n // 結果リストの初期化\n this.resultList = [];\n // 条件検索の場合、全件リストから条件に該当するかチェックして検索結果リストに追加\n this.allCarDigests.forEach((targetCar) => {\n // 販売中止はスキップ\n if (targetCar.publishStatus === NEWCAR_CONST.PUBLISH.STATUS.SALE) {\n // メーカーが該当か確認\n let isTargetMaker = false;\n if (condition.maker.length > 0) {\n if (condition.maker.includes(targetCar.makerId)) isTargetMaker = true;\n } else {\n // メーカーが検索条件では無い場合もtrueに\n isTargetMaker = true;\n }\n\n // ボディタイプが該当か確認\n let isTargetBody = false;\n if (condition.body.length > 0) {\n for (let x = 0; x < condition.body.length; x += 1) {\n if (condition.body[x] === targetCar.bodyType) {\n isTargetBody = true;\n break;\n } else if (targetCar.isMiniCar && condition.body[x] === CARMO_CONST.BODY_TYPE.ID.MINI_CAR) {\n isTargetBody = true;\n break;\n } else if (targetCar.isHatchBack && condition.body[x] === CARMO_CONST.BODY_TYPE.ID.HATCH_BACK) {\n isTargetBody = true;\n break;\n } else if ((targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.STATION_WAGON || targetCar.bodyType === CARMO_CONST.BODY_TYPE.ID.UNSELECTED)\n && !targetCar.isMiniCar && condition.body[x] === CARMO_CONST.BODY_TYPE.ID.OTHER) {\n isTargetBody = true;\n break;\n }\n }\n } else {\n // ボディタイプが検索条件では無い場合もtrueに\n isTargetBody = true;\n }\n\n // 料金が該当か確認\n let isTargetPrice = false;\n if (condition.price.length > 0) {\n const taxedMinPrice = targetCar.taxedMinPrice11;\n for (let x = 0; x < condition.price.length; x += 1) {\n const isBW_10_20K = (taxedMinPrice >= 10000 && taxedMinPrice < 20000);\n const isBW_20_30K = (taxedMinPrice >= 20000 && taxedMinPrice < 30000);\n const isBW_30_40K = (taxedMinPrice >= 30000 && taxedMinPrice < 40000);\n const isBW_40_50K = (taxedMinPrice >= 40000 && taxedMinPrice < 50000);\n const isOVER_50K = (taxedMinPrice >= 50000); // todo 11年以外が来たらまた変わる\n\n if ((condition.price[x] === NEWCAR_CONST.PRICE.ID.BW_10_20K && isBW_10_20K)\n || (condition.price[x] === NEWCAR_CONST.PRICE.ID.BW_20_30K && isBW_20_30K)\n || (condition.price[x] === NEWCAR_CONST.PRICE.ID.BW_30_40K && isBW_30_40K)\n || (condition.price[x] === NEWCAR_CONST.PRICE.ID.BW_40_50K && isBW_40_50K)\n || (condition.price[x] === NEWCAR_CONST.PRICE.ID.OVER_50K && isOVER_50K)\n ) {\n // 該当すればbreak\n isTargetPrice = true;\n break;\n }\n }\n } else {\n isTargetPrice = true;\n }\n\n // 定員が該当か確認\n let isTargetCapacity = false;\n if (condition.capacity.length > 0) {\n for (let x = 0; x < condition.capacity.length; x += 1) {\n if ((condition.capacity[x] === NEWCAR_CONST.CAPACITY.ID.UNDER_4 && targetCar.has4SeatOrLess)\n || (condition.capacity[x] === NEWCAR_CONST.CAPACITY.ID.SEATER_5 && targetCar.has5Seat)\n || (condition.capacity[x] === NEWCAR_CONST.CAPACITY.ID.SEATER_6 && targetCar.has6Seat)\n || (condition.capacity[x] === NEWCAR_CONST.CAPACITY.ID.SEATER_7 && targetCar.has7Seat)\n || (condition.capacity[x] === NEWCAR_CONST.CAPACITY.ID.OVER_8 && targetCar.has8SeatOrMore)\n ) {\n // 該当すればbreak\n isTargetCapacity = true;\n break;\n }\n }\n } else {\n isTargetCapacity = true;\n }\n\n // その他条件が該当か確認\n let isTargetOptions = false;\n if (condition.option.length > 0) {\n for (let x = 0; x < condition.option.length; x += 1) {\n if ((condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_4WD && targetCar.has4WD)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_AUTO_BRAKE && targetCar.hasAutomaticBrake)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_CRUISE_CTRL && targetCar.hasCruiseControl)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_HYBRID && targetCar.hasHybrid)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_KEYLESS_ENTRY && targetCar.hasKeylessEntry)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_MT && targetCar.hasMT)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_POWER_SLIDE_DOOR && targetCar.hasPowerSlideDoor)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_SMART_KEY && targetCar.hasSmartKey)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_SUPPORT_LANE && targetCar.hasLaneDepartureAlert)\n || (condition.option[x] === NEWCAR_CONST.SEARCH_OPTION.ID.HAS_SUPPORT_PEDAL && targetCar.hasPedalSupport)\n ) {\n // 該当すればbreak\n isTargetOptions = true;\n break;\n }\n }\n } else {\n isTargetOptions = true;\n }\n\n // has〜はcondition側がundefined or falseか、対象車種側がtrueか\n if (isTargetMaker && isTargetBody && isTargetPrice && isTargetCapacity && isTargetOptions) {\n this.resultList.push(targetCar);\n }\n }\n });\n }\n\n // 結果が0件では無い場合\n if (this.resultList.length > 0) {\n // URIを追加して検索履歴に追加\n condition.resultURI = URI.RESULT_CONDITION_TO_URI(condition);\n this.searchHistoryList.push(condition);\n\n // 抽出したデータを指定順序に並び替え\n if (condition.orderBy === NEWCAR_CONST.SORT.POP) {\n // 人気順でソート\n this.resultList.sort((a: CarDigest, b: CarDigest) => (a.popularityScore < b.popularityScore ? 1 : -1));\n } else if (condition.orderBy === NEWCAR_CONST.SORT.ATOZ) {\n // 50音順でソート\n this.resultList.sort((a: CarDigest, b: CarDigest) => (a.name > b.name ? 1 : -1));\n } else {\n // 値段でソート\n this.resultList.sort((a: CarDigest, b: CarDigest) => (a.minPrice > b.minPrice ? 1 : -1));\n }\n }\n\n Log.trace(`action search end. result count:${this.resultList.length}`);\n }\n\n /**\n * action:こだわり用次条件設定\n * @param {SearchCondition} condition\n * @memberof SearchCarStore\n */\n @action\n public nextCount = (condition: SearchCondition): void => {\n this.nextCondition = condition;\n }\n\n /**\n * action:車種CarDigest、車種Detail全件取得\n * @returns\n * @memberof SearchCarStore\n */\n @action\n public getAllList = async (): Promise => {\n const getAllCarDigest = new Promise((resolve /** reject? */) => {\n ProductAPI.getDigest()\n .then((res: AxiosResponse) => {\n // 結果を格納\n resolve(res);\n });\n });\n const getAllDetail = new Promise((resolve /** reject? */) => {\n ProductAPI.getDetail()\n .then((res: AxiosResponse) => {\n // 結果を格納\n resolve(res);\n });\n });\n let res: any[] = [];\n await Promise.all([getAllCarDigest, getAllDetail]).then((results) => {\n res = results;\n }).catch((/** reject? */) => {\n // todo\n Log.error(new Error('Network Error!'));\n });\n return res;\n }\n\n /**\n * action:汎用検索\n * @param {SearchCondition} condition\n * @returns\n * @memberof SearchCarStore\n */\n @action\n public searchCondition(condition: SearchCondition): void {\n // return condition;\n this.search(condition);\n }\n\n /**\n * action:こだわり次条件検索\n * @param {SearchCondition} condition\n * @returns\n * @memberof SearchCarStore\n */\n @action\n public nextConditionCount(condition: SearchCondition): SearchCondition {\n this.nextCondition = condition;\n // return condition;\n return this.nextCondition;\n }\n\n /**\n * action:車種閲覧\n * @returns\n * @memberof SearchCarStore\n */\n @action\n public async viewCarDetail(id: string) {\n this.setViewDetail(id);\n return id;\n }\n\n /** 車種全件をallCarDigestにセット */\n @action\n public setAllCarDigests(cardigests: CarDigest[]): void {\n this.allCarDigests = cardigests;\n }\n\n @action\n public setAllCarDetails(vehicleTypes: VehicleTypes[]): void {\n this.allCarDetails = vehicleTypes;\n }\n}\n\nexport const searchCarStore = new SearchCarStore();\n","/* eslint-disable max-classes-per-file */\n/* eslint-disable max-len */\nimport CarDigest from '@/common/core/model/carDigest';\nimport VehicleGrade from '@/common/core/model/catalog/vehicleGrade';\nimport CustomerSelection from '@/newcar/core/store/dataset/customerSelection';\nimport { IMaintenancePlan } from '@/newcar/core/store/dataset/maintenance';\n\n/**\n * ボディカラーの内訳\n */\nexport class SelectBodyColor {\n public bodyColorId?: string;\n\n public bodyColorName?: string;\n\n public colorCode1?: string;\n\n public colorCode2?: string;\n\n public leasingFee?: number;\n\n public supportFee?: number;\n\n public isSelected = false;\n}\n\n/**\n * オプションの内訳\n */\nexport class SelectOption {\n public maintenanceId?: number;\n\n public id?: string;\n\n public name?: string;\n\n public isStandard?: boolean;\n\n public leasingFee?: number;\n\n public supportFee?: number;\n\n public price?: number; // メンテナンスプラン、もらえるオプションの値段\n\n public isSelected = false;\n}\n\n/**\n * 審査申込内訳\n */\nexport class SimulationResult {\n /**\n * 利用者の選択結果\n */\n public customerSelection: CustomerSelection | undefined;\n\n /**\n * 車種\n */\n public car: CarDigest | undefined;\n\n /**\n * グレード\n */\n public grade: VehicleGrade | undefined;\n\n /**\n * ボディカラー\n */\n public bodyColor: SelectBodyColor | undefined;\n\n /**\n * カーナビ\n */\n public carNavi?: SelectOption;\n\n /**\n * ETC\n */\n public etc?: SelectOption;\n\n /**\n * バックカメラ\n */\n public backCamera?: SelectOption;\n\n /**\n * フロアマット\n */\n public floorMat?: SelectOption;\n\n /**\n * 希望ナンバー\n */\n public wantNo?: SelectOption;\n\n /**\n * ドアバイザー\n */\n public doorVisor?: SelectOption;\n\n /**\n * メンテナンスプラン\n */\n public maintenancePlan?: IMaintenancePlan;\n\n /**\n * もらえるオプション\n */\n public wantCar?: SelectOption;\n\n /**\n * 総計\n */\n public totalPrice: number | undefined;\n\n /**\n * オプション\n */\n public optionstring: string | undefined\n\n /**\n *Creates an instance of SimulationResult.\n * @param {CustomerSelection} customerSelection\n * @param {CarDigest} carDigest\n * @param {VehicleGrade} grade\n * @param {number} totalPrice\n * @param {string} optionstring\n * @memberof SimulationResult\n */\n constructor(customerSelection: CustomerSelection | undefined, carDigest: CarDigest | undefined, grade: VehicleGrade | undefined, bodyColor: SelectBodyColor | undefined, totalPrice: number | undefined, optionstring: string | undefined) {\n this.customerSelection = customerSelection;\n this.car = carDigest;\n this.grade = grade;\n this.bodyColor = bodyColor;\n this.totalPrice = totalPrice;\n this.optionstring = optionstring;\n }\n\n get masterNumber(): string {\n let result = '';\n if (this.car) {\n result = this.car.masterNumber;\n }\n return result;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable no-shadow */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable eqeqeq */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable max-len */\nimport { observable, action, computed } from 'mobx';\nimport { store } from '@/common/core/store/decorator';\nimport { SimulationResult, SelectBodyColor, SelectOption } from '@/newcar/core/store/dataset/simulationResult';\nimport NEWCAR_CONST from '@/newcar/util/const';\nimport CarDigest from '@/common/core/model/carDigest';\nimport VehicleGrade from '@/common/core/model/catalog/vehicleGrade';\nimport CustomerSelection from '@/newcar/core/store/dataset/customerSelection';\nimport { IMaintenancePlan } from '@/newcar/core/model/maintenance';\nimport { entryBreakdownManagerStore } from '@/newcar/core/store/entryBreakdownManagerStore';\nimport { simulationManagerStore } from '@/newcar/core/store/simulationManagerStore';\nimport { searchCarStore } from '@/newcar/core/store/searchCarStore';\nimport { WantCarBreakdown } from '@/newcar/core/store/dataset/entryBreakdown';\n\n@store()\nexport default class SimulationResultManagerStore {\n @observable simulationList: SimulationResult[] = [];\n\n @observable nowSimulationResult?: SimulationResult = undefined;\n\n // クエリパラメータで保存済みシミュレーションに含まれているか\n @observable private isSaved = false;\n\n @computed\n get nowSimulationList(): SimulationResult[] {\n return this.simulationList;\n }\n\n @computed\n get nowSimulation(): SimulationResult | undefined {\n return this.nowSimulationResult;\n }\n\n // 保存済みグレード情報\n @computed\n get selectedGrade(): { name: string, sub: string } | undefined {\n if (!this.nowSimulationResult || !this.nowSimulationResult.grade) {\n return undefined;\n }\n\n const nowGrade = this.nowSimulationResult.grade;\n const subList = [];\n subList.push(nowGrade.engine || 'ガソリン');\n if (nowGrade.kudou) {\n subList.push(nowGrade.kudou);\n }\n if (nowGrade.capacity) {\n subList.push(NEWCAR_CONST.CAPACITY.NAME[nowGrade.capacity]);\n }\n return {\n name: nowGrade?.name || '',\n sub: subList.join(' | '),\n };\n }\n\n // 保存済みボディカラー情報\n @computed\n get selectedBodyColor(): { bodyColorId?: string, bodyColorName?: string, colorCode1?: string, colorCode2?: string, isSelected?: boolean } | undefined {\n if (this.nowSimulationResult && this.nowSimulationResult.bodyColor && this.nowSimulationResult.bodyColor.isSelected) {\n return {\n bodyColorId: this.nowSimulationResult.bodyColor.bodyColorId,\n bodyColorName: this.nowSimulationResult.bodyColor.bodyColorName,\n colorCode1: this.nowSimulationResult.bodyColor.colorCode1,\n colorCode2: this.nowSimulationResult.bodyColor.colorCode2,\n isSelected: this.nowSimulationResult.bodyColor.isSelected,\n };\n }\n return undefined;\n }\n\n // 保存済みオプション情報\n @computed\n get selectedOption(): string | undefined {\n if (this.nowSimulationResult && this.nowSimulationResult.optionstring) {\n return this.nowSimulationResult.optionstring;\n }\n return '';\n }\n\n // 保存済みメンテナンスプラン名\n @computed\n get selectedMaintenance(): string | undefined {\n if (this.nowSimulationResult && this.nowSimulationResult.maintenancePlan && this.nowSimulationResult.maintenancePlan.name) {\n return this.nowSimulationResult.maintenancePlan.name;\n }\n return undefined;\n }\n\n // 保存済み価格\n @computed\n get selectedNomalPrice(): number | undefined {\n if (this.nowSimulationResult && this.nowSimulationResult.totalPrice) {\n return this.nowSimulationResult.totalPrice;\n }\n return undefined;\n }\n\n // 保存済み賃貸期間\n @computed\n get selectedTerm(): NEWCAR_CONST.TERM.ID {\n if (this.nowSimulationResult && this.nowSimulationResult.customerSelection && this.nowSimulationResult.customerSelection.term) {\n return this.nowSimulationResult.customerSelection.term;\n }\n return NEWCAR_CONST.TERM.ID.YEAR_11;\n }\n\n // PC版料金シミュレーション用 オリジナルプラン情報返却\n @computed\n get oldOriginalSelection(): {gradeName?: string, option?: string, color?:string, maintenance?: string, price?:number, term?:NEWCAR_CONST.TERM.ID} {\n const result:{gradeName?: string, option?: string, color?:string, maintenance?: string, price?:number, term?:NEWCAR_CONST.TERM.ID} = {};\n\n const simulationResult = this.nowSimulationResult;\n const selection = (simulationResult) ? simulationResult.customerSelection : undefined;\n if (simulationResult && selection) {\n result.gradeName = (simulationResult && simulationResult.grade) ? simulationResult.grade.name : undefined;\n\n const regex = /\\s\\|/gi;\n let optionStr = simulationResult.optionstring;\n if (!optionStr) {\n optionStr = 'なし';\n }\n if (optionStr) {\n result.option = optionStr.replace(regex, '、');\n }\n\n result.color = (simulationResult && simulationResult.bodyColor) ? simulationResult.bodyColor.bodyColorName : undefined;\n\n result.maintenance = (simulationResult && simulationResult.maintenancePlan) ? simulationResult.maintenancePlan.name : undefined;\n\n result.price = (simulationResult && simulationResult.totalPrice) ? simulationResult.totalPrice : undefined;\n\n result.term = (selection && selection.term) ? selection.term : NEWCAR_CONST.TERM.ID.YEAR_9;\n }\n\n return result;\n }\n\n // 保存済みシミュレーション結果から該当のSimulationResultを抽出\n @action\n public changeSimulationResult(customerSelection: CustomerSelection | undefined) {\n this.setSimulationResult(customerSelection);\n return customerSelection;\n }\n\n @action\n public setSimulationResult(customerSelection: CustomerSelection | undefined) {\n if (customerSelection) {\n // simulationList から該当のシミュレーション結果を探す\n const target = this.simulationList.find((simulation) => {\n // Detail表示直後のdontHaveDoorVisorがundefinedになってしまうので、それ以外を比較\n if (customerSelection && simulation.customerSelection) {\n if (customerSelection.id != simulation.customerSelection.id) { return false; }\n if (customerSelection.masterNumber != simulation.customerSelection.masterNumber) { return false; }\n if (customerSelection.term != simulation.customerSelection.term) { return false; }\n if (customerSelection.engine != simulation.customerSelection.engine) { return false; }\n if (customerSelection.gradeName != simulation.customerSelection.gradeName) { return false; }\n if (customerSelection.kudou != simulation.customerSelection.kudou) { return false; }\n if (customerSelection.mission != simulation.customerSelection.mission) { return false; }\n if (customerSelection.gradeId != simulation.customerSelection.gradeId) { return false; }\n if (customerSelection.bodyColorId != simulation.customerSelection.bodyColorId) { return false; }\n if (customerSelection.carNavi != simulation.customerSelection.carNavi) { return false; }\n if (customerSelection.backCamera != simulation.customerSelection.backCamera) { return false; }\n if (customerSelection.floorMat != simulation.customerSelection.floorMat) { return false; }\n if (customerSelection.doorVisor != simulation.customerSelection.doorVisor) { return false; }\n if (customerSelection.wantNo != simulation.customerSelection.wantNo) { return false; }\n if (customerSelection.wantCar != simulation.customerSelection.wantCar) { return false; }\n if (customerSelection.maintenancePlan != simulation.customerSelection.maintenancePlan) { return false; }\n return true;\n }\n return false;\n });\n\n if (target) {\n const newSimulationResult = new SimulationResult(target.customerSelection, target.car, target.grade, target.bodyColor, target.totalPrice, target.optionstring);\n if (target.carNavi) {\n newSimulationResult.carNavi = target.carNavi;\n }\n if (target.etc) {\n newSimulationResult.etc = target.etc;\n }\n if (target.backCamera) {\n newSimulationResult.backCamera = target.backCamera;\n }\n if (target.floorMat) {\n newSimulationResult.floorMat = target.floorMat;\n }\n if (target.wantNo) {\n newSimulationResult.wantNo = target.wantNo;\n }\n if (target.doorVisor) {\n newSimulationResult.doorVisor = target.doorVisor;\n }\n if (target.maintenancePlan) {\n newSimulationResult.maintenancePlan = target.maintenancePlan;\n }\n if (target.wantCar) {\n newSimulationResult.wantCar = target.wantCar;\n }\n this.nowSimulationResult = newSimulationResult;\n }\n }\n }\n\n // 現在表示している保存済み料金シミュレーションを破棄\n @action\n public clearSelection() {\n this.clearSelectionData();\n return true;\n }\n\n @action\n public clearSelectionData() {\n this.nowSimulationResult = undefined;\n }\n\n @action\n public restoreSimulationsLocalStorage() {\n // ローカルストレージを使うのでサーバーサイドのタイミングでは処理しない\n if (typeof window === 'undefined') return;\n\n if (localStorage[NEWCAR_CONST.SIMULATIONRESULT.SIMULATION_RESULT_LOCAL_STORAGE_KEY]) {\n const json = JSON.parse(localStorage[NEWCAR_CONST.SIMULATIONRESULT.SIMULATION_RESULT_LOCAL_STORAGE_KEY]);\n if (json) {\n this.simulationList = [];\n for (const data of json) {\n const simulation = new SimulationResult(\n data.customerSelection,\n data.car,\n data.grade,\n data.bodyColor,\n data.totalPrice,\n data.optionstring,\n );\n\n if (data.carNavi) {\n simulation.carNavi = data.carNavi;\n }\n\n if (data.etc) {\n simulation.etc = data.etc;\n }\n\n if (data.backCamera) {\n simulation.backCamera = data.backCamera;\n }\n\n if (data.floorMat) {\n simulation.floorMat = data.floorMat;\n }\n\n if (data.wantNo) {\n simulation.wantNo = data.wantNo;\n }\n\n if (data.doorVisor) {\n simulation.doorVisor = data.doorVisor;\n }\n\n if (data.maintenancePlan) {\n simulation.maintenancePlan = data.maintenancePlan;\n }\n\n if (data.wantCar) {\n simulation.wantCar = data.wantCar;\n }\n\n this.simulationList.push(simulation);\n }\n }\n }\n }\n\n /**\n * Action:料金シミュレーションの追加\n * @param {customerSelection: CustomerSelection, carDigest: CarDigest, grade: VehicleGrade, totalPrice: number, optionstring: string | undefined, option: {carNavi?: SelectOption, etc?: SelectOption, backCamera?: SelectOption, floorMat?: SelectOption, wantNo?: SelectOption, doorVisor?: SelectOption, maintenancePlan?: IMaintenancePlan, wantCar?: SelectOption}} data\n * @returns\n * @memberof SimulationResultManager\n */\n @action\n public addSimulation(data: {customerSelection: CustomerSelection | undefined, carDigest: CarDigest | undefined, grade: VehicleGrade | undefined, bodyColor: SelectBodyColor | undefined, totalPrice: number | undefined, optionstring: string | undefined, option: {carNavi?: SelectOption, etc?: SelectOption, backCamera?: SelectOption, floorMat?: SelectOption, wantNo?: SelectOption, doorVisor?: SelectOption, maintenancePlan?: IMaintenancePlan, wantCar?: SelectOption}}) {\n this.updateSimulation(data);\n return data;\n }\n\n /**\n * @param {customerSelection: CustomerSelection, carDigest: CarDigest, grade: VehicleGrade, totalPrice: number, optionstring: string | undefined, option: {carNavi?: SelectOption, etc?: SelectOption, backCamera?: SelectOption, floorMat?: SelectOption, wantNo?: SelectOption, doorVisor?: SelectOption, maintenancePlan?: IMaintenancePlan, wantCar?: SelectOption}} data\n * @memberof SimulationResultManager\n */\n @action\n public updateSimulation(data: {customerSelection: CustomerSelection | undefined, carDigest: CarDigest | undefined, grade: VehicleGrade | undefined, bodyColor: SelectBodyColor | undefined, totalPrice: number | undefined, optionstring: string | undefined, option: {carNavi?: SelectOption, etc?: SelectOption, backCamera?: SelectOption, floorMat?: SelectOption, wantNo?: SelectOption, doorVisor?: SelectOption, maintenancePlan?: IMaintenancePlan, wantCar?: SelectOption}}) {\n // ローカルストレージを使うのでサーバーサイドのタイミングでは処理しない\n if (typeof window === 'undefined') return;\n\n const savedata: SimulationResult = new SimulationResult(data.customerSelection, data.carDigest, data.grade, data.bodyColor, data.totalPrice, data.optionstring);\n if (data.option.carNavi) {\n savedata.carNavi = data.option.carNavi;\n }\n if (data.option.etc) {\n savedata.etc = data.option.etc;\n }\n if (data.option.backCamera) {\n savedata.backCamera = data.option.backCamera;\n }\n if (data.option.floorMat) {\n savedata.floorMat = data.option.floorMat;\n }\n if (data.option.wantNo) {\n savedata.wantNo = data.option.wantNo;\n }\n if (data.option.doorVisor) {\n savedata.doorVisor = data.option.doorVisor;\n }\n if (data.option.maintenancePlan) {\n savedata.maintenancePlan = data.option.maintenancePlan;\n }\n if (data.option.wantCar) {\n savedata.wantCar = data.option.wantCar;\n }\n\n this.simulationList = [];\n if (localStorage[NEWCAR_CONST.SIMULATIONRESULT.SIMULATION_RESULT_LOCAL_STORAGE_KEY]) {\n const json = JSON.parse(localStorage[NEWCAR_CONST.SIMULATIONRESULT.SIMULATION_RESULT_LOCAL_STORAGE_KEY]);\n if (json) {\n for (const data of json) {\n const simulation = new SimulationResult(\n data.customerSelection,\n data.car,\n data.grade,\n data.bodyColor,\n data.totalPrice,\n data.optionstring,\n );\n\n if (data.carNavi) {\n simulation.carNavi = data.carNavi;\n }\n\n if (data.etc) {\n simulation.etc = data.etc;\n }\n\n if (data.backCamera) {\n simulation.backCamera = data.backCamera;\n }\n\n if (data.floorMat) {\n simulation.floorMat = data.floorMat;\n }\n\n if (data.wantNo) {\n simulation.wantNo = data.wantNo;\n }\n\n if (data.doorVisor) {\n simulation.doorVisor = data.doorVisor;\n }\n\n if (data.maintenancePlan) {\n simulation.maintenancePlan = data.maintenancePlan;\n }\n\n if (data.wantCar) {\n simulation.wantCar = data.wantCar;\n }\n\n this.simulationList.push(simulation);\n }\n }\n }\n\n // 全く同じデータが既にある場合は何もしない\n if (this.simulationList.some((simulation) => JSON.stringify(simulation) === JSON.stringify(savedata))) {\n return;\n }\n\n // 新しいデータを追加\n this.simulationList.push(savedata);\n\n // ローカルストレージに保存\n localStorage.setItem(NEWCAR_CONST.SIMULATIONRESULT.SIMULATION_RESULT_LOCAL_STORAGE_KEY, JSON.stringify(this.simulationList));\n }\n\n /**\n * Action:保存済み料金シミュレーションの削除\n *\n * @param {({customerSelection: CustomerSelection | undefined, masterNumber: string})} data\n * @returns\n * @memberof SimulationResultManager\n */\n @action\n public removeSimulation(data: {customerSelection: CustomerSelection | undefined, masterNumber: string}) {\n this.deleteSimulation(data);\n return data;\n }\n\n @action\n public deleteSimulation(data: {customerSelection: CustomerSelection | undefined, masterNumber: string}) {\n // 配列の順番を確認\n const nowCustomerSelection = data.customerSelection;\n const nowMasterNumber = data.masterNumber;\n\n const newList: SimulationResult[] = [];\n\n for (let i = 0; i < this.simulationList.length; i += 1) {\n const simulation = this.simulationList[i];\n // Detail表示直後のdontHaveDoorVisorがundefinedになってしまうので、それ以外を比較\n if (nowCustomerSelection && simulation.customerSelection) {\n let result = true;\n if (nowMasterNumber != simulation.masterNumber) { result = false; }\n if (nowCustomerSelection.id != simulation.customerSelection.id) { result = false; }\n if (nowCustomerSelection.term != simulation.customerSelection.term) { result = false; }\n if (nowCustomerSelection.engine != simulation.customerSelection.engine) { result = false; }\n if (nowCustomerSelection.gradeName != simulation.customerSelection.gradeName) { result = false; }\n if (nowCustomerSelection.kudou != simulation.customerSelection.kudou) { result = false; }\n if (nowCustomerSelection.mission != simulation.customerSelection.mission) { result = false; }\n if (nowCustomerSelection.gradeId != simulation.customerSelection.gradeId) { result = false; }\n if (nowCustomerSelection.bodyColorId != simulation.customerSelection.bodyColorId) { result = false; }\n if (nowCustomerSelection.carNavi != simulation.customerSelection.carNavi) { result = false; }\n if (nowCustomerSelection.backCamera != simulation.customerSelection.backCamera) { result = false; }\n if (nowCustomerSelection.floorMat != simulation.customerSelection.floorMat) { result = false; }\n if (nowCustomerSelection.doorVisor != simulation.customerSelection.doorVisor) { result = false; }\n if (nowCustomerSelection.wantNo != simulation.customerSelection.wantNo) { result = false; }\n if (nowCustomerSelection.wantCar != simulation.customerSelection.wantCar) { result = false; }\n if (nowCustomerSelection.maintenancePlan != simulation.customerSelection.maintenancePlan) { result = false; }\n if (!result) {\n newList.push(simulation);\n }\n }\n }\n\n // 削除\n this.simulationList = newList;\n // ローカルストレージに保存\n localStorage.setItem(NEWCAR_CONST.SIMULATIONRESULT.SIMULATION_RESULT_LOCAL_STORAGE_KEY, JSON.stringify(this.simulationList));\n }\n\n /**\n * 保存済み料金シミュレーションから申込情報を作成\n *\n * @param {SimulationResult} data\n * @memberof SimulationResultManager\n */\n @action\n public saveEntryBreakdownFromSimulationResult(data: SimulationResult) {\n entryBreakdownManagerStore.clearEntryBreakdown();\n\n let memo = `|プラン:${NEWCAR_CONST.PLAN_PATTERN.NAME.MAIN_ORIGINAL}`;\n\n // 対象車種更新\n entryBreakdownManagerStore.updateEntryBreakdown({ field: 'car', payload: data.car });\n // 対象グレード更新\n entryBreakdownManagerStore.updateEntryBreakdown({ field: 'grade', payload: data.grade });\n\n // ボディカラー\n if (data.bodyColor) {\n entryBreakdownManagerStore.updateEntryBreakdown({\n field: 'bodyColor',\n payload: {\n id: data.bodyColor.bodyColorId,\n name: data.bodyColor.bodyColorName,\n leasingFee: data.bodyColor.leasingFee,\n supportFee: data.bodyColor.supportFee,\n },\n });\n if (!data.bodyColor.isSelected) {\n memo += '|ボディカラー:未選択';\n }\n } else {\n memo += '|ボディカラー:未選択';\n }\n\n // カーナビ\n if (data.carNavi) {\n entryBreakdownManagerStore.updateEntryBreakdown({\n field: 'carNavi',\n payload: {\n id: data.carNavi.id,\n name: data.carNavi.name,\n isStandard: data.carNavi.isStandard,\n leasingFee: data.carNavi.leasingFee,\n supportFee: data.carNavi.supportFee,\n },\n });\n }\n\n // ETC\n if (data.etc) {\n entryBreakdownManagerStore.updateEntryBreakdown({\n field: 'etc',\n payload: {\n id: data.etc.id,\n name: data.etc.name,\n isStandard: data.etc.isStandard,\n leasingFee: data.etc.leasingFee,\n supportFee: data.etc.supportFee,\n },\n });\n }\n\n // バックカメラ\n if (data.backCamera) {\n entryBreakdownManagerStore.updateEntryBreakdown({\n field: 'backCamera',\n payload: {\n id: data.backCamera.id,\n name: data.backCamera.name,\n isStandard: data.backCamera.isStandard,\n leasingFee: data.backCamera.leasingFee,\n supportFee: data.backCamera.supportFee,\n },\n });\n }\n\n // フロアマット\n if (data.floorMat) {\n entryBreakdownManagerStore.updateEntryBreakdown({\n field: 'floorMat',\n payload: {\n id: data.floorMat.id,\n name: data.floorMat.name,\n isStandard: data.floorMat.isStandard,\n leasingFee: data.floorMat.leasingFee,\n supportFee: data.floorMat.supportFee,\n },\n });\n }\n\n // 希望ナンバー\n if (data.wantNo) {\n entryBreakdownManagerStore.updateEntryBreakdown({\n field: 'wantNo',\n payload: {\n id: data.wantNo.id,\n name: data.wantNo.name,\n isStandard: data.wantNo.isStandard,\n leasingFee: data.wantNo.leasingFee,\n supportFee: data.wantNo.supportFee,\n },\n });\n }\n\n // ドアバイザー\n if (data.customerSelection) {\n if (data.customerSelection.dontHaveDoorVisor) {\n memo += '|ドアバイザー:装着不可';\n } else if (data.doorVisor) {\n entryBreakdownManagerStore.updateEntryBreakdown({\n field: 'doorVisor',\n payload: {\n id: data.doorVisor.id,\n name: data.doorVisor.name,\n isStandard: data.doorVisor.isStandard,\n leasingFee: data.doorVisor.leasingFee,\n supportFee: data.doorVisor.supportFee,\n },\n });\n }\n }\n\n // もらえるオプション\n if (data.wantCar && data.wantCar.price) {\n const wantCar = new WantCarBreakdown();\n wantCar.price = data.wantCar.price;\n\n entryBreakdownManagerStore.updateEntryBreakdown({ field: 'wantCar', payload: wantCar });\n memo += '|もらえるオプション:希望';\n }\n\n // 賃貸期間\n if (data.customerSelection && data.customerSelection.term) {\n entryBreakdownManagerStore.updateEntryBreakdown({ field: 'term', payload: data.customerSelection.term });\n }\n\n // メンテナンス\n if (data.maintenancePlan) {\n if (data.maintenancePlan.id === undefined || data.maintenancePlan.id === NEWCAR_CONST.MAINTENANCE.PLAN.NOT_SELECTED) {\n memo += '|メンテ:未選択';\n } else if (data.maintenancePlan.id === NEWCAR_CONST.MAINTENANCE.PLAN.PLATINUM) {\n memo += '|メンテ:プラチナ';\n } else if (data.maintenancePlan.id === NEWCAR_CONST.MAINTENANCE.PLAN.GOLD) {\n memo += '|メンテ:ゴールド';\n } else if (data.maintenancePlan.id === NEWCAR_CONST.MAINTENANCE.PLAN.SILVER) {\n memo += '|メンテ:シルバー';\n } else if (data.maintenancePlan.id === NEWCAR_CONST.MAINTENANCE.PLAN.NONE) {\n memo += '|メンテ:なし';\n }\n entryBreakdownManagerStore.updateEntryBreakdown({ field: 'maintenancePlan', payload: data.maintenancePlan });\n } else {\n memo += '|メンテ:未選択';\n }\n\n // 備考欄\n entryBreakdownManagerStore.updateEntryBreakdown({ field: 'memo', payload: memo });\n\n // セッションストレージに保存\n entryBreakdownManagerStore.saveToSessionStorage();\n }\n\n /**\n * 現在のシミュレーションが保存済みシミュレーションに含まれているか確認する\n *\n * @readonly\n * @type {boolean}\n * @memberof SimulationResultManager\n */\n @computed\n get checkIsSaved(): boolean {\n const { nowCustomerSelection } = simulationManagerStore;\n\n const target = this.simulationList.find((simulation) => {\n // Detail表示直後のdontHaveDoorVisorがundefinedになってしまうので、それ以外を比較\n if (nowCustomerSelection && simulation.customerSelection) {\n if (nowCustomerSelection.masterNumber != simulation.masterNumber) { return false; }\n if (nowCustomerSelection.id != simulation.customerSelection.id) { return false; }\n if (nowCustomerSelection.term != simulation.customerSelection.term) { return false; }\n if (nowCustomerSelection.engine != simulation.customerSelection.engine) { return false; }\n if (nowCustomerSelection.gradeName != simulation.customerSelection.gradeName) { return false; }\n if (nowCustomerSelection.kudou != simulation.customerSelection.kudou) { return false; }\n if (nowCustomerSelection.mission != simulation.customerSelection.mission) { return false; }\n if (nowCustomerSelection.gradeId != simulation.customerSelection.gradeId) { return false; }\n if (nowCustomerSelection.bodyColorId != simulation.customerSelection.bodyColorId) { return false; }\n if (nowCustomerSelection.carNavi != simulation.customerSelection.carNavi) { return false; }\n if (nowCustomerSelection.etc != simulation.customerSelection.etc) { return false; }\n if (nowCustomerSelection.backCamera != simulation.customerSelection.backCamera) { return false; }\n if (nowCustomerSelection.floorMat != simulation.customerSelection.floorMat) { return false; }\n if (nowCustomerSelection.doorVisor != simulation.customerSelection.doorVisor) { return false; }\n if (nowCustomerSelection.wantNo != simulation.customerSelection.wantNo) { return false; }\n if (nowCustomerSelection.wantCar != simulation.customerSelection.wantCar) { return false; }\n if (nowCustomerSelection.maintenancePlan != simulation.customerSelection.maintenancePlan) { return false; }\n return true;\n }\n return false;\n });\n\n return (target != undefined);\n }\n\n @computed\n get isSavedWithParameter():boolean {\n return this.isSaved;\n }\n\n /**\n * クエリパラメータで保存済みシミュレーションに含まれているか確認する\n */\n @action\n public checkIsSavedWithParameter(data: {id: string, query: any}): {isSaved: boolean, simulationResult?: SimulationResult} {\n if (!data.id || !data.query) { return { isSaved: false }; }\n const { id } = data;\n const { query } = data;\n\n const customerSelection = new CustomerSelection();\n // 車種ID\n customerSelection.id = id;\n\n if (query.g) {\n if (searchCarStore.allCarDetails != undefined) {\n const resultCar = (searchCarStore.allCarDetails.find((car) => (car.id == data.id)));\n\n if (resultCar != undefined && resultCar.vehicleGrades != undefined) {\n const grades = resultCar.vehicleGrades;\n // グレードIDのが変更になったので、駆動以下を該当するものに変更する\n const targetGrade = (grades.find((grade) => (grade.id == query.g)));\n\n if (targetGrade) {\n // グレードID\n if (targetGrade.id) {\n customerSelection.gradeId = targetGrade.id;\n }\n // グレード名称\n if (targetGrade.name) {\n customerSelection.gradeName = targetGrade.name;\n }\n // 駆動\n if (targetGrade.kudou) {\n customerSelection.kudou = NEWCAR_CONST.KUDOU.NAME_TO_ID(targetGrade.kudou);\n }\n // ミッション\n if (targetGrade.mission) {\n customerSelection.mission = targetGrade.mission.includes('MT') ? 'MT' : 'AT';\n }\n // エンジン種別\n if (targetGrade.engine) {\n customerSelection.engine = NEWCAR_CONST.ENGINE.NAME_TO_ID(targetGrade.engine);\n } else {\n customerSelection.engine = NEWCAR_CONST.ENGINE.ID.IS_GAS;\n }\n }\n }\n }\n }\n\n // 期間\n if (query.t) {\n customerSelection.term = Number(query.t);\n }\n // グレードID\n if (query.g) {\n customerSelection.gradeId = query.g;\n }\n // ボディカラー\n if (query.b) {\n customerSelection.bodyColorId = query.b;\n }\n // カーナビ\n if (query.c) {\n customerSelection.carNavi = query.c;\n } else {\n customerSelection.carNavi = '100001';\n }\n // ETC\n if (query.e) {\n customerSelection.etc = query.e;\n } else {\n customerSelection.etc = '100003';\n }\n // バックカメラ\n if (query.b2) {\n customerSelection.backCamera = query.b2;\n } else {\n customerSelection.backCamera = '100002';\n }\n // フロアマット\n if (query.f) {\n customerSelection.floorMat = query.f;\n } else {\n customerSelection.floorMat = '100004';\n }\n // ドアバイザー\n if (query.d) {\n customerSelection.doorVisor = query.d;\n } else {\n customerSelection.doorVisor = '100006';\n }\n // ドアバイザー無しの車両\n if (query.d2) {\n customerSelection.dontHaveDoorVisor = true;\n } else {\n customerSelection.dontHaveDoorVisor = false;\n }\n // 希望ナンバー\n if (query.w) {\n customerSelection.wantNo = query.w;\n } else {\n customerSelection.wantNo = '100005';\n }\n // もらえるオプション\n if (query.w2) {\n customerSelection.wantCar = query.w2;\n } else {\n customerSelection.wantCar = 'no';\n }\n // メンテナンスプラン\n if (query.m) {\n customerSelection.maintenancePlan = Number(query.m);\n } else {\n customerSelection.maintenancePlan = NEWCAR_CONST.MAINTENANCE.PLAN.NOT_SELECTED;\n }\n // マスタ番号\n if (query.m2) {\n customerSelection.masterNumber = query.m2;\n }\n\n const target = this.simulationList.find((simulation) => {\n if (customerSelection && simulation.customerSelection) {\n if (customerSelection.masterNumber != simulation.customerSelection.masterNumber) { return false; }\n if (customerSelection.id != simulation.customerSelection.id) { return false; }\n if (customerSelection.term != simulation.customerSelection.term) { return false; }\n if (customerSelection.gradeId != simulation.customerSelection.gradeId) { return false; }\n if (customerSelection.bodyColorId != simulation.customerSelection.bodyColorId) { return false; }\n if (customerSelection.carNavi != simulation.customerSelection.carNavi) { return false; }\n if (customerSelection.backCamera != simulation.customerSelection.backCamera) { return false; }\n if (customerSelection.floorMat != simulation.customerSelection.floorMat) { return false; }\n if (customerSelection.doorVisor != simulation.customerSelection.doorVisor) { return false; }\n if (customerSelection.wantNo != simulation.customerSelection.wantNo) { return false; }\n if (customerSelection.wantCar != simulation.customerSelection.wantCar) { return false; }\n if (customerSelection.maintenancePlan != simulation.customerSelection.maintenancePlan) { return false; }\n return true;\n }\n return false;\n });\n\n if (target != undefined) {\n this.loadSavedInfo({ isSaved: true, simulationResult: target });\n return { isSaved: true, simulationResult: target };\n }\n this.loadSavedInfo({ isSaved: false });\n return { isSaved: false };\n }\n\n @action\n public loadSavedInfo(data: {isSaved: boolean, simulationResult?: SimulationResult}) {\n this.isSaved = data.isSaved;\n if (data.isSaved && data.simulationResult) {\n this.nowSimulationResult = data.simulationResult;\n // userselect更新\n if (data.simulationResult.customerSelection) {\n simulationManagerStore.changeUserSelect(data.simulationResult.customerSelection);\n }\n }\n }\n}\n\nexport const simulationResultManagerStore = new SimulationResultManagerStore();\n","/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// store系\nimport CARMO_CONST from '@/common/util/const';\nimport NEWCAR_CONST from '@/newcar/util/const';\nimport CarDigest from '@/common/core/model/carDigest';\nimport VehicleGrade from '@/common/core/model/catalog/vehicleGrade';\n\nnamespace StoreUtil {\n // 同一車種内で人気順で並び替え\n export function comparePopularityScore(a: CarDigest, b: CarDigest): number {\n return a.popularityScore < b.popularityScore ? 1 : -1;\n }\n\n // ボディタイプがUNSELECTEDの時MINI_CARか OTHERに分類\n export function identifyBodyType(\n bodyType: CARMO_CONST.BODY_TYPE.ID,\n isMiniCar: boolean,\n ): CARMO_CONST.BODY_TYPE.ID {\n if (bodyType === CARMO_CONST.BODY_TYPE.ID.UNSELECTED) {\n if (isMiniCar) {\n return CARMO_CONST.BODY_TYPE.ID.MINI_CAR;\n }\n return CARMO_CONST.BODY_TYPE.ID.OTHER;\n }\n return bodyType;\n }\n\n export function calcTAX(arg?: number): number {\n const TAX = 1.1;\n if (arg) {\n return arg < 0 ? Math.ceil(arg * TAX) : Math.floor(arg * TAX);\n }\n // undefined時は0\n return 0;\n }\n\n // 指定グレードの車両本体価格(税込)\n export function calcCarTaxPrice(\n grade: VehicleGrade,\n term: NEWCAR_CONST.TERM.ID,\n ): number {\n const SUPPORT_FEE = calcTAX(100);\n if (term === NEWCAR_CONST.TERM.ID.YEAR_11) {\n return (\n calcTAX(grade.leasingFee132)\n + calcTAX(grade.supportFee132)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee132)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_10) {\n return (\n calcTAX(grade.leasingFee120)\n + calcTAX(grade.supportFee120)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee120)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_9) {\n return (\n calcTAX(grade.leasingFee108)\n + calcTAX(grade.supportFee108)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee108)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_8) {\n return (\n calcTAX(grade.leasingFee96)\n + calcTAX(grade.supportFee96)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee96)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_7) {\n return (\n calcTAX(grade.leasingFee84)\n + calcTAX(grade.supportFee84)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee84)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_6) {\n return (\n calcTAX(grade.leasingFee72)\n + calcTAX(grade.supportFee72)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee72)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_5) {\n return (\n calcTAX(grade.leasingFee60)\n + calcTAX(grade.supportFee60)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee60)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_4) {\n return (\n calcTAX(grade.leasingFee48)\n + calcTAX(grade.supportFee48)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee48)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_3) {\n return (\n calcTAX(grade.leasingFee36)\n + calcTAX(grade.supportFee36)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee36)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_2) {\n return (\n calcTAX(grade.leasingFee24)\n + calcTAX(grade.supportFee24)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee24)\n );\n }\n if (term === NEWCAR_CONST.TERM.ID.YEAR_1) {\n return (\n calcTAX(grade.leasingFee12)\n + calcTAX(grade.supportFee12)\n + SUPPORT_FEE\n + calcTAX(grade.onlineDiscountFee12)\n );\n }\n return 0;\n }\n\n // 消費税計算\n\n // 税込リース料取得\n export function taxedLeasingFee(data: any = {}, months?: number): number {\n return calcTAX(data[`leasingFee${months || ''}`]);\n }\n\n // 税込仲介手数料取得\n export function taxedSupportFee(data: any = {}, months?: number): number {\n return calcTAX(data[`supportFee${months || ''}`]);\n }\n\n // 税込のリース料 + 仲介手数料を取得\n export function taxedTotalFee(data: any = {}, months?: number): number {\n return taxedLeasingFee(data, months) + taxedSupportFee(data, months);\n }\n\n // ネット割の割引金額を取得\n export function taxedoOlineDiscount(data: any = {}, months?: number): number {\n return calcTAX(data[`onlineDiscountFee${months || ''}`]);\n }\n}\nexport default StoreUtil;\n","import { createContext } from 'react';\nimport { entryBreakdownManagerStore } from '@/newcar/core/store/entryBreakdownManagerStore';\n\nconst EntryBreakdownManagerStoreContext = createContext(\n entryBreakdownManagerStore,\n);\n\nexport default EntryBreakdownManagerStoreContext;\n","import { createContext } from 'react';\nimport { simulationManagerStore } from '@/newcar/core/store/simulationManagerStore';\n\nconst SimulationManagerStoreContext = createContext(simulationManagerStore);\n\nexport default SimulationManagerStoreContext;\n","import { createContext } from 'react';\nimport { simulationResultManagerStore } from '@/newcar/core/store/simulationResultManagerStore';\n\nconst SimulationResultManagerStoreContext = createContext(simulationResultManagerStore);\n\nexport default SimulationResultManagerStoreContext;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-restricted-globals */\n/* eslint-disable default-case */\n/* eslint-disable no-shadow */\n/* eslint-disable max-len */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-namespace */\n/** カルモ定数 */\nnamespace NEWCAR_CONST {\n /* クイック審査 */\n export namespace QUICK {\n export const ID = {\n EASY: '10017',\n RELIEF: '10013',\n };\n\n export const MEMO = '|グレード:未選択|ボディカラー:未選択|カーナビ:未選択|ETC:未選択|バックカメラ:未選択|フロアマット:未選択|希望ナンバー:未選択|ドアバイザー:未選択|期間:未選択|メンテ:未選択|もらえるオプション:希望';\n }\n\n /* オススメの車ランキング */\n export namespace RANKING {\n export const ID = {\n NO1: '10013',\n NO2: '10017',\n NO3: '10030',\n };\n }\n\n /* 人気の車ランキング */\n export namespace POPULERRANKING {\n export const ID = {\n NO1: '10013',\n NO2: '10030',\n NO3: '10017',\n NO4: '10031',\n NO5: '10053',\n };\n }\n\n /* 燃費が良い車ランキング */\n export namespace FUELRANKING {\n export const ID = {\n NO1: '10053',\n NO2: '10017',\n NO3: '10141',\n NO4: '10138',\n NO5: '10034',\n };\n }\n\n /* 新車TOPランキング */\n export namespace TOPRANKING {\n export const ID = {\n miraes: '10017',\n tanto: '10014',\n nbox: '10013',\n none: '10095',\n hustler: '10030',\n spacia: '10031',\n spaciacustom: '10057',\n alt: '10053',\n altolapin: '10034',\n wagonr: '10016',\n taft: '10176',\n delicamini: '10212',\n };\n }\n\n /**\n * 月額費用内訳の固定値\n */\n export namespace BREAKDOWN {\n /** お客様サポート料 */\n export const CUSTOMER_SUPPORT_FEE = 100;\n }\n\n export namespace FORM {\n /**\n * 審査申込入力データのローカルストレージのキー\n */\n export const ENTRY_FORM_LOCAL_STORAGE_KEY = 'carmo';\n /**\n * 審査申込入力データのバージョン\n */\n export const ENTRY_FORM_VERSION = '20190327';\n export const OLDEST_AGE = 75;\n export const YOUNGEST_AGE = 18;\n export const UNEMPLOYED_VALUE = 3;\n /**\n * 審査申込み TODO 新車で使用しないタイプがないか確認\n */\n export type ApplicationType = 'DEFAULT' | 'CHOICE' | 'MACH' | 'QUICK' | 'UNUSED' | 'CONSULT' | 'OWN_STOCK';\n }\n\n export namespace SIMULATIONRESULT {\n /**\n * 料金シミュレーション保存時のローカルストレージのキー\n */\n export const SIMULATION_RESULT_LOCAL_STORAGE_KEY = 'simulations';\n }\n\n /** 掲載ステータス */\n export namespace PUBLISH {\n /**\n * ステータス\n * @export\n * @enum {number}\n */\n export enum STATUS {\n /** 販売停止中 */\n SUSPENDED = 0,\n /** 販売中 */\n SALE = 1,\n }\n }\n\n /** 期間 */\n export namespace TERM {\n export enum ID {\n /** 1年 */\n YEAR_1 = 1,\n /** 2年 */\n YEAR_2 = 2,\n /** 3年 */\n YEAR_3 = 3,\n /** 4年 */\n YEAR_4 = 4,\n /** 5年 */\n YEAR_5 = 5,\n /** 6年 */\n YEAR_6 = 6,\n /** 7年 */\n YEAR_7 = 7,\n /** 8年 */\n YEAR_8 = 8,\n /** 9年 */\n YEAR_9 = 9,\n /** 10年 */\n YEAR_10 = 10,\n /** 11年 */\n YEAR_11 = 11,\n }\n\n /** 表示名\n * TERM.IDを指定\n */\n export const NAME: { [key: number]: string } = {\n 1: '1年',\n 2: '2年',\n 3: '3年',\n 4: '4年',\n 5: '5年',\n 6: '6年',\n 7: '7年',\n 8: '8年',\n 9: '9年',\n 10: '10年',\n 11: '11年',\n };\n export function NAME_TO_ID(name: string): ID {\n if (name === NAME[ID.YEAR_1]) {\n return ID.YEAR_1;\n }\n if (name === NAME[ID.YEAR_2]) {\n return ID.YEAR_2;\n }\n if (name === NAME[ID.YEAR_3]) {\n return ID.YEAR_3;\n }\n if (name === NAME[ID.YEAR_4]) {\n return ID.YEAR_4;\n }\n if (name === NAME[ID.YEAR_5]) {\n return ID.YEAR_5;\n }\n if (name === NAME[ID.YEAR_6]) {\n return ID.YEAR_6;\n }\n if (name === NAME[ID.YEAR_7]) {\n return ID.YEAR_7;\n }\n if (name === NAME[ID.YEAR_8]) {\n return ID.YEAR_8;\n }\n if (name === NAME[ID.YEAR_9]) {\n return ID.YEAR_9;\n }\n if (name === NAME[ID.YEAR_10]) {\n return ID.YEAR_10;\n }\n return ID.YEAR_11;\n }\n\n export function TO_MONTHS(term?: ID): number | undefined {\n return term && term * 12;\n }\n\n export function MAX(): number {\n const terms = Object.keys(ID).filter((key: string) => !isNaN(Number(key))).map((term: string) => Number(term));\n return terms.reduce((a, b) => Math.max(a, b));\n }\n }\n\n /** 価格 */\n export namespace PRICE {\n export enum ID {\n /** 10-20K */\n BW_10_20K = 1,\n /** 20-30K */\n BW_20_30K = 2,\n /** 30-40K */\n BW_30_40K = 3,\n /** 40-50K */\n BW_40_50K = 4,\n /** 50K超 */\n OVER_50K = 5,\n /** 50K超 */\n OVER_60K = 6,\n /** 50K超 */\n OVER_70K = 7,\n /** 50K超 */\n OVER_80K = 8,\n }\n\n /** 表示名\n * 順序がリスト順番に相当\n */\n export const NAME: { [key: number]: string } = {\n 1: '1万円〜',\n 2: '2万円〜',\n 3: '3万円〜',\n 4: '4万円〜',\n 5: '5万円〜',\n 6: '6万円〜',\n 7: '7万円〜',\n 8: '8万円〜',\n };\n\n /**\n * 期間別で利用する値段の範囲\n * @export\n * @param {TERM.ID} key\n * @returns {number[]}\n */\n export function TERM_TO_PRICE_RANGE(key: TERM.ID): number[] {\n switch (key) {\n case TERM.ID.YEAR_11:\n case TERM.ID.YEAR_10:\n case TERM.ID.YEAR_9:\n case TERM.ID.YEAR_8:\n case TERM.ID.YEAR_7:\n case TERM.ID.YEAR_6:\n case TERM.ID.YEAR_5:\n // 9〜5年:1万〜、2万〜、3万〜、4万〜、5万〜\n return [\n PRICE.ID.BW_10_20K,\n PRICE.ID.BW_20_30K,\n PRICE.ID.BW_30_40K,\n PRICE.ID.BW_40_50K,\n PRICE.ID.OVER_50K,\n ];\n case TERM.ID.YEAR_4:\n case TERM.ID.YEAR_3:\n case TERM.ID.YEAR_2:\n // 4〜2年:2万〜、3万〜、4万〜、5万〜、6万〜\n return [\n PRICE.ID.BW_20_30K,\n PRICE.ID.BW_30_40K,\n PRICE.ID.BW_40_50K,\n PRICE.ID.OVER_50K,\n PRICE.ID.OVER_60K,\n ];\n case TERM.ID.YEAR_1:\n // 1年:4万〜、5万〜、6万〜、7万〜、8万〜\n return [\n PRICE.ID.BW_40_50K,\n PRICE.ID.OVER_50K,\n PRICE.ID.OVER_60K,\n PRICE.ID.OVER_70K,\n PRICE.ID.OVER_80K,\n ];\n }\n }\n\n /**\n * 期間別でどの値段がどのレンジとして計上するか\n * @export\n * @param {TERM.ID} key\n * @param {number} taxIncludedPrice\n * @returns {PRICE.ID}\n */\n export function TERM_PRICE_TO_ID(\n key: TERM.ID,\n taxIncludedPrice: number,\n ): PRICE.ID {\n switch (key) {\n case TERM.ID.YEAR_11:\n case TERM.ID.YEAR_10:\n case TERM.ID.YEAR_9:\n case TERM.ID.YEAR_8:\n case TERM.ID.YEAR_7:\n case TERM.ID.YEAR_6:\n case TERM.ID.YEAR_5:\n // 11〜5年:1万〜、2万〜、3万〜、4万〜、5万〜\n if (taxIncludedPrice >= 50000) {\n return PRICE.ID.OVER_50K;\n }\n if (taxIncludedPrice >= 40000) {\n return PRICE.ID.BW_40_50K;\n }\n if (taxIncludedPrice >= 30000) {\n return PRICE.ID.BW_30_40K;\n }\n if (taxIncludedPrice >= 20000) {\n return PRICE.ID.BW_20_30K;\n }\n return PRICE.ID.BW_10_20K;\n\n case TERM.ID.YEAR_4:\n case TERM.ID.YEAR_3:\n case TERM.ID.YEAR_2:\n // 4〜2年:2万〜、3万〜、4万〜、5万〜、6万〜\n if (taxIncludedPrice >= 60000) {\n return PRICE.ID.OVER_60K;\n }\n if (taxIncludedPrice >= 50000) {\n return PRICE.ID.OVER_50K;\n }\n if (taxIncludedPrice >= 40000) {\n return PRICE.ID.BW_40_50K;\n }\n if (taxIncludedPrice >= 30000) {\n return PRICE.ID.BW_30_40K;\n }\n return PRICE.ID.BW_20_30K;\n\n case TERM.ID.YEAR_1:\n // 1年:4万〜、5万〜、6万〜、7万〜、8万〜\n if (taxIncludedPrice >= 80000) {\n return PRICE.ID.OVER_80K;\n }\n if (taxIncludedPrice >= 70000) {\n return PRICE.ID.OVER_70K;\n }\n if (taxIncludedPrice >= 60000) {\n return PRICE.ID.OVER_60K;\n }\n if (taxIncludedPrice >= 50000) {\n return PRICE.ID.OVER_50K;\n }\n return PRICE.ID.BW_40_50K;\n }\n }\n }\n\n /** 定員(最大) */\n export namespace CAPACITY {\n export enum ID {\n /** 4名以下 */\n UNDER_4 = 4,\n /** 5名 */\n SEATER_5 = 5,\n /** 6名 */\n SEATER_6 = 6,\n /** 7名 */\n SEATER_7 = 7,\n /** 8名以上 */\n OVER_8 = 8,\n }\n /** 表示名\n * 順序がリスト順番に相当\n */\n export const NAME: { [key: number]: string } = {\n 4: '4人以下',\n 5: '5人',\n 6: '6人',\n 7: '7人',\n 8: '8人以上',\n };\n\n export function DETAIL_VIEW_STRING(\n has8SeatOrMore: boolean,\n has7Seat: boolean,\n has6Seat: boolean,\n has5Seat: boolean,\n has4SeatOrLess: boolean,\n ): string {\n if (\n !has8SeatOrMore\n && !has7Seat\n && !has6Seat\n && !has5Seat\n && !has4SeatOrLess\n ) {\n return '0人';\n }\n\n let maxCapacity = 0;\n if (has8SeatOrMore) {\n maxCapacity = NEWCAR_CONST.CAPACITY.ID.OVER_8;\n } else if (has7Seat) {\n maxCapacity = NEWCAR_CONST.CAPACITY.ID.SEATER_7;\n } else if (has6Seat) {\n maxCapacity = NEWCAR_CONST.CAPACITY.ID.SEATER_6;\n } else if (has5Seat) {\n maxCapacity = NEWCAR_CONST.CAPACITY.ID.SEATER_5;\n } else {\n maxCapacity = NEWCAR_CONST.CAPACITY.ID.UNDER_4;\n }\n\n let minCapacity = 0;\n if (has4SeatOrLess) {\n minCapacity = NEWCAR_CONST.CAPACITY.ID.UNDER_4;\n } else if (has5Seat) {\n minCapacity = NEWCAR_CONST.CAPACITY.ID.SEATER_5;\n } else if (has6Seat) {\n minCapacity = NEWCAR_CONST.CAPACITY.ID.SEATER_6;\n } else if (has7Seat) {\n minCapacity = NEWCAR_CONST.CAPACITY.ID.SEATER_7;\n } else {\n minCapacity = NEWCAR_CONST.CAPACITY.ID.OVER_8;\n }\n if (maxCapacity === minCapacity) {\n return NEWCAR_CONST.CAPACITY.NAME[maxCapacity];\n }\n return `${minCapacity}〜${maxCapacity}人`;\n }\n }\n\n /** 検索条件 */\n export namespace SEARCH_OPTION {\n export enum ID {\n /** ハイブリッド有無 */\n HAS_HYBRID = 'h',\n /** 4WD有無 */\n HAS_4WD = '4',\n /** MT有無 */\n HAS_MT = 'm',\n /** 電動スライドドア */\n HAS_POWER_SLIDE_DOOR = 'p',\n /** キーレスエントリー */\n HAS_KEYLESS_ENTRY = 'k',\n /** スマートキー */\n HAS_SMART_KEY = 's',\n /** クルーズコントロール */\n HAS_CRUISE_CTRL = 'c',\n /** 自動ブレーキ */\n HAS_AUTO_BRAKE = 'a',\n /** ペダル踏み間違い時サポートブレーキ */\n HAS_SUPPORT_PEDAL = 'f',\n /** 車線はみ出しアラート */\n HAS_SUPPORT_LANE = 'l',\n }\n export function NAME(key: string) :'ハイブリッド' | '4WD' | 'MTあり' | '電動スライドドア' | 'キーレスエントリー' | 'スマートキー' | 'クルーズコントロール' | '自動ブレーキ' | '踏み間違いブレーキ' | '車線はみ出しアラート' | '' {\n switch (key) {\n case 'h':\n return 'ハイブリッド';\n case '4':\n return '4WD';\n case 'm':\n return 'MTあり';\n case 'p':\n return '電動スライドドア';\n case 'k':\n return 'キーレスエントリー';\n case 's':\n return 'スマートキー';\n case 'c':\n return 'クルーズコントロール';\n case 'a':\n return '自動ブレーキ';\n case 'f':\n return '踏み間違いブレーキ';\n case 'l':\n return '車線はみ出しアラート';\n }\n return '';\n }\n }\n\n /** オプション */\n export namespace Option {\n /**\n * オプションの種類\n * @export\n * @enum {number}\n */\n export enum Type {\n /** カーナビ */\n CAR_NAVI = 0,\n /** ETC */\n ETC = 1,\n /** バックカメラ */\n BACK_CAMERA = 2,\n /** フロアマット */\n FLOOR_MAT = 3,\n /** ドアバイザー */\n DOOR_VISOR = 4,\n /** 希望ナンバー */\n WANT_NO = 5,\n }\n }\n\n /** メンテナンス */\n export namespace MAINTENANCE {\n /**\n * メンテプラン\n * @export\n * @enum {number}\n */\n export enum PLAN {\n /** 未選択 */\n NOT_SELECTED = 0,\n /** ゴールド */\n GOLD = 1,\n /** シルバー */\n SILVER = 2,\n /** なし */\n NONE = 3,\n /** プラチナ */\n PLATINUM = 4,\n }\n\n /**\n * 適合タイプ\n * @export\n * @enum {number}\n */\n export enum TYPE {\n /** 非適合 */\n NOT_APPLICABLE = 'notapplicable',\n /** 標準 */\n STANDARD = 'standard',\n /** 軽自動車 */\n MINICAR = 'minicar',\n }\n\n /**\n * メンテナンスプラン表示名\n * @export\n * @param {PLAN} key\n * @returns {(string | undefined)}\n */\n export function PLAN_NAME(key: PLAN): string | undefined {\n switch (key) {\n case PLAN.NONE:\n return 'メンテプランなし';\n case PLAN.SILVER:\n return 'シルバーメンテプラン';\n case PLAN.GOLD:\n return 'ゴールドメンテプラン';\n case PLAN.PLATINUM:\n return 'プラチナメンテプラン';\n }\n }\n\n /**\n * メンテナンスプラン表示名(省略\n * @export\n * @param {PLAN} key\n * @returns {(string | undefined)}\n */\n export function PLAN_SHORT_NAME(key: PLAN): string | undefined {\n switch (key) {\n case PLAN.NONE:\n return 'なし';\n case PLAN.SILVER:\n return 'シルバー';\n case PLAN.GOLD:\n return 'ゴールド';\n case PLAN.PLATINUM:\n return 'プラチナ';\n }\n }\n\n /**\n * メンテナンスプラン概要\n * @export\n * @param {PLAN} key\n * @returns {(string | undefined)}\n */\n export function PLAN_OVERVIEW(key: PLAN): string | undefined {\n switch (key) {\n case PLAN.NONE: return '';\n case PLAN.SILVER: return '必要最低限なメンテナンス費用の補償に車検費用などをセットしたベーシックなプランです';\n case PLAN.GOLD: return 'メンテナンス費用補償項目がシルバーメンテプランよりも充実。毎日のカーライフに安心なスタンダードなプランです';\n case PLAN.PLATINUM: return 'メンテナンス費用補償+メーカー保証終了後も契約満了日まで保証を延長。長く安心して車に乗りたい方にオススメ';\n }\n }\n }\n\n /** 燃費 */\n export namespace MILEAGE {\n /**\n * 燃費\n * @export\n * @enum {number}\n */\n export enum ID {\n /** jc08 */\n JC08 = 1,\n /** wltc */\n WLTC = 2,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 1: 'JC08',\n 2: 'WLTC',\n };\n\n export function WHICH_USE(\n jc08: string | undefined,\n wltc: string | undefined,\n ): { name: string; value: string } {\n if (wltc) {\n return { name: NAME[ID.WLTC], value: wltc };\n }\n if (jc08) {\n return { name: NAME[ID.JC08], value: jc08 };\n }\n return { name: '', value: '' };\n }\n }\n\n /** サポカー */\n export namespace SUPPORT_CAR {\n /**\n * タイプ\n * @export\n * @enum {number}\n */\n export enum TYPE {\n /** 非適合 */\n NOT_APPLICABLE = 'notapplicable',\n /** サポカー標準 */\n NOMAL = 'nomal',\n /** ベーシック */\n BASIC = 'basic',\n /** ベーシック+ */\n PLUS = 'plus',\n /** ワイド */\n WIDE = 'wide',\n }\n }\n\n /** 並び替え */\n export enum SORT {\n /** 料金順 */\n PRICE = 'price',\n /** 人気順 */\n POP = 'popularity',\n /** 50音順 */\n ATOZ = 'atoz',\n }\n\n /** 並び替えの名前 */\n export const SORT_NAME = {\n /** 料金順 */\n [SORT.PRICE]: '安い順',\n /** 人気順 */\n [SORT.POP]: '人気順',\n /** 50音順 */\n [SORT.ATOZ]: '50音順',\n };\n\n /** 駆動 */\n export namespace KUDOU {\n export enum ID {\n /** 4名以下 */\n IS_2WD = 2,\n /** 5名 */\n IS_4WD = 4,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 2: '2WD',\n 4: '4WD',\n };\n export function NAME_TO_ID(name?: string):ID {\n if (name === undefined) {\n return ID.IS_2WD;\n }\n if (name === NAME[ID.IS_4WD]) {\n return ID.IS_4WD;\n }\n return ID.IS_2WD;\n }\n }\n\n /** エンジン */\n export namespace ENGINE {\n export enum ID {\n /** ガソリン */\n IS_GAS = 1,\n /** ハイブリッド */\n IS_HYBRID = 2,\n /** ターボ */\n IS_TURBO = 3,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 1: 'ガソリン',\n 2: 'ハイブリッド',\n 3: 'ターボ',\n };\n export function NAME_TO_ID(name: string):ID {\n if (name === NAME[ID.IS_TURBO]) {\n return ID.IS_TURBO;\n }\n if (name === NAME[ID.IS_HYBRID]) {\n return ID.IS_HYBRID;\n }\n return ID.IS_GAS;\n }\n }\n\n /** ミッション */\n export namespace MISSION {\n export enum ID {\n NOT_FOUND = 0,\n IS_4DAT = 1,\n IS_4FAT = 2,\n IS_5DAT = 3,\n IS_5FAT = 4,\n IS_5FMT = 5,\n IS_6DAT = 6,\n IS_6FAT = 7,\n IS_6FMT = 8,\n IS_7DAT = 9,\n IS_7FAT = 10,\n IS_8DAT = 11,\n IS_8FAT = 12,\n IS_AT = 13,\n IS_CCVT = 14,\n IS_DCVT = 15,\n IS_FCVT = 16,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 0: '',\n 1: '4DAT',\n 2: '4FAT',\n 3: '5DAT',\n 4: '5FAT',\n 5: '5FMT',\n 6: '6DAT',\n 7: '6FAT',\n 8: '6FMT',\n 9: '7DAT',\n 10: '7FAT',\n 11: '8DAT',\n 12: '8FAT',\n 13: 'AT',\n 14: 'CCVT',\n 15: 'DCVT',\n 16: 'FCVT',\n };\n\n export function NAME_TO_ID(name?: string): MISSION.ID {\n if (name === undefined) {\n return ID.NOT_FOUND;\n }\n for (const value in ID) {\n if (!isNaN(Number(value))) {\n if (name === NAME[value]) {\n return Number(value);\n }\n }\n }\n return ID.NOT_FOUND;\n }\n }\n\n // removedSafetySystem\n export namespace REMOVE_SAFETY_SYSTEM {\n export enum ID {\n NOT_FOUND = 0,\n /** Honda SENSING非装着 */\n IS_HONDA = 1,\n /** 衝突被害軽減ブレーキ非装着車 */\n IS_SYOUTOTU = 2,\n /** セーフティパッケージレス仕様車 */\n IS_SAFTY = 3,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 0: '',\n 1: 'Honda SENSING非装着',\n 2: '衝突被害軽減ブレーキ非装着車',\n 3: 'セーフティパッケージレス仕様車',\n };\n\n export function NAME_TO_ID(name: string):ID {\n if (name === NAME[ID.IS_HONDA]) {\n return ID.IS_HONDA;\n }\n if (name === NAME[ID.IS_SYOUTOTU]) {\n return ID.IS_SYOUTOTU;\n }\n if (name === NAME[ID.IS_SAFTY]) {\n return ID.IS_SAFTY;\n }\n return ID.NOT_FOUND;\n }\n }\n\n /** パワースライドドア */\n export namespace POWER_SLIDE_DOOR {\n export enum ID {\n NOT_FOUND = 0,\n BOTH_DEFAULT = 1,\n LEFT_DEFAULT = 2,\n MAKER_OPTION = 3,\n NOT_SUPPORT = 4,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 0: '',\n 1: '両側標準',\n 2: '左側標準',\n 3: 'メーカー',\n 4: 'なし',\n };\n\n export function NAME_TO_ID(name?: string): POWER_SLIDE_DOOR.ID {\n for (const value in ID) {\n if (!isNaN(Number(value))) {\n if (name === NAME[value]) {\n return Number(value);\n }\n }\n }\n return ID.NOT_FOUND;\n }\n }\n\n /** キーレスエントリー、スマートキー、クルーズコントロール、自動ブレーキ、踏み間違いサポート、車線逸脱アラートの共通 */\n export namespace COMMON_OPTIONS {\n export enum ID {\n NOT_FOUND = 0,\n DEFAULT = 1,\n MAKER = 2,\n NOT_SUPPORT = 3,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 0: '',\n 1: '標準',\n 2: 'メーカー',\n 3: 'なし',\n };\n\n export function NAME_TO_ID(name?: string): COMMON_OPTIONS.ID {\n for (const value in ID) {\n if (!isNaN(Number(value))) {\n if (name === NAME[value]) {\n return Number(value);\n }\n }\n }\n return ID.NOT_FOUND;\n }\n }\n\n /* 料金シミュレーション モーダル名 */\n export namespace SIMULATION_MODAL {\n export enum NAME {\n TERM = 'modalTerm',\n GRADE = 'modalGrade',\n BODY_COLOR = 'modalBodyColor',\n OPTION = 'modalOption',\n MAINRE = 'modalMainte',\n RESULT = 'modalResult',\n }\n export const SP: { [key: number]: string } = {\n 1: SIMULATION_MODAL.NAME.TERM,\n 2: SIMULATION_MODAL.NAME.GRADE,\n 3: SIMULATION_MODAL.NAME.BODY_COLOR,\n 4: SIMULATION_MODAL.NAME.OPTION,\n 5: SIMULATION_MODAL.NAME.MAINRE,\n 6: SIMULATION_MODAL.NAME.RESULT,\n };\n export const ORIGINAL: { [key: number]: string } = {\n 1: SIMULATION_MODAL.NAME.GRADE,\n 2: SIMULATION_MODAL.NAME.BODY_COLOR,\n 3: SIMULATION_MODAL.NAME.OPTION,\n 4: SIMULATION_MODAL.NAME.MAINRE,\n };\n export const OTHER: { [key: number]: string } = {\n 1: SIMULATION_MODAL.NAME.BODY_COLOR,\n 2: SIMULATION_MODAL.NAME.OPTION,\n };\n }\n\n /** PC版料金シミュレーション用 プラン種別 */\n export namespace SIMULATION_PLAN {\n export enum ID {\n SIMPLE = 1,\n RECOMMEND = 2,\n RICH = 3,\n ORIGINAL = 4,\n RECOMMEND_SP = 5,\n TRIAL = 6,\n }\n /**\n * 表示名\n */\n export const NAME: { [key: number]: string } = {\n 1: 'シンプルプラン',\n 2: 'おすすめプラン',\n 3: 'よくばりプラン',\n 4: 'オリジナルプラン',\n 5: 'オススメのプラン',\n };\n }\n export namespace PLAN_PATTERN {\n export enum NAME {\n LP_QUICK = 'LPクイック',\n MAG_QUICK = 'マガジンクイック',\n OTAMESHI = 'お試し審査',\n MAIN_QUICK = '本体クイック',\n MAIN_SIMPLE = '本体シンプル',\n MAIN_RICH = '本体よくばり',\n MAIN_LP = '本体LP',\n MAIN_RECOMMEND_PC = 'PC本体おすすめ',\n MAIN_RECOMMEND_SP = '本体オススメ',\n MAIN_TRIAL = '相談申し込み', // TODO Vue版にしかない\n MAIN_ORIGINAL = '本体オリジナル',\n MAIN_QUICK_DELIVERY = '本体即納',\n LP_QUICK_DELIVERY = 'LP即納',\n CONSULT = '相談申し込み', // TODO Vue版にしかない\n TRIAL = '仮申し込み', // TODO Vue版にしかない\n DIRECTTRIAL = '直接フォーム申し込み', // TODO Vue版にしかない\n }\n export enum QUERY {\n DELIVERY = 'deli',\n LP_WOMAN = 'woman',\n MAIN_LP = '/mainLp/',\n MAG_QUICK = 'マガジン',\n LP = '/lp/',\n OTAMESHI = 'otameshi',\n QUICK = 'quick',\n CONSULT = 'consult',\n TRIAL = 'trial',\n }\n }\n\n /** 申込タイプ */\n export namespace APPLICATION_TYPE {\n /** 流入元分類 */\n export const REFERRER_TYPE = {\n MAIN: 'main',\n };\n /** 車種状態 */\n export const CAR_CONDITION = {\n NEW_CAR: 'NewCar',\n };\n /** 車種選択 */\n export const CAR_SELECT = {\n CAR_MODEL: 'CarModel',\n TYPE: 'Type',\n CONSULTATION: 'Consultation',\n };\n /** プラン詳細 */\n export const PLAN_DETAIL = {\n INDIVIDUAL_COST_SIMULATIONS: 'IndividualCostSimulations',\n AFFORDABLE_KEI: 'AffordableKei',\n COMFORTABLE_KEI: 'ComfortableKei',\n };\n export const PLAN_DETAIL_NAME = {\n AFFORDABLE_KEI: 'お手軽タイプ軽自動車',\n COMFORTABLE_KEI: '安心快適タイプ軽自動車',\n };\n }\n\n export namespace CAMPAIGNS {\n export enum NAME {\n CP_MASCOT = 'cp_mascot',\n }\n }\n}\n\nexport default NEWCAR_CONST;\n","/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport CARMO_CONST from '@/common/util/const';\nimport checkConvertibleToShiftJIS from '@/common/util/checkConvertibleToShiftJIS';\nimport NEWCAR_CONST from '@/newcar/util/const';\nimport { IMaintenancePlan } from '@/newcar/core/model/maintenance';\nimport Util from '@/common/util/util';\n\n/** カルモ定数 */\nnamespace NEWCAR_DEFINE {\n /** Path、ルーティング */\n export namespace PATH {\n\n /** 総合TOP/ ルーティング */\n export const TOP = '/';\n /** TOP URI/ルーティング */\n export const LINEUP_TOP = '/lineup/';\n\n /** 総合TOP/ ルーティング */\n export const USEDCAR_TOP = '/usedcar/';\n /** TOP URI/ルーティング 中古車 */\n export const USEDCAR_LINEUP_TOP = '/usedcar/lineup/';\n\n // /** 詳細検索 URI/ルーティング */\n // export const SEARCH = \"/search\";\n /** 検索結果 汎用 URI/ルーティング */\n export const PANEL_ROUTING = `${LINEUP_TOP}:makerId?/:bodyId?/`;\n // /** 検索結果 メーカー/ボディタイプ ルーティング */\n // export const MAKER_ROUTING = \"/lineup/:id\";\n /** 検索結果 メーカー/ボディタイプ ルーティング */\n export const LIST_ROUTING = `${LINEUP_TOP}list/`;\n /** クイック審査 */\n export const QUICK_APPLICATION = '/quick/:carId/';\n /** フォーム連絡先 ルーティング */\n export const FORM_CONTACT_INFO = '/contract/contact_info/';\n /** フォーム個人情報 ルーティング */\n export const FORM_PERSONAL_INFO = '/contract/personal_info/';\n /** フォーム審査 */\n export const FORM_REVIEW_INFO = '/contract/review_info/';\n /** フォーム確認 */\n export const FORM_CONFIRM = '/contract/confirm/';\n /** フォーム完了 */\n export const FORM_COMPLETION = '/contract/provisional_completion/';\n /** フォームエラー */\n export const FORM_ERROR = '/contract/server_error/';\n /** 契約同意画面 */\n export const AGREEMENT = '/agreement/:estimatesID/:urlID/:urlHash/';\n\n /** キャンペーン系 */\n /** 150万キャンペーンくじ引き説明画面 */\n export const CP_150MAN_INFO = '/150man/info/';\n /** 150万キャンペーンくじ引き結果画面 */\n export const CP_150MAN_RESULT = '/150man/number/';\n /** ぬいぐるみキャンペーンくじ引き結果画面 */\n export const CP_MASCOT_RESULT = '/carmokun2022/number/';\n /** 2022, 10万キャッシュバックキャンペーン */\n export const CP_2022_CARMOKUN = '/pr/2022/carmokun/';\n /** 2022, 定額カルモくん申込み10万人突破!ありがとうキャンペーン */\n export const CP_2022_100K = '/pr/2022/100K/';\n /** 2022, 10人に1人必ず当たる!月額料金1か月分の半額還元キャンペーン */\n export const CP_2022_HALF = '/pr/2022/half-price/';\n /** 最大3万円キャッシュバックが当たる!秋の大感謝祭2022 */\n export const CP_2022_THANKSGIVING = '/pr/2022/thanksgiving/';\n\n /** 検索結果 メーカー URI\n * @export\n * @param {MAKER.ID} makerId メーカーID\n * @returns URI\n */\n export function MAKER_PATH(makerId: CARMO_CONST.MAKER.ID): string {\n return `${LINEUP_TOP}${CARMO_CONST.MAKER.ID_TO_KEY(makerId)}/`;\n }\n /** 検索結果 メーカー URI\n * @export\n * @param {MAKER.ID} makerId メーカーID\n * @returns URI\n */\n export function USEDCAR_MAKER_PATH(makerId: CARMO_CONST.MAKER.ID): string {\n return `${USEDCAR_LINEUP_TOP}${CARMO_CONST.MAKER.ID_TO_KEY(makerId)}/`;\n }\n /** 検索結果 ボディタイプ URI\n * @export\n * @param {BODY_TYPE.ID} bodyId ボディタイプID\n * @returns URI\n */\n export function BODY_TYPE_PATH(bodyId: CARMO_CONST.BODY_TYPE.ID): string {\n return `${LINEUP_TOP}${CARMO_CONST.BODY_TYPE.ID_TO_KEY(bodyId)}/`;\n }\n /** 検索結果 ボディタイプ URI 中古車\n * @export\n * @param {BODY_TYPE.ID} bodyId ボディタイプID\n * @returns URI\n */\n export function USEDCAR_BODY_TYPE_PATH(bodyId: CARMO_CONST.BODY_TYPE.ID): string {\n return `${USEDCAR_LINEUP_TOP}${CARMO_CONST.BODY_TYPE.ID_TO_KEY(bodyId)}/`;\n }\n /** 検索結果 メーカー+ボディタイプ ルーティング */\n export const MAKER_BODYTYPE_ROUTING = '/lineup/:makerId/:bodyId';\n /** 検索結果 メーカー+ボディタイプ URI\n * @export\n * @param {MAKER.ID} makerId メーカーID\n * @param {BODY_TYPE.ID} bodyId ボディタイプID\n * @returns URI\n */\n export function MAKER_BODYTYPE(\n makerId: CARMO_CONST.MAKER.ID,\n bodyId: CARMO_CONST.BODY_TYPE.ID,\n ): string {\n return (\n `${LINEUP_TOP\n }${\n CARMO_CONST.MAKER.ID_TO_KEY(makerId)\n }/${\n CARMO_CONST.BODY_TYPE.ID_TO_KEY(bodyId) ? `${CARMO_CONST.BODY_TYPE.ID_TO_KEY(bodyId)}/` : ''\n }`\n );\n }\n /** 詳細 ルーティング */\n export const DETAIL_ROUTING = '/detail/:carId(\\\\d+)';\n /** 詳細 過去分 */\n export const DETAIL_ROUTING_OLD = '/detail/:carId(\\\\d+)/*';\n /** 詳細 URI\n * @export\n * @param {string} carId 車種ID\n * @returns URI\n */\n export function DETAIL(carId: string): string {\n return `/detail/${carId}/`;\n }\n /** お気に入り、閲覧履歴 ルーティング */\n export const USERPAGE_ROUTING = '/userpage/';\n /** シミュレーション結果一覧 ルーティング */\n export const SIMULATION_ROUTING = '/simulation/';\n /** キャンペーン一覧 ルーティング */\n export const CAMPAIGNS = '/campaigns/';\n /** 開催中のキャンペーン ルーティング */\n export const CAMPAIGN_NOW = '/pr/2025/newlife/';\n /** お客様の声 */\n export const USERVOICE = '/uservoice/';\n /** 取次加盟店募集 */\n export const MERCHANT_RECRUITMENT = '/merchant/recruitment/';\n /** カルモ利用規約 */\n export const TERMS = '/docs/terms/';\n /** 信用情報の訂正および利用停止の申し出手続き */\n export const CREDIT_INFO_CORRECTION = '/docs/credit-info-correction/';\n /** 個人情報保護方針 */\n export const PRIVACY = 'https://nyle.co.jp/privacypolicy/';\n /** コンテンツポリシー */\n export const CONTENTS_POLICY = '/column/newcar/contentpolicy/';\n /** 引用・転載について */\n export const CITATION_REPRINTING_RULES = '/docs/citation-reprinting-rules/';\n /** その他同意事項 */\n export const AGREEMENTS = '/top/agreement/';\n /** 特定商取引法に基づく表記 */\n export const LAW = '/docs/law/';\n /** 損害保険代理店等における勧誘方針 */\n export const SOLICITATIOONPOLICY = '/docs/solicitationpolicy/';\n /** 取扱い保険会社/推奨販売に関する方針 */\n export const INSURANCESALESPOLICY = '/docs/insurance-sales-policy/';\n /** 引用・転載について */\n export const CITATIONREPRINTINGRULES = '/docs/citation-reprinting-rules/';\n /** 自動車保険 */\n export const CAR_INSURANCE = '/docs/carinsurance/';\n /** スタッフ紹介 */\n export const STAFF = '/docs/staff/';\n /** 社会貢献活動 */\n export const SOCIAL_CONTRIBUTIONS = '/docs/social-contributions/';\n /** カーリースとは */\n export const ABOUT_CARLEASE = '/docs/carlease/';\n /** カルモマガジン */\n export const MAGAZINE = 'https://car-mo.jp/mag/';\n /** FAQ */\n export const FAQ = '/docs/faq/';\n /** お問い合わせ */\n export const CONTACT = '/contact/';\n /** 定額カルモくんとは? */\n export const ABOUT_CARMO = '/docs/about/';\n /** 新車をさがす */\n export const NEWCAR_LINEUP_PRICE1 = '/lineup/list/?term=11&price=1';\n /** 新車をさがす 1万円台 */\n export const NEWCAR_LINEUP_PRICE2 = '/lineup/list/?term=11&price=2';\n /** 新車をさがす 2万円台 */\n export const NEWCAR_LINEUP_PRICE3 = '/lineup/list/?term=11&price=3';\n /** 新車をさがす 3万円台 */\n export const NEWCAR_LINEUP = '/lineup/';\n /** 中古車をさがす */\n export const USEDCAR_LINEUP = '/usedcar/lineup/';\n /** 納車までの流れ */\n export const CONTRACT_FLOW = '/docs/contract/';\n /** メンテナンスプラン */\n export const MAINTENANCE = '/docs/maintenance/';\n /** もらえるオプション */\n export const MORAERU = '/docs/moraeru/';\n /** 値段・料金について */\n export const FEE = '/docs/fee/';\n /** はじめての方へ */\n export const FIRST_GUIDE = '/docs/first-guide/';\n /** アプリ紹介ページ_安心要素訴求 */\n export const APP_REASSURANCE = '/docs/contract-customers/';\n /** お知らせ一覧 ルーティング */\n export const INFORMATION = '/information/';\n /** お知らせ もらえるプランの取り扱い開始 */\n export const INFO_20190214 = '/docs/info/20190214/';\n /** お知らせ ゴールデンウィーク休業のご案内 */\n export const INFO_20190409 = '/docs/info/20190409/';\n /** お知らせ 賃貸期間に10年、11年を追加 */\n export const INFO_20190701 = '/docs/info/20190701/';\n /** お知らせ [重要]消費税率改定に関するご案内 */\n export const INFO_20190911 = '/docs/info/20190911/';\n /** お知らせ 営業時間変更のお知らせ */\n export const INFO_20191018 = '/docs/info/20191018/';\n /** お知らせ 利用規約改定のお知らせ */\n export const INFO_20191113 = '/docs/info/20191113/';\n /** お知らせ 利用規約改定のお知らせ */\n export const INFO_20200204 = '/docs/info/20200204/';\n /** お知らせ オプション名変更と料金改定のご案内 */\n export const INFO_20200212 = '/docs/info/20200212/';\n /** お知らせ 乗り放題オプション全車種対応のご案内 */\n export const INFO_20210215 = '/docs/info/20210215/';\n /** お知らせ 乗り放題オプション全車種対応のご案内 */\n export const INFO_20210302 = '/docs/info/20210302/';\n /** お知らせ 乗り放題オプションに関するガイドライン改定のお知らせ */\n export const INFO_20210624 = '/docs/info/20210624/';\n /** お知らせ ガイドライン改定のお知らせ */\n export const INFO_20210708 = '/docs/info/20210708/';\n /** お知らせ ゴールデンウィーク期間中の営業日について */\n export const INFO_20220427 = '/docs/info/20220427/';\n export const INFO_20230428 = '/docs/info/20230428/';\n export const INFO_20240426 = '/docs/info/20240426/';\n /** 法人向けフォーム */\n export const CORPORATE_FORM = '/contract/corporate/';\n /** 法人向けフォーム完了ページ */\n export const CORPORATE_FORM_COMPLETE = '/contract/corporate/complete/';\n /** 加盟店舗一覧 */\n export const SHOPLIST = '/shop/shoplist/';\n /** メディア掲載情報 */\n export const MEDIA = 'https://nyle.co.jp/news/media/';\n /* 顧客本位の業務運営の宣言 */\n export const FIDUCIARY_DUTY = '/docs/fd/';\n\n /** はじめての方へ 中古車 */\n export const USEDCAR_FIRST_GUIDE = '/usedcar/docs/first-guide/';\n /** メンテナンスプラン 中古車 */\n export const USEDCAR_MAINTENANCE = '/usedcar/docs/maintenance/';\n /** 納車までの流れ 中古車 */\n export const USEDCAR_CONTRACT_FLOW = '/usedcar/docs/contract/';\n /** カルモ保証 中古車 */\n export const USEDCAR_CONTRACT_WARRANTY = '/usedcar/docs/warranty/';\n /** 月額料金に含まれるもの 中古車 */\n export const USEDCAR_PRICING = '/usedcar/docs/pricing/';\n /** FAQ 中古車 */\n export const USEDCAR_FAQ = '/usedcar/docs/faq/';\n /** お問い合わせ 中古車 */\n export const USEDCAR_CONTACT = '/usedcar/contact/';\n\n /** 404 NOT FOUND */\n export const NOT_FOUND = '/404/';\n\n /** 外部リンク */\n /** カーリースのメリット・デメリット */\n export const MERIT_DEMERIT = 'https://car-mo.jp/mag/category/tips/carlease/advantages_disadvantages/';\n /** ナイルホームページ */\n export const COMPANY_ABOUT = '/docs/company/';\n /** 法人問い合わせ(googleフォーム) */\n export const CORPORATE_GOOGLE_FORM = 'https://docs.google.com/forms/d/e/1FAIpQLSf0JxT3eHk23n9yQ0xmbp3ivKbdx3xuQpeIJLF5qXqgEA_QaA/viewform';\n /* 公式LINEアカウント */\n export const LINE_ACCOUNT = 'https://liff.line.me/1657071928-Br8GdoPL?sl=48515928bf';\n /* 資料DLページ遷移先 */\n export const NURTURING_LINK = 'https://carmo-kun.jp/column/newcar/service_introduction_download_ss/';\n }\n\n export namespace FORM {\n /** 審査フォームエラーメッセージ日本語に翻訳する設定 */\n export const DICT = {\n dictionary: {\n en: {\n custom: {\n lastName: {\n required: '入力して下さい',\n regex:\n '日本語・アルファベット・数字以外の使用できない文字が含まれています。確認の上修正をお願いします',\n },\n firstName: {\n required: '入力して下さい',\n regex:\n '日本語・アルファベット・数字以外の使用できない文字が含まれています。確認の上修正をお願いします',\n },\n lastKana: {\n required: '入力して下さい',\n regex:\n 'カタカナ以外の使用できない文字が含まれています。確認の上修正をお願いします',\n },\n firstKana: {\n required: '入力して下さい',\n regex:\n 'カタカナ以外の使用できない文字が含まれています。確認の上修正をお願いします',\n },\n year: {\n required: '入力して下さい',\n },\n month: {\n required: '入力して下さい',\n },\n day: {\n required: '入力して下さい',\n },\n phoneNumber: {\n required: '入力して下さい',\n regex: '市外局番が無いようです。確認の上修正をお願いします',\n min: '桁が短いようです。確認の上修正をお願いします',\n max: '桁が長すぎるようです。確認の上修正をお願いします',\n },\n mobileNumber: {\n required: '入力して下さい',\n regex: '市外局番が無いようです。確認の上修正をお願いします',\n min: '桁が短いようです。確認の上修正をお願いします',\n max: '桁が長すぎるようです。確認の上修正をお願いします',\n },\n address3: {\n required: '入力して下さい',\n },\n email: {\n required: '審査結果を受信するアドレスを入力してください',\n },\n question3Answer: {\n required: '1つ以上を選択してください',\n },\n agreement1: {\n required: '定額カルモくんの利用契約に同意してください',\n },\n agreement2: {\n required: 'プライバシーポリシーに同意してください',\n },\n postalCode: {\n required: '入力してください',\n regex: '郵便番号が正しくありません。確認の上修正をお願いします',\n },\n addressPostalCode: {\n required: '入力してください',\n regex: '郵便番号が正しくありません。確認の上修正をお願いします',\n },\n addressAddress3: {\n required: '入力してください',\n },\n residenceYear: {\n required: '入力してください',\n numeric: '整数でお願いします',\n min_value: '1年以上でお願いします(例:4ヶ月→1)',\n },\n holder: {\n required: '入力してください',\n },\n livingPersons: {\n required: '入力してください',\n numeric: '整数でお願いします',\n min_value: 'ご本人様を含む1人以上でお願いします',\n },\n livingMinors: {\n required: '入力してください',\n numeric: '整数でお願いします',\n min_value: '未成年者が同居していない場合は0を入力してください',\n },\n businessYears: {\n required: '入力してください',\n numeric: '整数でお願いします',\n },\n income: {\n required: '入力してください',\n numeric: '整数でお願いします',\n max: '万円単位でお願いします(例:400万円→400)',\n },\n company: {\n required: '入力してください',\n },\n companyPostalCode: {\n required: '入力してください',\n regex: '郵便番号が正しくありません。確認の上修正をお願いします',\n },\n companyAddress3: {\n required: '入力してください',\n },\n companyPhoneNumber: {\n required: '入力して下さい',\n regex: '市外局番が無いようです。確認の上修正をお願いします',\n min: '桁が短いようです。確認の上修正をお願いします',\n max: '桁が長すぎるようです。確認の上修正をお願いします',\n },\n licenseNumber: {\n required: '入力して下さい',\n regex:\n '運転免許証の表面に記載の第○○○○○○号の12桁の番号を入力してください',\n length:\n '免許証番号の桁数に誤りがあるようです。確認して修正をお願いします',\n },\n },\n },\n },\n };\n\n export const CORPORATE_DICT = {\n dictionary: {\n en: {\n custom: {\n purpose: {\n required: '選択してください',\n },\n companyName: {\n required: '入力してください',\n },\n companyAddress: {\n required: '入力してください',\n },\n name: {\n required: '入力してください',\n },\n nameKana: {\n required: '入力してください',\n regex:\n 'カタカナ以外の使用できない文字が含まれています。確認の上修正をお願いします',\n },\n phoneNumber: {\n required: '入力してください',\n regex: '市外局番が無いようです。確認の上修正をお願いします',\n min: '桁が短いようです。確認の上修正をお願いします',\n max: '桁が長すぎるようです。確認の上修正をお願いします',\n },\n email: {\n required: 'ご連絡可能なアドレスを入力してください',\n },\n howToContact: {\n required: '選択してください',\n },\n availableTimeFrom: {\n isLessThanOrEqualTo:\n '入力した時間帯が正しくありません。確認の上修正をお願いします',\n },\n carModel: {\n required: '入力してください',\n },\n bodyColor: {\n required: '入力してください',\n },\n budget: {\n required: '入力してください',\n numeric: '半角の整数で入力してください',\n },\n other: {\n max: '入力可能な文字数は500文字までです',\n },\n },\n },\n },\n };\n\n export namespace QUESTIONNAIRE {\n export const QUESTION1 = '1.今回のお申込み検討理由について教えてください';\n export const QUESTION1_ANSWERS = [\n '今のクルマと乗り換えのため',\n '現在クルマを持っておらず、新規でクルマを利用するため',\n 'セカンドカーとして利用するため',\n ];\n\n export const QUESTION2 = '2.新しいクルマはいつまでに必要ですか?';\n export const QUESTION2_ANSWERS = [\n '1〜2カ月以内',\n '3カ月以内',\n '6カ月以内',\n '急いでいない',\n ];\n\n export const QUESTION3 = '1.車の購入手段について、他の選択肢を検討していますか?';\n export const QUESTION3_ANSWERS = [\n '他は特に検討していない',\n '新車ディーラーで購入',\n '中古車ディーラーで購入',\n '他のカーリース事業者(新車)',\n '他のカーリース事業者(中古車)',\n 'その他',\n ];\n export const QUESTION4 = '3.審査通過時に、お電話が繋がりやすい時間帯をお教えください。';\n export const QUESTION4_ANSWERS = [\n '10時~13時',\n '13時~16時',\n '16時~20時',\n 'その他',\n ];\n export const QUESTION5 = '4.審査通過時に、車のご相談やお見積もりを希望される時期をお教えください。';\n export const QUESTION5_ANSWERS = [\n 'できるだけ早く',\n '2週間以内',\n '1ヶ月以内',\n '2ヶ月以内',\n '3ヶ月以内',\n '希望しない',\n ];\n\n export const PURPOSE = '2.主にどんな用途に車をお使いですか?';\n export const PURPOSE_LIST = [\n '通勤・通学',\n 'レジャー',\n '日常の足(買い物や家族の送り迎えなど)',\n '仕事・商用(通勤以外)',\n 'その他',\n ];\n\n export const TRIGGER = '3.おトクにマイカー 定額カルモくんを知ったきっかけを教えてください';\n export const TRIGGER_LIST = [\n 'インターネット広告',\n 'インターネット記事',\n 'インターネット検索',\n 'SNS',\n 'テレビCM',\n 'ラジオCM',\n 'チラシ',\n '看板・屋外広告',\n '知人からの紹介',\n '取次加盟店',\n 'その他',\n ];\n }\n\n export const CUSTOM_RULE = {\n checkHolder: (value: string, name: string): boolean => {\n const holderName: string = value.replace(/\\s+/g, '');\n if (holderName === name) {\n return false;\n }\n return true;\n },\n checkHolderErrMsg: (value: string, name: string): { message: string} | undefined => {\n const holderName: string = value.replace(/\\s+/g, '');\n if (holderName === name) {\n return { message: '所有者名をご記入ください' };\n }\n return undefined;\n },\n testPhoneNumber: (value: string): boolean => {\n if (value.length === 10 && /^0[7-9]0[1-9]/.test(value)) {\n return false;\n } if (value.length === 11 && /^0[0-6]0/.test(value)) {\n return false;\n }\n return true;\n },\n phoneNumberErrMsg: (value: string): { message: string} | undefined => {\n if (value.length === 10 && /^0[7-9]0/.test(value)) {\n return { message: '桁が短いようです。確認の上修正をお願いします' };\n } if (value.length === 11 && /^0[0-6]0/.test(value)) {\n return { message: '桁が長いようです。確認の上修正をお願いします' };\n }\n return undefined;\n },\n testEmail: (value: string): boolean => {\n if (!value.includes('@')) {\n return false;\n } if (/@\\w+$/.test(value)) {\n return false;\n } if (/[^a-zA-Z0-9.!#$%&\\'*+\\/=?^_`{|}~\\-@]+/.test(value)) {\n return false;\n } if (!CARMO_CONST.REGEX.MAIL.test(value)) {\n return false;\n }\n return true;\n },\n emailErrMsg: (value: string): { message: string} | undefined => {\n if (!value.includes('@')) {\n return { message: '@がありませんでした。確認の上修正をお願いします' };\n } if (/@\\w+$/.test(value)) {\n return {\n message:\n 'ドメインにピリオドがありませんでした。確認の上修正をお願いします',\n };\n } if (/[^a-zA-Z0-9.!#$%&\\'*+\\/=?^_`{|}~\\-@]+/.test(value)) {\n return {\n message:\n 'メールアドレスに使えない文字が含まれます。確認して修正をお願いします',\n };\n } if (!CARMO_CONST.REGEX.MAIL.test(value)) {\n return {\n message:\n 'メールアドレスが正しくありません。確認の上修正をお願いします',\n };\n }\n return undefined;\n },\n testJis: (value: string): boolean => {\n if (!checkConvertibleToShiftJIS(value)) {\n return false;\n }\n return true;\n },\n jisErrMsg: (value: string): { message: string} | undefined => {\n if (!checkConvertibleToShiftJIS(value)) {\n return {\n message:\n '日本語・アルファベット・数字以外の使用できない文字が含まれています。確認の上修正をお願いします',\n };\n }\n return undefined;\n },\n age: (value: number): boolean => value >= NEWCAR_CONST.FORM.YOUNGEST_AGE\n && value <= NEWCAR_CONST.FORM.OLDEST_AGE,\n ageErrMsg: (value: number): { message: string} | undefined => {\n if (\n value >= NEWCAR_CONST.FORM.YOUNGEST_AGE\n && value <= NEWCAR_CONST.FORM.OLDEST_AGE\n ) {\n return undefined;\n }\n return { message: 'お申込の対象は 18 歳以上〜 75 歳以下です。' };\n },\n };\n\n export const INDUSTRY_LIST = [\n {\n name: '公務員',\n list: [\n '教員',\n '警察署',\n '消防署',\n '自衛隊',\n '交通局',\n '一般行政事務職',\n '郵便局',\n 'その他公務',\n ],\n },\n {\n name: '公的資格者',\n list: [\n '医師',\n '弁護士',\n '公認会計士',\n '税理士',\n '大学教授',\n '一級建築士',\n '不動産鑑定士',\n '司法書士',\n 'その他公的',\n ],\n },\n {\n name: '一次産業',\n list: ['農業', '漁業', '林業', '畜産業'],\n },\n {\n name: '鉱業',\n list: ['鉱業'],\n },\n {\n name: '土木・建築',\n list: [\n '大工・左官・とび職',\n '建築・工事',\n '測量・調査・設計',\n '塗装',\n '設備工事',\n '建設資材',\n ],\n },\n {\n name: '不動産',\n list: ['不動産'],\n },\n {\n name: '金融',\n list: [\n '銀行・信金・信組',\n '保険(生命)',\n '保険(損害)',\n '保険代理業',\n '証券',\n 'クレジット・リース・レンタル',\n '質屋',\n 'その他金融',\n ],\n },\n {\n name: '運輸・倉庫',\n list: [\n '陸運',\n '海運',\n '航空',\n '鉄道',\n 'バス',\n 'タクシー',\n '倉庫',\n '梱包・荷造',\n ],\n },\n {\n name: '製造',\n list: [\n '食品',\n '繊維・紙・パルプ',\n '化学',\n '金属',\n '電気機器',\n '輸送用機器',\n '情報・精密機器',\n '石油ガス等エネルギー',\n '印刷',\n 'その他製造',\n ],\n },\n {\n name: '卸',\n list: ['貿易', '一般卸・問屋', '仲買', '取引所'],\n },\n {\n name: '小売',\n list: [\n 'デパート',\n 'スーパー',\n 'コンビニエンスストアー',\n 'ディスカウントショップ',\n '一般商店',\n '訪問販売',\n '通信販売',\n ],\n },\n {\n name: '情報・通信',\n list: [\n '新聞社',\n '放送',\n '通信',\n '出版',\n '広告',\n '興信・市場調査',\n '情報サービス',\n ],\n },\n {\n name: '旅行・宿泊',\n list: ['旅行業', 'ホテル・旅館', 'レジャー施設'],\n },\n {\n name: 'その他サービス',\n list: [\n '飲食業',\n '遊技場',\n '風俗',\n 'スポーツ施設・健康',\n '教育',\n '介護・福祉',\n '宗教',\n '美容・理容',\n '清掃業',\n '警備',\n '整備・修理',\n '人材斡旋',\n 'その他サービス',\n ],\n },\n {\n name: '医療機関',\n list: ['病院・医院', '治療'],\n },\n {\n name: '組合・団体',\n list: ['組合・団体'],\n },\n {\n name: '施設・機関',\n list: ['施設・機関'],\n },\n ];\n\n export const OTHER_LIST = [\n {\n name: '無職・主婦・学生・年金',\n list: ['主婦', '学生', '年金生活者', 'その他無職'],\n },\n ];\n\n export const POSITION_LIST = [\n '会社役員',\n '正社員(管理職)',\n '正社員',\n '派遣社員・契約社員',\n 'アルバイト・パート',\n ];\n }\n\n /** UI設定 */\n export namespace UI_SETTING {\n /** 画像遅延ロード */\n export const LAZY_LOAD = { effect: 'fadeIn' };\n }\n\n /** Metaタグ設定 */\n export namespace META {\n /** 基本TITLE */\n export const TITLE = 'マイカーリースならおトクにマイカー 定額カルモくん 新車が格安 月々定額1万円から';\n /** 基本DESCRIPTION */\n // tslint:disable-next-line:max-line-length\n export const DESCRIPTION = '【業界最安水準】頭金・ボーナス払い0円で新車に格安で乗れる。毎月定額、税金コミコミで安心「おトクにマイカー 定額カルモくん」は新車カーリース(車のサブスク)サービスです。メンテナンスも月額定額にできるプラン、契約満了後に車がもらえるプランもご用意。';\n\n /** リスト表示時のTITLE */\n export const LIST_TITLE = 'カーリース・マイカーリースの検索結果 おトクにマイカー 定額カルモくん';\n /** リスト表示時のDESCRIPTIONの右側 */\n // tslint:disable-next-line:max-line-length\n export const LIST_DESCRIPTION = 'おトクにマイカー 定額カルモくんの検索結果を表示しています。定額カルモくんの自動車リースは、新車に格安で乗れる、NHKなどでも話題の個人向けマイカーリースサービスです。全国産メーカー全車種をラインナップ!格安価格、諸費用込みの月額定額の料金プランで正規ディーラー新車にお乗りいただけます。';\n\n /** お知らせ もらえるプランの取り扱い開始 のTITLE */\n export const INFO_20190214_TITLE = 'もらえるプランの取り扱い開始 おトクにマイカー 定額カルモくん';\n /** お知らせ もらえるプランの取り扱い開始 のDESCRIPTION */\n // tslint:disable-next-line:max-line-length\n export const INFO_20190214_DESCRIPTION = 'カーリース契約満了後に乗っていた車がもらえる、新しいオプションを追加しました。月々300円(税抜)~の「もらえるプラン」オプションをご契約頂くことで、リース契約満了後に追加料金0円で車がもらえます。';\n\n /** お知らせ ゴールデンウィーク休業のご案内 のTITLE */\n export const INFO_20190409_TITLE = 'ゴールデンウィーク休業のご案内 おトクにマイカー 定額カルモくん';\n /** お知らせ ゴールデンウィーク休業のご案内 のDESCRIPTION */\n // tslint:disable-next-line:max-line-length\n export const INFO_20190409_DESCRIPTION = '平素は格別のお引き立てを賜り、厚く御礼申し上げます。誠に勝手ながら、下記の期間を休業とさせていただきます。【休業日】2019年4月27日(土)〜2019年5月6日(月)お申込やメールでのお問い合わせは常時受付しておりますが、休業期間中に頂きましたご連絡へのご返答は、5月7日(火)以降の対応となります。返答までに少しお時間をいただく場合がございますことを、予めご了承下さい。大変ご迷惑をおかけいたしますが、何卒ご了承くださいますようお願い申し上げます。';\n\n /** お知らせ 賃貸期間に10年、11年を追加 のTITLE */\n export const INFO_20190701_TITLE = '賃貸期間に10年、11年を追加 おトクにマイカー 定額カルモくん';\n /** お知らせ 賃貸期間に10年、11年を追加 のDESCRIPTION */\n export const INFO_20190701_DESCRIPTION = '従来の賃貸期間の1年~9年にくわえて、10年、11年の取扱を開始いたしました。最長11年の賃貸期間は、カーリース業界初の契約形態です。(※)月々のお支払いをさらに抑えることができ、安心して長くお車にお乗りいただけます。(※)2019年7月定額カルモくん調べ';\n\n /** お知らせ [重要]消費税率改定に関するご案内 のTITLE */\n export const INFO_20190911_TITLE = '[重要]消費税率改定に関するご案内 おトクにマイカー 定額カルモくん';\n /** お知らせ [重要]消費税率改定に関するご案内 のDESCRIPTION */\n export const INFO_20190911_DESCRIPTION = '2019年10月1日に予定されている消費税率引き上げに伴い、新税率の適用を受ける部分については新税率(10%)が適用されます。また、契約書記載の消費税額に関わらず、リース開始日(※1)が令和元年10月1日以降となる場合は、初回リース料から新消費税率の10%が適用されます。';\n\n /** お知らせ 営業時間変更のお知らせ のTITLE */\n export const INFO_20191018_TITLE = '営業時間変更のお知らせ おトクにマイカー 定額カルモくん';\n /** お知らせ 営業時間変更のお知らせ のDESCRIPTION */\n export const INFO_20191018_DESCRIPTION = '10月18日(金)のみ社内研修のため16時までの営業とさせていただきます。お客様にはご不便をおかけいたしますが、何卒ご理解いただきますようお願い申し上げます。';\n\n /** お知らせ [重要]消費税率改定に関するご案内 のTITLE */\n export const INFO_20191113_TITLE = '利用規約変更のお知らせ';\n /** お知らせ [重要]消費税率改定に関するご案内 のDESCRIPTION */\n export const INFO_20191113_DESCRIPTION = 'リース自動車(中古車)のサービス開始に伴い、利用規約を改訂いたしました。';\n\n /** お知らせ [重要]消費税率改定に関するご案内 のTITLE */\n export const INFO_20200204_TITLE = '利用規約変更のお知らせ おトクにマイカー 定額カルモくん';\n /** お知らせ [重要]消費税率改定に関するご案内 のDESCRIPTION */\n export const INFO_20200204_DESCRIPTION = 'サービス名称の変更に伴い、利用規約を改訂いたしました。';\n\n /** お知らせ オプション名変更と料金改定のご案内 のTITLE */\n export const INFO_20200212_TITLE = 'オプション名変更と料金改定のご案内 おトクにマイカー 定額カルモくん';\n /** お知らせ オプション名変更と料金改定のご案内 のDESCRIPTION */\n export const INFO_20200212_DESCRIPTION = '2020年2月12日より、「もらえるプラン」を「乗り放題オプション」へ名称を変更し、オプション料金を改定いたしました。乗り放題オプションとは、リース契約満了後に追加料金0円で車がもらえる、月々500円のオプションです。';\n\n /** お知らせ 乗り放題オプション全車種対応のご案内 のTITLE */\n export const INFO_20210215_TITLE = '乗り放題オプション全車種対応のご案内 | おトクにマイカー 定額カルモくん';\n /** お知らせ 乗り放題オプション全車種対応のご案内 のDESCRIPTION */\n export const INFO_20210215_DESCRIPTION = '2021年2月15日より、「乗り放題オプション」を全車種に対応いたします。乗り放題オプションとは、リース契約満了後に追加料金0円で車がもらえる、月々500円のオプションです。';\n\n /** お知らせ 210302_利用規約改定 のTITLE */\n export const INFO_20210302_TITLE = '利用規約改定のお知らせ';\n /** お知らせ 210302_利用規約改定 のDESCRIPTION */\n export const INFO_20210302_DESCRIPTION = '新車が簡単ネット申し込みで頭金・ボーナス払い0円の完全月額定額1万円台から。業界最長11年リースや契約満了後に車がもらえるプランなどおトクなカーリースなら「おトクにマイカー 定額カルモくん」におまかせ。';\n\n /** お知らせ 210624_乗り放題オプションに関するガイドライン改定のお知らせ のTITLE */\n export const INFO_20210624_TITLE = '乗り放題オプションに関するガイドライン改定のお知らせ | おトクにマイカー 定額カルモくん';\n /** お知らせ 210624_乗り放題オプションに関するガイドライン改定のお知らせ のDESCRIPTION */\n export const INFO_20210624_DESCRIPTION = '2021年7月8日より、乗り放題オプションに関するガイドラインを改定いたします。';\n\n /** お知らせ 210708_ガイドライン改定のお知らせ のTITLE */\n export const INFO_20210708_TITLE = 'ガイドライン改定のお知らせ | おトクにマイカー 定額カルモくん';\n /** お知らせ 210708_ガイドライン改定のお知らせ のDESCRIPTION */\n export const INFO_20210708_DESCRIPTION = '2021年7月8日より、無償譲渡プランに関するガイドラインを改定いたしました。';\n\n /** お知らせ ゴールデンウィーク期間中の営業日について のTITLE */\n export const INFO_20220427_TITLE = 'ゴールデンウィーク期間中の営業日について | おトクにマイカー 定額カルモくん';\n export const INFO_20230428_TITLE = 'ゴールデンウィーク期間中の営業日について | おトクにマイカー 定額カルモくん';\n export const INFO_20240426_TITLE = 'ゴールデンウィーク期間中の営業日について | おトクにマイカー 定額カルモくん';\n\n /** お知らせ ゴールデンウィーク期間中の営業日について のDESCRIPTION */\n export const INFO_20220427_DESCRIPTION = '平素は格別のお引き立てを賜り、厚く御礼申し上げます。誠に勝手ながら、4月29日〜5月1日、5月3日〜5月5日を休業日とさせていただきます。なお、5月2日は通常営業いたします。';\n export const INFO_20230428_DESCRIPTION = '平素は格別のお引き立てを賜り、厚く御礼申し上げます。誠に勝手ながら、4月29日〜4月30日、5月3日〜5月7日を休業日とさせていただきます。なお、5月1日、2日は通常営業いたします。';\n export const INFO_20240426_DESCRIPTION = '平素は格別のお引き立てを賜り、厚く御礼申し上げます。誠に勝手ながら、4月26日〜4月29日、5月3日〜5月6日を休業日とさせていただきます。なお、4月30日、5月1日、2日は通常営業いたします。';\n\n export const OGP_DEFAULT_TITLE = 'マイカーリースならおトクにマイカー 定額カルモくん 新車が格安 月々定額1万円から';\n\n export const OGP_DEFAULT_DESCRIPTION = '【新車がおてごろ毎月定額、11年リースは定額カルモくんだけ】定額カルモくんのカーリースは、新車に格安で乗れる、NHKなどでも話題の個人向け自動車リースサービスです。全国産メーカー全車種をラインナップ!税金・手数料コミの月額定額料金でおトクに新車にお乗りいただけます。';\n\n export const OGP_DEFAULT_URL = 'https://carmo-kun.jp';\n\n export const OGP_DEFAULT_IMAGE = 'https://carmo-kun.jp/img/ogimage/default_ogimage.png';\n\n export async function initOGP(): Promise {\n Util.setMeta(NEWCAR_DEFINE.META.TITLE, NEWCAR_DEFINE.META.DESCRIPTION);\n\n const defaultOgpList = [\n { property: 'title', content: NEWCAR_DEFINE.META.OGP_DEFAULT_TITLE },\n {\n property: 'description',\n content: NEWCAR_DEFINE.META.OGP_DEFAULT_DESCRIPTION,\n },\n { property: 'url', content: NEWCAR_DEFINE.META.OGP_DEFAULT_URL },\n { property: 'image', content: NEWCAR_DEFINE.META.OGP_DEFAULT_IMAGE },\n ];\n const defaultTwitterOgpList = [\n { name: 'title', content: NEWCAR_DEFINE.META.OGP_DEFAULT_TITLE },\n {\n name: 'description',\n content: NEWCAR_DEFINE.META.OGP_DEFAULT_DESCRIPTION,\n },\n { name: 'image', content: NEWCAR_DEFINE.META.OGP_DEFAULT_IMAGE },\n ];\n defaultOgpList.forEach((ogp) => Util.setOgp(ogp));\n defaultTwitterOgpList.forEach((ogp) => Util.setTwitterOgp(ogp));\n }\n\n /** 新車一覧タイトルの接尾辞 */\n const LINEUP_TITLE_POSTFIX = '|おトクにマイカー 定額カルモくん';\n /** 新車一覧ディスクリプションの接尾辞 */\n const LINEUP_DESCRIPTION_POSTFIX = '新車が簡単ネット申し込みで頭金・ボーナス払い0円の完全月額定額1万円台から。業界最長11年リースや契約満了後に車がもらえるプランなどおトクなカーリースなら「おトクにマイカー 定額カルモくん」におまかせ。';\n /** 新車一覧の人気順だけ選択されている状態のディスクリプション */\n const LINEUP_POPULAR_DESCRIPTION = '完全月額定額で乗れる新車一覧 人気順です。おトクにマイカー 定額カルモくんなら新車が簡単ネット申し込みで頭金・ボーナス払い0円の完全月額定額1万円台から。業界最長11年リースや契約満了後に車がもらえるプランなどおトクなカーライフをご提供します。';\n\n /**\n * 新車一覧のタイトル・ディスクリプションで使うテキスト\n * @param makerIds メーカーID一覧\n * @param bodyTypeIds ボディタイプID一覧\n * @param freeText フリーテキスト\n */\n export function LINEUP_TD_TEXT(\n makerIds: CARMO_CONST.MAKER.ID[] = [],\n bodyTypeIds: CARMO_CONST.BODY_TYPE.ID[] = [],\n freeText?: string,\n ): string {\n if (freeText) {\n return `「${freeText}」の`;\n } if (makerIds.length > 0 || bodyTypeIds.length > 0) {\n const makerNames = CARMO_CONST.MAKER.DATA.filter((data) => makerIds.includes(data.id)).map((data) => data.name);\n const bodyTypeNames = CARMO_CONST.BODY_TYPE.DATA.filter((data) => bodyTypeIds.includes(data.id)).map((data) => data.name);\n\n const makerText = makerNames.join('・');\n const bodyTypeText = bodyTypeNames.join('・');\n return (makerText ? `${makerText}の` : '') + (bodyTypeText ? `${bodyTypeText}の` : '');\n }\n return '';\n }\n\n /**\n * 新車一覧タイトル\n * @param makerIds メーカーID一覧\n * @param bodyTypeIds ボディタイプID一覧\n * @param sortedBy ソート順\n * @param freeText フリーテキスト\n */\n export function LINEUP_TITLE(\n makerIds: CARMO_CONST.MAKER.ID[] = [],\n bodyTypeIds: CARMO_CONST.BODY_TYPE.ID[] = [],\n sortedBy: NEWCAR_CONST.SORT = NEWCAR_CONST.SORT.PRICE,\n freeText?: string,\n ): string {\n return `${LINEUP_TD_TEXT(makerIds, bodyTypeIds, freeText)}新車カーリース・サブスク一覧(${NEWCAR_CONST.SORT_NAME[sortedBy]})${LINEUP_TITLE_POSTFIX}`;\n }\n\n /**\n * 新車一覧ディスクリプション\n * @param makerIds メーカーID一覧\n * @param bodyTypeIds ボディタイプID一覧\n * @param sortedBy ソート順\n * @param freeText フリーテキスト\n */\n export function LINEUP_DESCRIPTION(\n makerIds: CARMO_CONST.MAKER.ID[] = [],\n bodyTypeIds: CARMO_CONST.BODY_TYPE.ID[] = [],\n sortedBy: NEWCAR_CONST.SORT = NEWCAR_CONST.SORT.PRICE,\n freeText?: string,\n ): string {\n if (\n makerIds.length === 0\n && bodyTypeIds.length === 0\n && sortedBy === NEWCAR_CONST.SORT.POP\n && !freeText\n ) {\n return LINEUP_POPULAR_DESCRIPTION;\n }\n\n return `${LINEUP_TD_TEXT(makerIds, bodyTypeIds, freeText)}新車一覧 ${NEWCAR_CONST.SORT_NAME[sortedBy]}です。${LINEUP_DESCRIPTION_POSTFIX}`;\n }\n\n /** クイック審査のTITLE\n * クイック審査 + (車のタイプタイトル) + おトクにマイカー 定額カルモくん\n * @export\n * @param {string} typeTitle 車のタイプタイトル\n * @returns Metaに設定するTitle値\n */\n // 右側\n const QUICK_TITLE_RIGHT = ') おトクにマイカー 定額カルモくん';\n // 左側\n const QUICK_TITLE_LEFT = 'クイック審査(';\n\n export function QUICK_TITLE(typeTitle: string): string {\n return QUICK_TITLE_LEFT + typeTitle + QUICK_TITLE_RIGHT;\n }\n\n /** クイック審査のDESCRIPTION\n * (車のタイプタイトル) + (車のタイプ) + 共通\n * @export\n * @param {string} typeTitle 車のタイプタイトル\n * @param {string} typeName 車のタイプ\n * @returns Metaに設定するTitle値\n */\n const QUICK_DESCRIPTION_RIGHT = 'をご希望で、お急ぎの方に特にオススメなカーリースのクイック審査のページです。定額カルモくんのカーリースは、最大49,500円のネット割でおトクに新車にお乗りいただけます。新車、中古車問わず車選びはオンラインならではの個人向け格安マイカーリース「定額カルモくん」にお任せください。';\n export function QUICK_DESCRIPTION(typeTitle: string, typeName: string): string {\n return `(${typeTitle})${typeName}${QUICK_DESCRIPTION_RIGHT}`;\n }\n\n export const CONTACT_INFO_TITLE = 'ご連絡先入力 - おトクにマイカー 定額カルモくん';\n export const CONTACT_INFO_DESCRIPTION = '会員情報についてのご連絡先情報入力ページです。';\n export const PERSONAL_INFO_TITLE = '基本情報入力 - おトクにマイカー 定額カルモくん';\n export const PERSONAL_INFO_DESCRIPTION = '会員情報についての基本情報入力ページです。';\n export const REVIEW_INFO_TITLE = '審査情報入力 - おトクにマイカー 定額カルモくん';\n export const REVIEW_INFO_DESCRIPTION = '審査情報についての入力ページです。';\n export const CONFIRM_TITLE = '申込内容確認 - おトクにマイカー 定額カルモくん';\n export const CONFIRM_DESCRIPTION = '申込内容の確認ページです。';\n export const COMPLETION_INFO_TITLE = '審査申込完了 - おトクにマイカー 定額カルモくん';\n export const COMPLETION_INFO_DESCRIPTION = '審査申込の完了ページです。';\n export const CP_SPEEDLOTTERYINFO_TITLE = '審査申込みするだけでもれなく当たる!スピードくじキャンペーン - おトクにマイカー 定額カルモくん';\n export const CP_SPEEDLOTTERYINFO_DESCRIPTION = '【スピードくじキャンペーン 抽選で現金5万円が50名様に!またはAmazonギフト券がハズレなしでその場で当たる! 12/24まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_SPEEDLOTTERYWINNING_TITLE = '審査申込みするだけでもれなく当たる!スピードくじキャンペーン|当選画面 - おトクにマイカー 定額カルモくん';\n export const CP_SPEEDLOTTERYWINNING_DESCRIPTION = '【スピードくじキャンペーン 抽選で現金5万円が50名様に!またはAmazonギフト券がハズレなしでその場で当たる! 12/24まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_SPEEDLOTTERYRESULT_TITLE = '審査申込みするだけでもれなく当たる!スピードくじキャンペーン|結果画面 - おトクにマイカー 定額カルモくん';\n export const CP_SPEEDLOTTERYRESULT_DESCRIPTION = '【スピードくじキャンペーン 抽選で現金5万円が50名様に!またはAmazonギフト券がハズレなしでその場で当たる! 12/24まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_NEWYEARLOTINFO_TITLE = '審査申込みで当たる!お年玉くじキャンペーン - おトクにマイカー 定額カルモくん';\n export const CP_NEWYEARLOTINFO_DESCRIPTION = '【お年玉くじキャンペーン 抽選で現金10万円が10名様に!またはAmazonギフト券がハズレなしでその場で当たる! 1/31まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_NEWYEARLOTWINNING_TITLE = '審査申込みで当たる!お年玉くじキャンペーン|当選画面 - おトクにマイカー 定額カルモくん';\n export const CP_NEWYEARLOTWINNING_DESCRIPTION = '【お年玉くじキャンペーン 抽選で現金10万円が10名様に!またはAmazonギフト券がハズレなしでその場で当たる! 1/31まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_NEWYEARLOTRESULT_TITLE = '審査申込みで当たる!お年玉くじキャンペーン|結果画面 - おトクにマイカー 定額カルモくん';\n export const CP_NEWYEARLOTRESULT_DESCRIPTION = '【お年玉くじキャンペーン 抽選で現金10万円が10名様に!またはAmazonギフト券がハズレなしでその場で当たる! 1/31まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n // 3周年記念CP title description\n export const CP_THIRDANNIVINFO_TITLE = '現金3万円当たる!3周年記念キャンペーン - おトクにマイカー 定額カルモくん';\n export const CP_THIRDANNIVINFO_DESCRIPTION = '【3周年記念キャンペーン 1,000円分Amazonギフト券が当たるくじ引きに参加!さらに抽選で60名に現金3万円キャッシュバック!3/31まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_THIRDANNIVWINNING_TITLE = '現金3万円当たる!3周年記念キャンペーン|くじ引き結果 - おトクにマイカー 定額カルモくん';\n export const CP_THIRDANNIVWINNING_DESCRIPTION = '【3周年記念キャンペーン 1,000円分Amazonギフト券が当たるくじ引きに参加!さらに抽選で60名に現金3万円キャッシュバック!3/31まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_THIRDANNIVRESULT_TITLE = '現金3万円当たる!3周年記念キャンペーン|当選画面 - おトクにマイカー 定額カルモくん';\n export const CP_THIRDANNIVRESULT_DESCRIPTION = '【3周年記念キャンペーン 1,000円分Amazonギフト券が当たるくじ引きに参加!さらに抽選で60名に現金3万円キャッシュバック!3/31まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_THIRDANNIVWCHANCE_TITLE = '現金3万円当たる!3周年記念キャンペーン|Wチャンス - おトクにマイカー 定額カルモくん';\n export const CP_THIRDANNIVWCHANCE_DESCRIPTION = '【3周年記念キャンペーン 1,000円分Amazonギフト券が当たるくじ引きに参加!さらに抽選で60名に現金3万円キャッシュバック!3/31まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n\n // カーリースデビューCP title description\n export const CP_DEBUT_INFO_TITLE = '審査申込みするだけで最大10万円当たる!カーリースデビュー応援キャンペーン|くじ引き画面 - おトクにマイカー 定額カルモくん';\n export const CP_DEBUT_INFO_DESCRIPTION = '【期間中に初めて審査申込みの方全員に、当たる!ハズレなしのくじを引いて1等10万円キャッシュバックなど、その場でもれなく当たる、カーリースデビュー応援キャンぺーンです。6/30まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_DEBUT_WINNING_TITLE = '審査申込みするだけで最大10万円当たる!カーリースデビュー応援キャンペーン|くじ引き結果 - おトクにマイカー 定額カルモくん';\n export const CP_DEBUT_WINNING_DESCRIPTION = '【期間中に初めて審査申込みの方全員に、当たる!ハズレなしのくじを引いて1等10万円キャッシュバックなど、その場でもれなく当たる、カーリースデビュー応援キャンぺーンです。6/30まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n export const CP_DEBUT_RESULT_TITLE = '審査申込みするだけで最大10万円当たる!カーリースデビュー応援キャンペーン|当選画面 - おトクにマイカー 定額カルモくん';\n export const CP_DEBUT_RESULT_DESCRIPTION = '【期間中に初めて審査申込みの方全員に、当たる!ハズレなしのくじを引いて1等10万円キャッシュバックなど、その場でもれなく当たる、カーリースデビュー応援キャンぺーンです。6/30まで】定額カルモくんのカーリースは、NHKなどでも話題の個人向け自動車リースサービスです。国産メーカー全車種をラインナップ、11年リースは定額カルモくんだけ!税金・手数料コミの月額定額料金だからお手頃価格で新車にお乗りいただけます。';\n\n // 総額150万円分くじ引きCP title description\n export const CP_150MAN_INFO_TITLE = '審査申し込みして当てよう!総額150万円分くじ引きキャンペーン';\n export const CP_150MAN_INFO_DESCRIPTION = '期間中に初めて審査申込みの方全員にチャンス!1等10万円キャッシュバックなど、総額150万円分くじ引きキャンぺーン、9/30まで。【業界最安値】新車にとにかく安く乗りたいあなたにピッタリのカーリース「おトクにマイカー 定額カルモくん」です。新車が頭金・ボーナス払い0円、月額定額1万円台から。7年以上の契約なら走行距離も無制限!しかも契約満了後車がもらえるプランも準備。お手頃価格で新車にお乗りいただけます。';\n export const CP_150MAN_RESULT_TITLE = '審査申し込みして当てよう!総額150万円分くじ引きキャンペーン';\n export const CP_150MAN_RESULT_DESCRIPTION = '期間中に初めて審査申込みの方全員にチャンス!1等10万円キャッシュバックなど、総額150万円分くじ引きキャンぺーン、9/30まで。【業界最安値】新車にとにかく安く乗りたいあなたにピッタリのカーリース「おトクにマイカー 定額カルモくん」です。新車が頭金・ボーナス払い0円、月額定額1万円台から。7年以上の契約なら走行距離も無制限!しかも契約満了後車がもらえるプランも準備。お手頃価格で新車にお乗りいただけます。';\n }\n export namespace MAINTENANCE {\n export function PLANS(\n maintenanceType: NEWCAR_CONST.MAINTENANCE.TYPE,\n term: NEWCAR_CONST.TERM.ID,\n ): { [plan: number]: IMaintenancePlan } {\n const PLATINUM = {\n id: NEWCAR_CONST.MAINTENANCE.PLAN.PLATINUM,\n name: NEWCAR_CONST.MAINTENANCE.PLAN_NAME(\n NEWCAR_CONST.MAINTENANCE.PLAN.PLATINUM,\n ),\n price: 0,\n overview: NEWCAR_CONST.MAINTENANCE.PLAN_OVERVIEW(\n NEWCAR_CONST.MAINTENANCE.PLAN.PLATINUM,\n ),\n };\n if (maintenanceType === NEWCAR_CONST.MAINTENANCE.TYPE.MINICAR) {\n if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_1\n && term <= NEWCAR_CONST.TERM.ID.YEAR_5\n ) {\n PLATINUM.price = 5980;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_6\n && term <= NEWCAR_CONST.TERM.ID.YEAR_8\n ) {\n PLATINUM.price = 6480;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_9\n && term <= NEWCAR_CONST.TERM.ID.YEAR_11\n ) {\n PLATINUM.price = 6980;\n }\n }\n if (maintenanceType === NEWCAR_CONST.MAINTENANCE.TYPE.STANDARD) {\n if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_1\n && term <= NEWCAR_CONST.TERM.ID.YEAR_5\n ) {\n PLATINUM.price = 6480;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_6\n && term <= NEWCAR_CONST.TERM.ID.YEAR_8\n ) {\n PLATINUM.price = 6980;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_9\n && term <= NEWCAR_CONST.TERM.ID.YEAR_11\n ) {\n PLATINUM.price = 7480;\n }\n }\n const GOLD = {\n id: NEWCAR_CONST.MAINTENANCE.PLAN.GOLD,\n name: NEWCAR_CONST.MAINTENANCE.PLAN_NAME(\n NEWCAR_CONST.MAINTENANCE.PLAN.GOLD,\n ),\n price: 0,\n overview: NEWCAR_CONST.MAINTENANCE.PLAN_OVERVIEW(\n NEWCAR_CONST.MAINTENANCE.PLAN.GOLD,\n ),\n };\n if (maintenanceType === NEWCAR_CONST.MAINTENANCE.TYPE.MINICAR) {\n if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_1\n && term <= NEWCAR_CONST.TERM.ID.YEAR_5\n ) {\n GOLD.price = 4970;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_6\n && term <= NEWCAR_CONST.TERM.ID.YEAR_11\n ) {\n GOLD.price = 4460;\n }\n }\n if (maintenanceType === NEWCAR_CONST.MAINTENANCE.TYPE.STANDARD) {\n if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_1\n && term <= NEWCAR_CONST.TERM.ID.YEAR_5\n ) {\n GOLD.price = 5280;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_6\n && term <= NEWCAR_CONST.TERM.ID.YEAR_11\n ) {\n GOLD.price = 4770;\n }\n }\n\n const SILVER = {\n id: NEWCAR_CONST.MAINTENANCE.PLAN.SILVER,\n name: NEWCAR_CONST.MAINTENANCE.PLAN_NAME(\n NEWCAR_CONST.MAINTENANCE.PLAN.SILVER,\n ),\n price: 0,\n overview: NEWCAR_CONST.MAINTENANCE.PLAN_OVERVIEW(\n NEWCAR_CONST.MAINTENANCE.PLAN.SILVER,\n ),\n };\n if (maintenanceType === NEWCAR_CONST.MAINTENANCE.TYPE.MINICAR) {\n if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_1\n && term <= NEWCAR_CONST.TERM.ID.YEAR_5\n ) {\n SILVER.price = 3850;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_6\n && term <= NEWCAR_CONST.TERM.ID.YEAR_11\n ) {\n SILVER.price = 3340;\n }\n }\n if (maintenanceType === NEWCAR_CONST.MAINTENANCE.TYPE.STANDARD) {\n if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_1\n && term <= NEWCAR_CONST.TERM.ID.YEAR_5\n ) {\n SILVER.price = 4360;\n } else if (\n term >= NEWCAR_CONST.TERM.ID.YEAR_6\n && term <= NEWCAR_CONST.TERM.ID.YEAR_11\n ) {\n SILVER.price = 3850;\n }\n }\n\n const NONE = {\n id: NEWCAR_CONST.MAINTENANCE.PLAN.NONE,\n name: NEWCAR_CONST.MAINTENANCE.PLAN_NAME(\n NEWCAR_CONST.MAINTENANCE.PLAN.NONE,\n ),\n price: 0,\n overview: NEWCAR_CONST.MAINTENANCE.PLAN_OVERVIEW(\n NEWCAR_CONST.MAINTENANCE.PLAN.NONE,\n ),\n };\n\n return {\n [NEWCAR_CONST.MAINTENANCE.PLAN.PLATINUM]: PLATINUM,\n [NEWCAR_CONST.MAINTENANCE.PLAN.GOLD]: GOLD,\n [NEWCAR_CONST.MAINTENANCE.PLAN.SILVER]: SILVER,\n [NEWCAR_CONST.MAINTENANCE.PLAN.NONE]: NONE,\n };\n }\n }\n\n /** URLパラメータの長さ */\n export namespace COL {\n export const MAKER_OR_BODY = 2;\n export const BODY_TYPE = 3;\n }\n}\n\nexport default NEWCAR_DEFINE;\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-namespace */\n/* eslint-disable no-shadow */\nimport SearchCondition from '@/newcar/core/model/searchCondition';\nimport NEWCAR_DEFINE from '@/newcar/util/define';\nimport API from '@/common/util/api';\n\nnamespace URI {\n /**\n * APIエンドポイント\n * @export\n * @enum {number}\n */\n export class APIEndPoints implements API.IEndPoints {\n public static readonly Digest = '/api_new/digest';\n\n public static readonly Detail = '/api_new/detail';\n\n public static readonly Search = '/api/search';\n\n public static readonly Application = '/api/application';\n\n public static readonly CorpApplication = '/api/corp-application';\n\n public static readonly GetAgreement = '/api/agreement/get';\n\n public static readonly UpdateAgreement = '/api/agreement/update';\n }\n\n /**\n * URLで設定するパラメーター名\n * @export\n * @enum {number}\n */\n export enum ApiParams {\n /** 検索 フリーワード 設定時は要エンコード */\n Word = 'word',\n /** 検索 ボディタイプ ,(カンマ)区切りでID */\n BodyType = 'body',\n /** 検索 メーカー ,(カンマ)区切りでID */\n MakerId = 'maker',\n /** 検索 月額料金 ,(カンマ)区切りでID */\n Price = 'price',\n /** リース期間 1〜9 検索とシミュレーション共通 */\n Term = 'term',\n /** 定員 ,(カンマ)区切りでID */\n Capacity = 'cap',\n /** 検索 その他条件 ,(カンマ)区切りでOptionParam Enumの値 */\n Option = 'opt',\n /** 検索 並び順 */\n Order = 'order',\n // 以下はサーバー切り替えで見直し\n /** シミュレーション グレード */\n GradeId = 'grade',\n /** シミュレーション 期間 */\n SimTerm = 'months',\n /** シミュレーション 外装色 */\n BodyColor = 'option_type-1',\n /** シミュレーション シート地\n SeatType = \"option_type-2\", */\n /** シミュレーション カーナビ */\n CarNavi = 'option_type-3',\n /** シミュレーション ETC */\n Etc = 'option_type-4',\n /** シミュレーション ?? */\n BackCamera = 'option_type-5',\n /** シミュレーション ?? */\n FloorMat = 'option_type-6',\n /** シミュレーション 希望ナンバー */\n WantNumber = 'option_type-7',\n /** シミュレーション ドアバイザー */\n DoorVisor = 'option_type-8',\n }\n\n /**\n * 検索結果の件数と検索条件から遷移先のURIを作成する\n * @export\n * @param {SearchCondition} condition\n * @returns {string}\n */\n export function RESULT_CONDITION_TO_URI(condition: SearchCondition): string {\n const joinURIParams: string[] = [];\n\n const { word } = condition;\n if (word !== undefined) {\n // フリーワード検索の場合\n joinURIParams.push(`${URI.ApiParams.Word}=${encodeURIComponent(word)}`);\n } else {\n // メーカーが1件以上ある場合\n if (condition.maker.length > 0) {\n joinURIParams.push(`${URI.ApiParams.MakerId}=${condition.maker.join(',')}`);\n }\n // ボディタイプが1件以上ある場合\n if (condition.body.length > 0) {\n joinURIParams.push(`${URI.ApiParams.BodyType}=${condition.body.join(',')}`);\n }\n\n // 月額料金で生成\n if (condition.price.length > 0) {\n // 期間を設定\n joinURIParams.push(`${URI.ApiParams.Term}=${condition.term}`);\n const priceId: string[] = [];\n for (let j = 0; j < condition.price.length; j += 1) {\n priceId.push(condition.price[j]?.toString());\n }\n joinURIParams.push(`${URI.ApiParams.Price}=${priceId.join(',')}`);\n }\n\n // 定員が1件以上ある場合\n if (condition.capacity.length > 0) {\n joinURIParams.push(`${URI.ApiParams.Capacity}=${condition.capacity.join(',')}`);\n }\n\n // オプションが1件以上ある場合\n if (condition.option.length > 0) {\n joinURIParams.push(`${URI.ApiParams.Option}=${condition.option.join(',')}`);\n }\n }\n if (joinURIParams.length === 0) {\n // 無条件\n return NEWCAR_DEFINE.PATH.LINEUP_TOP;\n }\n if (!condition.word\n && condition.maker.length <= 1\n && condition.body.length <= 1\n && condition.price.length === 0\n && condition.capacity.length === 0\n && condition.option.length === 0) {\n // メーカー、ボディタイプが1件のみはパネル表示。ただし1件のみの場合はパネルからDetailへリダイレクト\n if (condition.maker.length === 1 && condition.body.length === 0) {\n // メーカー1件のみの場合\n return NEWCAR_DEFINE.PATH.MAKER_PATH(condition.maker[0]);\n } if (condition.maker.length === 0 && condition.body.length === 1) {\n // ボディタイプ1件のみの場合\n return NEWCAR_DEFINE.PATH.BODY_TYPE_PATH(condition.body[0]);\n } if (condition.maker.length === 1 && condition.body.length === 1) {\n // メーカー1件かつボディタイプ1件のみの場合\n return NEWCAR_DEFINE.PATH.MAKER_BODYTYPE(condition.maker[0], condition.body[0]);\n }\n return NEWCAR_DEFINE.PATH.LINEUP_TOP;\n }\n // 以外はリスト表示、ただし検索結果が1件の場合はリストからDetailにリダイレクト\n return `${NEWCAR_DEFINE.PATH.LIST_ROUTING}?${joinURIParams.join('&')}`;\n }\n}\nexport default URI;\n","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-newcar-ui-contract-provisional-completion-template-index-tsx\": () => import(\"./../../../src/newcar/ui/contract/provisional_completion/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-contract-provisional-completion-template-index-tsx\" */),\n \"component---src-newcar-ui-contract-redirect-template-index-tsx\": () => import(\"./../../../src/newcar/ui/contract/redirect/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-contract-redirect-template-index-tsx\" */),\n \"component---src-newcar-ui-contract-template-index-tsx\": () => import(\"./../../../src/newcar/ui/contract/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-contract-template-index-tsx\" */),\n \"component---src-newcar-ui-detail-template-index-tsx\": () => import(\"./../../../src/newcar/ui/detail/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-detail-template-index-tsx\" */),\n \"component---src-newcar-ui-docs-faq-template-index-tsx\": () => import(\"./../../../src/newcar/ui/docs/faq/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-docs-faq-template-index-tsx\" */),\n \"component---src-newcar-ui-lineup-list-template-index-tsx\": () => import(\"./../../../src/newcar/ui/lineup/list/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-lineup-list-template-index-tsx\" */),\n \"component---src-newcar-ui-lineup-template-index-tsx\": () => import(\"./../../../src/newcar/ui/lineup/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-lineup-template-index-tsx\" */),\n \"component---src-newcar-ui-otoshidama-index-tsx\": () => import(\"./../../../src/newcar/ui/otoshidama/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-otoshidama-index-tsx\" */),\n \"component---src-newcar-ui-quick-template-index-tsx\": () => import(\"./../../../src/newcar/ui/quick/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-quick-template-index-tsx\" */),\n \"component---src-newcar-ui-reapplication-index-tsx\": () => import(\"./../../../src/newcar/ui/reapplication/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-reapplication-index-tsx\" */),\n \"component---src-newcar-ui-top-template-index-tsx\": () => import(\"./../../../src/newcar/ui/top/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-top-template-index-tsx\" */),\n \"component---src-newcar-ui-usedcar-docs-faq-template-index-tsx\": () => import(\"./../../../src/newcar/ui/usedcar/docs/faq/template/index.tsx\" /* webpackChunkName: \"component---src-newcar-ui-usedcar-docs-faq-template-index-tsx\" */),\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-campaigns-index-tsx\": () => import(\"./../../../src/pages/campaigns/index.tsx\" /* webpackChunkName: \"component---src-pages-campaigns-index-tsx\" */),\n \"component---src-pages-contact-complete-index-tsx\": () => import(\"./../../../src/pages/contact/complete/index.tsx\" /* webpackChunkName: \"component---src-pages-contact-complete-index-tsx\" */),\n \"component---src-pages-contact-index-tsx\": () => import(\"./../../../src/pages/contact/index.tsx\" /* webpackChunkName: \"component---src-pages-contact-index-tsx\" */),\n \"component---src-pages-information-index-tsx\": () => import(\"./../../../src/pages/information/index.tsx\" /* webpackChunkName: \"component---src-pages-information-index-tsx\" */),\n \"component---src-pages-simulation-index-tsx\": () => import(\"./../../../src/pages/simulation/index.tsx\" /* webpackChunkName: \"component---src-pages-simulation-index-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-helmet-canonical-urls/gatsby-browser.js'),\n options: {\"plugins\":[],\"siteUrl\":\"https://carmo-kun.jp\"},\n },{\n plugin: require('../gatsby-browser.tsx'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nfunction maybeRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n if (!loader.isPageNotFound(pathname)) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\n })\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = () => {SiteRoot}\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","/* eslint-disable no-unused-expressions */\nimport { stripIndent } from \"common-tags\"\nimport camelCase from \"camelcase\"\nimport { IGatsbyImageData } from \".\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.substr(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(stripIndent`\n The requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* eslint-disable no-unused-expressions */\nimport {\n useState,\n CSSProperties,\n useEffect,\n HTMLAttributes,\n ImgHTMLAttributes,\n ReactEventHandler,\n SetStateAction,\n Dispatch,\n RefObject,\n} from \"react\"\nimport { Node } from \"gatsby\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport {\n IGatsbyImageHelperArgs,\n generateImageData,\n Layout,\n EVERY_BREAKPOINT,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\nconst imageCache = new Set()\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport function storeImageloaded(cacheKey?: string): void {\n if (cacheKey) {\n imageCache.add(cacheKey)\n }\n}\n\nexport function hasImageLoaded(cacheKey: string): boolean {\n return imageCache.has(cacheKey)\n}\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type FileNode = Node & {\n childImageSharp?: IGatsbyImageDataParent\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nexport type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData\nexport const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => {\n if (isGatsbyImageData(node)) {\n return node\n }\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport async function applyPolyfill(\n ref: RefObject\n): Promise {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(ref.current)\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n toggleLoaded?: (loaded: boolean) => void,\n cacheKey?: string,\n ref?: RefObject,\n style: CSSProperties = {}\n): Partial {\n const onLoad: ReactEventHandler = function (e) {\n if (isLoaded) {\n return\n }\n\n storeImageloaded(cacheKey)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .catch(() => {\n // ignore error, we just go forward\n })\n .then(() => {\n toggleLoaded(true)\n })\n } else {\n toggleLoaded(true)\n }\n }\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (ref?.current && !(`objectFit` in document.documentElement.style)) {\n ref.current.dataset.objectFit = style.objectFit ?? `cover`\n ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(ref)\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n onLoad,\n ref,\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport function useImageLoaded(\n cacheKey: string,\n loading: \"lazy\" | \"eager\",\n ref: any\n): {\n isLoaded: boolean\n isLoading: boolean\n toggleLoaded: Dispatch>\n} {\n const [isLoaded, toggleLoaded] = useState(false)\n const [isLoading, toggleIsLoading] = useState(loading === `eager`)\n\n const rAF =\n typeof window !== `undefined` && `requestAnimationFrame` in window\n ? requestAnimationFrame\n : function (cb: TimerHandler): number {\n return setTimeout(cb, 16)\n }\n const cRAF =\n typeof window !== `undefined` && `cancelAnimationFrame` in window\n ? cancelAnimationFrame\n : clearTimeout\n\n useEffect(() => {\n let interval: number\n // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873\n function toggleIfRefExists(): void {\n if (ref.current) {\n if (loading === `eager` && ref.current.complete) {\n storeImageloaded(cacheKey)\n toggleLoaded(true)\n } else {\n toggleIsLoading(true)\n }\n } else {\n interval = rAF(toggleIfRefExists)\n }\n }\n toggleIfRefExists()\n\n return (): void => {\n cRAF(interval)\n }\n }, [])\n\n return {\n isLoading,\n isLoaded,\n toggleLoaded,\n }\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\nimport React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer: string | null = null\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {\n // eslint-disable-next-line no-undef\n SERVER && \n }\n \n )\n }\n","/* eslint-disable filenames/match-regex */\nimport React, {\n FunctionComponent,\n ImgHTMLAttributes,\n forwardRef,\n LegacyRef,\n} from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n innerRef: LegacyRef\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n innerRef,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture = forwardRef(\n function Picture(\n { fallback, sources = [], shouldLoad = true, ...props },\n ref\n ) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n }\n)\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React, { forwardRef } from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage = forwardRef(\n function MainImage(props, ref) {\n return (\n <>\n \n \n \n )\n }\n)\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React, {\n ElementType,\n FunctionComponent,\n CSSProperties,\n WeakValidationMap,\n} from \"react\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImageHydrator: FunctionComponent<{\n as?: ElementType\n style?: CSSProperties\n className?: string\n}> = function GatsbyImageHydrator({ as: Type = `div`, children, ...props }) {\n return {children}\n}\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n if (preactClass) {\n className = preactClass\n }\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return (\n \n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n undefined,\n undefined,\n undefined,\n imgStyle\n )}\n />\n \n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n return PropTypes.string(props, propName, componentName, ...rest)\n}\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","/* eslint-disable no-unused-expressions */\nimport React, {\n Component,\n ElementType,\n createRef,\n MutableRefObject,\n FunctionComponent,\n ImgHTMLAttributes,\n RefObject,\n CSSProperties,\n} from \"react\"\nimport {\n getWrapperProps,\n hasNativeLazyLoadSupport,\n storeImageloaded,\n hasImageLoaded,\n gatsbyImageIsInstalled,\n} from \"./hooks\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport { Layout } from \"../image-utils\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport { Unobserver } from \"./intersection-observer\"\nimport { render } from \"react-dom\"\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: () => void\n onError?: () => void\n onStartLoad?: (props: { wasCached?: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nclass GatsbyImageHydrator extends Component<\n GatsbyImageProps,\n { isLoading: boolean; isLoaded: boolean }\n> {\n root: RefObject = createRef<\n HTMLImageElement | undefined\n >()\n hydrated: MutableRefObject = { current: false }\n forceRender: MutableRefObject = {\n // In dev we use render not hydrate, to avoid hydration warnings\n current: process.env.NODE_ENV === `development`,\n }\n lazyHydrator: () => void | null = null\n ref = createRef()\n unobserveRef: Unobserver\n\n constructor(props) {\n super(props)\n\n this.state = {\n isLoading: hasNativeLazyLoadSupport(),\n isLoaded: false,\n }\n }\n\n _lazyHydrate(props, state): Promise {\n const hasSSRHtml = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n )\n // On first server hydration do nothing\n if (hasNativeLazyLoadSupport() && hasSSRHtml && !this.hydrated.current) {\n this.hydrated.current = true\n return Promise.resolve()\n }\n\n return import(`./lazy-hydrate`).then(({ lazyHydrate }) => {\n this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading,\n isLoaded: state.isLoaded,\n toggleIsLoaded: () => {\n props.onLoad?.()\n\n this.setState({\n isLoaded: true,\n })\n },\n ref: this.ref,\n ...props,\n },\n this.root,\n this.hydrated,\n this.forceRender\n )\n })\n }\n\n /**\n * Choose if setupIntersectionObserver should use the image cache or not.\n */\n _setupIntersectionObserver(useCache = true): void {\n import(`./intersection-observer`).then(({ createIntersectionObserver }) => {\n const intersectionObserver = createIntersectionObserver(() => {\n if (this.root.current) {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.props.onStartLoad?.({\n wasCached: useCache && hasImageLoaded(cacheKey),\n })\n this.setState({\n isLoading: true,\n isLoaded: useCache && hasImageLoaded(cacheKey),\n })\n }\n })\n\n if (this.root.current) {\n this.unobserveRef = intersectionObserver(this.root)\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n let hasChanged = false\n if (!this.state.isLoading && nextState.isLoading && !nextState.isLoaded) {\n // Props have changed between SSR and hydration, so we need to force render instead of hydrate\n this.forceRender.current = true\n }\n // this check mostly means people do not have the correct ref checks in place, we want to reset some state to suppport loading effects\n if (this.props.image.images !== nextProps.image.images) {\n // reset state, we'll rely on intersection observer to reload\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n render(null, this.root.current)\n }\n }\n\n this.setState(\n {\n isLoading: false,\n isLoaded: false,\n },\n () => {\n this._setupIntersectionObserver(false)\n }\n )\n\n hasChanged = true\n }\n\n if (this.root.current && !hasChanged) {\n this._lazyHydrate(nextProps, nextState)\n }\n\n return false\n }\n\n componentDidMount(): void {\n if (this.root.current) {\n const ssrElement = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n const cacheKey = JSON.stringify(this.props.image.images)\n\n // when SSR and native lazyload is supported we'll do nothing ;)\n if (\n hasNativeLazyLoadSupport() &&\n ssrElement &&\n gatsbyImageIsInstalled()\n ) {\n this.props.onStartLoad?.({ wasCached: false })\n\n // When the image is already loaded before we have hydrated, we trigger onLoad and cache the item\n if (ssrElement.complete) {\n this.props.onLoad?.()\n storeImageloaded(cacheKey)\n } else {\n // We need the current class context (this) inside our named onLoad function\n // The named function is necessary to easily remove the listener afterward.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this\n // add an onLoad to the image\n ssrElement.addEventListener(`load`, function onLoad() {\n ssrElement.removeEventListener(`load`, onLoad)\n\n _this.props.onLoad?.()\n storeImageloaded(cacheKey)\n })\n }\n\n return\n }\n\n // Fallback to custom lazy loading (intersection observer)\n this._setupIntersectionObserver(true)\n }\n }\n\n componentWillUnmount(): void {\n // Cleanup when onmount happens\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n this.lazyHydrator()\n }\n }\n\n return\n }\n\n render(): JSX.Element {\n const Type = this.props.as || `div`\n const { width, height, layout } = this.props.image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n let className = this.props.className\n // preact class\n if (this.props.class) {\n className = this.props.class\n }\n\n const sizer = getSizer(layout, width, height)\n\n return (\n \n )\n }\n}\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n const { className, class: classSafe, backgroundColor, image } = props\n const { width, height, layout } = image\n const propsKey = JSON.stringify([\n width,\n height,\n layout,\n className,\n classSafe,\n backgroundColor,\n ])\n return \n }\n\nGatsbyImage.propTypes = propTypes\n\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import * as React from \"react\"\nexport function LaterHydrator({\n children,\n}: React.PropsWithChildren>): React.ReactNode {\n React.useEffect(() => {\n // eslint-disable-next-line no-unused-expressions\n import(`./lazy-hydrate`)\n }, [])\n\n return children\n}\n","import React from \"react\"\nimport { LaterHydrator } from \".\"\n\nexport function wrapRootElement({ element }) {\n return {element}\n}\n","\"use strict\";\n\nexports.wrapPageElement = require('./wrap-page');","\"use strict\";\n\nvar React = require('react');\n\nvar _require = require('react-helmet'),\n Helmet = _require.Helmet;\n\nvar defaultPluginOptions = {\n noTrailingSlash: false,\n nopQueryString: false,\n nopHash: false\n};\n\nvar isExcluded = function isExcluded(excludes, element) {\n if (!Array.isArray(excludes)) return false;\n element = element.replace(/\\/+$/, '');\n return excludes.some(function (exclude) {\n if (exclude instanceof RegExp) return element.match(exclude);\n return exclude.includes(element);\n });\n};\n\nmodule.exports = function (_ref, pluginOptions) {\n var element = _ref.element,\n location = _ref.props.location;\n\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n var options = Object.assign({}, defaultPluginOptions, pluginOptions);\n\n if (options.siteUrl && !isExcluded(options.exclude, location.pathname)) {\n var pathname = location.pathname || '/';\n if (options.noTrailingSlash && pathname.endsWith('/')) pathname = pathname.substring(0, pathname.length - 1);\n var myUrl = \"\" + options.siteUrl + pathname;\n if (!options.noQueryString) myUrl += location.search;\n if (!options.noHash) myUrl += location.hash;\n return React.createElement(React.Fragment, null, React.createElement(Helmet, {\n link: [{\n rel: 'canonical',\n key: myUrl,\n href: myUrl\n }]\n }), element);\n }\n\n return element;\n};","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object.keys(descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n\n return desc;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n"],"sourceRoot":""}