dotfiles

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

pick-color.js.map (2420137B)


      1 {
      2   "version": 3,
      3   "sources": ["../node_modules/dequal/lite/index.js", "../node_modules/@raycast/utils/dist/useDeepMemo.js", "../node_modules/@raycast/utils/dist/useLatest.js", "../node_modules/@raycast/utils/dist/showFailureToast.js", "../node_modules/@raycast/utils/dist/usePromise.js", "../node_modules/object-hash/index.js", "../node_modules/@raycast/utils/dist/helpers.js", "../node_modules/@raycast/utils/dist/useCachedState.js", "../node_modules/@raycast/utils/dist/useCachedPromise.js", "../node_modules/webidl-conversions/lib/index.js", "../node_modules/whatwg-url/lib/utils.js", "../node_modules/tr46/lib/mappingTable.json", "../node_modules/tr46/index.js", "../node_modules/whatwg-url/lib/url-state-machine.js", "../node_modules/whatwg-url/lib/URL-impl.js", "../node_modules/whatwg-url/lib/URL.js", "../node_modules/whatwg-url/lib/public-api.js", "../node_modules/node-fetch/lib/index.js", "../node_modules/cross-fetch/dist/node-ponyfill.js", "../node_modules/@raycast/utils/dist/fetch-utils.js", "../node_modules/@raycast/utils/dist/useFetch.js", "../node_modules/signal-exit/src/signals.ts", "../node_modules/signal-exit/src/index.ts", "../node_modules/@raycast/utils/dist/exec-utils.js", "../node_modules/@raycast/utils/dist/useExec.js", "../node_modules/stream-chain/index.js", "../node_modules/stream-json/utils/Utf8Stream.js", "../node_modules/stream-json/Parser.js", "../node_modules/stream-json/utils/emit.js", "../node_modules/stream-json/index.js", "../node_modules/stream-json/filters/FilterBase.js", "../node_modules/stream-json/utils/withParser.js", "../node_modules/stream-json/filters/Pick.js", "../node_modules/stream-json/Assembler.js", "../node_modules/stream-json/streamers/StreamBase.js", "../node_modules/stream-json/streamers/StreamArray.js", "../node_modules/@raycast/utils/dist/useStreamJSON.js", "../node_modules/@raycast/utils/dist/sql-utils.js", "../node_modules/@raycast/utils/dist/useSQL.js", "../node_modules/@raycast/utils/dist/useForm.js", "../node_modules/@raycast/utils/dist/useAI.js", "../node_modules/@raycast/utils/dist/useFrecencySorting.js", "../node_modules/@raycast/utils/dist/useLocalStorage.js", "../node_modules/@raycast/utils/dist/icon/color.js", "../node_modules/@raycast/utils/dist/icon/avatar.js", "../node_modules/@raycast/utils/dist/icon/favicon.js", "../node_modules/@raycast/utils/dist/icon/progress.js", "../node_modules/@raycast/utils/dist/icon/index.js", "../node_modules/@raycast/utils/dist/oauth/providers.js", "../node_modules/@raycast/utils/dist/oauth/OAuthService.js", "../node_modules/@raycast/utils/dist/oauth/withAccessToken.js", "../node_modules/@raycast/utils/dist/oauth/index.js", "../node_modules/@raycast/utils/dist/createDeeplink.js", "../node_modules/@raycast/utils/dist/executeSQL.js", "../node_modules/@raycast/utils/dist/run-applescript.js", "../node_modules/@raycast/utils/dist/cache.js", "../node_modules/@raycast/utils/dist/index.js", "../node_modules/p-try/index.js", "../node_modules/read-pkg-up/node_modules/p-limit/index.js", "../node_modules/read-pkg-up/node_modules/p-locate/index.js", "../node_modules/read-pkg-up/node_modules/locate-path/index.js", "../node_modules/path-exists/index.js", "../node_modules/read-pkg-up/node_modules/find-up/index.js", "../node_modules/is-arrayish/index.js", "../node_modules/error-ex/index.js", "../node_modules/json-parse-even-better-errors/index.js", "../node_modules/lines-and-columns/build/index.js", "../node_modules/js-tokens/index.js", "../node_modules/@babel/helper-validator-identifier/src/identifier.ts", "../node_modules/@babel/helper-validator-identifier/src/keyword.ts", "../node_modules/@babel/helper-validator-identifier/src/index.ts", "../node_modules/picocolors/picocolors.js", "../node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js", "../node_modules/@babel/highlight/node_modules/color-name/index.js", "../node_modules/@babel/highlight/node_modules/color-convert/conversions.js", "../node_modules/@babel/highlight/node_modules/color-convert/route.js", "../node_modules/@babel/highlight/node_modules/color-convert/index.js", "../node_modules/@babel/highlight/node_modules/ansi-styles/index.js", "../node_modules/@babel/highlight/node_modules/has-flag/index.js", "../node_modules/@babel/highlight/node_modules/supports-color/index.js", "../node_modules/@babel/highlight/node_modules/chalk/templates.js", "../node_modules/@babel/highlight/node_modules/chalk/index.js", "../node_modules/@babel/highlight/src/index.ts", "../node_modules/@babel/code-frame/src/index.ts", "../node_modules/parse-json/index.js", "../node_modules/normalize-package-data/node_modules/semver/semver.js", "../node_modules/spdx-license-ids/index.json", "../node_modules/spdx-license-ids/deprecated.json", "../node_modules/spdx-exceptions/index.json", "../node_modules/spdx-expression-parse/scan.js", "../node_modules/spdx-expression-parse/parse.js", "../node_modules/spdx-expression-parse/index.js", "../node_modules/spdx-correct/index.js", "../node_modules/validate-npm-package-license/index.js", "../node_modules/hosted-git-info/git-host-info.js", "../node_modules/hosted-git-info/git-host.js", "../node_modules/hosted-git-info/index.js", "../node_modules/resolve/lib/homedir.js", "../node_modules/resolve/lib/caller.js", "../node_modules/path-parse/index.js", "../node_modules/resolve/lib/node-modules-paths.js", "../node_modules/resolve/lib/normalize-options.js", "../node_modules/function-bind/implementation.js", "../node_modules/function-bind/index.js", "../node_modules/hasown/index.js", "../node_modules/is-core-module/core.json", "../node_modules/is-core-module/index.js", "../node_modules/resolve/lib/async.js", "../node_modules/resolve/lib/core.json", "../node_modules/resolve/lib/core.js", "../node_modules/resolve/lib/is-core.js", "../node_modules/resolve/lib/sync.js", "../node_modules/resolve/index.js", "../node_modules/normalize-package-data/lib/extract_description.js", "../node_modules/normalize-package-data/lib/typos.json", "../node_modules/normalize-package-data/lib/fixer.js", "../node_modules/normalize-package-data/lib/warning_messages.json", "../node_modules/normalize-package-data/lib/make_warning.js", "../node_modules/normalize-package-data/lib/normalize.js", "../node_modules/read-pkg/index.js", "../node_modules/read-pkg-up/index.js", "../node_modules/raycast-cross-extension/distribution/index.js", "../node_modules/chroma-js/chroma.js", "../node_modules/es6-weak-map/is-implemented.js", "../node_modules/es5-ext/function/noop.js", "../node_modules/es5-ext/object/is-value.js", "../node_modules/es5-ext/object/set-prototype-of/is-implemented.js", "../node_modules/es5-ext/object/is-object.js", "../node_modules/es5-ext/object/valid-value.js", "../node_modules/es5-ext/object/create.js", "../node_modules/es5-ext/object/set-prototype-of/shim.js", "../node_modules/es5-ext/object/set-prototype-of/index.js", "../node_modules/es5-ext/object/valid-object.js", "../node_modules/es5-ext/string/random-uniq.js", "../node_modules/type/value/is.js", "../node_modules/type/object/is.js", "../node_modules/type/prototype/is.js", "../node_modules/type/function/is.js", "../node_modules/type/plain-function/is.js", "../node_modules/es5-ext/object/assign/is-implemented.js", "../node_modules/es5-ext/object/keys/is-implemented.js", "../node_modules/es5-ext/object/keys/shim.js", "../node_modules/es5-ext/object/keys/index.js", "../node_modules/es5-ext/object/assign/shim.js", "../node_modules/es5-ext/object/assign/index.js", "../node_modules/es5-ext/object/normalize-options.js", "../node_modules/es5-ext/string/%23/contains/is-implemented.js", "../node_modules/es5-ext/string/%23/contains/shim.js", "../node_modules/es5-ext/string/%23/contains/index.js", "../node_modules/d/index.js", "../node_modules/es5-ext/function/is-arguments.js", "../node_modules/es5-ext/string/is-string.js", "../node_modules/ext/global-this/is-implemented.js", "../node_modules/ext/global-this/implementation.js", "../node_modules/ext/global-this/index.js", "../node_modules/es6-symbol/is-implemented.js", "../node_modules/es6-symbol/is-symbol.js", "../node_modules/es6-symbol/validate-symbol.js", "../node_modules/es6-symbol/lib/private/generate-name.js", "../node_modules/es6-symbol/lib/private/setup/standard-symbols.js", "../node_modules/es6-symbol/lib/private/setup/symbol-registry.js", "../node_modules/es6-symbol/polyfill.js", "../node_modules/es6-symbol/index.js", "../node_modules/es5-ext/array/%23/clear.js", "../node_modules/es5-ext/object/valid-callable.js", "../node_modules/type/string/coerce.js", "../node_modules/type/lib/safe-to-string.js", "../node_modules/type/lib/to-short-string.js", "../node_modules/type/lib/resolve-error-message.js", "../node_modules/type/lib/resolve-exception.js", "../node_modules/type/value/ensure.js", "../node_modules/type/plain-function/ensure.js", "../node_modules/es5-ext/array/from/is-implemented.js", "../node_modules/es5-ext/function/is-function.js", "../node_modules/es5-ext/math/sign/is-implemented.js", "../node_modules/es5-ext/math/sign/shim.js", "../node_modules/es5-ext/math/sign/index.js", "../node_modules/es5-ext/number/to-integer.js", "../node_modules/es5-ext/number/to-pos-integer.js", "../node_modules/es5-ext/array/from/shim.js", "../node_modules/es5-ext/array/from/index.js", "../node_modules/es5-ext/object/copy.js", "../node_modules/es5-ext/object/_iterate.js", "../node_modules/es5-ext/object/for-each.js", "../node_modules/es5-ext/object/map.js", "../node_modules/d/auto-bind.js", "../node_modules/es6-iterator/index.js", "../node_modules/es6-iterator/array.js", "../node_modules/es6-iterator/string.js", "../node_modules/es6-iterator/is-iterable.js", "../node_modules/es6-iterator/valid-iterable.js", "../node_modules/es6-iterator/get.js", "../node_modules/es6-iterator/for-of.js", "../node_modules/es6-weak-map/is-native-implemented.js", "../node_modules/es6-weak-map/polyfill.js", "../node_modules/es6-weak-map/index.js", "../node_modules/color-namer/lib/colors/basic.js", "../node_modules/color-namer/lib/colors/html.js", "../node_modules/color-namer/lib/colors/ntc.js", "../node_modules/color-namer/lib/colors/pantone.js", "../node_modules/color-namer/lib/colors/roygbiv.js", "../node_modules/color-namer/lib/colors/x11.js", "../node_modules/color-namer/index.js", "../node_modules/lodash/_listCacheClear.js", "../node_modules/lodash/eq.js", "../node_modules/lodash/_assocIndexOf.js", "../node_modules/lodash/_listCacheDelete.js", "../node_modules/lodash/_listCacheGet.js", "../node_modules/lodash/_listCacheHas.js", "../node_modules/lodash/_listCacheSet.js", "../node_modules/lodash/_ListCache.js", "../node_modules/lodash/_stackClear.js", "../node_modules/lodash/_stackDelete.js", "../node_modules/lodash/_stackGet.js", "../node_modules/lodash/_stackHas.js", "../node_modules/lodash/_freeGlobal.js", "../node_modules/lodash/_root.js", "../node_modules/lodash/_Symbol.js", "../node_modules/lodash/_getRawTag.js", "../node_modules/lodash/_objectToString.js", "../node_modules/lodash/_baseGetTag.js", "../node_modules/lodash/isObject.js", "../node_modules/lodash/isFunction.js", "../node_modules/lodash/_coreJsData.js", "../node_modules/lodash/_isMasked.js", "../node_modules/lodash/_toSource.js", "../node_modules/lodash/_baseIsNative.js", "../node_modules/lodash/_getValue.js", "../node_modules/lodash/_getNative.js", "../node_modules/lodash/_Map.js", "../node_modules/lodash/_nativeCreate.js", "../node_modules/lodash/_hashClear.js", "../node_modules/lodash/_hashDelete.js", "../node_modules/lodash/_hashGet.js", "../node_modules/lodash/_hashHas.js", "../node_modules/lodash/_hashSet.js", "../node_modules/lodash/_Hash.js", "../node_modules/lodash/_mapCacheClear.js", "../node_modules/lodash/_isKeyable.js", "../node_modules/lodash/_getMapData.js", "../node_modules/lodash/_mapCacheDelete.js", "../node_modules/lodash/_mapCacheGet.js", "../node_modules/lodash/_mapCacheHas.js", "../node_modules/lodash/_mapCacheSet.js", "../node_modules/lodash/_MapCache.js", "../node_modules/lodash/_stackSet.js", "../node_modules/lodash/_Stack.js", "../node_modules/lodash/_setCacheAdd.js", "../node_modules/lodash/_setCacheHas.js", "../node_modules/lodash/_SetCache.js", "../node_modules/lodash/_arraySome.js", "../node_modules/lodash/_cacheHas.js", "../node_modules/lodash/_equalArrays.js", "../node_modules/lodash/_Uint8Array.js", "../node_modules/lodash/_mapToArray.js", "../node_modules/lodash/_setToArray.js", "../node_modules/lodash/_equalByTag.js", "../node_modules/lodash/_arrayPush.js", "../node_modules/lodash/isArray.js", "../node_modules/lodash/_baseGetAllKeys.js", "../node_modules/lodash/_arrayFilter.js", "../node_modules/lodash/stubArray.js", "../node_modules/lodash/_getSymbols.js", "../node_modules/lodash/_baseTimes.js", "../node_modules/lodash/isObjectLike.js", "../node_modules/lodash/_baseIsArguments.js", "../node_modules/lodash/isArguments.js", "../node_modules/lodash/stubFalse.js", "../node_modules/lodash/isBuffer.js", "../node_modules/lodash/_isIndex.js", "../node_modules/lodash/isLength.js", "../node_modules/lodash/_baseIsTypedArray.js", "../node_modules/lodash/_baseUnary.js", "../node_modules/lodash/_nodeUtil.js", "../node_modules/lodash/isTypedArray.js", "../node_modules/lodash/_arrayLikeKeys.js", "../node_modules/lodash/_isPrototype.js", "../node_modules/lodash/_overArg.js", "../node_modules/lodash/_nativeKeys.js", "../node_modules/lodash/_baseKeys.js", "../node_modules/lodash/isArrayLike.js", "../node_modules/lodash/keys.js", "../node_modules/lodash/_getAllKeys.js", "../node_modules/lodash/_equalObjects.js", "../node_modules/lodash/_DataView.js", "../node_modules/lodash/_Promise.js", "../node_modules/lodash/_Set.js", "../node_modules/lodash/_WeakMap.js", "../node_modules/lodash/_getTag.js", "../node_modules/lodash/_baseIsEqualDeep.js", "../node_modules/lodash/_baseIsEqual.js", "../node_modules/lodash/_baseIsMatch.js", "../node_modules/lodash/_isStrictComparable.js", "../node_modules/lodash/_getMatchData.js", "../node_modules/lodash/_matchesStrictComparable.js", "../node_modules/lodash/_baseMatches.js", "../node_modules/lodash/isSymbol.js", "../node_modules/lodash/_isKey.js", "../node_modules/lodash/memoize.js", "../node_modules/lodash/_memoizeCapped.js", "../node_modules/lodash/_stringToPath.js", "../node_modules/lodash/_arrayMap.js", "../node_modules/lodash/_baseToString.js", "../node_modules/lodash/toString.js", "../node_modules/lodash/_castPath.js", "../node_modules/lodash/_toKey.js", "../node_modules/lodash/_baseGet.js", "../node_modules/lodash/get.js", "../node_modules/lodash/_baseHasIn.js", "../node_modules/lodash/_hasPath.js", "../node_modules/lodash/hasIn.js", "../node_modules/lodash/_baseMatchesProperty.js", "../node_modules/lodash/identity.js", "../node_modules/lodash/_baseProperty.js", "../node_modules/lodash/_basePropertyDeep.js", "../node_modules/lodash/property.js", "../node_modules/lodash/_baseIteratee.js", "../node_modules/lodash/_baseFindIndex.js", "../node_modules/lodash/_baseIsNaN.js", "../node_modules/lodash/_strictIndexOf.js", "../node_modules/lodash/_baseIndexOf.js", "../node_modules/lodash/_arrayIncludes.js", "../node_modules/lodash/_arrayIncludesWith.js", "../node_modules/lodash/noop.js", "../node_modules/lodash/_createSet.js", "../node_modules/lodash/_baseUniq.js", "../node_modules/lodash/uniqBy.js", "../src/pick-color.ts", "swift:/Users/runner/work/extensions/extensions/extensions/color-picker/swift/color-picker", "../src/history.ts", "../src/utils.ts", "../node_modules/colorjs.io/src/multiply-matrices.js", "../node_modules/colorjs.io/src/util.js", "../node_modules/colorjs.io/src/hooks.js", "../node_modules/colorjs.io/src/defaults.js", "../node_modules/colorjs.io/src/adapt.js", "../node_modules/colorjs.io/src/parse.js", "../node_modules/colorjs.io/src/getColor.js", "../node_modules/colorjs.io/src/space.js", "../node_modules/colorjs.io/src/spaces/xyz-d65.js", "../node_modules/colorjs.io/src/rgbspace.js", "../node_modules/colorjs.io/src/getAll.js", "../node_modules/colorjs.io/src/get.js", "../node_modules/colorjs.io/src/setAll.js", "../node_modules/colorjs.io/src/set.js", "../node_modules/colorjs.io/src/spaces/xyz-d50.js", "../node_modules/colorjs.io/src/spaces/lab.js", "../node_modules/colorjs.io/src/angles.js", "../node_modules/colorjs.io/src/spaces/lch.js", "../node_modules/colorjs.io/src/deltaE/deltaE2000.js", "../node_modules/colorjs.io/src/spaces/oklab.js", "../node_modules/colorjs.io/src/deltaE/deltaEOK.js", "../node_modules/colorjs.io/src/inGamut.js", "../node_modules/colorjs.io/src/clone.js", "../node_modules/colorjs.io/src/distance.js", "../node_modules/colorjs.io/src/deltaE/deltaE76.js", "../node_modules/colorjs.io/src/deltaE/deltaECMC.js", "../node_modules/colorjs.io/src/spaces/xyz-abs-d65.js", "../node_modules/colorjs.io/src/spaces/jzazbz.js", "../node_modules/colorjs.io/src/spaces/jzczhz.js", "../node_modules/colorjs.io/src/deltaE/deltaEJz.js", "../node_modules/colorjs.io/src/spaces/ictcp.js", "../node_modules/colorjs.io/src/deltaE/deltaEITP.js", "../node_modules/colorjs.io/src/spaces/cam16.js", "../node_modules/colorjs.io/src/spaces/hct.js", "../node_modules/colorjs.io/src/deltaE/deltaEHCT.js", "../node_modules/colorjs.io/src/deltaE/index.js", "../node_modules/colorjs.io/src/toGamut.js", "../node_modules/colorjs.io/src/to.js", "../node_modules/colorjs.io/src/serialize.js", "../node_modules/colorjs.io/src/spaces/rec2020-linear.js", "../node_modules/colorjs.io/src/spaces/rec2020.js", "../node_modules/colorjs.io/src/spaces/p3-linear.js", "../node_modules/colorjs.io/src/spaces/srgb-linear.js", "../node_modules/colorjs.io/src/keywords.js", "../node_modules/colorjs.io/src/spaces/srgb.js", "../node_modules/colorjs.io/src/spaces/p3.js", "../node_modules/colorjs.io/src/display.js", "../node_modules/colorjs.io/src/equals.js", "../node_modules/colorjs.io/src/luminance.js", "../node_modules/colorjs.io/src/contrast/WCAG21.js", "../node_modules/colorjs.io/src/contrast/APCA.js", "../node_modules/colorjs.io/src/contrast/Michelson.js", "../node_modules/colorjs.io/src/contrast/Weber.js", "../node_modules/colorjs.io/src/contrast/Lstar.js", "../node_modules/colorjs.io/src/spaces/lab-d65.js", "../node_modules/colorjs.io/src/contrast/deltaPhi.js", "../node_modules/colorjs.io/src/contrast.js", "../node_modules/colorjs.io/src/chromaticity.js", "../node_modules/colorjs.io/src/deltaE.js", "../node_modules/colorjs.io/src/variations.js", "../node_modules/colorjs.io/src/interpolation.js", "../node_modules/colorjs.io/src/spaces/hsl.js", "../node_modules/colorjs.io/src/spaces/hsv.js", "../node_modules/colorjs.io/src/spaces/hwb.js", "../node_modules/colorjs.io/src/spaces/a98rgb-linear.js", "../node_modules/colorjs.io/src/spaces/a98rgb.js", "../node_modules/colorjs.io/src/spaces/prophoto-linear.js", "../node_modules/colorjs.io/src/spaces/prophoto.js", "../node_modules/colorjs.io/src/spaces/oklch.js", "../node_modules/colorjs.io/src/spaces/luv.js", "../node_modules/colorjs.io/src/spaces/lchuv.js", "../node_modules/colorjs.io/src/spaces/hsluv.js", "../node_modules/colorjs.io/src/spaces/hpluv.js", "../node_modules/colorjs.io/src/spaces/rec2100-pq.js", "../node_modules/colorjs.io/src/spaces/rec2100-hlg.js", "../node_modules/colorjs.io/src/CATs.js", "../node_modules/colorjs.io/src/spaces/acescg.js", "../node_modules/colorjs.io/src/spaces/acescc.js", "../node_modules/colorjs.io/src/color.js", "../node_modules/colorjs.io/src/spaces/index.js", "../node_modules/colorjs.io/src/space-accessors.js", "../node_modules/colorjs.io/src/index.js"],
      4   "sourcesContent": ["var has = Object.prototype.hasOwnProperty;\n\nfunction dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n\nexports.dequal = dequal;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useDeepMemo = void 0;\nconst react_1 = require(\"react\");\nconst lite_1 = require(\"dequal/lite\");\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a memoized version of the value as long as it remains deeply equal\n */\nfunction useDeepMemo(value) {\n    const ref = (0, react_1.useRef)(value);\n    const signalRef = (0, react_1.useRef)(0);\n    if (!(0, lite_1.dequal)(value, ref.current)) {\n        ref.current = value;\n        signalRef.current += 1;\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    return (0, react_1.useMemo)(() => ref.current, [signalRef.current]);\n}\nexports.useDeepMemo = useDeepMemo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLatest = void 0;\nconst react_1 = require(\"react\");\n/**\n * Returns the latest state.\n *\n * This is mostly useful to get access to the latest value of some props or state inside an asynchronous callback, instead of that value at the time the callback was created from.\n */\nfunction useLatest(value) {\n    const ref = (0, react_1.useRef)(value);\n    ref.current = value;\n    return ref;\n}\nexports.useLatest = useLatest;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.showFailureToast = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst api_1 = require(\"@raycast/api\");\n/**\n * Shows a failure Toast for a given Error.\n *\n * @example\n * ```typescript\n * import { showHUD } from \"@raycast/api\";\n * import { runAppleScript, showFailureToast } from \"@raycast/utils\";\n *\n * export default async function () {\n *   try {\n *     const res = await runAppleScript(\n *       `\n *       on run argv\n *         return \"hello, \" & item 1 of argv & \".\"\n *       end run\n *       `,\n *       [\"world\"]\n *     );\n *     await showHUD(res);\n *   } catch (error) {\n *     showFailureToast(error, { title: \"Could not run AppleScript\" });\n *   }\n * }\n * ```\n */\nfunction showFailureToast(error, options) {\n    const message = error instanceof Error ? error.message : String(error);\n    return (0, api_1.showToast)({\n        style: api_1.Toast.Style.Failure,\n        title: options?.title ?? \"Something went wrong\",\n        message: options?.message ?? message,\n        primaryAction: options?.primaryAction ?? handleErrorToastAction(error),\n        secondaryAction: options?.primaryAction ? handleErrorToastAction(error) : undefined,\n    });\n}\nexports.showFailureToast = showFailureToast;\nconst handleErrorToastAction = (error) => {\n    let privateExtension = true;\n    let title = \"[Extension Name]...\";\n    let extensionURL = \"\";\n    try {\n        const packageJSON = JSON.parse(fs.readFileSync(path.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n        title = `[${packageJSON.title}]...`;\n        extensionURL = `https://raycast.com/${packageJSON.owner || packageJSON.author}/${packageJSON.name}`;\n        if (!packageJSON.owner || packageJSON.access === \"public\") {\n            privateExtension = false;\n        }\n    }\n    catch (err) {\n        // no-op\n    }\n    // if it's a private extension, we can't construct the URL to report the error\n    // so we fallback to copying the error to the clipboard\n    const fallback = api_1.environment.isDevelopment || privateExtension;\n    const stack = error instanceof Error ? error?.stack || error?.message || \"\" : String(error);\n    return {\n        title: fallback ? \"Copy Logs\" : \"Report Error\",\n        onAction(toast) {\n            toast.hide();\n            if (fallback) {\n                api_1.Clipboard.copy(stack);\n            }\n            else {\n                (0, api_1.open)(`https://github.com/raycast/extensions/issues/new?&labels=extension%2Cbug&template=extension_bug_report.yml&title=${encodeURIComponent(title)}&extension-url=${encodeURI(extensionURL)}&description=${encodeURIComponent(`#### Error:\n\\`\\`\\`\n${stack}\n\\`\\`\\`\n`)}`);\n            }\n        },\n    };\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePromise = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useDeepMemo_1 = require(\"./useDeepMemo\");\nconst useLatest_1 = require(\"./useLatest\");\nconst showFailureToast_1 = require(\"./showFailureToast\");\nfunction usePromise(fn, args, options) {\n    const lastCallId = (0, react_1.useRef)(0);\n    const [state, set] = (0, react_1.useState)({ isLoading: true });\n    const fnRef = (0, useLatest_1.useLatest)(fn);\n    const latestAbortable = (0, useLatest_1.useLatest)(options?.abortable);\n    const latestArgs = (0, useLatest_1.useLatest)(args || []);\n    const latestOnError = (0, useLatest_1.useLatest)(options?.onError);\n    const latestOnData = (0, useLatest_1.useLatest)(options?.onData);\n    const latestOnWillExecute = (0, useLatest_1.useLatest)(options?.onWillExecute);\n    const latestFailureToast = (0, useLatest_1.useLatest)(options?.failureToastOptions);\n    const latestValue = (0, useLatest_1.useLatest)(state.data);\n    const latestCallback = (0, react_1.useRef)();\n    const paginationArgsRef = (0, react_1.useRef)({ page: 0 });\n    const usePaginationRef = (0, react_1.useRef)(false);\n    const hasMoreRef = (0, react_1.useRef)(true);\n    const pageSizeRef = (0, react_1.useRef)(50);\n    const callback = (0, react_1.useCallback)((...args) => {\n        const callId = ++lastCallId.current;\n        if (latestAbortable.current) {\n            latestAbortable.current.current?.abort();\n            latestAbortable.current.current = new AbortController();\n        }\n        latestOnWillExecute.current?.(args);\n        set((prevState) => ({ ...prevState, isLoading: true }));\n        const promiseOrPaginatedPromise = bindPromiseIfNeeded(fnRef.current)(...args);\n        function handleError(error) {\n            if (error.name == \"AbortError\") {\n                return error;\n            }\n            if (callId === lastCallId.current) {\n                // handle errors\n                if (latestOnError.current) {\n                    latestOnError.current(error);\n                }\n                else {\n                    if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n                        (0, showFailureToast_1.showFailureToast)(error, {\n                            title: \"Failed to fetch latest data\",\n                            primaryAction: {\n                                title: \"Retry\",\n                                onAction(toast) {\n                                    toast.hide();\n                                    latestCallback.current?.(...(latestArgs.current || []));\n                                },\n                            },\n                            ...latestFailureToast.current,\n                        });\n                    }\n                }\n                set({ error, isLoading: false });\n            }\n            return error;\n        }\n        if (typeof promiseOrPaginatedPromise === \"function\") {\n            usePaginationRef.current = true;\n            return promiseOrPaginatedPromise(paginationArgsRef.current).then(\n            // @ts-expect-error too complicated for TS\n            ({ data, hasMore, cursor }) => {\n                if (callId === lastCallId.current) {\n                    if (paginationArgsRef.current) {\n                        paginationArgsRef.current.cursor = cursor;\n                        paginationArgsRef.current.lastItem = data?.[data.length - 1];\n                    }\n                    if (latestOnData.current) {\n                        latestOnData.current(data, paginationArgsRef.current);\n                    }\n                    if (hasMore) {\n                        pageSizeRef.current = data.length;\n                    }\n                    hasMoreRef.current = hasMore;\n                    set((previousData) => {\n                        if (paginationArgsRef.current.page === 0) {\n                            return { data, isLoading: false };\n                        }\n                        // @ts-expect-error we know it's an array here\n                        return { data: (previousData.data || [])?.concat(data), isLoading: false };\n                    });\n                }\n                return data;\n            }, (error) => {\n                hasMoreRef.current = false;\n                return handleError(error);\n            });\n        }\n        usePaginationRef.current = false;\n        return promiseOrPaginatedPromise.then((data) => {\n            if (callId === lastCallId.current) {\n                if (latestOnData.current) {\n                    latestOnData.current(data);\n                }\n                set({ data, isLoading: false });\n            }\n            return data;\n        }, handleError);\n    }, [\n        latestAbortable,\n        latestOnData,\n        latestOnError,\n        latestArgs,\n        fnRef,\n        set,\n        latestCallback,\n        latestOnWillExecute,\n        paginationArgsRef,\n        latestFailureToast,\n    ]);\n    latestCallback.current = callback;\n    const revalidate = (0, react_1.useCallback)(() => {\n        // reset the pagination\n        paginationArgsRef.current = { page: 0 };\n        const args = (latestArgs.current || []);\n        return callback(...args);\n    }, [callback, latestArgs]);\n    const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n        let dataBeforeOptimisticUpdate;\n        try {\n            if (options?.optimisticUpdate) {\n                if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n                    // keep track of the data before the optimistic update,\n                    // but only if we need it (eg. only when we want to automatically rollback after)\n                    dataBeforeOptimisticUpdate = structuredClone(latestValue.current?.value);\n                }\n                const update = options.optimisticUpdate;\n                set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n            }\n            return await asyncUpdate;\n        }\n        catch (err) {\n            if (typeof options?.rollbackOnError === \"function\") {\n                const update = options.rollbackOnError;\n                set((prevState) => ({ ...prevState, data: update(prevState.data) }));\n            }\n            else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n                set((prevState) => ({ ...prevState, data: dataBeforeOptimisticUpdate }));\n            }\n            throw err;\n        }\n        finally {\n            if (options?.shouldRevalidateAfter !== false) {\n                if (api_1.environment.launchType === api_1.LaunchType.Background || api_1.environment.commandMode === \"menu-bar\") {\n                    // when in the background or in a menu bar, we are going to await the revalidation\n                    // to make sure we get the right data at the end of the mutation\n                    await revalidate();\n                }\n                else {\n                    revalidate();\n                }\n            }\n        }\n    }, [revalidate, latestValue, set]);\n    const onLoadMore = (0, react_1.useCallback)(() => {\n        paginationArgsRef.current.page += 1;\n        const args = (latestArgs.current || []);\n        callback(...args);\n    }, [paginationArgsRef, latestArgs, callback]);\n    // revalidate when the args change\n    (0, react_1.useEffect)(() => {\n        // reset the pagination\n        paginationArgsRef.current = { page: 0 };\n        if (options?.execute !== false) {\n            callback(...(args || []));\n        }\n        else {\n            // cancel the previous request if we don't want to execute anymore\n            if (latestAbortable.current) {\n                latestAbortable.current.current?.abort();\n            }\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [(0, useDeepMemo_1.useDeepMemo)([args, options?.execute, callback]), latestAbortable, paginationArgsRef]);\n    // abort request when unmounting\n    (0, react_1.useEffect)(() => {\n        return () => {\n            if (latestAbortable.current) {\n                // eslint-disable-next-line react-hooks/exhaustive-deps\n                latestAbortable.current.current?.abort();\n            }\n        };\n    }, [latestAbortable]);\n    // we only want to show the loading indicator if the promise is executing\n    const isLoading = options?.execute !== false ? state.isLoading : false;\n    // @ts-expect-error loading is has some fixed value in the enum which\n    const stateWithLoadingFixed = { ...state, isLoading };\n    const pagination = usePaginationRef.current\n        ? {\n            pageSize: pageSizeRef.current,\n            hasMore: hasMoreRef.current,\n            onLoadMore,\n        }\n        : undefined;\n    return { ...stateWithLoadingFixed, revalidate, mutate, pagination };\n}\nexports.usePromise = usePromise;\n/** Bind the fn if it's a Promise method */\nfunction bindPromiseIfNeeded(fn) {\n    if (fn === Promise.all) {\n        // @ts-expect-error this is fine\n        return fn.bind(Promise);\n    }\n    if (fn === Promise.race) {\n        // @ts-expect-error this is fine\n        return fn.bind(Promise);\n    }\n    if (fn === Promise.resolve) {\n        // @ts-expect-error this is fine\n        return fn.bind(Promise);\n    }\n    if (fn === Promise.reject) {\n        // @ts-expect-error this is fine\n        return fn.bind(Promise);\n    }\n    return fn;\n}\n", "'use strict';\n\nvar crypto = require('crypto');\n\n/**\n * Exported function\n *\n * Options:\n *\n *  - `algorithm` hash algo to be used by this instance: *'sha1', 'md5'\n *  - `excludeValues` {true|*false} hash object keys, values ignored\n *  - `encoding` hash encoding, supports 'buffer', '*hex', 'binary', 'base64'\n *  - `ignoreUnknown` {true|*false} ignore unknown object types\n *  - `replacer` optional function that replaces values before hashing\n *  - `respectFunctionProperties` {*true|false} consider function properties when hashing\n *  - `respectFunctionNames` {*true|false} consider 'name' property of functions for hashing\n *  - `respectType` {*true|false} Respect special properties (prototype, constructor)\n *    when hashing to distinguish between types\n *  - `unorderedArrays` {true|*false} Sort all arrays before hashing\n *  - `unorderedSets` {*true|false} Sort `Set` and `Map` instances before hashing\n *  * = default\n *\n * @param {object} object value to hash\n * @param {object} options hashing options\n * @return {string} hash value\n * @api public\n */\nexports = module.exports = objectHash;\n\nfunction objectHash(object, options){\n  options = applyDefaults(object, options);\n\n  return hash(object, options);\n}\n\n/**\n * Exported sugar methods\n *\n * @param {object} object value to hash\n * @return {string} hash value\n * @api public\n */\nexports.sha1 = function(object){\n  return objectHash(object);\n};\nexports.keys = function(object){\n  return objectHash(object, {excludeValues: true, algorithm: 'sha1', encoding: 'hex'});\n};\nexports.MD5 = function(object){\n  return objectHash(object, {algorithm: 'md5', encoding: 'hex'});\n};\nexports.keysMD5 = function(object){\n  return objectHash(object, {algorithm: 'md5', encoding: 'hex', excludeValues: true});\n};\n\n// Internals\nvar hashes = crypto.getHashes ? crypto.getHashes().slice() : ['sha1', 'md5'];\nhashes.push('passthrough');\nvar encodings = ['buffer', 'hex', 'binary', 'base64'];\n\nfunction applyDefaults(object, sourceOptions){\n  sourceOptions = sourceOptions || {};\n\n  // create a copy rather than mutating\n  var options = {};\n  options.algorithm = sourceOptions.algorithm || 'sha1';\n  options.encoding = sourceOptions.encoding || 'hex';\n  options.excludeValues = sourceOptions.excludeValues ? true : false;\n  options.algorithm = options.algorithm.toLowerCase();\n  options.encoding = options.encoding.toLowerCase();\n  options.ignoreUnknown = sourceOptions.ignoreUnknown !== true ? false : true; // default to false\n  options.respectType = sourceOptions.respectType === false ? false : true; // default to true\n  options.respectFunctionNames = sourceOptions.respectFunctionNames === false ? false : true;\n  options.respectFunctionProperties = sourceOptions.respectFunctionProperties === false ? false : true;\n  options.unorderedArrays = sourceOptions.unorderedArrays !== true ? false : true; // default to false\n  options.unorderedSets = sourceOptions.unorderedSets === false ? false : true; // default to false\n  options.unorderedObjects = sourceOptions.unorderedObjects === false ? false : true; // default to true\n  options.replacer = sourceOptions.replacer || undefined;\n  options.excludeKeys = sourceOptions.excludeKeys || undefined;\n\n  if(typeof object === 'undefined') {\n    throw new Error('Object argument required.');\n  }\n\n  // if there is a case-insensitive match in the hashes list, accept it\n  // (i.e. SHA256 for sha256)\n  for (var i = 0; i < hashes.length; ++i) {\n    if (hashes[i].toLowerCase() === options.algorithm.toLowerCase()) {\n      options.algorithm = hashes[i];\n    }\n  }\n\n  if(hashes.indexOf(options.algorithm) === -1){\n    throw new Error('Algorithm \"' + options.algorithm + '\"  not supported. ' +\n      'supported values: ' + hashes.join(', '));\n  }\n\n  if(encodings.indexOf(options.encoding) === -1 &&\n     options.algorithm !== 'passthrough'){\n    throw new Error('Encoding \"' + options.encoding + '\"  not supported. ' +\n      'supported values: ' + encodings.join(', '));\n  }\n\n  return options;\n}\n\n/** Check if the given function is a native function */\nfunction isNativeFunction(f) {\n  if ((typeof f) !== 'function') {\n    return false;\n  }\n  var exp = /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i;\n  return exp.exec(Function.prototype.toString.call(f)) != null;\n}\n\nfunction hash(object, options) {\n  var hashingStream;\n\n  if (options.algorithm !== 'passthrough') {\n    hashingStream = crypto.createHash(options.algorithm);\n  } else {\n    hashingStream = new PassThrough();\n  }\n\n  if (typeof hashingStream.write === 'undefined') {\n    hashingStream.write = hashingStream.update;\n    hashingStream.end   = hashingStream.update;\n  }\n\n  var hasher = typeHasher(options, hashingStream);\n  hasher.dispatch(object);\n  if (!hashingStream.update) {\n    hashingStream.end('');\n  }\n\n  if (hashingStream.digest) {\n    return hashingStream.digest(options.encoding === 'buffer' ? undefined : options.encoding);\n  }\n\n  var buf = hashingStream.read();\n  if (options.encoding === 'buffer') {\n    return buf;\n  }\n\n  return buf.toString(options.encoding);\n}\n\n/**\n * Expose streaming API\n *\n * @param {object} object  Value to serialize\n * @param {object} options  Options, as for hash()\n * @param {object} stream  A stream to write the serializiation to\n * @api public\n */\nexports.writeToStream = function(object, options, stream) {\n  if (typeof stream === 'undefined') {\n    stream = options;\n    options = {};\n  }\n\n  options = applyDefaults(object, options);\n\n  return typeHasher(options, stream).dispatch(object);\n};\n\nfunction typeHasher(options, writeTo, context){\n  context = context || [];\n  var write = function(str) {\n    if (writeTo.update) {\n      return writeTo.update(str, 'utf8');\n    } else {\n      return writeTo.write(str, 'utf8');\n    }\n  };\n\n  return {\n    dispatch: function(value){\n      if (options.replacer) {\n        value = options.replacer(value);\n      }\n\n      var type = typeof value;\n      if (value === null) {\n        type = 'null';\n      }\n\n      //console.log(\"[DEBUG] Dispatch: \", value, \"->\", type, \" -> \", \"_\" + type);\n\n      return this['_' + type](value);\n    },\n    _object: function(object) {\n      var pattern = (/\\[object (.*)\\]/i);\n      var objString = Object.prototype.toString.call(object);\n      var objType = pattern.exec(objString);\n      if (!objType) { // object type did not match [object ...]\n        objType = 'unknown:[' + objString + ']';\n      } else {\n        objType = objType[1]; // take only the class name\n      }\n\n      objType = objType.toLowerCase();\n\n      var objectNumber = null;\n\n      if ((objectNumber = context.indexOf(object)) >= 0) {\n        return this.dispatch('[CIRCULAR:' + objectNumber + ']');\n      } else {\n        context.push(object);\n      }\n\n      if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(object)) {\n        write('buffer:');\n        return write(object);\n      }\n\n      if(objType !== 'object' && objType !== 'function' && objType !== 'asyncfunction') {\n        if(this['_' + objType]) {\n          this['_' + objType](object);\n        } else if (options.ignoreUnknown) {\n          return write('[' + objType + ']');\n        } else {\n          throw new Error('Unknown object type \"' + objType + '\"');\n        }\n      }else{\n        var keys = Object.keys(object);\n        if (options.unorderedObjects) {\n          keys = keys.sort();\n        }\n        // Make sure to incorporate special properties, so\n        // Types with different prototypes will produce\n        // a different hash and objects derived from\n        // different functions (`new Foo`, `new Bar`) will\n        // produce different hashes.\n        // We never do this for native functions since some\n        // seem to break because of that.\n        if (options.respectType !== false && !isNativeFunction(object)) {\n          keys.splice(0, 0, 'prototype', '__proto__', 'constructor');\n        }\n\n        if (options.excludeKeys) {\n          keys = keys.filter(function(key) { return !options.excludeKeys(key); });\n        }\n\n        write('object:' + keys.length + ':');\n        var self = this;\n        return keys.forEach(function(key){\n          self.dispatch(key);\n          write(':');\n          if(!options.excludeValues) {\n            self.dispatch(object[key]);\n          }\n          write(',');\n        });\n      }\n    },\n    _array: function(arr, unordered){\n      unordered = typeof unordered !== 'undefined' ? unordered :\n        options.unorderedArrays !== false; // default to options.unorderedArrays\n\n      var self = this;\n      write('array:' + arr.length + ':');\n      if (!unordered || arr.length <= 1) {\n        return arr.forEach(function(entry) {\n          return self.dispatch(entry);\n        });\n      }\n\n      // the unordered case is a little more complicated:\n      // since there is no canonical ordering on objects,\n      // i.e. {a:1} < {a:2} and {a:1} > {a:2} are both false,\n      // we first serialize each entry using a PassThrough stream\n      // before sorting.\n      // also: we can\u2019t use the same context array for all entries\n      // since the order of hashing should *not* matter. instead,\n      // we keep track of the additions to a copy of the context array\n      // and add all of them to the global context array when we\u2019re done\n      var contextAdditions = [];\n      var entries = arr.map(function(entry) {\n        var strm = new PassThrough();\n        var localContext = context.slice(); // make copy\n        var hasher = typeHasher(options, strm, localContext);\n        hasher.dispatch(entry);\n        // take only what was added to localContext and append it to contextAdditions\n        contextAdditions = contextAdditions.concat(localContext.slice(context.length));\n        return strm.read().toString();\n      });\n      context = context.concat(contextAdditions);\n      entries.sort();\n      return this._array(entries, false);\n    },\n    _date: function(date){\n      return write('date:' + date.toJSON());\n    },\n    _symbol: function(sym){\n      return write('symbol:' + sym.toString());\n    },\n    _error: function(err){\n      return write('error:' + err.toString());\n    },\n    _boolean: function(bool){\n      return write('bool:' + bool.toString());\n    },\n    _string: function(string){\n      write('string:' + string.length + ':');\n      write(string.toString());\n    },\n    _function: function(fn){\n      write('fn:');\n      if (isNativeFunction(fn)) {\n        this.dispatch('[native]');\n      } else {\n        this.dispatch(fn.toString());\n      }\n\n      if (options.respectFunctionNames !== false) {\n        // Make sure we can still distinguish native functions\n        // by their name, otherwise String and Function will\n        // have the same hash\n        this.dispatch(\"function-name:\" + String(fn.name));\n      }\n\n      if (options.respectFunctionProperties) {\n        this._object(fn);\n      }\n    },\n    _number: function(number){\n      return write('number:' + number.toString());\n    },\n    _xml: function(xml){\n      return write('xml:' + xml.toString());\n    },\n    _null: function() {\n      return write('Null');\n    },\n    _undefined: function() {\n      return write('Undefined');\n    },\n    _regexp: function(regex){\n      return write('regex:' + regex.toString());\n    },\n    _uint8array: function(arr){\n      write('uint8array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _uint8clampedarray: function(arr){\n      write('uint8clampedarray:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _int8array: function(arr){\n      write('int8array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _uint16array: function(arr){\n      write('uint16array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _int16array: function(arr){\n      write('int16array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _uint32array: function(arr){\n      write('uint32array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _int32array: function(arr){\n      write('int32array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _float32array: function(arr){\n      write('float32array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _float64array: function(arr){\n      write('float64array:');\n      return this.dispatch(Array.prototype.slice.call(arr));\n    },\n    _arraybuffer: function(arr){\n      write('arraybuffer:');\n      return this.dispatch(new Uint8Array(arr));\n    },\n    _url: function(url) {\n      return write('url:' + url.toString(), 'utf8');\n    },\n    _map: function(map) {\n      write('map:');\n      var arr = Array.from(map);\n      return this._array(arr, options.unorderedSets !== false);\n    },\n    _set: function(set) {\n      write('set:');\n      var arr = Array.from(set);\n      return this._array(arr, options.unorderedSets !== false);\n    },\n    _file: function(file) {\n      write('file:');\n      return this.dispatch([file.name, file.size, file.type, file.lastModfied]);\n    },\n    _blob: function() {\n      if (options.ignoreUnknown) {\n        return write('[blob]');\n      }\n\n      throw Error('Hashing Blob objects is currently not supported\\n' +\n        '(see https://github.com/puleos/object-hash/issues/26)\\n' +\n        'Use \"options.replacer\" or \"options.ignoreUnknown\"\\n');\n    },\n    _domwindow: function() { return write('domwindow'); },\n    _bigint: function(number){\n      return write('bigint:' + number.toString());\n    },\n    /* Node.js standard native objects */\n    _process: function() { return write('process'); },\n    _timer: function() { return write('timer'); },\n    _pipe: function() { return write('pipe'); },\n    _tcp: function() { return write('tcp'); },\n    _udp: function() { return write('udp'); },\n    _tty: function() { return write('tty'); },\n    _statwatcher: function() { return write('statwatcher'); },\n    _securecontext: function() { return write('securecontext'); },\n    _connection: function() { return write('connection'); },\n    _zlib: function() { return write('zlib'); },\n    _context: function() { return write('context'); },\n    _nodescript: function() { return write('nodescript'); },\n    _httpparser: function() { return write('httpparser'); },\n    _dataview: function() { return write('dataview'); },\n    _signal: function() { return write('signal'); },\n    _fsevent: function() { return write('fsevent'); },\n    _tlswrap: function() { return write('tlswrap'); },\n  };\n}\n\n// Mini-implementation of stream.PassThrough\n// We are far from having need for the full implementation, and we can\n// make assumptions like \"many writes, then only one final read\"\n// and we can ignore encoding specifics\nfunction PassThrough() {\n  return {\n    buf: '',\n\n    write: function(b) {\n      this.buf += b;\n    },\n\n    end: function(b) {\n      this.buf += b;\n    },\n\n    read: function() {\n      return this.buf;\n    }\n  };\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hash = exports.reviver = exports.replacer = void 0;\nconst object_hash_1 = __importDefault(require(\"object-hash\"));\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replacer(key, _value) {\n    const value = this[key];\n    if (value instanceof Date) {\n        return `__raycast_cached_date__${value.toString()}`;\n    }\n    if (Buffer.isBuffer(value)) {\n        return `__raycast_cached_buffer__${value.toString(\"base64\")}`;\n    }\n    return _value;\n}\nexports.replacer = replacer;\nfunction reviver(_key, value) {\n    if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_date__\")) {\n        return new Date(value.replace(\"__raycast_cached_date__\", \"\"));\n    }\n    if (typeof value === \"string\" && value.startsWith(\"__raycast_cached_buffer__\")) {\n        return Buffer.from(value.replace(\"__raycast_cached_buffer__\", \"\"), \"base64\");\n    }\n    return value;\n}\nexports.reviver = reviver;\nfunction hash(object, options) {\n    return (0, object_hash_1.default)(object, {\n        replacer: (value) => {\n            if (value instanceof URLSearchParams) {\n                return value.toString();\n            }\n            return value;\n        },\n        ...options,\n    });\n}\nexports.hash = hash;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedState = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst useLatest_1 = require(\"./useLatest\");\nconst helpers_1 = require(\"./helpers\");\nconst rootCache = Symbol(\"cache without namespace\");\nconst cacheMap = new Map();\nfunction useCachedState(key, initialState, config) {\n    const cacheKey = config?.cacheNamespace || rootCache;\n    const cache = cacheMap.get(cacheKey) || cacheMap.set(cacheKey, new api_1.Cache({ namespace: config?.cacheNamespace })).get(cacheKey);\n    if (!cache) {\n        throw new Error(\"Missing cache\");\n    }\n    const keyRef = (0, useLatest_1.useLatest)(key);\n    const initialValueRef = (0, useLatest_1.useLatest)(initialState);\n    const cachedState = (0, react_1.useSyncExternalStore)(cache.subscribe, () => {\n        try {\n            return cache.get(keyRef.current);\n        }\n        catch (error) {\n            console.error(\"Could not get Cache data:\", error);\n            return undefined;\n        }\n    });\n    const state = (0, react_1.useMemo)(() => {\n        if (typeof cachedState !== \"undefined\") {\n            if (cachedState === \"undefined\") {\n                return undefined;\n            }\n            try {\n                return JSON.parse(cachedState, helpers_1.reviver);\n            }\n            catch (err) {\n                // the data got corrupted somehow\n                console.warn(\"The cached data is corrupted\", err);\n                return initialValueRef.current;\n            }\n        }\n        else {\n            return initialValueRef.current;\n        }\n    }, [cachedState, initialValueRef]);\n    const stateRef = (0, useLatest_1.useLatest)(state);\n    const setStateAndCache = (0, react_1.useCallback)((updater) => {\n        // @ts-expect-error TS struggles to infer the types as T could potentially be a function\n        const newValue = typeof updater === \"function\" ? updater(stateRef.current) : updater;\n        if (typeof newValue === \"undefined\") {\n            cache.set(keyRef.current, \"undefined\");\n        }\n        else {\n            const stringifiedValue = JSON.stringify(newValue, helpers_1.replacer);\n            cache.set(keyRef.current, stringifiedValue);\n        }\n        return newValue;\n    }, [cache, keyRef, stateRef]);\n    return [state, setStateAndCache];\n}\nexports.useCachedState = useCachedState;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCachedPromise = void 0;\nconst react_1 = require(\"react\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst helpers_1 = require(\"./helpers\");\n// Symbol to differentiate an empty cache from `undefined`\nconst emptyCache = Symbol();\nfunction useCachedPromise(fn, args, options) {\n    /**\n     * The hook generates a cache key from the promise it receives & its arguments.\n     * Sometimes that's not enough to guarantee uniqueness, so hooks that build on top of `useCachedPromise` can\n     * use an `internal_cacheKeySuffix` to help it.\n     *\n     * @remark For internal use only.\n     */\n    const { initialData, keepPreviousData, internal_cacheKeySuffix, ...usePromiseOptions } = options || {};\n    const lastUpdateFrom = (0, react_1.useRef)();\n    const [cachedData, mutateCache] = (0, useCachedState_1.useCachedState)((0, helpers_1.hash)(args || []) + internal_cacheKeySuffix, emptyCache, {\n        cacheNamespace: (0, helpers_1.hash)(fn),\n    });\n    // Use a ref to store previous returned data. Use the inital data as its inital value from the cache.\n    const laggyDataRef = (0, react_1.useRef)(cachedData !== emptyCache ? cachedData : initialData);\n    const paginationArgsRef = (0, react_1.useRef)(undefined);\n    const { mutate: _mutate, revalidate, ...state\n    // @ts-expect-error fn has the same signature in both usePromise and useCachedPromise\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n     } = (0, usePromise_1.usePromise)(fn, args || [], {\n        ...usePromiseOptions,\n        onData(data, pagination) {\n            paginationArgsRef.current = pagination;\n            if (usePromiseOptions.onData) {\n                usePromiseOptions.onData(data, pagination);\n            }\n            if (pagination && pagination.page > 0) {\n                // don't cache beyond the first page\n                return;\n            }\n            lastUpdateFrom.current = \"promise\";\n            laggyDataRef.current = data;\n            mutateCache(data);\n        },\n    });\n    let returnedData;\n    const pagination = state.pagination;\n    // when paginating, only the first page gets cached, so we return the data we get from `usePromise`, because\n    // it will be accumulated.\n    if (paginationArgsRef.current && paginationArgsRef.current.page > 0 && state.data) {\n        returnedData = state.data;\n        // if the latest update if from the Promise, we keep it\n    }\n    else if (lastUpdateFrom.current === \"promise\") {\n        returnedData = laggyDataRef.current;\n    }\n    else if (keepPreviousData && cachedData !== emptyCache) {\n        // if we want to keep the latest data, we pick the cache but only if it's not empty\n        returnedData = cachedData;\n        if (pagination) {\n            pagination.hasMore = true;\n            pagination.pageSize = cachedData.length;\n        }\n    }\n    else if (keepPreviousData && cachedData === emptyCache) {\n        // if the cache is empty, we will return the previous data\n        returnedData = laggyDataRef.current;\n        // there are no special cases, so either return the cache or initial data\n    }\n    else if (cachedData !== emptyCache) {\n        returnedData = cachedData;\n        if (pagination) {\n            pagination.hasMore = true;\n            pagination.pageSize = cachedData.length;\n        }\n    }\n    else {\n        returnedData = initialData;\n    }\n    const latestData = (0, useLatest_1.useLatest)(returnedData);\n    // we rewrite the mutate function to update the cache instead\n    const mutate = (0, react_1.useCallback)(async (asyncUpdate, options) => {\n        let dataBeforeOptimisticUpdate;\n        try {\n            if (options?.optimisticUpdate) {\n                if (typeof options?.rollbackOnError !== \"function\" && options?.rollbackOnError !== false) {\n                    // keep track of the data before the optimistic update,\n                    // but only if we need it (eg. only when we want to automatically rollback after)\n                    dataBeforeOptimisticUpdate = structuredClone(latestData.current);\n                }\n                const data = options.optimisticUpdate(latestData.current);\n                lastUpdateFrom.current = \"cache\";\n                laggyDataRef.current = data;\n                mutateCache(data);\n            }\n            return await _mutate(asyncUpdate, { shouldRevalidateAfter: options?.shouldRevalidateAfter });\n        }\n        catch (err) {\n            if (typeof options?.rollbackOnError === \"function\") {\n                const data = options.rollbackOnError(latestData.current);\n                lastUpdateFrom.current = \"cache\";\n                laggyDataRef.current = data;\n                mutateCache(data);\n            }\n            else if (options?.optimisticUpdate && options?.rollbackOnError !== false) {\n                lastUpdateFrom.current = \"cache\";\n                // @ts-expect-error when undefined, it's expected\n                laggyDataRef.current = dataBeforeOptimisticUpdate;\n                // @ts-expect-error when undefined, it's expected\n                mutateCache(dataBeforeOptimisticUpdate);\n            }\n            throw err;\n        }\n    }, [mutateCache, _mutate, latestData, laggyDataRef, lastUpdateFrom]);\n    (0, react_1.useEffect)(() => {\n        if (cachedData !== emptyCache) {\n            lastUpdateFrom.current = \"cache\";\n            laggyDataRef.current = cachedData;\n        }\n    }, [cachedData]);\n    return {\n        data: returnedData,\n        isLoading: state.isLoading,\n        error: state.error,\n        mutate: paginationArgsRef.current && paginationArgsRef.current.page > 0 ? _mutate : mutate,\n        pagination,\n        revalidate,\n    };\n}\nexports.useCachedPromise = useCachedPromise;\n", "\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n    return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n    // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n    if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n        return Math.floor(x);\n    } else {\n        return Math.round(x);\n    }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n    if (!typeOpts.unsigned) {\n        --bitLength;\n    }\n    const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n    const upperBound = Math.pow(2, bitLength) - 1;\n\n    const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n    const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n    return function(V, opts) {\n        if (!opts) opts = {};\n\n        let x = +V;\n\n        if (opts.enforceRange) {\n            if (!Number.isFinite(x)) {\n                throw new TypeError(\"Argument is not a finite number\");\n            }\n\n            x = sign(x) * Math.floor(Math.abs(x));\n            if (x < lowerBound || x > upperBound) {\n                throw new TypeError(\"Argument is not in byte range\");\n            }\n\n            return x;\n        }\n\n        if (!isNaN(x) && opts.clamp) {\n            x = evenRound(x);\n\n            if (x < lowerBound) x = lowerBound;\n            if (x > upperBound) x = upperBound;\n            return x;\n        }\n\n        if (!Number.isFinite(x) || x === 0) {\n            return 0;\n        }\n\n        x = sign(x) * Math.floor(Math.abs(x));\n        x = x % moduloVal;\n\n        if (!typeOpts.unsigned && x >= moduloBound) {\n            return x - moduloVal;\n        } else if (typeOpts.unsigned) {\n            if (x < 0) {\n              x += moduloVal;\n            } else if (x === -0) { // don't return negative zero\n              return 0;\n            }\n        }\n\n        return x;\n    }\n}\n\nconversions[\"void\"] = function () {\n    return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n    return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n    const x = +V;\n\n    if (!Number.isFinite(x)) {\n        throw new TypeError(\"Argument is not a finite floating-point value\");\n    }\n\n    return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n    const x = +V;\n\n    if (isNaN(x)) {\n        throw new TypeError(\"Argument is NaN\");\n    }\n\n    return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n    if (!opts) opts = {};\n\n    if (opts.treatNullAsEmptyString && V === null) {\n        return \"\";\n    }\n\n    return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n    const x = String(V);\n    let c = undefined;\n    for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n        if (c > 255) {\n            throw new TypeError(\"Argument is not a valid bytestring\");\n        }\n    }\n\n    return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n    const S = String(V);\n    const n = S.length;\n    const U = [];\n    for (let i = 0; i < n; ++i) {\n        const c = S.charCodeAt(i);\n        if (c < 0xD800 || c > 0xDFFF) {\n            U.push(String.fromCodePoint(c));\n        } else if (0xDC00 <= c && c <= 0xDFFF) {\n            U.push(String.fromCodePoint(0xFFFD));\n        } else {\n            if (i === n - 1) {\n                U.push(String.fromCodePoint(0xFFFD));\n            } else {\n                const d = S.charCodeAt(i + 1);\n                if (0xDC00 <= d && d <= 0xDFFF) {\n                    const a = c & 0x3FF;\n                    const b = d & 0x3FF;\n                    U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n                    ++i;\n                } else {\n                    U.push(String.fromCodePoint(0xFFFD));\n                }\n            }\n        }\n    }\n\n    return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n    if (!(V instanceof Date)) {\n        throw new TypeError(\"Argument is not a Date object\");\n    }\n    if (isNaN(V)) {\n        return undefined;\n    }\n\n    return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n    if (!(V instanceof RegExp)) {\n        V = new RegExp(V);\n    }\n\n    return V;\n};\n", "\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n  const keys = Object.getOwnPropertyNames(source);\n  for (let i = 0; i < keys.length; ++i) {\n    Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n  }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n  return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n  return wrapper[module.exports.implSymbol];\n};\n\n", "[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]", "\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n  TRANSITIONAL: 0,\n  NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n  return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n  var start = 0;\n  var end = mappingTable.length - 1;\n\n  while (start <= end) {\n    var mid = Math.floor((start + end) / 2);\n\n    var target = mappingTable[mid];\n    if (target[0][0] <= val && target[0][1] >= val) {\n      return target;\n    } else if (target[0][0] > val) {\n      end = mid - 1;\n    } else {\n      start = mid + 1;\n    }\n  }\n\n  return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n  return string\n    // replace every surrogate pair with a BMP symbol\n    .replace(regexAstralSymbols, '_')\n    // then get the length\n    .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n  var hasError = false;\n  var processed = \"\";\n\n  var len = countSymbols(domain_name);\n  for (var i = 0; i < len; ++i) {\n    var codePoint = domain_name.codePointAt(i);\n    var status = findStatus(codePoint);\n\n    switch (status[1]) {\n      case \"disallowed\":\n        hasError = true;\n        processed += String.fromCodePoint(codePoint);\n        break;\n      case \"ignored\":\n        break;\n      case \"mapped\":\n        processed += String.fromCodePoint.apply(String, status[2]);\n        break;\n      case \"deviation\":\n        if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n          processed += String.fromCodePoint.apply(String, status[2]);\n        } else {\n          processed += String.fromCodePoint(codePoint);\n        }\n        break;\n      case \"valid\":\n        processed += String.fromCodePoint(codePoint);\n        break;\n      case \"disallowed_STD3_mapped\":\n        if (useSTD3) {\n          hasError = true;\n          processed += String.fromCodePoint(codePoint);\n        } else {\n          processed += String.fromCodePoint.apply(String, status[2]);\n        }\n        break;\n      case \"disallowed_STD3_valid\":\n        if (useSTD3) {\n          hasError = true;\n        }\n\n        processed += String.fromCodePoint(codePoint);\n        break;\n    }\n  }\n\n  return {\n    string: processed,\n    error: hasError\n  };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n  if (label.substr(0, 4) === \"xn--\") {\n    label = punycode.toUnicode(label);\n    processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n  }\n\n  var error = false;\n\n  if (normalize(label) !== label ||\n      (label[3] === \"-\" && label[4] === \"-\") ||\n      label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n      label.indexOf(\".\") !== -1 ||\n      label.search(combiningMarksRegex) === 0) {\n    error = true;\n  }\n\n  var len = countSymbols(label);\n  for (var i = 0; i < len; ++i) {\n    var status = findStatus(label.codePointAt(i));\n    if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n        (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n         status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n      error = true;\n      break;\n    }\n  }\n\n  return {\n    label: label,\n    error: error\n  };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n  var result = mapChars(domain_name, useSTD3, processing_option);\n  result.string = normalize(result.string);\n\n  var labels = result.string.split(\".\");\n  for (var i = 0; i < labels.length; ++i) {\n    try {\n      var validation = validateLabel(labels[i]);\n      labels[i] = validation.label;\n      result.error = result.error || validation.error;\n    } catch(e) {\n      result.error = true;\n    }\n  }\n\n  return {\n    string: labels.join(\".\"),\n    error: result.error\n  };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n  var result = processing(domain_name, useSTD3, processing_option);\n  var labels = result.string.split(\".\");\n  labels = labels.map(function(l) {\n    try {\n      return punycode.toASCII(l);\n    } catch(e) {\n      result.error = true;\n      return l;\n    }\n  });\n\n  if (verifyDnsLength) {\n    var total = labels.slice(0, labels.length - 1).join(\".\").length;\n    if (total.length > 253 || total.length === 0) {\n      result.error = true;\n    }\n\n    for (var i=0; i < labels.length; ++i) {\n      if (labels.length > 63 || labels.length === 0) {\n        result.error = true;\n        break;\n      }\n    }\n  }\n\n  if (result.error) return null;\n  return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n  var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n  return {\n    domain: result.string,\n    error: result.error\n  };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n", "\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n  ftp: 21,\r\n  file: null,\r\n  gopher: 70,\r\n  http: 80,\r\n  https: 443,\r\n  ws: 80,\r\n  wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n  return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n  const c = input[idx];\r\n  return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n  return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n  return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n  return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n  return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n  return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n  buffer = buffer.toLowerCase();\r\n  return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n  return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n  return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n  return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n  return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n  return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n  return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n  return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n  return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n  let hex = c.toString(16).toUpperCase();\r\n  if (hex.length === 1) {\r\n    hex = \"0\" + hex;\r\n  }\r\n\r\n  return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n  const buf = new Buffer(c);\r\n\r\n  let str = \"\";\r\n\r\n  for (let i = 0; i < buf.length; ++i) {\r\n    str += percentEncode(buf[i]);\r\n  }\r\n\r\n  return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n  const input = new Buffer(str);\r\n  const output = [];\r\n  for (let i = 0; i < input.length; ++i) {\r\n    if (input[i] !== 37) {\r\n      output.push(input[i]);\r\n    } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n      output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n      i += 2;\r\n    } else {\r\n      output.push(input[i]);\r\n    }\r\n  }\r\n  return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n  return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n  return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n  new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n  return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n  const cStr = String.fromCodePoint(c);\r\n\r\n  if (encodeSetPredicate(c)) {\r\n    return utf8PercentEncode(cStr);\r\n  }\r\n\r\n  return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n  let R = 10;\r\n\r\n  if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n    input = input.substring(2);\r\n    R = 16;\r\n  } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n    input = input.substring(1);\r\n    R = 8;\r\n  }\r\n\r\n  if (input === \"\") {\r\n    return 0;\r\n  }\r\n\r\n  const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n  if (regex.test(input)) {\r\n    return failure;\r\n  }\r\n\r\n  return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n  const parts = input.split(\".\");\r\n  if (parts[parts.length - 1] === \"\") {\r\n    if (parts.length > 1) {\r\n      parts.pop();\r\n    }\r\n  }\r\n\r\n  if (parts.length > 4) {\r\n    return input;\r\n  }\r\n\r\n  const numbers = [];\r\n  for (const part of parts) {\r\n    if (part === \"\") {\r\n      return input;\r\n    }\r\n    const n = parseIPv4Number(part);\r\n    if (n === failure) {\r\n      return input;\r\n    }\r\n\r\n    numbers.push(n);\r\n  }\r\n\r\n  for (let i = 0; i < numbers.length - 1; ++i) {\r\n    if (numbers[i] > 255) {\r\n      return failure;\r\n    }\r\n  }\r\n  if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n    return failure;\r\n  }\r\n\r\n  let ipv4 = numbers.pop();\r\n  let counter = 0;\r\n\r\n  for (const n of numbers) {\r\n    ipv4 += n * Math.pow(256, 3 - counter);\r\n    ++counter;\r\n  }\r\n\r\n  return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n  let output = \"\";\r\n  let n = address;\r\n\r\n  for (let i = 1; i <= 4; ++i) {\r\n    output = String(n % 256) + output;\r\n    if (i !== 4) {\r\n      output = \".\" + output;\r\n    }\r\n    n = Math.floor(n / 256);\r\n  }\r\n\r\n  return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n  const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n  let pieceIndex = 0;\r\n  let compress = null;\r\n  let pointer = 0;\r\n\r\n  input = punycode.ucs2.decode(input);\r\n\r\n  if (input[pointer] === 58) {\r\n    if (input[pointer + 1] !== 58) {\r\n      return failure;\r\n    }\r\n\r\n    pointer += 2;\r\n    ++pieceIndex;\r\n    compress = pieceIndex;\r\n  }\r\n\r\n  while (pointer < input.length) {\r\n    if (pieceIndex === 8) {\r\n      return failure;\r\n    }\r\n\r\n    if (input[pointer] === 58) {\r\n      if (compress !== null) {\r\n        return failure;\r\n      }\r\n      ++pointer;\r\n      ++pieceIndex;\r\n      compress = pieceIndex;\r\n      continue;\r\n    }\r\n\r\n    let value = 0;\r\n    let length = 0;\r\n\r\n    while (length < 4 && isASCIIHex(input[pointer])) {\r\n      value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n      ++pointer;\r\n      ++length;\r\n    }\r\n\r\n    if (input[pointer] === 46) {\r\n      if (length === 0) {\r\n        return failure;\r\n      }\r\n\r\n      pointer -= length;\r\n\r\n      if (pieceIndex > 6) {\r\n        return failure;\r\n      }\r\n\r\n      let numbersSeen = 0;\r\n\r\n      while (input[pointer] !== undefined) {\r\n        let ipv4Piece = null;\r\n\r\n        if (numbersSeen > 0) {\r\n          if (input[pointer] === 46 && numbersSeen < 4) {\r\n            ++pointer;\r\n          } else {\r\n            return failure;\r\n          }\r\n        }\r\n\r\n        if (!isASCIIDigit(input[pointer])) {\r\n          return failure;\r\n        }\r\n\r\n        while (isASCIIDigit(input[pointer])) {\r\n          const number = parseInt(at(input, pointer));\r\n          if (ipv4Piece === null) {\r\n            ipv4Piece = number;\r\n          } else if (ipv4Piece === 0) {\r\n            return failure;\r\n          } else {\r\n            ipv4Piece = ipv4Piece * 10 + number;\r\n          }\r\n          if (ipv4Piece > 255) {\r\n            return failure;\r\n          }\r\n          ++pointer;\r\n        }\r\n\r\n        address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n        ++numbersSeen;\r\n\r\n        if (numbersSeen === 2 || numbersSeen === 4) {\r\n          ++pieceIndex;\r\n        }\r\n      }\r\n\r\n      if (numbersSeen !== 4) {\r\n        return failure;\r\n      }\r\n\r\n      break;\r\n    } else if (input[pointer] === 58) {\r\n      ++pointer;\r\n      if (input[pointer] === undefined) {\r\n        return failure;\r\n      }\r\n    } else if (input[pointer] !== undefined) {\r\n      return failure;\r\n    }\r\n\r\n    address[pieceIndex] = value;\r\n    ++pieceIndex;\r\n  }\r\n\r\n  if (compress !== null) {\r\n    let swaps = pieceIndex - compress;\r\n    pieceIndex = 7;\r\n    while (pieceIndex !== 0 && swaps > 0) {\r\n      const temp = address[compress + swaps - 1];\r\n      address[compress + swaps - 1] = address[pieceIndex];\r\n      address[pieceIndex] = temp;\r\n      --pieceIndex;\r\n      --swaps;\r\n    }\r\n  } else if (compress === null && pieceIndex !== 8) {\r\n    return failure;\r\n  }\r\n\r\n  return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n  let output = \"\";\r\n  const seqResult = findLongestZeroSequence(address);\r\n  const compress = seqResult.idx;\r\n  let ignore0 = false;\r\n\r\n  for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n    if (ignore0 && address[pieceIndex] === 0) {\r\n      continue;\r\n    } else if (ignore0) {\r\n      ignore0 = false;\r\n    }\r\n\r\n    if (compress === pieceIndex) {\r\n      const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n      output += separator;\r\n      ignore0 = true;\r\n      continue;\r\n    }\r\n\r\n    output += address[pieceIndex].toString(16);\r\n\r\n    if (pieceIndex !== 7) {\r\n      output += \":\";\r\n    }\r\n  }\r\n\r\n  return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n  if (input[0] === \"[\") {\r\n    if (input[input.length - 1] !== \"]\") {\r\n      return failure;\r\n    }\r\n\r\n    return parseIPv6(input.substring(1, input.length - 1));\r\n  }\r\n\r\n  if (!isSpecialArg) {\r\n    return parseOpaqueHost(input);\r\n  }\r\n\r\n  const domain = utf8PercentDecode(input);\r\n  const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n  if (asciiDomain === null) {\r\n    return failure;\r\n  }\r\n\r\n  if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n    return failure;\r\n  }\r\n\r\n  const ipv4Host = parseIPv4(asciiDomain);\r\n  if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n    return ipv4Host;\r\n  }\r\n\r\n  return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n  if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n    return failure;\r\n  }\r\n\r\n  let output = \"\";\r\n  const decoded = punycode.ucs2.decode(input);\r\n  for (let i = 0; i < decoded.length; ++i) {\r\n    output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n  }\r\n  return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n  let maxIdx = null;\r\n  let maxLen = 1; // only find elements > 1\r\n  let currStart = null;\r\n  let currLen = 0;\r\n\r\n  for (let i = 0; i < arr.length; ++i) {\r\n    if (arr[i] !== 0) {\r\n      if (currLen > maxLen) {\r\n        maxIdx = currStart;\r\n        maxLen = currLen;\r\n      }\r\n\r\n      currStart = null;\r\n      currLen = 0;\r\n    } else {\r\n      if (currStart === null) {\r\n        currStart = i;\r\n      }\r\n      ++currLen;\r\n    }\r\n  }\r\n\r\n  // if trailing zeros\r\n  if (currLen > maxLen) {\r\n    maxIdx = currStart;\r\n    maxLen = currLen;\r\n  }\r\n\r\n  return {\r\n    idx: maxIdx,\r\n    len: maxLen\r\n  };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n  if (typeof host === \"number\") {\r\n    return serializeIPv4(host);\r\n  }\r\n\r\n  // IPv6 serializer\r\n  if (host instanceof Array) {\r\n    return \"[\" + serializeIPv6(host) + \"]\";\r\n  }\r\n\r\n  return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n  return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n  return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n  const path = url.path;\r\n  if (path.length === 0) {\r\n    return;\r\n  }\r\n  if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n    return;\r\n  }\r\n\r\n  path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n  return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n  return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n  return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n  this.pointer = 0;\r\n  this.input = input;\r\n  this.base = base || null;\r\n  this.encodingOverride = encodingOverride || \"utf-8\";\r\n  this.stateOverride = stateOverride;\r\n  this.url = url;\r\n  this.failure = false;\r\n  this.parseError = false;\r\n\r\n  if (!this.url) {\r\n    this.url = {\r\n      scheme: \"\",\r\n      username: \"\",\r\n      password: \"\",\r\n      host: null,\r\n      port: null,\r\n      path: [],\r\n      query: null,\r\n      fragment: null,\r\n\r\n      cannotBeABaseURL: false\r\n    };\r\n\r\n    const res = trimControlChars(this.input);\r\n    if (res !== this.input) {\r\n      this.parseError = true;\r\n    }\r\n    this.input = res;\r\n  }\r\n\r\n  const res = trimTabAndNewline(this.input);\r\n  if (res !== this.input) {\r\n    this.parseError = true;\r\n  }\r\n  this.input = res;\r\n\r\n  this.state = stateOverride || \"scheme start\";\r\n\r\n  this.buffer = \"\";\r\n  this.atFlag = false;\r\n  this.arrFlag = false;\r\n  this.passwordTokenSeenFlag = false;\r\n\r\n  this.input = punycode.ucs2.decode(this.input);\r\n\r\n  for (; this.pointer <= this.input.length; ++this.pointer) {\r\n    const c = this.input[this.pointer];\r\n    const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n    // exec state machine\r\n    const ret = this[\"parse \" + this.state](c, cStr);\r\n    if (!ret) {\r\n      break; // terminate algorithm\r\n    } else if (ret === failure) {\r\n      this.failure = true;\r\n      break;\r\n    }\r\n  }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n  if (isASCIIAlpha(c)) {\r\n    this.buffer += cStr.toLowerCase();\r\n    this.state = \"scheme\";\r\n  } else if (!this.stateOverride) {\r\n    this.state = \"no scheme\";\r\n    --this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    return failure;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n  if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n    this.buffer += cStr.toLowerCase();\r\n  } else if (c === 58) {\r\n    if (this.stateOverride) {\r\n      if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n        return false;\r\n      }\r\n\r\n      if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n        return false;\r\n      }\r\n\r\n      if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n        return false;\r\n      }\r\n\r\n      if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n        return false;\r\n      }\r\n    }\r\n    this.url.scheme = this.buffer;\r\n    this.buffer = \"\";\r\n    if (this.stateOverride) {\r\n      return false;\r\n    }\r\n    if (this.url.scheme === \"file\") {\r\n      if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n        this.parseError = true;\r\n      }\r\n      this.state = \"file\";\r\n    } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n      this.state = \"special relative or authority\";\r\n    } else if (isSpecial(this.url)) {\r\n      this.state = \"special authority slashes\";\r\n    } else if (this.input[this.pointer + 1] === 47) {\r\n      this.state = \"path or authority\";\r\n      ++this.pointer;\r\n    } else {\r\n      this.url.cannotBeABaseURL = true;\r\n      this.url.path.push(\"\");\r\n      this.state = \"cannot-be-a-base-URL path\";\r\n    }\r\n  } else if (!this.stateOverride) {\r\n    this.buffer = \"\";\r\n    this.state = \"no scheme\";\r\n    this.pointer = -1;\r\n  } else {\r\n    this.parseError = true;\r\n    return failure;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n  if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n    return failure;\r\n  } else if (this.base.cannotBeABaseURL && c === 35) {\r\n    this.url.scheme = this.base.scheme;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = this.base.query;\r\n    this.url.fragment = \"\";\r\n    this.url.cannotBeABaseURL = true;\r\n    this.state = \"fragment\";\r\n  } else if (this.base.scheme === \"file\") {\r\n    this.state = \"file\";\r\n    --this.pointer;\r\n  } else {\r\n    this.state = \"relative\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n  if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n    this.state = \"special authority ignore slashes\";\r\n    ++this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    this.state = \"relative\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n  if (c === 47) {\r\n    this.state = \"authority\";\r\n  } else {\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n  this.url.scheme = this.base.scheme;\r\n  if (isNaN(c)) {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = this.base.query;\r\n  } else if (c === 47) {\r\n    this.state = \"relative slash\";\r\n  } else if (c === 63) {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = \"\";\r\n    this.state = \"query\";\r\n  } else if (c === 35) {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = this.base.query;\r\n    this.url.fragment = \"\";\r\n    this.state = \"fragment\";\r\n  } else if (isSpecial(this.url) && c === 92) {\r\n    this.parseError = true;\r\n    this.state = \"relative slash\";\r\n  } else {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n  if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"special authority ignore slashes\";\r\n  } else if (c === 47) {\r\n    this.state = \"authority\";\r\n  } else {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n  if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n    this.state = \"special authority ignore slashes\";\r\n    ++this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    this.state = \"special authority ignore slashes\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n  if (c !== 47 && c !== 92) {\r\n    this.state = \"authority\";\r\n    --this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n  if (c === 64) {\r\n    this.parseError = true;\r\n    if (this.atFlag) {\r\n      this.buffer = \"%40\" + this.buffer;\r\n    }\r\n    this.atFlag = true;\r\n\r\n    // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n    const len = countSymbols(this.buffer);\r\n    for (let pointer = 0; pointer < len; ++pointer) {\r\n      const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n      if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n        this.passwordTokenSeenFlag = true;\r\n        continue;\r\n      }\r\n      const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n      if (this.passwordTokenSeenFlag) {\r\n        this.url.password += encodedCodePoints;\r\n      } else {\r\n        this.url.username += encodedCodePoints;\r\n      }\r\n    }\r\n    this.buffer = \"\";\r\n  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n             (isSpecial(this.url) && c === 92)) {\r\n    if (this.atFlag && this.buffer === \"\") {\r\n      this.parseError = true;\r\n      return failure;\r\n    }\r\n    this.pointer -= countSymbols(this.buffer) + 1;\r\n    this.buffer = \"\";\r\n    this.state = \"host\";\r\n  } else {\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n  if (this.stateOverride && this.url.scheme === \"file\") {\r\n    --this.pointer;\r\n    this.state = \"file host\";\r\n  } else if (c === 58 && !this.arrFlag) {\r\n    if (this.buffer === \"\") {\r\n      this.parseError = true;\r\n      return failure;\r\n    }\r\n\r\n    const host = parseHost(this.buffer, isSpecial(this.url));\r\n    if (host === failure) {\r\n      return failure;\r\n    }\r\n\r\n    this.url.host = host;\r\n    this.buffer = \"\";\r\n    this.state = \"port\";\r\n    if (this.stateOverride === \"hostname\") {\r\n      return false;\r\n    }\r\n  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n             (isSpecial(this.url) && c === 92)) {\r\n    --this.pointer;\r\n    if (isSpecial(this.url) && this.buffer === \"\") {\r\n      this.parseError = true;\r\n      return failure;\r\n    } else if (this.stateOverride && this.buffer === \"\" &&\r\n               (includesCredentials(this.url) || this.url.port !== null)) {\r\n      this.parseError = true;\r\n      return false;\r\n    }\r\n\r\n    const host = parseHost(this.buffer, isSpecial(this.url));\r\n    if (host === failure) {\r\n      return failure;\r\n    }\r\n\r\n    this.url.host = host;\r\n    this.buffer = \"\";\r\n    this.state = \"path start\";\r\n    if (this.stateOverride) {\r\n      return false;\r\n    }\r\n  } else {\r\n    if (c === 91) {\r\n      this.arrFlag = true;\r\n    } else if (c === 93) {\r\n      this.arrFlag = false;\r\n    }\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n  if (isASCIIDigit(c)) {\r\n    this.buffer += cStr;\r\n  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n             (isSpecial(this.url) && c === 92) ||\r\n             this.stateOverride) {\r\n    if (this.buffer !== \"\") {\r\n      const port = parseInt(this.buffer);\r\n      if (port > Math.pow(2, 16) - 1) {\r\n        this.parseError = true;\r\n        return failure;\r\n      }\r\n      this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n      this.buffer = \"\";\r\n    }\r\n    if (this.stateOverride) {\r\n      return false;\r\n    }\r\n    this.state = \"path start\";\r\n    --this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    return failure;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n  this.url.scheme = \"file\";\r\n\r\n  if (c === 47 || c === 92) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"file slash\";\r\n  } else if (this.base !== null && this.base.scheme === \"file\") {\r\n    if (isNaN(c)) {\r\n      this.url.host = this.base.host;\r\n      this.url.path = this.base.path.slice();\r\n      this.url.query = this.base.query;\r\n    } else if (c === 63) {\r\n      this.url.host = this.base.host;\r\n      this.url.path = this.base.path.slice();\r\n      this.url.query = \"\";\r\n      this.state = \"query\";\r\n    } else if (c === 35) {\r\n      this.url.host = this.base.host;\r\n      this.url.path = this.base.path.slice();\r\n      this.url.query = this.base.query;\r\n      this.url.fragment = \"\";\r\n      this.state = \"fragment\";\r\n    } else {\r\n      if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n          !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n          (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n           !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n        this.url.host = this.base.host;\r\n        this.url.path = this.base.path.slice();\r\n        shortenPath(this.url);\r\n      } else {\r\n        this.parseError = true;\r\n      }\r\n\r\n      this.state = \"path\";\r\n      --this.pointer;\r\n    }\r\n  } else {\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n  if (c === 47 || c === 92) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"file host\";\r\n  } else {\r\n    if (this.base !== null && this.base.scheme === \"file\") {\r\n      if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n        this.url.path.push(this.base.path[0]);\r\n      } else {\r\n        this.url.host = this.base.host;\r\n      }\r\n    }\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n  if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n    --this.pointer;\r\n    if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n      this.parseError = true;\r\n      this.state = \"path\";\r\n    } else if (this.buffer === \"\") {\r\n      this.url.host = \"\";\r\n      if (this.stateOverride) {\r\n        return false;\r\n      }\r\n      this.state = \"path start\";\r\n    } else {\r\n      let host = parseHost(this.buffer, isSpecial(this.url));\r\n      if (host === failure) {\r\n        return failure;\r\n      }\r\n      if (host === \"localhost\") {\r\n        host = \"\";\r\n      }\r\n      this.url.host = host;\r\n\r\n      if (this.stateOverride) {\r\n        return false;\r\n      }\r\n\r\n      this.buffer = \"\";\r\n      this.state = \"path start\";\r\n    }\r\n  } else {\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n  if (isSpecial(this.url)) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"path\";\r\n\r\n    if (c !== 47 && c !== 92) {\r\n      --this.pointer;\r\n    }\r\n  } else if (!this.stateOverride && c === 63) {\r\n    this.url.query = \"\";\r\n    this.state = \"query\";\r\n  } else if (!this.stateOverride && c === 35) {\r\n    this.url.fragment = \"\";\r\n    this.state = \"fragment\";\r\n  } else if (c !== undefined) {\r\n    this.state = \"path\";\r\n    if (c !== 47) {\r\n      --this.pointer;\r\n    }\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n  if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n      (!this.stateOverride && (c === 63 || c === 35))) {\r\n    if (isSpecial(this.url) && c === 92) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    if (isDoubleDot(this.buffer)) {\r\n      shortenPath(this.url);\r\n      if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n        this.url.path.push(\"\");\r\n      }\r\n    } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n               !(isSpecial(this.url) && c === 92)) {\r\n      this.url.path.push(\"\");\r\n    } else if (!isSingleDot(this.buffer)) {\r\n      if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n        if (this.url.host !== \"\" && this.url.host !== null) {\r\n          this.parseError = true;\r\n          this.url.host = \"\";\r\n        }\r\n        this.buffer = this.buffer[0] + \":\";\r\n      }\r\n      this.url.path.push(this.buffer);\r\n    }\r\n    this.buffer = \"\";\r\n    if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n      while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n        this.parseError = true;\r\n        this.url.path.shift();\r\n      }\r\n    }\r\n    if (c === 63) {\r\n      this.url.query = \"\";\r\n      this.state = \"query\";\r\n    }\r\n    if (c === 35) {\r\n      this.url.fragment = \"\";\r\n      this.state = \"fragment\";\r\n    }\r\n  } else {\r\n    // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n    if (c === 37 &&\r\n      (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n        !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n  if (c === 63) {\r\n    this.url.query = \"\";\r\n    this.state = \"query\";\r\n  } else if (c === 35) {\r\n    this.url.fragment = \"\";\r\n    this.state = \"fragment\";\r\n  } else {\r\n    // TODO: Add: not a URL code point\r\n    if (!isNaN(c) && c !== 37) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    if (c === 37 &&\r\n        (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n         !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    if (!isNaN(c)) {\r\n      this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n    }\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n  if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n    if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n      this.encodingOverride = \"utf-8\";\r\n    }\r\n\r\n    const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n    for (let i = 0; i < buffer.length; ++i) {\r\n      if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n          buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n        this.url.query += percentEncode(buffer[i]);\r\n      } else {\r\n        this.url.query += String.fromCodePoint(buffer[i]);\r\n      }\r\n    }\r\n\r\n    this.buffer = \"\";\r\n    if (c === 35) {\r\n      this.url.fragment = \"\";\r\n      this.state = \"fragment\";\r\n    }\r\n  } else {\r\n    // TODO: If c is not a URL code point and not \"%\", parse error.\r\n    if (c === 37 &&\r\n      (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n        !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n  if (isNaN(c)) { // do nothing\r\n  } else if (c === 0x0) {\r\n    this.parseError = true;\r\n  } else {\r\n    // TODO: If c is not a URL code point and not \"%\", parse error.\r\n    if (c === 37 &&\r\n      (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n        !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n  let output = url.scheme + \":\";\r\n  if (url.host !== null) {\r\n    output += \"//\";\r\n\r\n    if (url.username !== \"\" || url.password !== \"\") {\r\n      output += url.username;\r\n      if (url.password !== \"\") {\r\n        output += \":\" + url.password;\r\n      }\r\n      output += \"@\";\r\n    }\r\n\r\n    output += serializeHost(url.host);\r\n\r\n    if (url.port !== null) {\r\n      output += \":\" + url.port;\r\n    }\r\n  } else if (url.host === null && url.scheme === \"file\") {\r\n    output += \"//\";\r\n  }\r\n\r\n  if (url.cannotBeABaseURL) {\r\n    output += url.path[0];\r\n  } else {\r\n    for (const string of url.path) {\r\n      output += \"/\" + string;\r\n    }\r\n  }\r\n\r\n  if (url.query !== null) {\r\n    output += \"?\" + url.query;\r\n  }\r\n\r\n  if (!excludeFragment && url.fragment !== null) {\r\n    output += \"#\" + url.fragment;\r\n  }\r\n\r\n  return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n  let result = tuple.scheme + \"://\";\r\n  result += serializeHost(tuple.host);\r\n\r\n  if (tuple.port !== null) {\r\n    result += \":\" + tuple.port;\r\n  }\r\n\r\n  return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n  // https://url.spec.whatwg.org/#concept-url-origin\r\n  switch (url.scheme) {\r\n    case \"blob\":\r\n      try {\r\n        return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n      } catch (e) {\r\n        // serializing an opaque origin returns \"null\"\r\n        return \"null\";\r\n      }\r\n    case \"ftp\":\r\n    case \"gopher\":\r\n    case \"http\":\r\n    case \"https\":\r\n    case \"ws\":\r\n    case \"wss\":\r\n      return serializeOrigin({\r\n        scheme: url.scheme,\r\n        host: url.host,\r\n        port: url.port\r\n      });\r\n    case \"file\":\r\n      // spec says \"exercise to the reader\", chrome says \"file://\"\r\n      return \"file://\";\r\n    default:\r\n      // serializing an opaque origin returns \"null\"\r\n      return \"null\";\r\n  }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n  if (options === undefined) {\r\n    options = {};\r\n  }\r\n\r\n  const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n  if (usm.failure) {\r\n    return \"failure\";\r\n  }\r\n\r\n  return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n  url.username = \"\";\r\n  const decoded = punycode.ucs2.decode(username);\r\n  for (let i = 0; i < decoded.length; ++i) {\r\n    url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n  }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n  url.password = \"\";\r\n  const decoded = punycode.ucs2.decode(password);\r\n  for (let i = 0; i < decoded.length; ++i) {\r\n    url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n  }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n  return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n  if (options === undefined) {\r\n    options = {};\r\n  }\r\n\r\n  // We don't handle blobs, so this just delegates:\r\n  return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n", "\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n  constructor(constructorArgs) {\n    const url = constructorArgs[0];\n    const base = constructorArgs[1];\n\n    let parsedBase = null;\n    if (base !== undefined) {\n      parsedBase = usm.basicURLParse(base);\n      if (parsedBase === \"failure\") {\n        throw new TypeError(\"Invalid base URL\");\n      }\n    }\n\n    const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n    if (parsedURL === \"failure\") {\n      throw new TypeError(\"Invalid URL\");\n    }\n\n    this._url = parsedURL;\n\n    // TODO: query stuff\n  }\n\n  get href() {\n    return usm.serializeURL(this._url);\n  }\n\n  set href(v) {\n    const parsedURL = usm.basicURLParse(v);\n    if (parsedURL === \"failure\") {\n      throw new TypeError(\"Invalid URL\");\n    }\n\n    this._url = parsedURL;\n  }\n\n  get origin() {\n    return usm.serializeURLOrigin(this._url);\n  }\n\n  get protocol() {\n    return this._url.scheme + \":\";\n  }\n\n  set protocol(v) {\n    usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n  }\n\n  get username() {\n    return this._url.username;\n  }\n\n  set username(v) {\n    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n      return;\n    }\n\n    usm.setTheUsername(this._url, v);\n  }\n\n  get password() {\n    return this._url.password;\n  }\n\n  set password(v) {\n    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n      return;\n    }\n\n    usm.setThePassword(this._url, v);\n  }\n\n  get host() {\n    const url = this._url;\n\n    if (url.host === null) {\n      return \"\";\n    }\n\n    if (url.port === null) {\n      return usm.serializeHost(url.host);\n    }\n\n    return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n  }\n\n  set host(v) {\n    if (this._url.cannotBeABaseURL) {\n      return;\n    }\n\n    usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n  }\n\n  get hostname() {\n    if (this._url.host === null) {\n      return \"\";\n    }\n\n    return usm.serializeHost(this._url.host);\n  }\n\n  set hostname(v) {\n    if (this._url.cannotBeABaseURL) {\n      return;\n    }\n\n    usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n  }\n\n  get port() {\n    if (this._url.port === null) {\n      return \"\";\n    }\n\n    return usm.serializeInteger(this._url.port);\n  }\n\n  set port(v) {\n    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n      return;\n    }\n\n    if (v === \"\") {\n      this._url.port = null;\n    } else {\n      usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n    }\n  }\n\n  get pathname() {\n    if (this._url.cannotBeABaseURL) {\n      return this._url.path[0];\n    }\n\n    if (this._url.path.length === 0) {\n      return \"\";\n    }\n\n    return \"/\" + this._url.path.join(\"/\");\n  }\n\n  set pathname(v) {\n    if (this._url.cannotBeABaseURL) {\n      return;\n    }\n\n    this._url.path = [];\n    usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n  }\n\n  get search() {\n    if (this._url.query === null || this._url.query === \"\") {\n      return \"\";\n    }\n\n    return \"?\" + this._url.query;\n  }\n\n  set search(v) {\n    // TODO: query stuff\n\n    const url = this._url;\n\n    if (v === \"\") {\n      url.query = null;\n      return;\n    }\n\n    const input = v[0] === \"?\" ? v.substring(1) : v;\n    url.query = \"\";\n    usm.basicURLParse(input, { url, stateOverride: \"query\" });\n  }\n\n  get hash() {\n    if (this._url.fragment === null || this._url.fragment === \"\") {\n      return \"\";\n    }\n\n    return \"#\" + this._url.fragment;\n  }\n\n  set hash(v) {\n    if (v === \"\") {\n      this._url.fragment = null;\n      return;\n    }\n\n    const input = v[0] === \"#\" ? v.substring(1) : v;\n    this._url.fragment = \"\";\n    usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n  }\n\n  toJSON() {\n    return this.href;\n  }\n};\n", "\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n  if (!this || this[impl] || !(this instanceof URL)) {\n    throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n  }\n  if (arguments.length < 1) {\n    throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n  }\n  const args = [];\n  for (let i = 0; i < arguments.length && i < 2; ++i) {\n    args[i] = arguments[i];\n  }\n  args[0] = conversions[\"USVString\"](args[0]);\n  if (args[1] !== undefined) {\n  args[1] = conversions[\"USVString\"](args[1]);\n  }\n\n  module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n  if (!this || !module.exports.is(this)) {\n    throw new TypeError(\"Illegal invocation\");\n  }\n  const args = [];\n  for (let i = 0; i < arguments.length && i < 0; ++i) {\n    args[i] = arguments[i];\n  }\n  return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n  get() {\n    return this[impl].href;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].href = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nURL.prototype.toString = function () {\n  if (!this || !module.exports.is(this)) {\n    throw new TypeError(\"Illegal invocation\");\n  }\n  return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n  get() {\n    return this[impl].origin;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n  get() {\n    return this[impl].protocol;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].protocol = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n  get() {\n    return this[impl].username;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].username = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n  get() {\n    return this[impl].password;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].password = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n  get() {\n    return this[impl].host;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].host = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n  get() {\n    return this[impl].hostname;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].hostname = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n  get() {\n    return this[impl].port;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].port = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n  get() {\n    return this[impl].pathname;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].pathname = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n  get() {\n    return this[impl].search;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].search = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n  get() {\n    return this[impl].hash;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].hash = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\n\nmodule.exports = {\n  is(obj) {\n    return !!obj && obj[impl] instanceof Impl.implementation;\n  },\n  create(constructorArgs, privateData) {\n    let obj = Object.create(URL.prototype);\n    this.setup(obj, constructorArgs, privateData);\n    return obj;\n  },\n  setup(obj, constructorArgs, privateData) {\n    if (!privateData) privateData = {};\n    privateData.wrapper = obj;\n\n    obj[impl] = new Impl.implementation(constructorArgs, privateData);\n    obj[impl][utils.wrapperSymbol] = obj;\n  },\n  interface: URL,\n  expose: {\n    Window: { URL: URL },\n    Worker: { URL: URL }\n  }\n};\n\n", "\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param   String      message      Error message for human\n * @param   String      type         Error type for machine\n * @param   String      systemError  For Node.js system error\n * @return  FetchError\n */\nfunction FetchError(message, type, systemError) {\n  Error.call(this, message);\n\n  this.message = message;\n  this.type = type;\n\n  // when err.type is `system`, err.code contains system error code\n  if (systemError) {\n    this.code = this.errno = systemError.code;\n  }\n\n  // hide custom error implementation details from end-users\n  Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t    _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n  * Decode response as ArrayBuffer\n  *\n  * @return  Promise\n  */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n  * Return raw response as Blob\n  *\n  * @return Promise\n  */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n  * Decode response as json\n  *\n  * @return  Promise\n  */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n  * Decode response as text\n  *\n  * @return  Promise\n  */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n  * Decode response as buffer (non-spec api)\n  *\n  * @return  Promise\n  */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n  * Decode response as text, while automatically detecting the encoding and\n  * trying to decode to UTF-8 (non-spec api)\n  *\n  * @return  Promise\n  */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return  Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param   Buffer  buffer    Incoming buffer\n * @param   String  encoding  Target encoding\n * @return  String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param   Object  obj     Object to detect by type or brand\n * @return  String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param  {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param   Mixed  instance  Response or Request instance\n * @return  Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param   Mixed  instance  Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param   Body    instance   Instance of Body\n * @return  Number?            Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param   Body    instance   Instance of Body\n * @return  Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param   String  name  Header name\n * @return  String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n  * Headers class\n  *\n  * @param   Object  headers  Response headers\n  * @return  Void\n  */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n  * Return combined header value given name\n  *\n  * @param   String  name  Header name\n  * @return  Mixed\n  */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n  * Iterate over all headers\n  *\n  * @param   Function  callback  Executed for each item with parameters (value, name, thisArg)\n  * @param   Boolean   thisArg   `this` context for callback function\n  * @return  Void\n  */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t      value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n  * Overwrite header values given name\n  *\n  * @param   String  name   Header name\n  * @param   String  value  Header value\n  * @return  Void\n  */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n  * Append a value onto existing header\n  *\n  * @param   String  name   Header name\n  * @param   String  value  Header value\n  * @return  Void\n  */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n  * Check for header name existence\n  *\n  * @param   String   name  Header name\n  * @return  Boolean\n  */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n  * Delete all header values given name\n  *\n  * @param   String  name  Header name\n  * @return  Void\n  */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n  * Return raw headers (non-spec api)\n  *\n  * @return  Object\n  */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n  * Get an iterator on keys.\n  *\n  * @return  Iterator\n  */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n  * Get an iterator on values.\n  *\n  * @return  Iterator\n  */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n  * Get an iterator on entries.\n  *\n  * This is the default iterator of the Headers object.\n  *\n  * @return  Iterator\n  */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t      kind = _INTERNAL.kind,\n\t\t      index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param   Headers  headers\n * @return  Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param   Object  obj  Object of headers\n * @return  Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n  * Convenience property representing if the request ended normally\n  */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n  * Clone this response\n  *\n  * @return  Response\n  */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param  {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param   Mixed   input\n * @return  Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param   Mixed   input  Url or Request instance\n * @param   Object  init   Custom options\n * @return  Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n  * Clone this request\n  *\n  * @return  Request\n  */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param   Request  A Request instance\n * @return  Object   The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param   String      message      Error message for human\n * @return  AbortError\n */\nfunction AbortError(message) {\n  Error.call(this, message);\n\n  this.type = 'aborted';\n  this.message = message;\n\n  // hide custom error implementation details from end-users\n  Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param   Mixed    url   Absolute url or Request instance\n * @param   Object   opts  Fetch options\n * @return  Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param   Number   code  Status code\n * @return  Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\nexports.AbortError = AbortError;\n", "const nodeFetch = require('node-fetch')\nconst realFetch = nodeFetch.default || nodeFetch\n\nconst fetch = function (url, options) {\n  // Support schemaless URIs on the server for parity with the browser.\n  // Ex: //github.com/ -> https://github.com/\n  if (/^\\/\\//.test(url)) {\n    url = 'https:' + url\n  }\n  return realFetch.call(this, url, options)\n}\n\nfetch.ponyfill = true\n\nmodule.exports = exports = fetch\nexports.fetch = fetch\nexports.Headers = nodeFetch.Headers\nexports.Request = nodeFetch.Request\nexports.Response = nodeFetch.Response\n\n// Needed for TypeScript consumers without esModuleInterop.\nexports.default = fetch\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJSON = void 0;\nfunction isJSON(contentTypeHeader) {\n    if (contentTypeHeader) {\n        const mediaType = parseContentType(contentTypeHeader);\n        if (!mediaType) {\n            return false;\n        }\n        if (mediaType.subtype === \"json\") {\n            return true;\n        }\n        if (mediaType.suffix === \"json\") {\n            return true;\n        }\n        if (mediaType.suffix && /\\bjson\\b/i.test(mediaType.suffix)) {\n            return true;\n        }\n        if (mediaType.subtype && /\\bjson\\b/i.test(mediaType.subtype)) {\n            return true;\n        }\n    }\n    return false;\n}\nexports.isJSON = isJSON;\n/**\n * RegExp to match type in RFC 6838 with an optional trailing `;` because some Apple APIs returns one...\n *\n * type-name = restricted-name\n * subtype-name = restricted-name\n * restricted-name = restricted-name-first *126restricted-name-chars\n * restricted-name-first  = ALPHA / DIGIT\n * restricted-name-chars  = ALPHA / DIGIT / \"!\" / \"#\" /\n *                          \"$\" / \"&\" / \"-\" / \"^\" / \"_\"\n * restricted-name-chars =/ \".\" ; Characters before first dot always\n *                              ; specify a facet name\n * restricted-name-chars =/ \"+\" ; Characters after last plus always\n *                              ; specify a structured syntax suffix\n * ALPHA =  %x41-5A / %x61-7A   ; A-Z / a-z\n * DIGIT =  %x30-39             ; 0-9\n */\nconst MEDIA_TYPE_REGEXP = /^([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126});?$/;\nfunction parseContentType(header) {\n    const headerDelimitationindex = header.indexOf(\";\");\n    const contentType = headerDelimitationindex !== -1 ? header.slice(0, headerDelimitationindex).trim() : header.trim();\n    const match = MEDIA_TYPE_REGEXP.exec(contentType.toLowerCase().toLowerCase());\n    if (!match) {\n        return;\n    }\n    const type = match[1];\n    let subtype = match[2];\n    let suffix;\n    // suffix after last +\n    const index = subtype.lastIndexOf(\"+\");\n    if (index !== -1) {\n        suffix = subtype.substring(index + 1);\n        subtype = subtype.substring(0, index);\n    }\n    return { type, subtype, suffix };\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFetch = void 0;\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst cross_fetch_1 = require(\"cross-fetch\");\nconst fetch_utils_1 = require(\"./fetch-utils\");\nconst helpers_1 = require(\"./helpers\");\nasync function defaultParsing(response) {\n    if (!response.ok) {\n        throw new Error(response.statusText);\n    }\n    const contentTypeHeader = response.headers.get(\"content-type\");\n    if (contentTypeHeader && (0, fetch_utils_1.isJSON)(contentTypeHeader)) {\n        return await response.json();\n    }\n    return await response.text();\n}\nfunction defaultMapping(result) {\n    return { data: result, hasMore: false };\n}\nfunction useFetch(url, options) {\n    const { parseResponse, mapResult, initialData, execute, keepPreviousData, onError, onData, onWillExecute, failureToastOptions, ...fetchOptions } = options || {};\n    const useCachedPromiseOptions = {\n        initialData,\n        execute,\n        keepPreviousData,\n        onError,\n        onData,\n        onWillExecute,\n        failureToastOptions,\n    };\n    const parseResponseRef = (0, useLatest_1.useLatest)(parseResponse || defaultParsing);\n    const mapResultRef = (0, useLatest_1.useLatest)(mapResult || defaultMapping);\n    const urlRef = (0, react_1.useRef)();\n    const firstPageUrlRef = (0, react_1.useRef)();\n    const firstPageUrl = typeof url === \"function\" ? url({ page: 0 }) : undefined;\n    /**\n     * When paginating, `url` is a `PaginatedRequestInfo`, so we only want to update the ref when the `firstPageUrl` changes.\n     * When not paginating, `url` is a `RequestInfo`, so we want to update the ref whenever `url` changes.\n     */\n    if (!urlRef.current || typeof firstPageUrlRef.current === \"undefined\" || firstPageUrlRef.current !== firstPageUrl) {\n        urlRef.current = url;\n    }\n    firstPageUrlRef.current = firstPageUrl;\n    const abortable = (0, react_1.useRef)();\n    const paginatedFn = (0, react_1.useCallback)((url, options) => async (pagination) => {\n        const res = await (0, cross_fetch_1.fetch)(url(pagination), { signal: abortable.current?.signal, ...options });\n        const parsed = (await parseResponseRef.current(res));\n        return mapResultRef.current?.(parsed);\n    }, [parseResponseRef, mapResultRef]);\n    const fn = (0, react_1.useCallback)(async (url, options) => {\n        const res = await (0, cross_fetch_1.fetch)(url, { signal: abortable.current?.signal, ...options });\n        const parsed = (await parseResponseRef.current(res));\n        const mapped = mapResultRef.current(parsed);\n        return mapped?.data;\n    }, [parseResponseRef, mapResultRef]);\n    const promise = (0, react_1.useMemo)(() => {\n        if (firstPageUrlRef.current) {\n            return paginatedFn;\n        }\n        return fn;\n    }, [firstPageUrlRef, fn, paginatedFn]);\n    // @ts-expect-error lastItem can't be inferred properly\n    return (0, useCachedPromise_1.useCachedPromise)(promise, [urlRef.current, fetchOptions], {\n        ...useCachedPromiseOptions,\n        internal_cacheKeySuffix: firstPageUrlRef.current + (0, helpers_1.hash)(mapResultRef.current) + (0, helpers_1.hash)(parseResponseRef.current),\n        abortable,\n    });\n}\nexports.useFetch = useFetch;\n", "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems.  Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL.  It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n  signals.push(\n    'SIGALRM',\n    'SIGABRT',\n    'SIGVTALRM',\n    'SIGXCPU',\n    'SIGXFSZ',\n    'SIGUSR2',\n    'SIGTRAP',\n    'SIGSYS',\n    'SIGQUIT',\n    'SIGIOT'\n    // should detect profiler and enable/disable accordingly.\n    // see #21\n    // 'SIGPROF'\n  )\n}\n\nif (process.platform === 'linux') {\n  signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n", "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n  reallyExit: (code?: number | undefined | null) => any\n  emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n  !!process &&\n  typeof process === 'object' &&\n  typeof process.removeListener === 'function' &&\n  typeof process.emit === 'function' &&\n  typeof process.reallyExit === 'function' &&\n  typeof process.listeners === 'function' &&\n  typeof process.kill === 'function' &&\n  typeof process.pid === 'number' &&\n  typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n  code: number | null | undefined,\n  signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n  emitted: Emitted = {\n    afterExit: false,\n    exit: false,\n  }\n\n  listeners: Listeners = {\n    afterExit: [],\n    exit: [],\n  }\n\n  count: number = 0\n  id: number = Math.random()\n\n  constructor() {\n    if (global[kExitEmitter]) {\n      return global[kExitEmitter]\n    }\n    ObjectDefineProperty(global, kExitEmitter, {\n      value: this,\n      writable: false,\n      enumerable: false,\n      configurable: false,\n    })\n  }\n\n  on(ev: ExitEvent, fn: Handler) {\n    this.listeners[ev].push(fn)\n  }\n\n  removeListener(ev: ExitEvent, fn: Handler) {\n    const list = this.listeners[ev]\n    const i = list.indexOf(fn)\n    /* c8 ignore start */\n    if (i === -1) {\n      return\n    }\n    /* c8 ignore stop */\n    if (i === 0 && list.length === 1) {\n      list.length = 0\n    } else {\n      list.splice(i, 1)\n    }\n  }\n\n  emit(\n    ev: ExitEvent,\n    code: number | null | undefined,\n    signal: NodeJS.Signals | null\n  ): boolean {\n    if (this.emitted[ev]) {\n      return false\n    }\n    this.emitted[ev] = true\n    let ret: boolean = false\n    for (const fn of this.listeners[ev]) {\n      ret = fn(code, signal) === true || ret\n    }\n    if (ev === 'exit') {\n      ret = this.emit('afterExit', code, signal) || ret\n    }\n    return ret\n  }\n}\n\nabstract class SignalExitBase {\n  abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n  abstract load(): void\n  abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n  return {\n    onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n      return handler.onExit(cb, opts)\n    },\n    load() {\n      return handler.load()\n    },\n    unload() {\n      return handler.unload()\n    },\n  }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n  onExit() {\n    return () => {}\n  }\n  load() {}\n  unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n  // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n  // so use a supported signal instead\n  /* c8 ignore start */\n  #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n  /* c8 ignore stop */\n  #emitter = new Emitter()\n  #process: ProcessRE\n  #originalProcessEmit: ProcessRE['emit']\n  #originalProcessReallyExit: ProcessRE['reallyExit']\n\n  #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n  #loaded: boolean = false\n\n  constructor(process: ProcessRE) {\n    super()\n    this.#process = process\n    // { <signal>: <listener fn>, ... }\n    this.#sigListeners = {}\n    for (const sig of signals) {\n      this.#sigListeners[sig] = () => {\n        // If there are no other listeners, an exit is coming!\n        // Simplest way: remove us and then re-send the signal.\n        // We know that this will kill the process, so we can\n        // safely emit now.\n        const listeners = this.#process.listeners(sig)\n        let { count } = this.#emitter\n        // This is a workaround for the fact that signal-exit v3 and signal\n        // exit v4 are not aware of each other, and each will attempt to let\n        // the other handle it, so neither of them do. To correct this, we\n        // detect if we're the only handler *except* for previous versions\n        // of signal-exit, and increment by the count of listeners it has\n        // created.\n        /* c8 ignore start */\n        const p = process as unknown as {\n          __signal_exit_emitter__?: { count: number }\n        }\n        if (\n          typeof p.__signal_exit_emitter__ === 'object' &&\n          typeof p.__signal_exit_emitter__.count === 'number'\n        ) {\n          count += p.__signal_exit_emitter__.count\n        }\n        /* c8 ignore stop */\n        if (listeners.length === count) {\n          this.unload()\n          const ret = this.#emitter.emit('exit', null, sig)\n          /* c8 ignore start */\n          const s = sig === 'SIGHUP' ? this.#hupSig : sig\n          if (!ret) process.kill(process.pid, s)\n          /* c8 ignore stop */\n        }\n      }\n    }\n\n    this.#originalProcessReallyExit = process.reallyExit\n    this.#originalProcessEmit = process.emit\n  }\n\n  onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n    /* c8 ignore start */\n    if (!processOk(this.#process)) {\n      return () => {}\n    }\n    /* c8 ignore stop */\n\n    if (this.#loaded === false) {\n      this.load()\n    }\n\n    const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n    this.#emitter.on(ev, cb)\n    return () => {\n      this.#emitter.removeListener(ev, cb)\n      if (\n        this.#emitter.listeners['exit'].length === 0 &&\n        this.#emitter.listeners['afterExit'].length === 0\n      ) {\n        this.unload()\n      }\n    }\n  }\n\n  load() {\n    if (this.#loaded) {\n      return\n    }\n    this.#loaded = true\n\n    // This is the number of onSignalExit's that are in play.\n    // It's important so that we can count the correct number of\n    // listeners on signals, and don't wait for the other one to\n    // handle it instead of us.\n    this.#emitter.count += 1\n\n    for (const sig of signals) {\n      try {\n        const fn = this.#sigListeners[sig]\n        if (fn) this.#process.on(sig, fn)\n      } catch (_) {}\n    }\n\n    this.#process.emit = (ev: string, ...a: any[]) => {\n      return this.#processEmit(ev, ...a)\n    }\n    this.#process.reallyExit = (code?: number | null | undefined) => {\n      return this.#processReallyExit(code)\n    }\n  }\n\n  unload() {\n    if (!this.#loaded) {\n      return\n    }\n    this.#loaded = false\n\n    signals.forEach(sig => {\n      const listener = this.#sigListeners[sig]\n      /* c8 ignore start */\n      if (!listener) {\n        throw new Error('Listener not defined for signal: ' + sig)\n      }\n      /* c8 ignore stop */\n      try {\n        this.#process.removeListener(sig, listener)\n        /* c8 ignore start */\n      } catch (_) {}\n      /* c8 ignore stop */\n    })\n    this.#process.emit = this.#originalProcessEmit\n    this.#process.reallyExit = this.#originalProcessReallyExit\n    this.#emitter.count -= 1\n  }\n\n  #processReallyExit(code?: number | null | undefined) {\n    /* c8 ignore start */\n    if (!processOk(this.#process)) {\n      return 0\n    }\n    this.#process.exitCode = code || 0\n    /* c8 ignore stop */\n\n    this.#emitter.emit('exit', this.#process.exitCode, null)\n    return this.#originalProcessReallyExit.call(\n      this.#process,\n      this.#process.exitCode\n    )\n  }\n\n  #processEmit(ev: string, ...args: any[]): any {\n    const og = this.#originalProcessEmit\n    if (ev === 'exit' && processOk(this.#process)) {\n      if (typeof args[0] === 'number') {\n        this.#process.exitCode = args[0]\n        /* c8 ignore start */\n      }\n      /* c8 ignore start */\n      const ret = og.call(this.#process, ev, ...args)\n      /* c8 ignore start */\n      this.#emitter.emit('exit', this.#process.exitCode, null)\n      /* c8 ignore stop */\n      return ret\n    } else {\n      return og.call(this.#process, ev, ...args)\n    }\n  }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n  /**\n   * Called when the process is exiting, whether via signal, explicit\n   * exit, or running out of stuff to do.\n   *\n   * If the global process object is not suitable for instrumentation,\n   * then this will be a no-op.\n   *\n   * Returns a function that may be used to unload signal-exit.\n   */\n  onExit,\n\n  /**\n   * Load the listeners.  Likely you never need to call this, unless\n   * doing a rather deep integration with signal-exit functionality.\n   * Mostly exposed for the benefit of testing.\n   *\n   * @internal\n   */\n  load,\n\n  /**\n   * Unload the listeners.  Likely you never need to call this, unless\n   * doing a rather deep integration with signal-exit functionality.\n   * Mostly exposed for the benefit of testing.\n   *\n   * @internal\n   */\n  unload,\n} = signalExitWrap(\n  processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultParsing = exports.handleOutput = exports.getSpawnedResult = exports.getSpawnedPromise = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_stream_1 = __importDefault(require(\"node:stream\"));\nconst node_util_1 = require(\"node:util\");\nconst signal_exit_1 = require(\"signal-exit\");\nfunction getSpawnedPromise(spawned, { timeout } = {}) {\n    const spawnedPromise = new Promise((resolve, reject) => {\n        spawned.on(\"exit\", (exitCode, signal) => {\n            resolve({ exitCode, signal, timedOut: false });\n        });\n        spawned.on(\"error\", (error) => {\n            reject(error);\n        });\n        if (spawned.stdin) {\n            spawned.stdin.on(\"error\", (error) => {\n                reject(error);\n            });\n        }\n    });\n    if (timeout === 0 || timeout === undefined) {\n        return spawnedPromise;\n    }\n    let timeoutId;\n    const timeoutPromise = new Promise((_resolve, reject) => {\n        timeoutId = setTimeout(() => {\n            spawned.kill(\"SIGTERM\");\n            reject(Object.assign(new Error(\"Timed out\"), { timedOut: true, signal: \"SIGTERM\" }));\n        }, timeout);\n    });\n    const safeSpawnedPromise = spawnedPromise.finally(() => {\n        clearTimeout(timeoutId);\n    });\n    const removeExitHandler = (0, signal_exit_1.onExit)(() => {\n        spawned.kill();\n    });\n    return Promise.race([timeoutPromise, safeSpawnedPromise]).finally(() => removeExitHandler());\n}\nexports.getSpawnedPromise = getSpawnedPromise;\nclass MaxBufferError extends Error {\n    constructor() {\n        super(\"The output is too big\");\n        this.name = \"MaxBufferError\";\n    }\n}\nconst streamPipelinePromisified = (0, node_util_1.promisify)(node_stream_1.default.pipeline);\nfunction bufferStream(options) {\n    const { encoding } = options;\n    const isBuffer = encoding === \"buffer\";\n    // @ts-expect-error missing the methods we are adding below\n    const stream = new node_stream_1.default.PassThrough({ objectMode: false });\n    if (encoding && encoding !== \"buffer\") {\n        stream.setEncoding(encoding);\n    }\n    let length = 0;\n    const chunks = [];\n    stream.on(\"data\", (chunk) => {\n        chunks.push(chunk);\n        length += chunk.length;\n    });\n    stream.getBufferedValue = () => {\n        return (isBuffer ? Buffer.concat(chunks, length) : chunks.join(\"\"));\n    };\n    stream.getBufferedLength = () => length;\n    return stream;\n}\nasync function getStream(inputStream, options) {\n    const stream = bufferStream(options);\n    await new Promise((resolve, reject) => {\n        const rejectPromise = (error) => {\n            // Don't retrieve an oversized buffer.\n            if (error && stream.getBufferedLength() <= node_buffer_1.constants.MAX_LENGTH) {\n                error.bufferedData = stream.getBufferedValue();\n            }\n            reject(error);\n        };\n        (async () => {\n            try {\n                await streamPipelinePromisified(inputStream, stream);\n                resolve();\n            }\n            catch (error) {\n                rejectPromise(error);\n            }\n        })();\n        stream.on(\"data\", () => {\n            // 80mb\n            if (stream.getBufferedLength() > 1000 * 1000 * 80) {\n                rejectPromise(new MaxBufferError());\n            }\n        });\n    });\n    return stream.getBufferedValue();\n}\n// On failure, `result.stdout|stderr` should contain the currently buffered stream\nasync function getBufferedData(stream, streamPromise) {\n    stream.destroy();\n    try {\n        return await streamPromise;\n    }\n    catch (error) {\n        return error.bufferedData;\n    }\n}\nasync function getSpawnedResult({ stdout, stderr }, { encoding }, processDone) {\n    const stdoutPromise = getStream(stdout, { encoding });\n    const stderrPromise = getStream(stderr, { encoding });\n    try {\n        return await Promise.all([processDone, stdoutPromise, stderrPromise]);\n    }\n    catch (error) {\n        return Promise.all([\n            {\n                error: error,\n                exitCode: null,\n                signal: error.signal,\n                timedOut: error.timedOut || false,\n            },\n            getBufferedData(stdout, stdoutPromise),\n            getBufferedData(stderr, stderrPromise),\n        ]);\n    }\n}\nexports.getSpawnedResult = getSpawnedResult;\nfunction stripFinalNewline(input) {\n    const LF = typeof input === \"string\" ? \"\\n\" : \"\\n\".charCodeAt(0);\n    const CR = typeof input === \"string\" ? \"\\r\" : \"\\r\".charCodeAt(0);\n    if (input[input.length - 1] === LF) {\n        // @ts-expect-error we are doing some nasty stuff here\n        input = input.slice(0, -1);\n    }\n    if (input[input.length - 1] === CR) {\n        // @ts-expect-error we are doing some nasty stuff here\n        input = input.slice(0, -1);\n    }\n    return input;\n}\nfunction handleOutput(options, value) {\n    if (options.stripFinalNewline) {\n        return stripFinalNewline(value);\n    }\n    return value;\n}\nexports.handleOutput = handleOutput;\nconst getErrorPrefix = ({ timedOut, timeout, signal, exitCode, }) => {\n    if (timedOut) {\n        return `timed out after ${timeout} milliseconds`;\n    }\n    if (signal !== undefined && signal !== null) {\n        return `was killed with ${signal}`;\n    }\n    if (exitCode !== undefined && exitCode !== null) {\n        return `failed with exit code ${exitCode}`;\n    }\n    return \"failed\";\n};\nconst makeError = ({ stdout, stderr, error, signal, exitCode, command, timedOut, options, parentError, }) => {\n    const prefix = getErrorPrefix({ timedOut, timeout: options?.timeout, signal, exitCode });\n    const execaMessage = `Command ${prefix}: ${command}`;\n    const shortMessage = error ? `${execaMessage}\\n${error.message}` : execaMessage;\n    const message = [shortMessage, stderr, stdout].filter(Boolean).join(\"\\n\");\n    if (error) {\n        // @ts-expect-error not on Error\n        error.originalMessage = error.message;\n    }\n    else {\n        error = parentError;\n    }\n    error.message = message;\n    // @ts-expect-error not on Error\n    error.shortMessage = shortMessage;\n    // @ts-expect-error not on Error\n    error.command = command;\n    // @ts-expect-error not on Error\n    error.exitCode = exitCode;\n    // @ts-expect-error not on Error\n    error.signal = signal;\n    // @ts-expect-error not on Error\n    error.stdout = stdout;\n    // @ts-expect-error not on Error\n    error.stderr = stderr;\n    if (\"bufferedData\" in error) {\n        delete error[\"bufferedData\"];\n    }\n    return error;\n};\nfunction defaultParsing({ stdout, stderr, error, exitCode, signal, timedOut, command, options, parentError, }) {\n    if (error || exitCode !== 0 || signal !== null) {\n        const returnedError = makeError({\n            error,\n            exitCode,\n            signal,\n            stdout,\n            stderr,\n            command,\n            timedOut,\n            options,\n            parentError,\n        });\n        throw returnedError;\n    }\n    return stdout;\n}\nexports.defaultParsing = defaultParsing;\n", "\"use strict\";\n/*\n * Inspired by Execa\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useExec = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst react_1 = require(\"react\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst exec_utils_1 = require(\"./exec-utils\");\nconst SPACES_REGEXP = / +/g;\nfunction parseCommand(command, args) {\n    if (args) {\n        return [command, ...args];\n    }\n    const tokens = [];\n    for (const token of command.trim().split(SPACES_REGEXP)) {\n        // Allow spaces to be escaped by a backslash if not meant as a delimiter\n        const previousToken = tokens[tokens.length - 1];\n        if (previousToken && previousToken.endsWith(\"\\\\\")) {\n            // Merge previous token with current one\n            tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n        }\n        else {\n            tokens.push(token);\n        }\n    }\n    return tokens;\n}\nfunction useExec(command, optionsOrArgs, options) {\n    const { parseOutput, input, onData, onWillExecute, initialData, execute, keepPreviousData, onError, failureToastOptions, ...execOptions } = Array.isArray(optionsOrArgs) ? options || {} : optionsOrArgs || {};\n    const useCachedPromiseOptions = {\n        initialData,\n        execute,\n        keepPreviousData,\n        onError,\n        onData,\n        onWillExecute,\n        failureToastOptions,\n    };\n    const abortable = (0, react_1.useRef)();\n    const parseOutputRef = (0, useLatest_1.useLatest)(parseOutput || exec_utils_1.defaultParsing);\n    const fn = (0, react_1.useCallback)(async (_command, _args, _options, input) => {\n        const [file, ...args] = parseCommand(_command, _args);\n        const command = [file, ...args].join(\" \");\n        const options = {\n            stripFinalNewline: true,\n            ..._options,\n            timeout: _options?.timeout || 10000,\n            signal: abortable.current?.signal,\n            encoding: _options?.encoding === null ? \"buffer\" : _options?.encoding || \"utf8\",\n            env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\", ...process.env, ..._options?.env },\n        };\n        const spawned = node_child_process_1.default.spawn(file, args, options);\n        const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, options);\n        if (input) {\n            spawned.stdin.end(input);\n        }\n        const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, options, spawnedPromise);\n        const stdout = (0, exec_utils_1.handleOutput)(options, stdoutResult);\n        const stderr = (0, exec_utils_1.handleOutput)(options, stderrResult);\n        return parseOutputRef.current({\n            // @ts-expect-error too many generics, I give up\n            stdout,\n            // @ts-expect-error too many generics, I give up\n            stderr,\n            error,\n            exitCode,\n            signal,\n            timedOut,\n            command,\n            options,\n            parentError: new Error(),\n        });\n    }, [parseOutputRef]);\n    // @ts-expect-error T can't be a Promise so it's actually the same\n    return (0, useCachedPromise_1.useCachedPromise)(fn, [command, Array.isArray(optionsOrArgs) ? optionsOrArgs : [], execOptions, input], {\n        ...useCachedPromiseOptions,\n        abortable,\n    });\n}\nexports.useExec = useExec;\n", "'use strict';\n\nconst {Readable, Writable, Duplex, Transform} = require('stream');\n\nconst none = Symbol.for('object-stream.none');\nconst finalSymbol = Symbol.for('object-stream.final');\nconst manySymbol = Symbol.for('object-stream.many');\n\nconst final = value => ({[finalSymbol]: value});\nconst many = values => ({[manySymbol]: values});\n\nconst isFinal = o => o && typeof o == 'object' && finalSymbol in o;\nconst isMany = o => o && typeof o == 'object' && manySymbol in o;\n\nconst getFinalValue = o => o[finalSymbol];\nconst getManyValues = o => o[manySymbol];\n\nconst runAsyncGenerator = async (gen, stream) => {\n  for (;;) {\n    let data = gen.next();\n    if (data && typeof data.then == 'function') {\n      data = await data;\n    }\n    if (data.done) break;\n    let value = data.value;\n    if (value && typeof value.then == 'function') {\n      value = await value;\n    }\n    Chain.sanitize(value, stream);\n  }\n};\n\nconst wrapFunction = fn =>\n  new Transform({\n    writableObjectMode: true,\n    readableObjectMode: true,\n    transform(chunk, encoding, callback) {\n      try {\n        const result = fn.call(this, chunk, encoding);\n        if (result && typeof result.then == 'function') {\n          // thenable\n          result.then(\n            result => (Chain.sanitize(result, this), callback(null)),\n            error => callback(error)\n          );\n          return;\n        }\n        if (result && typeof result.next == 'function') {\n          // generator\n          runAsyncGenerator(result, this).then(\n            () => callback(null),\n            error => callback(error)\n          );\n          return;\n        }\n        Chain.sanitize(result, this);\n        callback(null);\n      } catch (error) {\n        callback(error);\n      }\n    }\n  });\n\nconst wrapArray = fns =>\n  new Transform({\n    writableObjectMode: true,\n    readableObjectMode: true,\n    transform(chunk, encoding, callback) {\n      try {\n        let value = chunk;\n        for (let i = 0; i < fns.length; ++i) {\n          const result = fns[i].call(this, value, encoding);\n          if (result === Chain.none) {\n            callback(null);\n            return;\n          }\n          if (Chain.isFinal(result)) {\n            value = Chain.getFinalValue(result);\n            break;\n          }\n          value = result;\n        }\n        Chain.sanitize(value, this);\n        callback(null);\n      } catch (error) {\n        callback(error);\n      }\n    }\n  });\n\n// is*NodeStream functions taken from https://github.com/nodejs/node/blob/master/lib/internal/streams/utils.js\nconst isReadableNodeStream = obj =>\n  obj &&\n  typeof obj.pipe === 'function' &&\n  typeof obj.on === 'function' &&\n  (!obj._writableState || (typeof obj._readableState === 'object' ? obj._readableState.readable : null) !== false) && // Duplex\n  (!obj._writableState || obj._readableState); // Writable has .pipe.\n\nconst isWritableNodeStream = obj =>\n  obj &&\n  typeof obj.write === 'function' &&\n  typeof obj.on === 'function' &&\n  (!obj._readableState || (typeof obj._writableState === 'object' ? obj._writableState.writable : null) !== false); // Duplex\n\nconst isDuplexNodeStream = obj =>\n  obj && typeof obj.pipe === 'function' && obj._readableState && typeof obj.on === 'function' && typeof obj.write === 'function';\n\nclass Chain extends Duplex {\n  constructor(fns, options) {\n    super(options || {writableObjectMode: true, readableObjectMode: true});\n\n    if (!(fns instanceof Array) || !fns.length) {\n      throw Error(\"Chain's argument should be a non-empty array.\");\n    }\n\n    this.streams = fns\n      .filter(fn => fn)\n      .map((fn, index, fns) => {\n        if (typeof fn === 'function' || fn instanceof Array) return Chain.convertToTransform(fn);\n        if (isDuplexNodeStream(fn) || (!index && isReadableNodeStream(fn)) || (index === fns.length - 1 && isWritableNodeStream(fn))) {\n          return fn;\n        }\n        throw Error('Arguments should be functions, arrays or streams.');\n      })\n      .filter(s => s);\n    this.input = this.streams[0];\n    this.output = this.streams.reduce((output, stream) => (output && output.pipe(stream)) || stream);\n\n    if (!isWritableNodeStream(this.input)) {\n      this._write = (_1, _2, callback) => callback(null);\n      this._final = callback => callback(null); // unavailable in Node 6\n      this.input.on('end', () => this.end());\n    }\n\n    if (isReadableNodeStream(this.output)) {\n      this.output.on('data', chunk => !this.push(chunk) && this.output.pause());\n      this.output.on('end', () => this.push(null));\n    } else {\n      this._read = () => {}; // nop\n      this.resume();\n      this.output.on('finish', () => this.push(null));\n    }\n\n    // connect events\n    if (!options || !options.skipEvents) {\n      this.streams.forEach(stream => stream.on('error', error => this.emit('error', error)));\n    }\n  }\n  _write(chunk, encoding, callback) {\n    let error = null;\n    try {\n      this.input.write(chunk, encoding, e => callback(e || error));\n    } catch (e) {\n      error = e;\n    }\n  }\n  _final(callback) {\n    let error = null;\n    try {\n      this.input.end(null, null, e => callback(e || error));\n    } catch (e) {\n      error = e;\n    }\n  }\n  _read() {\n    this.output.resume();\n  }\n  static make(fns, options) {\n    return new Chain(fns, options);\n  }\n  static sanitize(result, stream) {\n    if (Chain.isFinal(result)) {\n      result = Chain.getFinalValue(result);\n    } else if (Chain.isMany(result)) {\n      result = Chain.getManyValues(result);\n    }\n    if (result !== undefined && result !== null && result !== Chain.none) {\n      if (result instanceof Array) {\n        result.forEach(value => value !== undefined && value !== null && stream.push(value));\n      } else {\n        stream.push(result);\n      }\n    }\n  }\n  static convertToTransform(fn) {\n    if (typeof fn === 'function') return wrapFunction(fn);\n    if (fn instanceof Array) return fn.length ? wrapArray(fn) : null;\n    return null;\n  }\n}\n\nChain.none = none;\nChain.final = final;\nChain.isFinal = isFinal;\nChain.getFinalValue = getFinalValue;\nChain.many = many;\nChain.isMany = isMany;\nChain.getManyValues = getManyValues;\n\nChain.chain = Chain.make;\nChain.make.Constructor = Chain;\n\nmodule.exports = Chain;\n", "'use strict';\n\nconst {Transform} = require('stream');\nconst {StringDecoder} = require('string_decoder');\n\nclass Utf8Stream extends Transform {\n  constructor(options) {\n    super(Object.assign({}, options, {writableObjectMode: false}));\n    this._buffer = '';\n  }\n\n  _transform(chunk, encoding, callback) {\n    if (typeof chunk == 'string') {\n      this._transform = this._transformString;\n    } else {\n      this._stringDecoder = new StringDecoder();\n      this._transform = this._transformBuffer;\n    }\n    this._transform(chunk, encoding, callback);\n  }\n\n  _transformBuffer(chunk, _, callback) {\n    this._buffer += this._stringDecoder.write(chunk);\n    this._processBuffer(callback);\n  }\n\n  _transformString(chunk, _, callback) {\n    this._buffer += chunk.toString();\n    this._processBuffer(callback);\n  }\n\n  _processBuffer(callback) {\n    if (this._buffer) {\n      this.push(this._buffer, 'utf8');\n      this._buffer = '';\n    }\n    callback(null);\n  }\n\n  _flushInput() {\n    // meant to be called from _flush()\n    if (this._stringDecoder) {\n      this._buffer += this._stringDecoder.end();\n    }\n  }\n\n  _flush(callback) {\n    this._flushInput();\n    this._processBuffer(callback);\n  }\n}\n\nmodule.exports = Utf8Stream;\n", "'use strict';\n\nconst Utf8Stream = require('./utils/Utf8Stream');\n\nconst patterns = {\n  value1: /^(?:[\\\"\\{\\[\\]\\-\\d]|true\\b|false\\b|null\\b|\\s{1,256})/,\n  string: /^(?:[^\\\"\\\\]{1,256}|\\\\[bfnrt\\\"\\\\\\/]|\\\\u[\\da-fA-F]{4}|\\\")/,\n  key1: /^(?:[\\\"\\}]|\\s{1,256})/,\n  colon: /^(?:\\:|\\s{1,256})/,\n  comma: /^(?:[\\,\\]\\}]|\\s{1,256})/,\n  ws: /^\\s{1,256}/,\n  numberStart: /^\\d/,\n  numberDigit: /^\\d{0,256}/,\n  numberFraction: /^[\\.eE]/,\n  numberExponent: /^[eE]/,\n  numberExpSign: /^[-+]/\n};\nconst MAX_PATTERN_SIZE = 16;\n\nlet noSticky = true;\ntry {\n  new RegExp('.', 'y');\n  noSticky = false;\n} catch (e) {\n  // suppress\n}\n\n!noSticky &&\n  Object.keys(patterns).forEach(key => {\n    let src = patterns[key].source.slice(1); // lop off ^\n    if (src.slice(0, 3) === '(?:' && src.slice(-1) === ')') {\n      src = src.slice(3, -1);\n    }\n    patterns[key] = new RegExp(src, 'y');\n  });\n\npatterns.numberFracStart = patterns.numberExpStart = patterns.numberStart;\npatterns.numberFracDigit = patterns.numberExpDigit = patterns.numberDigit;\n\nconst values = {true: true, false: false, null: null},\n  expected = {object: 'objectStop', array: 'arrayStop', '': 'done'};\n\n// long hexadecimal codes: \\uXXXX\nconst fromHex = s => String.fromCharCode(parseInt(s.slice(2), 16));\n\n// short codes: \\b \\f \\n \\r \\t \\\" \\\\ \\/\nconst codes = {b: '\\b', f: '\\f', n: '\\n', r: '\\r', t: '\\t', '\"': '\"', '\\\\': '\\\\', '/': '/'};\n\nclass Parser extends Utf8Stream {\n  static make(options) {\n    return new Parser(options);\n  }\n\n  constructor(options) {\n    super(Object.assign({}, options, {readableObjectMode: true}));\n\n    this._packKeys = this._packStrings = this._packNumbers = this._streamKeys = this._streamStrings = this._streamNumbers = true;\n    if (options) {\n      'packValues' in options && (this._packKeys = this._packStrings = this._packNumbers = options.packValues);\n      'packKeys' in options && (this._packKeys = options.packKeys);\n      'packStrings' in options && (this._packStrings = options.packStrings);\n      'packNumbers' in options && (this._packNumbers = options.packNumbers);\n      'streamValues' in options && (this._streamKeys = this._streamStrings = this._streamNumbers = options.streamValues);\n      'streamKeys' in options && (this._streamKeys = options.streamKeys);\n      'streamStrings' in options && (this._streamStrings = options.streamStrings);\n      'streamNumbers' in options && (this._streamNumbers = options.streamNumbers);\n      this._jsonStreaming = options.jsonStreaming;\n    }\n    !this._packKeys && (this._streamKeys = true);\n    !this._packStrings && (this._streamStrings = true);\n    !this._packNumbers && (this._streamNumbers = true);\n\n    this._done = false;\n    this._expect = this._jsonStreaming ? 'done' : 'value';\n    this._stack = [];\n    this._parent = '';\n    this._open_number = false;\n    this._accumulator = '';\n  }\n\n  _flush(callback) {\n    this._done = true;\n    super._flush(error => {\n      if (error) return callback(error);\n      if (this._open_number) {\n        if (this._streamNumbers) {\n          this.push({name: 'endNumber'});\n        }\n        this._open_number = false;\n        if (this._packNumbers) {\n          this.push({name: 'numberValue', value: this._accumulator});\n          this._accumulator = '';\n        }\n      }\n      callback(null);\n    });\n  }\n\n  _processBuffer(callback) {\n    let match,\n      value,\n      index = 0;\n    main: for (;;) {\n      switch (this._expect) {\n        case 'value1':\n        case 'value':\n          patterns.value1.lastIndex = index;\n          match = patterns.value1.exec(this._buffer);\n          if (!match) {\n            if (this._done || index + MAX_PATTERN_SIZE < this._buffer.length) {\n              if (index < this._buffer.length) return callback(new Error('Parser cannot parse input: expected a value'));\n              return callback(new Error('Parser has expected a value'));\n            }\n            break main; // wait for more input\n          }\n          value = match[0];\n          switch (value) {\n            case '\"':\n              this._streamStrings && this.push({name: 'startString'});\n              this._expect = 'string';\n              break;\n            case '{':\n              this.push({name: 'startObject'});\n              this._stack.push(this._parent);\n              this._parent = 'object';\n              this._expect = 'key1';\n              break;\n            case '[':\n              this.push({name: 'startArray'});\n              this._stack.push(this._parent);\n              this._parent = 'array';\n              this._expect = 'value1';\n              break;\n            case ']':\n              if (this._expect !== 'value1') return callback(new Error(\"Parser cannot parse input: unexpected token ']'\"));\n              if (this._open_number) {\n                this._streamNumbers && this.push({name: 'endNumber'});\n                this._open_number = false;\n                if (this._packNumbers) {\n                  this.push({name: 'numberValue', value: this._accumulator});\n                  this._accumulator = '';\n                }\n              }\n              this.push({name: 'endArray'});\n              this._parent = this._stack.pop();\n              this._expect = expected[this._parent];\n              break;\n            case '-':\n              this._open_number = true;\n              if (this._streamNumbers) {\n                this.push({name: 'startNumber'});\n                this.push({name: 'numberChunk', value: '-'});\n              }\n              this._packNumbers && (this._accumulator = '-');\n              this._expect = 'numberStart';\n              break;\n            case '0':\n              this._open_number = true;\n              if (this._streamNumbers) {\n                this.push({name: 'startNumber'});\n                this.push({name: 'numberChunk', value: '0'});\n              }\n              this._packNumbers && (this._accumulator = '0');\n              this._expect = 'numberFraction';\n              break;\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n              this._open_number = true;\n              if (this._streamNumbers) {\n                this.push({name: 'startNumber'});\n                this.push({name: 'numberChunk', value: value});\n              }\n              this._packNumbers && (this._accumulator = value);\n              this._expect = 'numberDigit';\n              break;\n            case 'true':\n            case 'false':\n            case 'null':\n              if (this._buffer.length - index === value.length && !this._done) break main; // wait for more input\n              this.push({name: value + 'Value', value: values[value]});\n              this._expect = expected[this._parent];\n              break;\n            // default: // ws\n          }\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'keyVal':\n        case 'string':\n          patterns.string.lastIndex = index;\n          match = patterns.string.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length && (this._done || this._buffer.length - index >= 6))\n              return callback(new Error('Parser cannot parse input: escaped characters'));\n            if (this._done) return callback(new Error('Parser has expected a string value'));\n            break main; // wait for more input\n          }\n          value = match[0];\n          if (value === '\"') {\n            if (this._expect === 'keyVal') {\n              this._streamKeys && this.push({name: 'endKey'});\n              if (this._packKeys) {\n                this.push({name: 'keyValue', value: this._accumulator});\n                this._accumulator = '';\n              }\n              this._expect = 'colon';\n            } else {\n              this._streamStrings && this.push({name: 'endString'});\n              if (this._packStrings) {\n                this.push({name: 'stringValue', value: this._accumulator});\n                this._accumulator = '';\n              }\n              this._expect = expected[this._parent];\n            }\n          } else if (value.length > 1 && value.charAt(0) === '\\\\') {\n            const t = value.length == 2 ? codes[value.charAt(1)] : fromHex(value);\n            if (this._expect === 'keyVal' ? this._streamKeys : this._streamStrings) {\n              this.push({name: 'stringChunk', value: t});\n            }\n            if (this._expect === 'keyVal' ? this._packKeys : this._packStrings) {\n              this._accumulator += t;\n            }\n          } else {\n            if (this._expect === 'keyVal' ? this._streamKeys : this._streamStrings) {\n              this.push({name: 'stringChunk', value: value});\n            }\n            if (this._expect === 'keyVal' ? this._packKeys : this._packStrings) {\n              this._accumulator += value;\n            }\n          }\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'key1':\n        case 'key':\n          patterns.key1.lastIndex = index;\n          match = patterns.key1.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) return callback(new Error('Parser cannot parse input: expected an object key'));\n            break main; // wait for more input\n          }\n          value = match[0];\n          if (value === '\"') {\n            this._streamKeys && this.push({name: 'startKey'});\n            this._expect = 'keyVal';\n          } else if (value === '}') {\n            if (this._expect !== 'key1') return callback(new Error(\"Parser cannot parse input: unexpected token '}'\"));\n            this.push({name: 'endObject'});\n            this._parent = this._stack.pop();\n            this._expect = expected[this._parent];\n          }\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'colon':\n          patterns.colon.lastIndex = index;\n          match = patterns.colon.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) return callback(new Error(\"Parser cannot parse input: expected ':'\"));\n            break main; // wait for more input\n          }\n          value = match[0];\n          value === ':' && (this._expect = 'value');\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'arrayStop':\n        case 'objectStop':\n          patterns.comma.lastIndex = index;\n          match = patterns.comma.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) return callback(new Error(\"Parser cannot parse input: expected ','\"));\n            break main; // wait for more input\n          }\n          if (this._open_number) {\n            this._streamNumbers && this.push({name: 'endNumber'});\n            this._open_number = false;\n            if (this._packNumbers) {\n              this.push({name: 'numberValue', value: this._accumulator});\n              this._accumulator = '';\n            }\n          }\n          value = match[0];\n          if (value === ',') {\n            this._expect = this._expect === 'arrayStop' ? 'value' : 'key';\n          } else if (value === '}' || value === ']') {\n            if (value === '}' ? this._expect === 'arrayStop' : this._expect !== 'arrayStop') {\n              return callback(new Error(\"Parser cannot parse input: expected '\" + (this._expect === 'arrayStop' ? ']' : '}') + \"'\"));\n            }\n            this.push({name: value === '}' ? 'endObject' : 'endArray'});\n            this._parent = this._stack.pop();\n            this._expect = expected[this._parent];\n          }\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        // number chunks\n        case 'numberStart': // [0-9]\n          patterns.numberStart.lastIndex = index;\n          match = patterns.numberStart.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) return callback(new Error('Parser cannot parse input: expected a starting digit'));\n            break main; // wait for more input\n          }\n          value = match[0];\n          this._streamNumbers && this.push({name: 'numberChunk', value: value});\n          this._packNumbers && (this._accumulator += value);\n          this._expect = value === '0' ? 'numberFraction' : 'numberDigit';\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'numberDigit': // [0-9]*\n          patterns.numberDigit.lastIndex = index;\n          match = patterns.numberDigit.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) return callback(new Error('Parser cannot parse input: expected a digit'));\n            break main; // wait for more input\n          }\n          value = match[0];\n          if (value) {\n            this._streamNumbers && this.push({name: 'numberChunk', value: value});\n            this._packNumbers && (this._accumulator += value);\n            if (noSticky) {\n              this._buffer = this._buffer.slice(value.length);\n            } else {\n              index += value.length;\n            }\n          } else {\n            if (index < this._buffer.length) {\n              this._expect = 'numberFraction';\n              break;\n            }\n            if (this._done) {\n              this._expect = expected[this._parent];\n              break;\n            }\n            break main; // wait for more input\n          }\n          break;\n        case 'numberFraction': // [\\.eE]?\n          patterns.numberFraction.lastIndex = index;\n          match = patterns.numberFraction.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) {\n              this._expect = expected[this._parent];\n              break;\n            }\n            break main; // wait for more input\n          }\n          value = match[0];\n          this._streamNumbers && this.push({name: 'numberChunk', value: value});\n          this._packNumbers && (this._accumulator += value);\n          this._expect = value === '.' ? 'numberFracStart' : 'numberExpSign';\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'numberFracStart': // [0-9]\n          patterns.numberFracStart.lastIndex = index;\n          match = patterns.numberFracStart.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) return callback(new Error('Parser cannot parse input: expected a fractional part of a number'));\n            break main; // wait for more input\n          }\n          value = match[0];\n          this._streamNumbers && this.push({name: 'numberChunk', value: value});\n          this._packNumbers && (this._accumulator += value);\n          this._expect = 'numberFracDigit';\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'numberFracDigit': // [0-9]*\n          patterns.numberFracDigit.lastIndex = index;\n          match = patterns.numberFracDigit.exec(this._buffer);\n          value = match[0];\n          if (value) {\n            this._streamNumbers && this.push({name: 'numberChunk', value: value});\n            this._packNumbers && (this._accumulator += value);\n            if (noSticky) {\n              this._buffer = this._buffer.slice(value.length);\n            } else {\n              index += value.length;\n            }\n          } else {\n            if (index < this._buffer.length) {\n              this._expect = 'numberExponent';\n              break;\n            }\n            if (this._done) {\n              this._expect = expected[this._parent];\n              break;\n            }\n            break main; // wait for more input\n          }\n          break;\n        case 'numberExponent': // [eE]?\n          patterns.numberExponent.lastIndex = index;\n          match = patterns.numberExponent.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length) {\n              this._expect = expected[this._parent];\n              break;\n            }\n            if (this._done) {\n              this._expect = 'done';\n              break;\n            }\n            break main; // wait for more input\n          }\n          value = match[0];\n          this._streamNumbers && this.push({name: 'numberChunk', value: value});\n          this._packNumbers && (this._accumulator += value);\n          this._expect = 'numberExpSign';\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'numberExpSign': // [-+]?\n          patterns.numberExpSign.lastIndex = index;\n          match = patterns.numberExpSign.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length) {\n              this._expect = 'numberExpStart';\n              break;\n            }\n            if (this._done) return callback(new Error('Parser has expected an exponent value of a number'));\n            break main; // wait for more input\n          }\n          value = match[0];\n          this._streamNumbers && this.push({name: 'numberChunk', value: value});\n          this._packNumbers && (this._accumulator += value);\n          this._expect = 'numberExpStart';\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'numberExpStart': // [0-9]\n          patterns.numberExpStart.lastIndex = index;\n          match = patterns.numberExpStart.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length || this._done) return callback(new Error('Parser cannot parse input: expected an exponent part of a number'));\n            break main; // wait for more input\n          }\n          value = match[0];\n          this._streamNumbers && this.push({name: 'numberChunk', value: value});\n          this._packNumbers && (this._accumulator += value);\n          this._expect = 'numberExpDigit';\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n        case 'numberExpDigit': // [0-9]*\n          patterns.numberExpDigit.lastIndex = index;\n          match = patterns.numberExpDigit.exec(this._buffer);\n          value = match[0];\n          if (value) {\n            this._streamNumbers && this.push({name: 'numberChunk', value: value});\n            this._packNumbers && (this._accumulator += value);\n            if (noSticky) {\n              this._buffer = this._buffer.slice(value.length);\n            } else {\n              index += value.length;\n            }\n          } else {\n            if (index < this._buffer.length || this._done) {\n              this._expect = expected[this._parent];\n              break;\n            }\n            break main; // wait for more input\n          }\n          break;\n        case 'done':\n          patterns.ws.lastIndex = index;\n          match = patterns.ws.exec(this._buffer);\n          if (!match) {\n            if (index < this._buffer.length) {\n              if (this._jsonStreaming) {\n                this._expect = 'value';\n                break;\n              }\n              return callback(new Error('Parser cannot parse input: unexpected characters'));\n            }\n            break main; // wait for more input\n          }\n          value = match[0];\n          if (this._open_number) {\n            this._streamNumbers && this.push({name: 'endNumber'});\n            this._open_number = false;\n            if (this._packNumbers) {\n              this.push({name: 'numberValue', value: this._accumulator});\n              this._accumulator = '';\n            }\n          }\n          if (noSticky) {\n            this._buffer = this._buffer.slice(value.length);\n          } else {\n            index += value.length;\n          }\n          break;\n      }\n    }\n    !noSticky && (this._buffer = this._buffer.slice(index));\n    callback(null);\n  }\n}\nParser.parser = Parser.make;\nParser.make.Constructor = Parser;\n\nmodule.exports = Parser;\n", "'use strict';\n\nconst emit = stream => stream.on('data', item => stream.emit(item.name, item.value));\n\nmodule.exports = emit;\n", "'use strict';\n\nconst Parser = require('./Parser');\nconst emit = require('./utils/emit');\n\nconst make = options => emit(new Parser(options));\n\nmake.Parser = Parser;\nmake.parser = Parser.parser;\n\nmodule.exports = make;\n", "'use strict';\n\nconst {Transform} = require('stream');\n\nclass FilterBase extends Transform {\n  static stringFilter(string, separator) {\n    return stack => {\n      const path = stack.join(separator);\n      return (\n        (path.length === string.length && path === string) ||\n        (path.length > string.length && path.substr(0, string.length) === string && path.substr(string.length, separator.length) === separator)\n      );\n    };\n  }\n\n  static regExpFilter(regExp, separator) {\n    return stack => regExp.test(stack.join(separator));\n  }\n\n  static arrayReplacement(array) {\n    return () => array;\n  }\n\n  constructor(options) {\n    super(Object.assign({}, options, {writableObjectMode: true, readableObjectMode: true}));\n    this._transform = this._check;\n    this._stack = [];\n\n    const filter = options && options.filter,\n      separator = (options && options.pathSeparator) || '.';\n    if (typeof filter == 'string') {\n      this._filter = FilterBase.stringFilter(filter, separator);\n    } else if (typeof filter == 'function') {\n      this._filter = filter;\n    } else if (filter instanceof RegExp) {\n      this._filter = FilterBase.regExpFilter(filter, separator);\n    }\n\n    const replacement = options && options.replacement;\n    if (typeof replacement == 'function') {\n      this._replacement = replacement;\n    } else {\n      this._replacement = FilterBase.arrayReplacement(replacement || FilterBase.defaultReplacement);\n    }\n    this._allowEmptyReplacement = options && options.allowEmptyReplacement;\n\n    this._streamKeys = true;\n    if (options) {\n      'streamValues' in options && (this._streamKeys = options.streamValues);\n      'streamKeys' in options && (this._streamKeys = options.streamKeys);\n    }\n\n    this._once = options && options.once;\n    this._previousToken = '';\n  }\n\n  _check(chunk, _, callback) {\n    // update the last stack key\n    switch (chunk.name) {\n      case 'startObject':\n      case 'startArray':\n      case 'startString':\n      case 'startNumber':\n      case 'nullValue':\n      case 'trueValue':\n      case 'falseValue':\n        if (typeof this._stack[this._stack.length - 1] == 'number') {\n          // array\n          ++this._stack[this._stack.length - 1];\n        }\n        break;\n      case 'keyValue':\n        this._stack[this._stack.length - 1] = chunk.value;\n        break;\n      case 'numberValue':\n        if (this._previousToken !== 'endNumber' && typeof this._stack[this._stack.length - 1] == 'number') {\n          // array\n          ++this._stack[this._stack.length - 1];\n        }\n        break;\n      case 'stringValue':\n        if (this._previousToken !== 'endString' && typeof this._stack[this._stack.length - 1] == 'number') {\n          // array\n          ++this._stack[this._stack.length - 1];\n        }\n        break;\n    }\n    this._previousToken = chunk.name;\n    // check, if we allow a chunk\n    if (this._checkChunk(chunk)) {\n      return callback(null);\n    }\n    // update the stack\n    switch (chunk.name) {\n      case 'startObject':\n        this._stack.push(null);\n        break;\n      case 'startArray':\n        this._stack.push(-1);\n        break;\n      case 'endObject':\n      case 'endArray':\n        this._stack.pop();\n        break;\n    }\n    callback(null);\n  }\n\n  _passObject(chunk, _, callback) {\n    this.push(chunk);\n    switch (chunk.name) {\n      case 'startObject':\n      case 'startArray':\n        ++this._depth;\n        break;\n      case 'endObject':\n      case 'endArray':\n        --this._depth;\n        break;\n    }\n    if (!this._depth) {\n      this._transform = this._once ? this._skip : this._check;\n    }\n    callback(null);\n  }\n\n  _pass(chunk, _, callback) {\n    this.push(chunk);\n    callback(null);\n  }\n\n  _skipObject(chunk, _, callback) {\n    switch (chunk.name) {\n      case 'startObject':\n      case 'startArray':\n        ++this._depth;\n        break;\n      case 'endObject':\n      case 'endArray':\n        --this._depth;\n        break;\n    }\n    if (!this._depth) {\n      this._transform = this._once ? this._pass : this._check;\n    }\n    callback(null);\n  }\n\n  _skip(chunk, _, callback) {\n    callback(null);\n  }\n}\n\nFilterBase.defaultReplacement = [{name: 'nullValue', value: null}];\n\nconst passValue = (last, post) =>\n  function(chunk, _, callback) {\n    if (this._expected) {\n      const expected = this._expected;\n      this._expected = '';\n      this._transform = this._once ? this._skip : this._check;\n      if (expected === chunk.name) {\n        this.push(chunk);\n      } else {\n        return this._transform(chunk, _, callback);\n      }\n    } else {\n      this.push(chunk);\n      if (chunk.name === last) {\n        this._expected = post;\n      }\n    }\n    callback(null);\n  };\n\nFilterBase.prototype._passNumber = passValue('endNumber', 'numberValue');\nFilterBase.prototype._passString = passValue('endString', 'stringValue');\nFilterBase.prototype._passKey = passValue('endKey', 'keyValue');\n\nconst skipValue = (last, post) =>\n  function(chunk, _, callback) {\n    if (this._expected) {\n      const expected = this._expected;\n      this._expected = '';\n      this._transform = this._once ? this._pass : this._check;\n      if (expected !== chunk.name) {\n        return this._transform(chunk, _, callback);\n      }\n    } else {\n      if (chunk.name === last) {\n        this._expected = post;\n      }\n    }\n    callback(null);\n  };\n\nFilterBase.prototype._skipNumber = skipValue('endNumber', 'numberValue');\nFilterBase.prototype._skipString = skipValue('endString', 'stringValue');\nFilterBase.prototype._skipKey = skipValue('endKey', 'keyValue');\n\nmodule.exports = FilterBase;\n", "'use strict';\n\nconst Chain = require('stream-chain');\n\nconst Parser = require('../Parser');\n\nconst withParser = (fn, options) =>\n  new Chain([new Parser(options), fn(options)], Object.assign({}, options, {writableObjectMode: false, readableObjectMode: true}));\n\nmodule.exports = withParser;\n", "'use strict';\n\nconst FilterBase = require('./FilterBase');\nconst withParser = require('../utils/withParser');\n\nclass Pick extends FilterBase {\n  static make(options) {\n    return new Pick(options);\n  }\n\n  static withParser(options) {\n    return withParser(Pick.make, options);\n  }\n\n  _checkChunk(chunk) {\n    switch (chunk.name) {\n      case 'startObject':\n      case 'startArray':\n        if (this._filter(this._stack, chunk)) {\n          this.push(chunk);\n          this._transform = this._passObject;\n          this._depth = 1;\n          return true;\n        }\n        break;\n      case 'startString':\n        if (this._filter(this._stack, chunk)) {\n          this.push(chunk);\n          this._transform = this._passString;\n          return true;\n        }\n        break;\n      case 'startNumber':\n        if (this._filter(this._stack, chunk)) {\n          this.push(chunk);\n          this._transform = this._passNumber;\n          return true;\n        }\n        break;\n      case 'nullValue':\n      case 'trueValue':\n      case 'falseValue':\n      case 'stringValue':\n      case 'numberValue':\n        if (this._filter(this._stack, chunk)) {\n          this.push(chunk);\n          this._transform = this._once ? this._skip : this._check;\n          return true;\n        }\n        break;\n    }\n    return false;\n  }\n}\nPick.pick = Pick.make;\nPick.make.Constructor = Pick;\n\nmodule.exports = Pick;\n", "'use strict';\n\nconst EventEmitter = require('events');\n\nconst startObject = Ctr =>\n  function () {\n    if (this.done) {\n      this.done = false;\n    } else {\n      this.stack.push(this.current, this.key);\n    }\n    this.current = new Ctr();\n    this.key = null;\n  };\n\nclass Assembler extends EventEmitter {\n  static connectTo(stream, options) {\n    return new Assembler(options).connectTo(stream);\n  }\n\n  constructor(options) {\n    super();\n    this.stack = [];\n    this.current = this.key = null;\n    this.done = true;\n    if (options) {\n      this.reviver = typeof options.reviver == 'function' && options.reviver;\n      if (this.reviver) {\n        this.stringValue = this._saveValue = this._saveValueWithReviver;\n      }\n      if (options.numberAsString) {\n        this.numberValue = this.stringValue;\n      }\n    }\n  }\n\n  connectTo(stream) {\n    stream.on('data', chunk => {\n      if (this[chunk.name]) {\n        this[chunk.name](chunk.value);\n        if (this.done) this.emit('done', this);\n      }\n    });\n    return this;\n  }\n\n  get depth() {\n    return (this.stack.length >> 1) + (this.done ? 0 : 1);\n  }\n\n  get path() {\n    const path = [];\n    for (let i = 0; i < this.stack.length; i += 2) {\n      const key = this.stack[i + 1];\n      path.push(key === null ? this.stack[i].length : key);\n    }\n    return path;\n  }\n\n  dropToLevel(level) {\n    if (level < this.depth) {\n      if (level) {\n        const index = (level - 1) << 1;\n        this.current = this.stack[index];\n        this.key = this.stack[index + 1];\n        this.stack.splice(index);\n      } else {\n        this.stack = [];\n        this.current = this.key = null;\n        this.done = true;\n      }\n    }\n    return this;\n  }\n\n  consume(chunk) {\n    this[chunk.name] && this[chunk.name](chunk.value);\n    return this;\n  }\n\n  keyValue(value) {\n    this.key = value;\n  }\n\n  //stringValue() - aliased below to _saveValue()\n\n  numberValue(value) {\n    this._saveValue(parseFloat(value));\n  }\n  nullValue() {\n    this._saveValue(null);\n  }\n  trueValue() {\n    this._saveValue(true);\n  }\n  falseValue() {\n    this._saveValue(false);\n  }\n\n  //startObject() - assigned below\n\n  endObject() {\n    if (this.stack.length) {\n      const value = this.current;\n      this.key = this.stack.pop();\n      this.current = this.stack.pop();\n      this._saveValue(value);\n    } else {\n      this.done = true;\n    }\n  }\n\n  //startArray() - assigned below\n  //endArray() - aliased below to endObject()\n\n  _saveValue(value) {\n    if (this.done) {\n      this.current = value;\n    } else {\n      if (this.current instanceof Array) {\n        this.current.push(value);\n      } else {\n        this.current[this.key] = value;\n        this.key = null;\n      }\n    }\n  }\n  _saveValueWithReviver(value) {\n    if (this.done) {\n      this.current = this.reviver('', value);\n    } else {\n      if (this.current instanceof Array) {\n        value = this.reviver('' + this.current.length, value);\n        this.current.push(value);\n        if (value === undefined) {\n          delete this.current[this.current.length - 1];\n        }\n      } else {\n        value = this.reviver(this.key, value);\n        if (value !== undefined) {\n          this.current[this.key] = value;\n        }\n        this.key = null;\n      }\n    }\n  }\n}\n\nAssembler.prototype.stringValue = Assembler.prototype._saveValue;\nAssembler.prototype.startObject = startObject(Object);\nAssembler.prototype.startArray = startObject(Array);\nAssembler.prototype.endArray = Assembler.prototype.endObject;\n\nmodule.exports = Assembler;\n", "'use strict';\n\nconst {Transform} = require('stream');\nconst Assembler = require('../Assembler');\n\nclass Counter {\n  constructor(initialDepth) {\n    this.depth = initialDepth;\n  }\n  startObject() {\n    ++this.depth;\n  }\n  endObject() {\n    --this.depth;\n  }\n  startArray() {\n    ++this.depth;\n  }\n  endArray() {\n    --this.depth;\n  }\n}\n\nclass StreamBase extends Transform {\n  constructor(options) {\n    super(Object.assign({}, options, {writableObjectMode: true, readableObjectMode: true}));\n    if (options) {\n      this.objectFilter = options.objectFilter;\n      this.includeUndecided = options.includeUndecided;\n    }\n    if (typeof this.objectFilter != 'function') {\n      this._filter = this._transform;\n    }\n    this._transform = this._wait || this._filter;\n    this._assembler = new Assembler(options);\n  }\n\n  _transform(chunk, encoding, callback) {\n    if (this._assembler[chunk.name]) {\n      this._assembler[chunk.name](chunk.value);\n      if (this._assembler.depth === this._level) {\n        this._push();\n      }\n    }\n    callback(null);\n  }\n\n  _filter(chunk, encoding, callback) {\n    if (this._assembler[chunk.name]) {\n      this._assembler[chunk.name](chunk.value);\n      const result = this.objectFilter(this._assembler);\n      if (result) {\n        if (this._assembler.depth === this._level) {\n          this._push();\n          this._transform = this._filter;\n        }\n        this._transform = this._accept;\n        return callback(null);\n      }\n      if (result === false) {\n        this._saved_assembler = this._assembler;\n        this._assembler = new Counter(this._saved_assembler.depth);\n        this._saved_assembler.dropToLevel(this._level);\n        if (this._assembler.depth === this._level) {\n          this._assembler = this._saved_assembler;\n          this._transform = this._filter;\n        }\n        this._transform = this._reject;\n        return callback(null);\n      }\n      if (this._assembler.depth === this._level) {\n        this._push(!this.includeUndecided);\n      }\n    }\n    callback(null);\n  }\n\n  _accept(chunk, encoding, callback) {\n    if (this._assembler[chunk.name]) {\n      this._assembler[chunk.name](chunk.value);\n      if (this._assembler.depth === this._level) {\n        this._push();\n        this._transform = this._filter;\n      }\n    }\n    callback(null);\n  }\n\n  _reject(chunk, encoding, callback) {\n    if (this._assembler[chunk.name]) {\n      this._assembler[chunk.name](chunk.value);\n      if (this._assembler.depth === this._level) {\n        this._assembler = this._saved_assembler;\n        this._transform = this._filter;\n      }\n    }\n    callback(null);\n  }\n}\n\nmodule.exports = StreamBase;\n", "'use strict';\n\nconst StreamBase = require('./StreamBase');\nconst withParser = require('../utils/withParser');\n\nclass StreamArray extends StreamBase {\n  static make(options) {\n    return new StreamArray(options);\n  }\n\n  static withParser(options) {\n    return withParser(StreamArray.make, options);\n  }\n\n  constructor(options) {\n    super(options);\n    this._level = 1;\n    this._counter = 0;\n  }\n\n  _wait(chunk, _, callback) {\n    // first chunk should open an array\n    if (chunk.name !== 'startArray') {\n      return callback(new Error('Top-level object should be an array.'));\n    }\n    this._transform = this._filter;\n    return this._transform(chunk, _, callback);\n  }\n\n  _push(discard) {\n    if (this._assembler.current.length) {\n      if (discard) {\n        ++this._counter;\n        this._assembler.current.pop();\n      } else {\n        this.push({key: this._counter++, value: this._assembler.current.pop()});\n      }\n    }\n  }\n}\nStreamArray.streamArray = StreamArray.make;\nStreamArray.make.Constructor = StreamArray;\n\nmodule.exports = StreamArray;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useStreamJSON = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst cross_fetch_1 = __importDefault(require(\"cross-fetch\"));\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_path_1 = require(\"node:path\");\nconst promises_2 = require(\"node:stream/promises\");\nconst react_1 = require(\"react\");\nconst stream_chain_1 = __importDefault(require(\"stream-chain\"));\nconst stream_json_1 = require(\"stream-json\");\nconst Pick_1 = __importDefault(require(\"stream-json/filters/Pick\"));\nconst StreamArray_1 = __importDefault(require(\"stream-json/streamers/StreamArray\"));\nconst fetch_utils_1 = require(\"./fetch-utils\");\nconst useCachedPromise_1 = require(\"./useCachedPromise\");\nconst helpers_1 = require(\"./helpers\");\nasync function cache(url, destination, fetchOptions) {\n    if (typeof url === \"object\" || url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n        return await cacheURL(url, destination, fetchOptions);\n    }\n    else if (url.startsWith(\"file://\")) {\n        return await cacheFile((0, node_path_1.normalize)(decodeURIComponent(new URL(url).pathname)), destination, fetchOptions?.signal ? fetchOptions.signal : undefined);\n    }\n    else {\n        throw new Error(\"Only HTTP(S) or file URLs are supported\");\n    }\n}\nasync function cacheURL(url, destination, fetchOptions) {\n    const response = await (0, cross_fetch_1.default)(url, fetchOptions);\n    if (!response.ok) {\n        throw new Error(\"Failed to fetch URL\");\n    }\n    if (!(0, fetch_utils_1.isJSON)(response.headers.get(\"content-type\"))) {\n        throw new Error(\"URL does not return JSON\");\n    }\n    if (!response.body) {\n        throw new Error(\"Failed to retrieve expected JSON content: Response body is missing or inaccessible.\");\n    }\n    await (0, promises_2.pipeline)(response.body, (0, node_fs_1.createWriteStream)(destination), fetchOptions?.signal ? { signal: fetchOptions.signal } : undefined);\n}\nasync function cacheFile(source, destination, abortSignal) {\n    await (0, promises_2.pipeline)((0, node_fs_1.createReadStream)(source), (0, node_fs_1.createWriteStream)(destination), abortSignal ? { signal: abortSignal } : undefined);\n}\nasync function cacheURLIfNecessary(url, folder, fileName, forceUpdate, fetchOptions) {\n    const destination = (0, node_path_1.join)(folder, fileName);\n    try {\n        await (0, promises_1.stat)(folder);\n    }\n    catch (e) {\n        (0, node_fs_1.mkdirSync)(folder, { recursive: true });\n        await cache(url, destination, fetchOptions);\n        return;\n    }\n    if (forceUpdate) {\n        await cache(url, destination, fetchOptions);\n        return;\n    }\n    let stats = undefined;\n    try {\n        stats = await (0, promises_1.stat)(destination);\n    }\n    catch (e) {\n        await cache(url, destination, fetchOptions);\n        return;\n    }\n    if (typeof url === \"object\" || url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n        const headResponse = await (0, cross_fetch_1.default)(url, { ...fetchOptions, method: \"HEAD\" });\n        if (!headResponse.ok) {\n            throw new Error(\"Could not fetch URL\");\n        }\n        if (!(0, fetch_utils_1.isJSON)(headResponse.headers.get(\"content-type\"))) {\n            throw new Error(\"URL does not return JSON\");\n        }\n        const lastModified = Date.parse(headResponse.headers.get(\"last-modified\") ?? \"\");\n        if (stats.size === 0 || Number.isNaN(lastModified) || lastModified > stats.mtimeMs) {\n            await cache(url, destination, fetchOptions);\n            return;\n        }\n    }\n    else if (url.startsWith(\"file://\")) {\n        try {\n            const sourceStats = await (0, promises_1.stat)((0, node_path_1.normalize)(decodeURIComponent(new URL(url).pathname)));\n            if (sourceStats.mtimeMs > stats.mtimeMs) {\n                await cache(url, destination, fetchOptions);\n            }\n        }\n        catch (e) {\n            throw new Error(\"Source file could not be read\");\n        }\n    }\n    else {\n        throw new Error(\"Only HTTP(S) or file URLs are supported\");\n    }\n}\nasync function* streamJsonFile(filePath, pageSize, abortSignal, dataPath, filterFn, transformFn) {\n    let page = [];\n    const pipeline = new stream_chain_1.default([\n        (0, node_fs_1.createReadStream)(filePath),\n        dataPath ? Pick_1.default.withParser({ filter: dataPath }) : (0, stream_json_1.parser)(),\n        new StreamArray_1.default(),\n        (data) => transformFn?.(data.value) ?? data.value,\n    ]);\n    abortSignal?.addEventListener(\"abort\", () => {\n        pipeline.destroy();\n    });\n    try {\n        for await (const data of pipeline) {\n            if (abortSignal?.aborted) {\n                return [];\n            }\n            if (!filterFn || filterFn(data)) {\n                page.push(data);\n            }\n            if (page.length >= pageSize) {\n                yield page;\n                page = [];\n            }\n        }\n    }\n    catch (e) {\n        pipeline.destroy();\n        throw e;\n    }\n    if (page.length > 0) {\n        yield page;\n    }\n    return [];\n}\nfunction useStreamJSON(url, options) {\n    const { initialData, execute, keepPreviousData, onError, onData, onWillExecute, failureToastOptions, dataPath, filter, transform, pageSize = 20, ...fetchOptions } = options ?? {};\n    const previousUrl = (0, react_1.useRef)();\n    const previousDestination = (0, react_1.useRef)();\n    const useCachedPromiseOptions = {\n        initialData,\n        execute,\n        keepPreviousData,\n        onError,\n        onData,\n        onWillExecute,\n        failureToastOptions,\n    };\n    const generatorRef = (0, react_1.useRef)(null);\n    const controllerRef = (0, react_1.useRef)(null);\n    const hasMoreRef = (0, react_1.useRef)(false);\n    return (0, useCachedPromise_1.useCachedPromise)((url, pageSize, fetchOptions, dataPath, filter, transform) => async ({ page }) => {\n        const fileName = (0, helpers_1.hash)(url) + \".json\";\n        const folder = api_1.environment.supportPath;\n        if (page === 0) {\n            controllerRef.current?.abort();\n            controllerRef.current = new AbortController();\n            const destination = (0, node_path_1.join)(folder, fileName);\n            /**\n             * Force update the cache when the URL changes but the cache destination does not.\n             */\n            const forceCacheUpdate = Boolean(previousUrl.current &&\n                previousUrl.current !== url &&\n                previousDestination.current &&\n                previousDestination.current === destination);\n            previousUrl.current = url;\n            previousDestination.current = destination;\n            await cacheURLIfNecessary(url, folder, fileName, forceCacheUpdate, {\n                ...fetchOptions,\n                signal: controllerRef.current?.signal,\n            });\n            generatorRef.current = streamJsonFile(destination, pageSize, controllerRef.current?.signal, dataPath, filter, transform);\n        }\n        if (!generatorRef.current) {\n            return { hasMore: hasMoreRef.current, data: [] };\n        }\n        const { value: newData, done } = await generatorRef.current.next();\n        hasMoreRef.current = !done;\n        return { hasMore: hasMoreRef.current, data: (newData ?? []) };\n    }, [url, pageSize, fetchOptions, dataPath, filter, transform], useCachedPromiseOptions);\n}\nexports.useStreamJSON = useStreamJSON;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.baseExecuteSQL = exports.isPermissionError = exports.PermissionError = void 0;\nconst node_fs_1 = require(\"node:fs\");\nconst promises_1 = require(\"node:fs/promises\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nconst helpers_1 = require(\"./helpers\");\nclass PermissionError extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"PermissionError\";\n    }\n}\nexports.PermissionError = PermissionError;\nfunction isPermissionError(error) {\n    return error instanceof Error && error.name === \"PermissionError\";\n}\nexports.isPermissionError = isPermissionError;\nasync function baseExecuteSQL(databasePath, query, options) {\n    if (!(0, node_fs_1.existsSync)(databasePath)) {\n        throw new Error(\"The database does not exist\");\n    }\n    const abortSignal = options?.signal;\n    let workaroundCopiedDb;\n    let spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", databasePath, query], { signal: abortSignal });\n    let spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n    let [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n    checkAborted(abortSignal);\n    if (stderrResult.match(\"(5)\") || stderrResult.match(\"(14)\")) {\n        // That means that the DB is busy because of another app is locking it\n        // This happens when Chrome or Arc is opened: they lock the History db.\n        // As an ugly workaround, we duplicate the file and read that instead\n        // (with vfs unix - none to just not care about locks)\n        if (!workaroundCopiedDb) {\n            const tempFolder = node_path_1.default.join(node_os_1.default.tmpdir(), \"useSQL\", (0, helpers_1.hash)(databasePath));\n            await (0, promises_1.mkdir)(tempFolder, { recursive: true });\n            checkAborted(abortSignal);\n            workaroundCopiedDb = node_path_1.default.join(tempFolder, \"db.db\");\n            await (0, promises_1.copyFile)(databasePath, workaroundCopiedDb);\n            await (0, promises_1.writeFile)(workaroundCopiedDb + \"-shm\", \"\");\n            await (0, promises_1.writeFile)(workaroundCopiedDb + \"-wal\", \"\");\n            checkAborted(abortSignal);\n        }\n        spawned = node_child_process_1.default.spawn(\"sqlite3\", [\"--json\", \"--readonly\", \"--vfs\", \"unix-none\", workaroundCopiedDb, query], {\n            signal: abortSignal,\n        });\n        spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned);\n        [{ error, exitCode, signal }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf-8\" }, spawnedPromise);\n        checkAborted(abortSignal);\n    }\n    if (error || exitCode !== 0 || signal !== null) {\n        if (stderrResult.includes(\"authorization denied\")) {\n            throw new PermissionError(\"You do not have permission to access the database.\");\n        }\n        else {\n            throw new Error(stderrResult || \"Unknown error\");\n        }\n    }\n    return JSON.parse(stdoutResult.trim() || \"[]\");\n}\nexports.baseExecuteSQL = baseExecuteSQL;\nfunction checkAborted(signal) {\n    if (signal?.aborted) {\n        const error = new Error(\"aborted\");\n        error.name = \"AbortError\";\n        throw error;\n    }\n}\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSQL = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = require(\"node:fs\");\nconst node_os_1 = __importDefault(require(\"node:os\"));\nconst react_1 = require(\"react\");\nconst usePromise_1 = require(\"./usePromise\");\nconst useLatest_1 = require(\"./useLatest\");\nconst showFailureToast_1 = require(\"./showFailureToast\");\nconst sql_utils_1 = require(\"./sql-utils\");\n/**\n * Executes a query on a local SQL database and returns the {@link AsyncState} corresponding to the query of the command. The last value will be kept between command runs.\n *\n * @example\n * ```\n * import { useSQL } from \"@raycast/utils\";\n * import { resolve } from \"path\";\n * import { homedir } from \"os\";\n *\n * const NOTES_DB = resolve(homedir(), \"Library/Group Containers/group.com.apple.notes/NoteStore.sqlite\");\n * const notesQuery = `SELECT id, title FROM ...`;\n * type NoteItem = {\n *   id: string;\n *   title: string;\n * };\n *\n * export default function Command() {\n *   const { isLoading, data, permissionView } = useSQL<NoteItem>(NOTES_DB, notesQuery);\n *\n *   if (permissionView) {\n *     return permissionView;\n *   }\n *\n *   return (\n *     <List isLoading={isLoading}>\n *       {(data || []).map((item) => (\n *         <List.Item key={item.id} title={item.title} />\n *       ))}\n *     </List>\n *  );\n * };\n * ```\n */\nfunction useSQL(databasePath, query, options) {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const { permissionPriming, ...usePromiseOptions } = options || {};\n    const [permissionView, setPermissionView] = (0, react_1.useState)();\n    const latestOptions = (0, useLatest_1.useLatest)(options || {});\n    const abortable = (0, react_1.useRef)();\n    const handleError = (0, react_1.useCallback)((_error) => {\n        console.error(_error);\n        const error = _error instanceof Error && _error.message.includes(\"authorization denied\")\n            ? new sql_utils_1.PermissionError(\"You do not have permission to access the database.\")\n            : _error;\n        if ((0, sql_utils_1.isPermissionError)(error)) {\n            setPermissionView((0, jsx_runtime_1.jsx)(PermissionErrorScreen, { priming: latestOptions.current.permissionPriming }));\n        }\n        else {\n            if (latestOptions.current.onError) {\n                latestOptions.current.onError(error);\n            }\n            else {\n                if (api_1.environment.launchType !== api_1.LaunchType.Background) {\n                    (0, showFailureToast_1.showFailureToast)(error, {\n                        title: \"Cannot query the data\",\n                    });\n                }\n            }\n        }\n    }, [latestOptions]);\n    const fn = (0, react_1.useMemo)(() => {\n        if (!(0, node_fs_1.existsSync)(databasePath)) {\n            throw new Error(\"The database does not exist\");\n        }\n        return async (databasePath, query) => {\n            const abortSignal = abortable.current?.signal;\n            return (0, sql_utils_1.baseExecuteSQL)(databasePath, query, { signal: abortSignal });\n        };\n    }, [databasePath]);\n    return {\n        ...(0, usePromise_1.usePromise)(fn, [databasePath, query], { ...usePromiseOptions, onError: handleError }),\n        permissionView,\n    };\n}\nexports.useSQL = useSQL;\nconst macosVenturaAndLater = parseInt(node_os_1.default.release().split(\".\")[0]) >= 22;\nconst preferencesString = macosVenturaAndLater ? \"Settings\" : \"Preferences\";\nfunction PermissionErrorScreen(props) {\n    const action = macosVenturaAndLater\n        ? {\n            title: \"Open System Settings -> Privacy\",\n            target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n        }\n        : {\n            title: \"Open System Preferences -> Security\",\n            target: \"x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles\",\n        };\n    if (api_1.environment.commandMode === \"menu-bar\") {\n        return ((0, jsx_runtime_1.jsxs)(api_1.MenuBarExtra, { icon: api_1.Icon.Warning, title: api_1.environment.commandName, children: [(0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: \"Raycast needs full disk access\", tooltip: `You can revert this access in ${preferencesString} whenever you want` }), props.priming ? ((0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: props.priming, tooltip: `You can revert this access in ${preferencesString} whenever you want` })) : null, (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Separator, {}), (0, jsx_runtime_1.jsx)(api_1.MenuBarExtra.Item, { title: action.title, onAction: () => (0, api_1.open)(action.target) })] }));\n    }\n    return ((0, jsx_runtime_1.jsx)(api_1.List, { children: (0, jsx_runtime_1.jsx)(api_1.List.EmptyView, { icon: {\n                source: {\n                    light: \"https://raycast.com/uploads/extensions-utils-security-permissions-light.png\",\n                    dark: \"https://raycast.com/uploads/extensions-utils-security-permissions-dark.png\",\n                },\n            }, title: \"Raycast needs full disk access.\", description: `${props.priming ? props.priming + \"\\n\" : \"\"}You can revert this access in ${preferencesString} whenever you want.`, actions: (0, jsx_runtime_1.jsx)(api_1.ActionPanel, { children: (0, jsx_runtime_1.jsx)(api_1.Action.Open, { ...action }) }) }) }));\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useForm = exports.FormValidation = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\n/**\n * Shorthands for common validation cases\n */\nvar FormValidation;\n(function (FormValidation) {\n    /** Show an error when the value of the item is empty */\n    FormValidation[\"Required\"] = \"required\";\n})(FormValidation || (exports.FormValidation = FormValidation = {}));\nfunction validationError(validation, value) {\n    if (validation) {\n        if (typeof validation === \"function\") {\n            return validation(value);\n        }\n        else if (validation === FormValidation.Required) {\n            let valueIsValid = typeof value !== \"undefined\" && value !== null;\n            if (valueIsValid) {\n                switch (typeof value) {\n                    case \"string\":\n                        valueIsValid = value.length > 0;\n                        break;\n                    case \"object\":\n                        if (Array.isArray(value)) {\n                            valueIsValid = value.length > 0;\n                        }\n                        else if (value instanceof Date) {\n                            valueIsValid = value.getTime() > 0;\n                        }\n                        break;\n                    default:\n                        break;\n                }\n            }\n            if (!valueIsValid) {\n                return \"The item is required\";\n            }\n        }\n    }\n}\n/**\n * Hook that provides a high-level interface to work with Forms, and more particularly, with Form validations. It incorporates all the good practices to provide a great User Experience for your Forms.\n *\n * @returns an object which contains the necessary methods and props to provide a good User Experience in your Form.\n *\n * @example\n * ```\n * import { Action, ActionPanel, Form, showToast, Toast } from \"@raycast/api\";\n * import { useForm, FormValidation } from \"@raycast/utils\";\n *\n * interface SignUpFormValues {\n *   nickname: string;\n *   password: string;\n * }\n *\n * export default function Command() {\n *   const { handleSubmit, itemProps } = useForm<SignUpFormValues>({\n *     onSubmit(values) {\n *       showToast(Toast.Style.Success, \"Yay!\", `${values.nickname} account created`);\n *     },\n *     validation: {\n *       nickname: FormValidation.Required,\n *       password: (value) => {\n *         if (value && value.length < 8) {\n *           return \"Password must be at least 8 symbols\";\n *         } else if (!value) {\n *           return \"The item is required\";\n *         }\n *       },\n *     },\n *   });\n *\n *   return (\n *     <Form\n *       actions={\n *         <ActionPanel>\n *           <Action.SubmitForm title=\"Submit\" onSubmit={handleSubmit} />\n *         </ActionPanel>\n *       }\n *     >\n *       <Form.TextField title=\"Nickname\" placeholder=\"Enter your nickname\" {...itemProps.nickname} />\n *       <Form.PasswordField\n *         title=\"Password\"\n *         placeholder=\"Enter password at least 8 characters long\"\n *         {...itemProps.password}\n *       />\n *     </Form>\n *   );\n * }\n * ```\n */\nfunction useForm(props) {\n    const { onSubmit: _onSubmit, validation, initialValues = {} } = props;\n    // @ts-expect-error it's fine if we don't specify all the values\n    const [values, setValues] = (0, react_1.useState)(initialValues);\n    const [errors, setErrors] = (0, react_1.useState)({});\n    const refs = (0, react_1.useRef)({});\n    const latestValidation = (0, useLatest_1.useLatest)(validation || {});\n    const latestOnSubmit = (0, useLatest_1.useLatest)(_onSubmit);\n    const focus = (0, react_1.useCallback)((id) => {\n        refs.current[id]?.focus();\n    }, [refs]);\n    const handleSubmit = (0, react_1.useCallback)(async (values) => {\n        let validationErrors = false;\n        for (const [id, validation] of Object.entries(latestValidation.current)) {\n            const error = validationError(validation, values[id]);\n            if (error) {\n                if (!validationErrors) {\n                    validationErrors = {};\n                    // we focus the first item that has an error\n                    focus(id);\n                }\n                validationErrors[id] = error;\n            }\n        }\n        if (validationErrors) {\n            setErrors(validationErrors);\n            return false;\n        }\n        const result = await latestOnSubmit.current(values);\n        return typeof result === \"boolean\" ? result : true;\n    }, [latestValidation, latestOnSubmit, focus]);\n    const setValidationError = (0, react_1.useCallback)((id, error) => {\n        setErrors((errors) => ({ ...errors, [id]: error }));\n    }, [setErrors]);\n    const setValue = (0, react_1.useCallback)(function (id, value) {\n        // @ts-expect-error TS is always confused about SetStateAction, but it's fine here\n        setValues((values) => ({ ...values, [id]: typeof value === \"function\" ? value(values[id]) : value }));\n    }, [setValues]);\n    const itemProps = (0, react_1.useMemo)(() => {\n        // we have to use a proxy because we don't actually have any object to iterate through\n        // so instead we dynamically create the props when required\n        return new Proxy(\n        // @ts-expect-error the whole point of a proxy...\n        {}, {\n            get(target, id) {\n                const validation = latestValidation.current[id];\n                const value = values[id];\n                return {\n                    onChange(value) {\n                        if (errors[id]) {\n                            const error = validationError(validation, value);\n                            if (!error) {\n                                setValidationError(id, undefined);\n                            }\n                        }\n                        setValue(id, value);\n                    },\n                    onBlur(event) {\n                        const error = validationError(validation, event.target.value);\n                        if (error) {\n                            setValidationError(id, error);\n                        }\n                    },\n                    error: errors[id],\n                    id,\n                    // we shouldn't return `undefined` otherwise it will be an uncontrolled component\n                    value: typeof value === \"undefined\" ? null : value,\n                    ref: (instance) => {\n                        refs.current[id] = instance;\n                    },\n                };\n            },\n        });\n    }, [errors, latestValidation, setValidationError, values, refs, setValue]);\n    const reset = (0, react_1.useCallback)((values) => {\n        setErrors({});\n        Object.entries(refs.current).forEach(([id, ref]) => {\n            if (!values?.[id]) {\n                ref?.reset();\n            }\n        });\n        if (values) {\n            // @ts-expect-error it's fine if we don't specify all the values\n            setValues(values);\n        }\n    }, [setValues, setErrors, refs]);\n    return { handleSubmit, setValidationError, setValue, values, itemProps, focus, reset };\n}\nexports.useForm = useForm;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAI = void 0;\nconst react_1 = require(\"react\");\nconst api_1 = require(\"@raycast/api\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * Stream a prompt completion.\n *\n * @example\n * ```typescript\n * import { Detail, LaunchProps } from \"@raycast/api\";\n * import { use AI } from \"@raycast/utils\";\n *\n * export default function Command(props: LaunchProps<{ arguments: { prompt: string } }>) {\n *   const { isLoading, data } = useAI(props.arguments.prompt);\n *\n *   return <Detail isLoading={isLoading} markdown={data} />;\n * }\n * ```\n */\nfunction useAI(prompt, options = {}) {\n    const { creativity, stream, model, ...usePromiseOptions } = options;\n    const [data, setData] = (0, react_1.useState)(\"\");\n    const abortable = (0, react_1.useRef)();\n    const { isLoading, error, revalidate } = (0, usePromise_1.usePromise)(async (prompt, creativity, shouldStream) => {\n        setData(\"\");\n        const stream = api_1.AI.ask(prompt, { creativity, model, signal: abortable.current?.signal });\n        if (shouldStream === false) {\n            setData(await stream);\n        }\n        else {\n            stream.on(\"data\", (data) => {\n                setData((x) => x + data);\n            });\n            await stream;\n        }\n    }, [prompt, creativity, stream], { ...usePromiseOptions, abortable });\n    return { isLoading, data, error, revalidate };\n}\nexports.useAI = useAI;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFrecencySorting = void 0;\nconst react_1 = require(\"react\");\nconst useLatest_1 = require(\"./useLatest\");\nconst useCachedState_1 = require(\"./useCachedState\");\nconst HALF_LIFE_DAYS = 10;\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DECAY_RATE_CONSTANT = Math.log(2) / (HALF_LIFE_DAYS * MS_PER_DAY);\nconst VISIT_TYPE_POINTS = {\n    Default: 100,\n    Embed: 0,\n    Bookmark: 140,\n};\nfunction getNewFrecency(item) {\n    const now = Date.now();\n    const lastVisited = item ? item.lastVisited : 0;\n    const frecency = item ? item.frecency : 0;\n    const visitAgeInDays = (now - lastVisited) / MS_PER_DAY;\n    const currentVisitValue = VISIT_TYPE_POINTS.Default * Math.exp(-DECAY_RATE_CONSTANT * visitAgeInDays);\n    const totalVisitValue = frecency + currentVisitValue;\n    return {\n        lastVisited: now,\n        frecency: totalVisitValue,\n    };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultKey = (item) => {\n    if (process.env.NODE_ENV !== \"production\" &&\n        (typeof item !== \"object\" || !item || !(\"id\" in item) || typeof item.id != \"string\")) {\n        throw new Error(\"Specify a key function or make sure your items have an 'id' property\");\n    }\n    return item.id;\n};\nfunction useFrecencySorting(data, options) {\n    const keyRef = (0, useLatest_1.useLatest)(options?.key || defaultKey);\n    const sortUnvisitedRef = (0, useLatest_1.useLatest)(options?.sortUnvisited);\n    const [storedFrecencies, setStoredFrecencies] = (0, useCachedState_1.useCachedState)(`raycast_frecency_${options?.namespace}`, {});\n    const visitItem = (0, react_1.useCallback)(async function updateFrecency(item) {\n        const itemKey = keyRef.current(item);\n        setStoredFrecencies((storedFrecencies) => {\n            const frecency = storedFrecencies[itemKey];\n            const newFrecency = getNewFrecency(frecency);\n            return {\n                ...storedFrecencies,\n                [itemKey]: newFrecency,\n            };\n        });\n    }, [keyRef, setStoredFrecencies]);\n    const resetRanking = (0, react_1.useCallback)(async function removeFrecency(item) {\n        const itemKey = keyRef.current(item);\n        setStoredFrecencies((storedFrecencies) => {\n            const newFrencencies = { ...storedFrecencies };\n            delete newFrencencies[itemKey];\n            return newFrencencies;\n        });\n    }, [keyRef, setStoredFrecencies]);\n    const sortedData = (0, react_1.useMemo)(() => {\n        if (!data) {\n            return [];\n        }\n        return data.sort((a, b) => {\n            const frecencyA = storedFrecencies[keyRef.current(a)];\n            const frecencyB = storedFrecencies[keyRef.current(b)];\n            // If a has a frecency, but b doesn't, a should come first\n            if (frecencyA && !frecencyB) {\n                return -1;\n            }\n            // If b has a frecency, but a doesn't, b should come first\n            if (!frecencyA && frecencyB) {\n                return 1;\n            }\n            // If both frecencies are defined,put the one with the higher frecency first\n            if (frecencyA && frecencyB) {\n                return frecencyB.frecency - frecencyA.frecency;\n            }\n            // If both frecencies are undefined, keep the original order\n            return sortUnvisitedRef.current ? sortUnvisitedRef.current(a, b) : 0;\n        });\n    }, [storedFrecencies, data, keyRef, sortUnvisitedRef]);\n    return { data: sortedData, visitItem, resetRanking };\n}\nexports.useFrecencySorting = useFrecencySorting;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLocalStorage = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst showFailureToast_1 = require(\"./showFailureToast\");\nconst helpers_1 = require(\"./helpers\");\nconst usePromise_1 = require(\"./usePromise\");\n/**\n * A hook to manage a value in the local storage.\n *\n * @remark The value is stored as a JSON string in the local storage.\n *\n * @param key - The key to use for the value in the local storage.\n * @param initialValue - The initial value to use if the key doesn't exist in the local storage.\n * @returns An object with the following properties:\n * - `value`: The value from the local storage or the initial value if the key doesn't exist.\n * - `setValue`: A function to update the value in the local storage.\n * - `removeValue`: A function to remove the value from the local storage.\n * - `isLoading`: A boolean indicating if the value is loading.\n *\n * @example\n * ```\n * const { value, setValue } = useLocalStorage<string>(\"my-key\");\n * const { value, setValue } = useLocalStorage<string>(\"my-key\", \"default value\");\n * ```\n */\nfunction useLocalStorage(key, initialValue) {\n    const { data: value, isLoading, mutate, } = (0, usePromise_1.usePromise)(async (storageKey) => {\n        const item = await api_1.LocalStorage.getItem(storageKey);\n        return typeof item !== \"undefined\" ? JSON.parse(item, helpers_1.reviver) : initialValue;\n    }, [key]);\n    async function setValue(value) {\n        try {\n            await mutate(api_1.LocalStorage.setItem(key, JSON.stringify(value, helpers_1.replacer)), {\n                optimisticUpdate(value) {\n                    return value;\n                },\n            });\n        }\n        catch (error) {\n            await (0, showFailureToast_1.showFailureToast)(error, { title: \"Failed to set value in local storage\" });\n        }\n    }\n    async function removeValue() {\n        try {\n            await mutate(api_1.LocalStorage.removeItem(key), {\n                optimisticUpdate() {\n                    return undefined;\n                },\n            });\n        }\n        catch (error) {\n            await (0, showFailureToast_1.showFailureToast)(error, { title: \"Failed to remove value from local storage\" });\n        }\n    }\n    return { value, setValue, removeValue, isLoading };\n}\nexports.useLocalStorage = useLocalStorage;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slightlyLighterColor = exports.slightlyDarkerColor = void 0;\nfunction hexToRGB(hex) {\n    let r = 0;\n    let g = 0;\n    let b = 0;\n    // 3 digits\n    if (hex.length === 4) {\n        r = parseInt(`${hex[1]}${hex[1]}`, 16);\n        g = parseInt(`${hex[2]}${hex[2]}`, 16);\n        b = parseInt(`${hex[3]}${hex[3]}`, 16);\n        // 6 digits\n    }\n    else if (hex.length === 7) {\n        r = parseInt(`${hex[1]}${hex[2]}`, 16);\n        g = parseInt(`${hex[3]}${hex[4]}`, 16);\n        b = parseInt(`${hex[5]}${hex[6]}`, 16);\n    }\n    else {\n        throw new Error(`Malformed hex color: ${hex}`);\n    }\n    return { r, g, b };\n}\nfunction rgbToHex({ r, g, b }) {\n    let rString = r.toString(16);\n    let gString = g.toString(16);\n    let bString = b.toString(16);\n    if (rString.length === 1) {\n        rString = `0${rString}`;\n    }\n    if (gString.length === 1) {\n        gString = `0${gString}`;\n    }\n    if (bString.length === 1) {\n        bString = `0${bString}`;\n    }\n    return `#${rString}${gString}${bString}`;\n}\nfunction rgbToHSL({ r, g, b }) {\n    // Make r, g, and b fractions of 1\n    r /= 255;\n    g /= 255;\n    b /= 255;\n    // Find greatest and smallest channel values\n    const cmin = Math.min(r, g, b);\n    const cmax = Math.max(r, g, b);\n    const delta = cmax - cmin;\n    let h = 0;\n    let s = 0;\n    let l = 0;\n    // Calculate hue\n    // No difference\n    if (delta === 0) {\n        h = 0;\n    }\n    // Red is max\n    else if (cmax === r) {\n        h = ((g - b) / delta) % 6;\n    }\n    // Green is max\n    else if (cmax === g) {\n        h = (b - r) / delta + 2;\n    }\n    // Blue is max\n    else {\n        h = (r - g) / delta + 4;\n    }\n    h = Math.round(h * 60);\n    // Make negative hues positive behind 360\u00B0\n    if (h < 0) {\n        h += 360;\n    }\n    // Calculate lightness\n    l = (cmax + cmin) / 2;\n    // Calculate saturation\n    s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n    // Multiply l and s by 100\n    s = +(s * 100).toFixed(1);\n    l = +(l * 100).toFixed(1);\n    return { h, s, l };\n}\nfunction hslToRGB({ h, s, l }) {\n    // Must be fractions of 1\n    s /= 100;\n    l /= 100;\n    const c = (1 - Math.abs(2 * l - 1)) * s;\n    const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n    const m = l - c / 2;\n    let r = 0;\n    let g = 0;\n    let b = 0;\n    if (h >= 0 && h < 60) {\n        r = c;\n        g = x;\n        b = 0;\n    }\n    else if (h >= 60 && h < 120) {\n        r = x;\n        g = c;\n        b = 0;\n    }\n    else if (h >= 120 && h < 180) {\n        r = 0;\n        g = c;\n        b = x;\n    }\n    else if (h >= 180 && h < 240) {\n        r = 0;\n        g = x;\n        b = c;\n    }\n    else if (h >= 240 && h < 300) {\n        r = x;\n        g = 0;\n        b = c;\n    }\n    else if (h >= 300 && h < 360) {\n        r = c;\n        g = 0;\n        b = x;\n    }\n    r = Math.round((r + m) * 255);\n    g = Math.round((g + m) * 255);\n    b = Math.round((b + m) * 255);\n    return { r, g, b };\n}\nfunction hexToHSL(hex) {\n    return rgbToHSL(hexToRGB(hex));\n}\nfunction hslToHex(hsl) {\n    return rgbToHex(hslToRGB(hsl));\n}\nfunction clamp(value, min, max) {\n    return min < max ? (value < min ? min : value > max ? max : value) : value < max ? max : value > min ? min : value;\n}\nconst offset = 12;\nfunction slightlyDarkerColor(hex) {\n    const hsl = hexToHSL(hex);\n    return hslToHex({\n        h: hsl.h,\n        s: hsl.s,\n        l: clamp(hsl.l - offset, 0, 100),\n    });\n}\nexports.slightlyDarkerColor = slightlyDarkerColor;\nfunction slightlyLighterColor(hex) {\n    const hsl = hexToHSL(hex);\n    return hslToHex({\n        h: hsl.h,\n        s: hsl.s,\n        l: clamp(hsl.l + offset, 0, 100),\n    });\n}\nexports.slightlyLighterColor = slightlyLighterColor;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAvatarIcon = void 0;\nconst color_1 = require(\"./color\");\nfunction getWholeCharAndI(str, i) {\n    const code = str.charCodeAt(i);\n    if (Number.isNaN(code)) {\n        return [\"\", i];\n    }\n    if (code < 0xd800 || code > 0xdfff) {\n        return [str.charAt(i), i]; // Normal character, keeping 'i' the same\n    }\n    // High surrogate (could change last hex to 0xDB7F to treat high private\n    // surrogates as single characters)\n    if (0xd800 <= code && code <= 0xdbff) {\n        if (str.length <= i + 1) {\n            throw new Error(\"High surrogate without following low surrogate\");\n        }\n        const next = str.charCodeAt(i + 1);\n        if (0xdc00 > next || next > 0xdfff) {\n            throw new Error(\"High surrogate without following low surrogate\");\n        }\n        return [str.charAt(i) + str.charAt(i + 1), i + 1];\n    }\n    // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n    if (i === 0) {\n        throw new Error(\"Low surrogate without preceding high surrogate\");\n    }\n    const prev = str.charCodeAt(i - 1);\n    // (could change last hex to 0xDB7F to treat high private surrogates\n    // as single characters)\n    if (0xd800 > prev || prev > 0xdbff) {\n        throw new Error(\"Low surrogate without preceding high surrogate\");\n    }\n    // Return the next character instead (and increment)\n    return [str.charAt(i + 1), i + 1];\n}\nconst avatarColorSet = [\n    \"#DC829A\",\n    \"#D64854\",\n    \"#D47600\",\n    \"#D36CDD\",\n    \"#52A9E4\",\n    \"#7871E8\",\n    \"#70920F\",\n    \"#43B93A\",\n    \"#EB6B3E\",\n    \"#26B795\",\n    \"#D85A9B\",\n    \"#A067DC\",\n    \"#BD9500\",\n    \"#5385D9\", // Blue\n];\n/**\n * Icon to represent an avatar when you don't have one. The generated avatar\n * will be generated from the initials of the name and have a colorful but consistent background.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getAvatarIcon('Mathieu Dutour')} title=\"Project\" />\n * ```\n */\nfunction getAvatarIcon(name, options) {\n    const words = name.trim().split(\" \");\n    let initials;\n    if (words.length == 1 && getWholeCharAndI(words[0], 0)[0]) {\n        initials = getWholeCharAndI(words[0], 0)[0];\n    }\n    else if (words.length > 1) {\n        const firstWordFirstLetter = getWholeCharAndI(words[0], 0)[0] || \"\";\n        const lastWordFirstLetter = getWholeCharAndI(words[words.length - 1], 0)[0] ?? \"\";\n        initials = firstWordFirstLetter + lastWordFirstLetter;\n    }\n    else {\n        initials = \"\";\n    }\n    let backgroundColor;\n    if (options?.background) {\n        backgroundColor = options?.background;\n    }\n    else {\n        let initialsCharIndex = 0;\n        let [char, i] = getWholeCharAndI(initials, 0);\n        while (char) {\n            initialsCharIndex += char.charCodeAt(0);\n            [char, i] = getWholeCharAndI(initials, i + 1);\n        }\n        const colorIndex = initialsCharIndex % avatarColorSet.length;\n        backgroundColor = avatarColorSet[colorIndex];\n    }\n    const padding = 0;\n    const radius = 50 - padding;\n    const svg = `<svg width=\"100px\" height=\"100px\">\n  ${options?.gradient !== false\n        ? `<defs>\n      <linearGradient id=\"Gradient\" x1=\"0.25\" x2=\"0.75\" y1=\"0\" y2=\"1\">\n        <stop offset=\"0%\" stop-color=\"${(0, color_1.slightlyLighterColor)(backgroundColor)}\"/>\n        <stop offset=\"50%\" stop-color=\"${backgroundColor}\"/>\n        <stop offset=\"100%\" stop-color=\"${(0, color_1.slightlyDarkerColor)(backgroundColor)}\"/>\n      </linearGradient>\n  </defs>`\n        : \"\"}\n      <circle cx=\"50\" cy=\"50\" r=\"${radius}\" fill=\"${options?.gradient !== false ? \"url(#Gradient)\" : backgroundColor}\" />\n      ${initials\n        ? `<text x=\"50\" y=\"80\" font-size=\"${radius - 1}\" font-family=\"Inter, sans-serif\" text-anchor=\"middle\" fill=\"white\">${initials.toUpperCase()}</text>`\n        : \"\"}\n    </svg>\n  `.replaceAll(\"\\n\", \"\");\n    return `data:image/svg+xml,${svg}`;\n}\nexports.getAvatarIcon = getAvatarIcon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFavicon = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst url_1 = require(\"url\");\n/**\n * Icon showing the favicon of a website.\n *\n * A favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page tabs, and bookmarks menu.\n *\n * @param url The URL of the website to represent.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getFavicon(\"https://raycast.com\")} title=\"Raycast Website\" />\n * ```\n */\nfunction getFavicon(url, options) {\n    try {\n        const urlObj = typeof url === \"string\" ? new url_1.URL(url) : url;\n        const hostname = urlObj.hostname;\n        return {\n            source: `https://www.google.com/s2/favicons?sz=${options?.size ?? 64}&domain=${hostname}`,\n            fallback: options?.fallback ?? api_1.Icon.Link,\n            mask: options?.mask,\n        };\n    }\n    catch (e) {\n        console.error(e);\n        return api_1.Icon.Link;\n    }\n}\nexports.getFavicon = getFavicon;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProgressIcon = void 0;\nconst api_1 = require(\"@raycast/api\");\nfunction polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n    const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;\n    return {\n        x: centerX + radius * Math.cos(angleInRadians),\n        y: centerY + radius * Math.sin(angleInRadians),\n    };\n}\nfunction describeArc(x, y, radius, startAngle, endAngle) {\n    const start = polarToCartesian(x, y, radius, endAngle);\n    const end = polarToCartesian(x, y, radius, startAngle);\n    const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n    const d = [\"M\", start.x, start.y, \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y].join(\" \");\n    return d;\n}\n/**\n * Icon to represent the progress of _something_.\n *\n * @param progress Number between 0 and 1.\n * @param color Hex color (default `\"#FF6363\"`) or Color.\n *\n * @returns an Image that can be used where Raycast expects them.\n *\n * @example\n * ```\n * <List.Item icon={getProgressIcon(0.1)} title=\"Project\" />\n * ```\n */\nfunction getProgressIcon(progress, color = api_1.Color.Red, options) {\n    const background = options?.background || (api_1.environment.appearance === \"light\" ? \"black\" : \"white\");\n    const backgroundOpacity = options?.backgroundOpacity || 0.1;\n    const stroke = 10;\n    const padding = 5;\n    const radius = 50 - padding - stroke / 2;\n    const svg = `<svg width=\"100px\" height=\"100px\">\n      <circle cx=\"50\" cy=\"50\" r=\"${radius}\" stroke-width=\"${stroke}\" stroke=\"${progress < 1 ? background : color}\" opacity=\"${progress < 1 ? backgroundOpacity : \"1\"}\" fill=\"none\" />\n      ${progress > 0 && progress < 1\n        ? `<path d=\"${describeArc(50, 50, radius, 0, progress * 360)}\" stroke=\"${color}\" stroke-width=\"${stroke}\" fill=\"none\" />`\n        : \"\"}\n    </svg>\n  `.replaceAll(\"\\n\", \"\");\n    return `data:image/svg+xml,${svg}`;\n}\nexports.getProgressIcon = getProgressIcon;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./avatar\"), exports);\n__exportStar(require(\"./favicon\"), exports);\n__exportStar(require(\"./progress\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zoomService = exports.slackService = exports.linearService = exports.jiraService = exports.googleService = exports.githubService = exports.asanaService = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst OAuthService_1 = require(\"./OAuthService\");\nconst PROVIDER_CLIENT_IDS = {\n    asana: \"1191201745684312\",\n    github: \"7235fe8d42157f1f38c0\",\n    linear: \"c8ff37b9225c3c9aefd7d66ea0e5b6f1\",\n    slack: \"851756884692.5546927290212\",\n};\nconst getIcon = (markup) => `data:image/svg+xml,${markup}`;\nconst PROVIDERS_ICONS = {\n    asana: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"251\" height=\"232\" fill=\"none\"><path fill=\"#F06A6A\" d=\"M179.383 54.373c0 30.017-24.337 54.374-54.354 54.374-30.035 0-54.373-24.338-54.373-54.374C70.656 24.338 94.993 0 125.029 0c30.017 0 54.354 24.338 54.354 54.373ZM54.393 122.33C24.376 122.33.02 146.668.02 176.685c0 30.017 24.337 54.373 54.373 54.373 30.035 0 54.373-24.338 54.373-54.373 0-30.017-24.338-54.355-54.373-54.355Zm141.253 0c-30.035 0-54.373 24.338-54.373 54.374 0 30.035 24.338 54.373 54.373 54.373 30.017 0 54.374-24.338 54.374-54.373 0-30.036-24.338-54.374-54.374-54.374Z\"/></svg>`),\n    github: {\n        source: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"64\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z\"/></svg>`),\n        tintColor: api_1.Color.PrimaryText,\n    },\n    google: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"display:block\" viewBox=\"0 0 48 48\"><path fill=\"#EA4335\" d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"/><path fill=\"#4285F4\" d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"/><path fill=\"#FBBC05\" d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"/><path fill=\"#34A853\" d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"/><path fill=\"none\" d=\"M0 0h48v48H0z\"/></svg>`),\n    jira: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"2361\" height=\"2500\" viewBox=\"2.59 0 214.091 224\"><linearGradient id=\"a\" x1=\"102.4\" x2=\"56.15\" y1=\"218.63\" y2=\"172.39\" gradientTransform=\"matrix(1 0 0 -1 0 264)\" gradientUnits=\"userSpaceOnUse\"><stop offset=\".18\" stop-color=\"#0052cc\"/><stop offset=\"1\" stop-color=\"#2684ff\"/></linearGradient><linearGradient xlink:href=\"#a\" id=\"b\" x1=\"114.65\" x2=\"160.81\" y1=\"85.77\" y2=\"131.92\"/><path fill=\"#2684ff\" d=\"M214.06 105.73 117.67 9.34 108.33 0 35.77 72.56 2.59 105.73a8.89 8.89 0 0 0 0 12.54l66.29 66.29L108.33 224l72.55-72.56 1.13-1.12 32.05-32a8.87 8.87 0 0 0 0-12.59zm-105.73 39.39L75.21 112l33.12-33.12L141.44 112z\"/><path fill=\"url(#a)\" d=\"M108.33 78.88a55.75 55.75 0 0 1-.24-78.61L35.62 72.71l39.44 39.44z\"/><path fill=\"url(#b)\" d=\"m141.53 111.91-33.2 33.21a55.77 55.77 0 0 1 0 78.86L181 151.35z\"/></svg>`),\n    linear: {\n        source: {\n            light: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#222326\" width=\"200\" height=\"200\" viewBox=\"0 0 100 100\"><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3542-.0443L12.6587 18.074Z\"/></svg>`),\n            dark: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#fff\" width=\"200\" height=\"200\" viewBox=\"0 0 100 100\"><path d=\"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3542-.0443L12.6587 18.074Z\" /></svg>`),\n        },\n    },\n    slack: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"73 73 124 124\"><style>.st0{fill:#e01e5a}.st1{fill:#36c5f0}.st2{fill:#2eb67d}.st3{fill:#ecb22e}</style><path d=\"M99.4 151.2c0 7.1-5.8 12.9-12.9 12.9-7.1 0-12.9-5.8-12.9-12.9 0-7.1 5.8-12.9 12.9-12.9h12.9v12.9zM105.9 151.2c0-7.1 5.8-12.9 12.9-12.9s12.9 5.8 12.9 12.9v32.3c0 7.1-5.8 12.9-12.9 12.9s-12.9-5.8-12.9-12.9v-32.3z\" class=\"st0\"/><path d=\"M118.8 99.4c-7.1 0-12.9-5.8-12.9-12.9 0-7.1 5.8-12.9 12.9-12.9s12.9 5.8 12.9 12.9v12.9h-12.9zM118.8 105.9c7.1 0 12.9 5.8 12.9 12.9s-5.8 12.9-12.9 12.9H86.5c-7.1 0-12.9-5.8-12.9-12.9s5.8-12.9 12.9-12.9h32.3z\" class=\"st1\"/><path d=\"M170.6 118.8c0-7.1 5.8-12.9 12.9-12.9 7.1 0 12.9 5.8 12.9 12.9s-5.8 12.9-12.9 12.9h-12.9v-12.9zM164.1 118.8c0 7.1-5.8 12.9-12.9 12.9-7.1 0-12.9-5.8-12.9-12.9V86.5c0-7.1 5.8-12.9 12.9-12.9 7.1 0 12.9 5.8 12.9 12.9v32.3z\" class=\"st2\"/><path d=\"M151.2 170.6c7.1 0 12.9 5.8 12.9 12.9 0 7.1-5.8 12.9-12.9 12.9-7.1 0-12.9-5.8-12.9-12.9v-12.9h12.9zM151.2 164.1c-7.1 0-12.9-5.8-12.9-12.9 0-7.1 5.8-12.9 12.9-12.9h32.3c7.1 0 12.9 5.8 12.9 12.9 0 7.1-5.8 12.9-12.9 12.9h-32.3z\" class=\"st3\"/></svg>`),\n    zoom: getIcon(`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 351.845 80\"><path d=\"M73.786 78.835H10.88A10.842 10.842 0 0 1 .833 72.122a10.841 10.841 0 0 1 2.357-11.85L46.764 16.7h-31.23C6.954 16.699 0 9.744 0 1.165h58.014c4.414 0 8.357 2.634 10.046 6.712a10.843 10.843 0 0 1-2.356 11.85L22.13 63.302h36.122c8.58 0 15.534 6.955 15.534 15.534Zm278.059-48.544C351.845 13.588 338.256 0 321.553 0c-8.934 0-16.975 3.89-22.524 10.063C293.48 3.89 285.44 0 276.505 0c-16.703 0-30.291 13.588-30.291 30.291v48.544c8.579 0 15.534-6.955 15.534-15.534v-33.01c0-8.137 6.62-14.757 14.757-14.757s14.757 6.62 14.757 14.757v33.01c0 8.58 6.955 15.534 15.534 15.534V30.291c0-8.137 6.62-14.757 14.757-14.757s14.758 6.62 14.758 14.757v33.01c0 8.58 6.954 15.534 15.534 15.534V30.291ZM238.447 40c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.908-40 40-40 40 17.909 40 40Zm-15.534 0c0-13.512-10.954-24.466-24.466-24.466S173.98 26.488 173.98 40s10.953 24.466 24.466 24.466S222.913 53.512 222.913 40Zm-70.68 0c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40Zm-15.534 0c0-13.512-10.954-24.466-24.466-24.466S87.767 26.488 87.767 40s10.954 24.466 24.466 24.466S136.699 53.512 136.699 40Z\" style=\"fill:#0b5cff\"/></svg>`),\n};\nconst asanaService = (options) => new OAuthService_1.OAuthService({\n    client: new api_1.OAuth.PKCEClient({\n        redirectMethod: api_1.OAuth.RedirectMethod.Web,\n        providerName: \"Asana\",\n        providerIcon: PROVIDERS_ICONS.asana,\n        providerId: \"asana\",\n        description: \"Connect your Asana account\",\n    }),\n    clientId: options.clientId ?? PROVIDER_CLIENT_IDS.asana,\n    authorizeUrl: options.authorizeUrl ?? \"https://asana.oauth.raycast.com/authorize\",\n    tokenUrl: options.tokenUrl ?? \"https://asana.oauth.raycast.com/token\",\n    refreshTokenUrl: options.refreshTokenUrl ?? \"https://asana.oauth.raycast.com/refresh-token\",\n    scope: options.scope,\n    personalAccessToken: options.personalAccessToken,\n    onAuthorize: options.onAuthorize,\n    bodyEncoding: options.bodyEncoding,\n    tokenRefreshResponseParser: options.tokenRefreshResponseParser,\n    tokenResponseParser: options.tokenResponseParser,\n});\nexports.asanaService = asanaService;\nconst githubService = (options) => new OAuthService_1.OAuthService({\n    client: new api_1.OAuth.PKCEClient({\n        redirectMethod: api_1.OAuth.RedirectMethod.Web,\n        providerName: \"GitHub\",\n        providerIcon: PROVIDERS_ICONS.github,\n        providerId: \"github\",\n        description: \"Connect your GitHub account\",\n    }),\n    clientId: options.clientId ?? PROVIDER_CLIENT_IDS.github,\n    authorizeUrl: options.authorizeUrl ?? \"https://github.oauth.raycast.com/authorize\",\n    tokenUrl: options.tokenUrl ?? \"https://github.oauth.raycast.com/token\",\n    refreshTokenUrl: options.refreshTokenUrl ?? \"https://github.oauth.raycast.com/refresh-token\",\n    scope: options.scope,\n    personalAccessToken: options.personalAccessToken,\n    onAuthorize: options.onAuthorize,\n    bodyEncoding: options.bodyEncoding,\n    tokenRefreshResponseParser: options.tokenRefreshResponseParser,\n    tokenResponseParser: options.tokenResponseParser,\n});\nexports.githubService = githubService;\nconst googleService = (options) => new OAuthService_1.OAuthService({\n    client: new api_1.OAuth.PKCEClient({\n        redirectMethod: api_1.OAuth.RedirectMethod.AppURI,\n        providerName: \"Google\",\n        providerIcon: PROVIDERS_ICONS.google,\n        providerId: \"google\",\n        description: \"Connect your Google account\",\n    }),\n    clientId: options.clientId,\n    authorizeUrl: options.authorizeUrl ?? \"https://accounts.google.com/o/oauth2/v2/auth\",\n    tokenUrl: options.tokenUrl ?? \"https://oauth2.googleapis.com/token\",\n    refreshTokenUrl: options.tokenUrl,\n    scope: options.scope,\n    personalAccessToken: options.personalAccessToken,\n    bodyEncoding: options.bodyEncoding ?? \"url-encoded\",\n    onAuthorize: options.onAuthorize,\n    tokenRefreshResponseParser: options.tokenRefreshResponseParser,\n    tokenResponseParser: options.tokenResponseParser,\n});\nexports.googleService = googleService;\nconst jiraService = (options) => new OAuthService_1.OAuthService({\n    client: new api_1.OAuth.PKCEClient({\n        redirectMethod: api_1.OAuth.RedirectMethod.Web,\n        providerName: \"Jira\",\n        providerIcon: PROVIDERS_ICONS.jira,\n        providerId: \"jira\",\n        description: \"Connect your Jira account\",\n    }),\n    clientId: options.clientId,\n    authorizeUrl: options.authorizeUrl ?? \"https://auth.atlassian.com/authorize\",\n    tokenUrl: options.tokenUrl ?? \"https://auth.atlassian.com/oauth/token\",\n    refreshTokenUrl: options.refreshTokenUrl,\n    scope: options.scope,\n    personalAccessToken: options.personalAccessToken,\n    onAuthorize: options.onAuthorize,\n    bodyEncoding: options.bodyEncoding,\n    tokenRefreshResponseParser: options.tokenRefreshResponseParser,\n    tokenResponseParser: options.tokenResponseParser,\n});\nexports.jiraService = jiraService;\nconst linearService = (options) => new OAuthService_1.OAuthService({\n    client: new api_1.OAuth.PKCEClient({\n        redirectMethod: api_1.OAuth.RedirectMethod.Web,\n        providerName: \"Linear\",\n        providerIcon: PROVIDERS_ICONS.linear,\n        providerId: \"linear\",\n        description: \"Connect your Linear account\",\n    }),\n    clientId: options.clientId ?? PROVIDER_CLIENT_IDS.linear,\n    authorizeUrl: options.authorizeUrl ?? \"https://linear.oauth.raycast.com/authorize\",\n    tokenUrl: options.tokenUrl ?? \"https://linear.oauth.raycast.com/token\",\n    refreshTokenUrl: options.refreshTokenUrl ?? \"https://linear.oauth.raycast.com/refresh-token\",\n    scope: options.scope,\n    extraParameters: {\n        actor: \"user\",\n    },\n    onAuthorize: options.onAuthorize,\n    bodyEncoding: options.bodyEncoding,\n    tokenRefreshResponseParser: options.tokenRefreshResponseParser,\n    tokenResponseParser: options.tokenResponseParser,\n});\nexports.linearService = linearService;\nconst slackService = (options) => new OAuthService_1.OAuthService({\n    client: new api_1.OAuth.PKCEClient({\n        redirectMethod: api_1.OAuth.RedirectMethod.Web,\n        providerName: \"Slack\",\n        providerIcon: PROVIDERS_ICONS.slack,\n        providerId: \"slack\",\n        description: \"Connect your Slack account\",\n    }),\n    clientId: options.clientId ?? PROVIDER_CLIENT_IDS.slack,\n    authorizeUrl: options.authorizeUrl ?? \"https://slack.oauth.raycast.com/authorize\",\n    tokenUrl: options.tokenUrl ?? \"https://slack.oauth.raycast.com/token\",\n    refreshTokenUrl: options.tokenUrl ?? \"https://slack.oauth.raycast.com/refresh-token\",\n    scope: \"\",\n    extraParameters: {\n        user_scope: options.scope,\n    },\n    personalAccessToken: options.personalAccessToken,\n    bodyEncoding: options.tokenUrl ? options.bodyEncoding ?? \"url-encoded\" : \"json\",\n    onAuthorize: options.onAuthorize,\n    tokenRefreshResponseParser: options.tokenRefreshResponseParser,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    tokenResponseParser: options.tokenResponseParser ??\n        ((response) => {\n            return {\n                access_token: response.authed_user.access_token,\n                scope: response.authed_user.scope,\n            };\n        }),\n});\nexports.slackService = slackService;\nconst zoomService = (options) => new OAuthService_1.OAuthService({\n    client: new api_1.OAuth.PKCEClient({\n        redirectMethod: api_1.OAuth.RedirectMethod.Web,\n        providerName: \"Zoom\",\n        providerIcon: PROVIDERS_ICONS.zoom,\n        providerId: \"zoom\",\n        description: \"Connect your Zoom account\",\n    }),\n    clientId: options.clientId,\n    authorizeUrl: options.authorizeUrl ?? \"https://zoom.us/oauth/authorize\",\n    tokenUrl: options.tokenUrl ?? \"https://zoom.us/oauth/token\",\n    refreshTokenUrl: options.refreshTokenUrl,\n    scope: options.scope,\n    personalAccessToken: options.personalAccessToken,\n    bodyEncoding: options.bodyEncoding ?? \"url-encoded\",\n    onAuthorize: options.onAuthorize,\n    tokenRefreshResponseParser: options.tokenRefreshResponseParser,\n    tokenResponseParser: options.tokenResponseParser,\n});\nexports.zoomService = zoomService;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OAuthService = void 0;\nconst cross_fetch_1 = __importDefault(require(\"cross-fetch\"));\nconst providers_1 = require(\"./providers\");\n/**\n * Class allowing to create an OAuth service using the the PKCE (Proof Key for Code Exchange) flow.\n *\n * This service is capable of starting the authorization process, fetching and refreshing tokens,\n * as well as managing the authentication state.\n *\n * @example\n * ```typescript\n * const oauthClient = new OAuth.PKCEClient({ ... });\n * const oauthService = new OAuthService({\n *   client: oauthClient,\n *   clientId: 'your-client-id',\n *   scope: 'required scopes',\n *   authorizeUrl: 'https://provider.com/oauth/authorize',\n *   tokenUrl: 'https://provider.com/oauth/token',\n *   refreshTokenUrl: 'https://provider.com/oauth/token',\n *   extraParameters: { 'additional_param': 'value' }\n * });\n * ```\n */\nclass OAuthService {\n    constructor(options) {\n        this.clientId = options.clientId;\n        this.scope = Array.isArray(options.scope) ? options.scope.join(\" \") : options.scope;\n        this.personalAccessToken = options.personalAccessToken;\n        this.bodyEncoding = options.bodyEncoding;\n        this.client = options.client;\n        this.extraParameters = options.extraParameters;\n        this.authorizeUrl = options.authorizeUrl;\n        this.tokenUrl = options.tokenUrl;\n        this.refreshTokenUrl = options.refreshTokenUrl;\n        this.onAuthorize = options.onAuthorize;\n        this.tokenResponseParser = options.tokenResponseParser ?? ((x) => x);\n        this.tokenRefreshResponseParser = options.tokenRefreshResponseParser ?? ((x) => x);\n        this.authorize = this.authorize.bind(this);\n    }\n    /**\n     * Initiates the OAuth authorization process or refreshes existing tokens if necessary.\n     * If the current token set has a refresh token and it is expired, then the function will refresh the tokens.\n     * If no tokens exist, it will initiate the OAuth authorization process and fetch the tokens.\n     *\n     * @returns {Promise<string>} A promise that resolves with the access token obtained from the authorization flow, or null if the token could not be obtained.\n     */\n    async authorize() {\n        const currentTokenSet = await this.client.getTokens();\n        if (currentTokenSet?.accessToken) {\n            if (currentTokenSet.refreshToken && currentTokenSet.isExpired()) {\n                const tokens = await this.refreshTokens({\n                    token: currentTokenSet.refreshToken,\n                });\n                // In the case where the refresh token flows fails, nothing is returned and the authorize function is called again.\n                if (tokens) {\n                    await this.client.setTokens(tokens);\n                    return tokens.access_token;\n                }\n            }\n            return currentTokenSet.accessToken;\n        }\n        const authRequest = await this.client.authorizationRequest({\n            endpoint: this.authorizeUrl,\n            clientId: this.clientId,\n            scope: this.scope,\n            extraParameters: this.extraParameters,\n        });\n        const { authorizationCode } = await this.client.authorize(authRequest);\n        const tokens = await this.fetchTokens({\n            authRequest,\n            authorizationCode,\n        });\n        await this.client.setTokens(tokens);\n        return tokens.access_token;\n    }\n    async fetchTokens({ authRequest, authorizationCode, }) {\n        let options;\n        if (this.bodyEncoding === \"url-encoded\") {\n            const params = new URLSearchParams();\n            params.append(\"client_id\", this.clientId);\n            params.append(\"code\", authorizationCode);\n            params.append(\"code_verifier\", authRequest.codeVerifier);\n            params.append(\"grant_type\", \"authorization_code\");\n            params.append(\"redirect_uri\", authRequest.redirectURI);\n            options = { body: params };\n        }\n        else {\n            options = {\n                body: JSON.stringify({\n                    client_id: this.clientId,\n                    code: authorizationCode,\n                    code_verifier: authRequest.codeVerifier,\n                    grant_type: \"authorization_code\",\n                    redirect_uri: authRequest.redirectURI,\n                }),\n                headers: { \"Content-Type\": \"application/json\" },\n            };\n        }\n        const response = await (0, cross_fetch_1.default)(this.tokenUrl, { method: \"POST\", ...options });\n        if (!response.ok) {\n            const responseText = await response.text();\n            console.error(\"fetch tokens error:\", responseText);\n            throw new Error(`Error while fetching tokens: ${response.status} (${response.statusText})\\n${responseText}`);\n        }\n        const tokens = this.tokenResponseParser(await response.json());\n        // Some clients such as Linear can return a scope array instead of a string\n        return Array.isArray(tokens.scope) ? { ...tokens, scope: tokens.scope.join(\" \") } : tokens;\n    }\n    async refreshTokens({ token }) {\n        let options;\n        if (this.bodyEncoding === \"url-encoded\") {\n            const params = new URLSearchParams();\n            params.append(\"client_id\", this.clientId);\n            params.append(\"refresh_token\", token);\n            params.append(\"grant_type\", \"refresh_token\");\n            options = { body: params };\n        }\n        else {\n            options = {\n                body: JSON.stringify({\n                    client_id: this.clientId,\n                    refresh_token: token,\n                    grant_type: \"refresh_token\",\n                }),\n                headers: { \"Content-Type\": \"application/json\" },\n            };\n        }\n        const response = await (0, cross_fetch_1.default)(this.refreshTokenUrl ?? this.tokenUrl, { method: \"POST\", ...options });\n        if (!response.ok) {\n            const responseText = await response.text();\n            console.error(\"refresh tokens error:\", responseText);\n            // If the refresh token is invalid, stop the flow here, log out the user and prompt them to re-authorize.\n            this.client.description = `${this.client.providerName} needs you to sign-in again. Press \u23CE or click the button below to continue.`;\n            await this.client.removeTokens();\n            await this.authorize();\n        }\n        else {\n            const tokenResponse = this.tokenRefreshResponseParser(await response.json());\n            tokenResponse.refresh_token = tokenResponse.refresh_token ?? token;\n            return tokenResponse;\n        }\n    }\n}\nexports.OAuthService = OAuthService;\n/**\n * Asana OAuth service provided out of the box.\n *\n * @example\n * ```typescript\n * const asana = OAuthService.asana({ scope: 'default' })\n * ```\n */\nOAuthService.asana = providers_1.asanaService;\n/**\n * GitHub OAuth service provided out of the box.\n *\n * @example\n * ```typescript\n * const github = OAuthService.github({ scope: 'repo user' })\n * ```\n */\nOAuthService.github = providers_1.githubService;\n/**\n * Google OAuth service provided out of the box.\n *\n * @example\n * ```typescript\n * const google = OAuthService.google({\n *   clientId: 'custom-client-id',\n *   authorizeUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n *   tokenUrl: 'https://oauth2.googleapis.com/token',\n *   scope: 'https://www.googleapis.com/auth/drive.readonly',\n * });\n * ```\n */\nOAuthService.google = providers_1.googleService;\n/**\n * Jira OAuth service provided out of the box.\n *\n * @example\n * ```typescript\n * const jira = OAuthService.jira({\n *   clientId: 'custom-client-id',\n *   authorizeUrl: 'https://auth.atlassian.com/authorize',\n *   tokenUrl: 'https://api.atlassian.com/oauth/token',\n *   scope: 'read:jira-user read:jira-work offline_access'\n * });\n * ```\n */\nOAuthService.jira = providers_1.jiraService;\n/**\n * Linear OAuth service provided out of the box.\n *\n * @example\n * ```typescript\n * const linear = OAuthService.linear({ scope: 'read write' })\n * ```\n */\nOAuthService.linear = providers_1.linearService;\n/**\n * Slack OAuth service provided out of the box.\n *\n * @example\n * ```typescript\n * const slack = OAuthService.slack({ scope: 'emoji:read' })\n * ```\n */\nOAuthService.slack = providers_1.slackService;\n/**\n * Zoom OAuth service provided out of the box.\n *\n * @example\n * ```typescript\n * const zoom = OAuthService.zoom({\n *   clientId: 'custom-client-id',\n *   authorizeUrl: 'https://zoom.us/oauth/authorize',\n *   tokenUrl: 'https://zoom.us/oauth/token',\n *   scope: 'meeting:write',\n *   personalAccessToken: 'personal-access-token',\n * });\n * ```\n */\nOAuthService.zoom = providers_1.zoomService;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAccessToken = exports.withAccessToken = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst api_1 = require(\"@raycast/api\");\nlet token = null;\nlet type = null;\nlet authorize = null;\nlet getIdToken = null;\nlet onAuthorize = null;\nfunction withAccessToken(options) {\n    if (api_1.environment.commandMode === \"no-view\") {\n        return (fn) => {\n            const noViewFn = async (props) => {\n                if (!token) {\n                    token = options.personalAccessToken ?? (await options.authorize());\n                    type = options.personalAccessToken ? \"personal\" : \"oauth\";\n                    const idToken = (await options.client?.getTokens())?.idToken;\n                    if (options.onAuthorize) {\n                        await Promise.resolve(options.onAuthorize({ token, type, idToken }));\n                    }\n                }\n                return fn(props);\n            };\n            return noViewFn;\n        };\n    }\n    return (Component) => {\n        const WrappedComponent = (props) => {\n            if (options.personalAccessToken) {\n                token = options.personalAccessToken;\n                type = \"personal\";\n            }\n            else {\n                if (!authorize) {\n                    authorize = wrapPromise(options.authorize());\n                }\n                token = authorize.read();\n                type = \"oauth\";\n            }\n            let idToken;\n            if (options.client) {\n                if (!getIdToken) {\n                    getIdToken = wrapPromise(options.client.getTokens());\n                }\n                idToken = getIdToken.read()?.idToken;\n            }\n            if (!onAuthorize && options.onAuthorize) {\n                onAuthorize = wrapPromise(Promise.resolve(options.onAuthorize({ token, type, idToken })));\n            }\n            onAuthorize?.read();\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n            // @ts-ignore too complicated for TS\n            return (0, jsx_runtime_1.jsx)(Component, { ...props });\n        };\n        WrappedComponent.displayName = `withAccessToken(${Component.displayName || Component.name})`;\n        return WrappedComponent;\n    };\n}\nexports.withAccessToken = withAccessToken;\n/**\n * Returns the access token and its type. Note that this function must be called in a component wrapped with `withAccessToken`.\n *\n * @throws {Error} If called outside of a component wrapped with `withAccessToken`\n * @returns {{ token: string, type: \"oauth\" | \"personal\" }} An object containing the `token`\n * and its `type`, where type can be either 'oauth' for OAuth tokens or 'personal' for a\n * personal access token.\n */\nfunction getAccessToken() {\n    if (!token || !type) {\n        throw new Error(\"getAccessToken must be used when authenticated (eg. used inside `withAccessToken`)\");\n    }\n    return { token, type };\n}\nexports.getAccessToken = getAccessToken;\nfunction wrapPromise(promise) {\n    let status = \"pending\";\n    let response;\n    const suspender = promise.then((res) => {\n        status = \"success\";\n        response = res;\n    }, (err) => {\n        status = \"error\";\n        response = err;\n    });\n    const read = () => {\n        switch (status) {\n            case \"pending\":\n                throw suspender;\n            case \"error\":\n                throw response;\n            default:\n                return response;\n        }\n    };\n    return { read };\n}\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./OAuthService\"), exports);\n__exportStar(require(\"./withAccessToken\"), exports);\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDeeplink = exports.createExtensionDeeplink = exports.createScriptCommandDeeplink = exports.DeeplinkType = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst node_fs_1 = __importDefault(require(\"node:fs\"));\nconst node_path_1 = __importDefault(require(\"node:path\"));\nvar DeeplinkType;\n(function (DeeplinkType) {\n    /** A script command */\n    DeeplinkType[\"ScriptCommand\"] = \"script-command\";\n    /** An extension command */\n    DeeplinkType[\"Extension\"] = \"extension\";\n})(DeeplinkType || (exports.DeeplinkType = DeeplinkType = {}));\nfunction getProtocol() {\n    return api_1.environment.raycastVersion.includes(\"alpha\") ? \"raycastinternal://\" : \"raycast://\";\n}\nfunction getOwnerOrAuthorName() {\n    const packageJSON = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.join(api_1.environment.assetsPath, \"..\", \"package.json\"), \"utf8\"));\n    return packageJSON.owner || packageJSON.author;\n}\nfunction createScriptCommandDeeplink(options) {\n    let url = `${getProtocol()}script-commands/${options.command}`;\n    if (options.arguments) {\n        let params = \"\";\n        for (const arg of options.arguments) {\n            params += \"&arguments=\" + encodeURIComponent(arg);\n        }\n        url += \"?\" + params.substring(1);\n    }\n    return url;\n}\nexports.createScriptCommandDeeplink = createScriptCommandDeeplink;\nfunction createExtensionDeeplink(options) {\n    let ownerOrAuthorName = getOwnerOrAuthorName();\n    let extensionName = api_1.environment.extensionName;\n    if (\"ownerOrAuthorName\" in options && \"extensionName\" in options) {\n        ownerOrAuthorName = options.ownerOrAuthorName;\n        extensionName = options.extensionName;\n    }\n    let url = `${getProtocol()}extensions/${ownerOrAuthorName}/${extensionName}/${options.command}`;\n    let params = \"\";\n    if (options.launchType) {\n        params += \"&launchType=\" + encodeURIComponent(options.launchType);\n    }\n    if (options.arguments) {\n        params += \"&arguments=\" + encodeURIComponent(JSON.stringify(options.arguments));\n    }\n    if (options.context) {\n        params += \"&context=\" + encodeURIComponent(JSON.stringify(options.context));\n    }\n    if (options.fallbackText) {\n        params += \"&fallbackText=\" + encodeURIComponent(options.fallbackText);\n    }\n    if (params) {\n        url += \"?\" + params.substring(1);\n    }\n    return url;\n}\nexports.createExtensionDeeplink = createExtensionDeeplink;\n/**\n * Creates a deeplink to a script command or extension.\n */\nfunction createDeeplink(options) {\n    if (options.type === DeeplinkType.ScriptCommand) {\n        return createScriptCommandDeeplink(options);\n    }\n    else {\n        return createExtensionDeeplink(options);\n    }\n}\nexports.createDeeplink = createDeeplink;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeSQL = void 0;\nconst sql_utils_1 = require(\"./sql-utils\");\n/**\n * Executes a SQL query on a local SQLite database and returns the query result in JSON format.\n *\n * @param databasePath - The path to the SQLite database file.\n * @param query - The SQL query to execute.\n * @returns A Promise that resolves to an array of objects representing the query results.\n *\n * @example\n * ```typescript\n * import { closeMainWindow, Clipboard } from \"@raycast/api\";\n * import { executeSQL } from \"@raycast/utils\";\n *\n * type Message = { body: string; code: string };\n *\n * const DB_PATH = \"/path/to/chat.db\";\n *\n * export default async function Command() {\n *   const query = `SELECT body, code FROM ...`\n *\n *   const messages = await executeSQL<Message>(DB_PATH, query);\n *\n *   if (messages.length > 0) {\n *     const latestCode = messages[0].code;\n *     await Clipboard.paste(latestCode);\n *     await closeMainWindow();\n *   }\n * }\n * ```\n */\nfunction executeSQL(databasePath, query) {\n    return (0, sql_utils_1.baseExecuteSQL)(databasePath, query);\n}\nexports.executeSQL = executeSQL;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.runAppleScript = void 0;\nconst node_child_process_1 = __importDefault(require(\"node:child_process\"));\nconst exec_utils_1 = require(\"./exec-utils\");\nasync function runAppleScript(script, optionsOrArgs, options) {\n    const { humanReadableOutput, language, timeout, ...execOptions } = Array.isArray(optionsOrArgs)\n        ? options || {}\n        : optionsOrArgs || {};\n    const outputArguments = humanReadableOutput !== false ? [] : [\"-ss\"];\n    if (language === \"JavaScript\") {\n        outputArguments.push(\"-l\", \"JavaScript\");\n    }\n    if (Array.isArray(optionsOrArgs)) {\n        outputArguments.push(\"-\", ...optionsOrArgs);\n    }\n    const spawned = node_child_process_1.default.spawn(\"osascript\", outputArguments, {\n        ...execOptions,\n        env: { PATH: \"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" },\n    });\n    const spawnedPromise = (0, exec_utils_1.getSpawnedPromise)(spawned, { timeout: timeout ?? 10000 });\n    spawned.stdin.end(script);\n    const [{ error, exitCode, signal, timedOut }, stdoutResult, stderrResult] = await (0, exec_utils_1.getSpawnedResult)(spawned, { encoding: \"utf8\" }, spawnedPromise);\n    const stdout = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stdoutResult);\n    const stderr = (0, exec_utils_1.handleOutput)({ stripFinalNewline: true }, stderrResult);\n    return (0, exec_utils_1.defaultParsing)({\n        stdout,\n        stderr,\n        error,\n        exitCode,\n        signal,\n        timedOut,\n        command: \"osascript\",\n        options,\n        parentError: new Error(),\n    });\n}\nexports.runAppleScript = runAppleScript;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withCache = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst helpers_1 = require(\"./helpers\");\n/**\n * Wraps a function with caching functionality using Raycast's Cache API.\n * Allows for caching of expensive functions like paginated API calls that rarely change.\n *\n * @param fn - The async function to cache results from\n * @param options - Optional configuration for the cache behavior\n * @param options.validate - Optional validation function for cached data\n * @param options.maxAge - Maximum age of cached data in milliseconds\n * @returns An async function that returns the result of the function, either from cache or fresh execution\n *\n * @example\n * ```ts\n * const cachedFunction = withCache(fetchExpensiveData, {\n *   maxAge: 5 * 60 * 1000 // Cache for 5 minutes\n * });\n *\n * const result = await cachedFunction(query);\n * ```\n */\nfunction withCache(fn, options) {\n    const cache = new api_1.Cache({ namespace: (0, helpers_1.hash)(fn) });\n    const wrappedFn = async (...args) => {\n        const key = (0, helpers_1.hash)(args || []) + options?.internal_cacheKeySuffix;\n        const cached = cache.get(key);\n        if (cached) {\n            const { data, timestamp } = JSON.parse(cached, helpers_1.reviver);\n            const isExpired = options?.maxAge && Date.now() - timestamp > options.maxAge;\n            if (!isExpired && (!options?.validate || options.validate(data))) {\n                return data;\n            }\n        }\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        const result = await fn(...args);\n        cache.set(key, JSON.stringify({\n            data: result,\n            timestamp: Date.now(),\n        }, helpers_1.replacer));\n        return result;\n    };\n    wrappedFn.clearCache = () => {\n        cache.clear();\n    };\n    // @ts-expect-error too complex for TS\n    return wrappedFn;\n}\nexports.withCache = withCache;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./usePromise\"), exports);\n__exportStar(require(\"./useCachedState\"), exports);\n__exportStar(require(\"./useCachedPromise\"), exports);\n__exportStar(require(\"./useFetch\"), exports);\n__exportStar(require(\"./useExec\"), exports);\n__exportStar(require(\"./useStreamJSON\"), exports);\n__exportStar(require(\"./useSQL\"), exports);\n__exportStar(require(\"./useForm\"), exports);\n__exportStar(require(\"./useAI\"), exports);\n__exportStar(require(\"./useFrecencySorting\"), exports);\n__exportStar(require(\"./useLocalStorage\"), exports);\n__exportStar(require(\"./icon\"), exports);\n__exportStar(require(\"./oauth\"), exports);\n__exportStar(require(\"./createDeeplink\"), exports);\n__exportStar(require(\"./executeSQL\"), exports);\n__exportStar(require(\"./run-applescript\"), exports);\n__exportStar(require(\"./showFailureToast\"), exports);\n__exportStar(require(\"./cache\"), exports);\n", "'use strict';\n\nconst pTry = (fn, ...arguments_) => new Promise(resolve => {\n\tresolve(fn(...arguments_));\n});\n\nmodule.exports = pTry;\n// TODO: remove this in the next major version\nmodule.exports.default = pTry;\n", "'use strict';\nconst pTry = require('p-try');\n\nconst pLimit = concurrency => {\n\tif (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {\n\t\treturn Promise.reject(new TypeError('Expected `concurrency` to be a number from 1 and up'));\n\t}\n\n\tconst queue = [];\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.length > 0) {\n\t\t\tqueue.shift()();\n\t\t}\n\t};\n\n\tconst run = (fn, resolve, ...args) => {\n\t\tactiveCount++;\n\n\t\tconst result = pTry(fn, ...args);\n\n\t\tresolve(result);\n\n\t\tresult.then(next, next);\n\t};\n\n\tconst enqueue = (fn, resolve, ...args) => {\n\t\tif (activeCount < concurrency) {\n\t\t\trun(fn, resolve, ...args);\n\t\t} else {\n\t\t\tqueue.push(run.bind(null, fn, resolve, ...args));\n\t\t}\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => enqueue(fn, resolve, ...args));\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.length\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.length = 0;\n\t\t\t}\n\t\t}\n\t});\n\n\treturn generator;\n};\n\nmodule.exports = pLimit;\nmodule.exports.default = pLimit;\n", "'use strict';\nconst pLimit = require('p-limit');\n\nclass EndError extends Error {\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t}\n}\n\n// The input can also be a promise, so we await it\nconst testElement = async (element, tester) => tester(await element);\n\n// The input can also be a promise, so we `Promise.all()` them both\nconst finder = async element => {\n\tconst values = await Promise.all(element);\n\tif (values[1] === true) {\n\t\tthrow new EndError(values[0]);\n\t}\n\n\treturn false;\n};\n\nconst pLocate = async (iterable, tester, options) => {\n\toptions = {\n\t\tconcurrency: Infinity,\n\t\tpreserveOrder: true,\n\t\t...options\n\t};\n\n\tconst limit = pLimit(options.concurrency);\n\n\t// Start all the promises concurrently with optional limit\n\tconst items = [...iterable].map(element => [element, limit(testElement, element, tester)]);\n\n\t// Check the promises either serially or concurrently\n\tconst checkLimit = pLimit(options.preserveOrder ? 1 : Infinity);\n\n\ttry {\n\t\tawait Promise.all(items.map(element => checkLimit(finder, element)));\n\t} catch (error) {\n\t\tif (error instanceof EndError) {\n\t\t\treturn error.value;\n\t\t}\n\n\t\tthrow error;\n\t}\n};\n\nmodule.exports = pLocate;\n// TODO: Remove this for the next major release\nmodule.exports.default = pLocate;\n", "'use strict';\nconst path = require('path');\nconst fs = require('fs');\nconst {promisify} = require('util');\nconst pLocate = require('p-locate');\n\nconst fsStat = promisify(fs.stat);\nconst fsLStat = promisify(fs.lstat);\n\nconst typeMappings = {\n\tdirectory: 'isDirectory',\n\tfile: 'isFile'\n};\n\nfunction checkType({type}) {\n\tif (type in typeMappings) {\n\t\treturn;\n\t}\n\n\tthrow new Error(`Invalid type specified: ${type}`);\n}\n\nconst matchType = (type, stat) => type === undefined || stat[typeMappings[type]]();\n\nmodule.exports = async (paths, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\ttype: 'file',\n\t\tallowSymlinks: true,\n\t\t...options\n\t};\n\tcheckType(options);\n\tconst statFn = options.allowSymlinks ? fsStat : fsLStat;\n\n\treturn pLocate(paths, async path_ => {\n\t\ttry {\n\t\t\tconst stat = await statFn(path.resolve(options.cwd, path_));\n\t\t\treturn matchType(options.type, stat);\n\t\t} catch (_) {\n\t\t\treturn false;\n\t\t}\n\t}, options);\n};\n\nmodule.exports.sync = (paths, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\tallowSymlinks: true,\n\t\ttype: 'file',\n\t\t...options\n\t};\n\tcheckType(options);\n\tconst statFn = options.allowSymlinks ? fs.statSync : fs.lstatSync;\n\n\tfor (const path_ of paths) {\n\t\ttry {\n\t\t\tconst stat = statFn(path.resolve(options.cwd, path_));\n\n\t\t\tif (matchType(options.type, stat)) {\n\t\t\t\treturn path_;\n\t\t\t}\n\t\t} catch (_) {\n\t\t}\n\t}\n};\n", "'use strict';\nconst fs = require('fs');\nconst {promisify} = require('util');\n\nconst pAccess = promisify(fs.access);\n\nmodule.exports = async path => {\n\ttry {\n\t\tawait pAccess(path);\n\t\treturn true;\n\t} catch (_) {\n\t\treturn false;\n\t}\n};\n\nmodule.exports.sync = path => {\n\ttry {\n\t\tfs.accessSync(path);\n\t\treturn true;\n\t} catch (_) {\n\t\treturn false;\n\t}\n};\n", "'use strict';\nconst path = require('path');\nconst locatePath = require('locate-path');\nconst pathExists = require('path-exists');\n\nconst stop = Symbol('findUp.stop');\n\nmodule.exports = async (name, options = {}) => {\n\tlet directory = path.resolve(options.cwd || '');\n\tconst {root} = path.parse(directory);\n\tconst paths = [].concat(name);\n\n\tconst runMatcher = async locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = await name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst foundPath = await runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === stop) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\treturn path.resolve(directory, foundPath);\n\t\t}\n\n\t\tif (directory === root) {\n\t\t\treturn;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n};\n\nmodule.exports.sync = (name, options = {}) => {\n\tlet directory = path.resolve(options.cwd || '');\n\tconst {root} = path.parse(directory);\n\tconst paths = [].concat(name);\n\n\tconst runMatcher = locateOptions => {\n\t\tif (typeof name !== 'function') {\n\t\t\treturn locatePath.sync(paths, locateOptions);\n\t\t}\n\n\t\tconst foundPath = name(locateOptions.cwd);\n\t\tif (typeof foundPath === 'string') {\n\t\t\treturn locatePath.sync([foundPath], locateOptions);\n\t\t}\n\n\t\treturn foundPath;\n\t};\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst foundPath = runMatcher({...options, cwd: directory});\n\n\t\tif (foundPath === stop) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (foundPath) {\n\t\t\treturn path.resolve(directory, foundPath);\n\t\t}\n\n\t\tif (directory === root) {\n\t\t\treturn;\n\t\t}\n\n\t\tdirectory = path.dirname(directory);\n\t}\n};\n\nmodule.exports.exists = pathExists;\n\nmodule.exports.sync.exists = pathExists.sync;\n\nmodule.exports.stop = stop;\n", "'use strict';\n\nmodule.exports = function isArrayish(obj) {\n\tif (!obj) {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && obj.splice instanceof Function);\n};\n", "'use strict';\n\nvar util = require('util');\nvar isArrayish = require('is-arrayish');\n\nvar errorEx = function errorEx(name, properties) {\n\tif (!name || name.constructor !== String) {\n\t\tproperties = name || {};\n\t\tname = Error.name;\n\t}\n\n\tvar errorExError = function ErrorEXError(message) {\n\t\tif (!this) {\n\t\t\treturn new ErrorEXError(message);\n\t\t}\n\n\t\tmessage = message instanceof Error\n\t\t\t? message.message\n\t\t\t: (message || this.message);\n\n\t\tError.call(this, message);\n\t\tError.captureStackTrace(this, errorExError);\n\n\t\tthis.name = name;\n\n\t\tObject.defineProperty(this, 'message', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: function () {\n\t\t\t\tvar newMessage = message.split(/\\r?\\n/g);\n\n\t\t\t\tfor (var key in properties) {\n\t\t\t\t\tif (!properties.hasOwnProperty(key)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar modifier = properties[key];\n\n\t\t\t\t\tif ('message' in modifier) {\n\t\t\t\t\t\tnewMessage = modifier.message(this[key], newMessage) || newMessage;\n\t\t\t\t\t\tif (!isArrayish(newMessage)) {\n\t\t\t\t\t\t\tnewMessage = [newMessage];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn newMessage.join('\\n');\n\t\t\t},\n\t\t\tset: function (v) {\n\t\t\t\tmessage = v;\n\t\t\t}\n\t\t});\n\n\t\tvar overwrittenStack = null;\n\n\t\tvar stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack');\n\t\tvar stackGetter = stackDescriptor.get;\n\t\tvar stackValue = stackDescriptor.value;\n\t\tdelete stackDescriptor.value;\n\t\tdelete stackDescriptor.writable;\n\n\t\tstackDescriptor.set = function (newstack) {\n\t\t\toverwrittenStack = newstack;\n\t\t};\n\n\t\tstackDescriptor.get = function () {\n\t\t\tvar stack = (overwrittenStack || ((stackGetter)\n\t\t\t\t? stackGetter.call(this)\n\t\t\t\t: stackValue)).split(/\\r?\\n+/g);\n\n\t\t\t// starting in Node 7, the stack builder caches the message.\n\t\t\t// just replace it.\n\t\t\tif (!overwrittenStack) {\n\t\t\t\tstack[0] = this.name + ': ' + this.message;\n\t\t\t}\n\n\t\t\tvar lineCount = 1;\n\t\t\tfor (var key in properties) {\n\t\t\t\tif (!properties.hasOwnProperty(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar modifier = properties[key];\n\n\t\t\t\tif ('line' in modifier) {\n\t\t\t\t\tvar line = modifier.line(this[key]);\n\t\t\t\t\tif (line) {\n\t\t\t\t\t\tstack.splice(lineCount++, 0, '    ' + line);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ('stack' in modifier) {\n\t\t\t\t\tmodifier.stack(this[key], stack);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn stack.join('\\n');\n\t\t};\n\n\t\tObject.defineProperty(this, 'stack', stackDescriptor);\n\t};\n\n\tif (Object.setPrototypeOf) {\n\t\tObject.setPrototypeOf(errorExError.prototype, Error.prototype);\n\t\tObject.setPrototypeOf(errorExError, Error);\n\t} else {\n\t\tutil.inherits(errorExError, Error);\n\t}\n\n\treturn errorExError;\n};\n\nerrorEx.append = function (str, def) {\n\treturn {\n\t\tmessage: function (v, message) {\n\t\t\tv = v || def;\n\n\t\t\tif (v) {\n\t\t\t\tmessage[0] += ' ' + str.replace('%s', v.toString());\n\t\t\t}\n\n\t\t\treturn message;\n\t\t}\n\t};\n};\n\nerrorEx.line = function (str, def) {\n\treturn {\n\t\tline: function (v) {\n\t\t\tv = v || def;\n\n\t\t\tif (v) {\n\t\t\t\treturn str.replace('%s', v.toString());\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\t};\n};\n\nmodule.exports = errorEx;\n", "'use strict'\n\nconst hexify = char => {\n  const h = char.charCodeAt(0).toString(16).toUpperCase()\n  return '0x' + (h.length % 2 ? '0' : '') + h\n}\n\nconst parseError = (e, txt, context) => {\n  if (!txt) {\n    return {\n      message: e.message + ' while parsing empty string',\n      position: 0,\n    }\n  }\n  const badToken = e.message.match(/^Unexpected token (.) .*position\\s+(\\d+)/i)\n  const errIdx = badToken ? +badToken[2]\n    : e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1\n    : null\n\n  const msg = badToken ? e.message.replace(/^Unexpected token ./, `Unexpected token ${\n      JSON.stringify(badToken[1])\n    } (${hexify(badToken[1])})`)\n    : e.message\n\n  if (errIdx !== null && errIdx !== undefined) {\n    const start = errIdx <= context ? 0\n      : errIdx - context\n\n    const end = errIdx + context >= txt.length ? txt.length\n      : errIdx + context\n\n    const slice = (start === 0 ? '' : '...') +\n      txt.slice(start, end) +\n      (end === txt.length ? '' : '...')\n\n    const near = txt === slice ? '' : 'near '\n\n    return {\n      message: msg + ` while parsing ${near}${JSON.stringify(slice)}`,\n      position: errIdx,\n    }\n  } else {\n    return {\n      message: msg + ` while parsing '${txt.slice(0, context * 2)}'`,\n      position: 0,\n    }\n  }\n}\n\nclass JSONParseError extends SyntaxError {\n  constructor (er, txt, context, caller) {\n    context = context || 20\n    const metadata = parseError(er, txt, context)\n    super(metadata.message)\n    Object.assign(this, metadata)\n    this.code = 'EJSONPARSE'\n    this.systemError = er\n    Error.captureStackTrace(this, caller || this.constructor)\n  }\n  get name () { return this.constructor.name }\n  set name (n) {}\n  get [Symbol.toStringTag] () { return this.constructor.name }\n}\n\nconst kIndent = Symbol.for('indent')\nconst kNewline = Symbol.for('newline')\n// only respect indentation if we got a line break, otherwise squash it\n// things other than objects and arrays aren't indented, so ignore those\n// Important: in both of these regexps, the $1 capture group is the newline\n// or undefined, and the $2 capture group is the indent, or undefined.\nconst formatRE = /^\\s*[{\\[]((?:\\r?\\n)+)([\\s\\t]*)/\nconst emptyRE = /^(?:\\{\\}|\\[\\])((?:\\r?\\n)+)?$/\n\nconst parseJson = (txt, reviver, context) => {\n  const parseText = stripBOM(txt)\n  context = context || 20\n  try {\n    // get the indentation so that we can save it back nicely\n    // if the file starts with {\" then we have an indent of '', ie, none\n    // otherwise, pick the indentation of the next line after the first \\n\n    // If the pattern doesn't match, then it means no indentation.\n    // JSON.stringify ignores symbols, so this is reasonably safe.\n    // if the string is '{}' or '[]', then use the default 2-space indent.\n    const [, newline = '\\n', indent = '  '] = parseText.match(emptyRE) ||\n      parseText.match(formatRE) ||\n      [, '', '']\n\n    const result = JSON.parse(parseText, reviver)\n    if (result && typeof result === 'object') {\n      result[kNewline] = newline\n      result[kIndent] = indent\n    }\n    return result\n  } catch (e) {\n    if (typeof txt !== 'string' && !Buffer.isBuffer(txt)) {\n      const isEmptyArray = Array.isArray(txt) && txt.length === 0\n      throw Object.assign(new TypeError(\n        `Cannot parse ${isEmptyArray ? 'an empty array' : String(txt)}`\n      ), {\n        code: 'EJSONPARSE',\n        systemError: e,\n      })\n    }\n\n    throw new JSONParseError(e, parseText, context, parseJson)\n  }\n}\n\n// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n// because the buffer-to-string conversion in `fs.readFileSync()`\n// translates it to FEFF, the UTF-16 BOM.\nconst stripBOM = txt => String(txt).replace(/^\\uFEFF/, '')\n\nmodule.exports = parseJson\nparseJson.JSONParseError = JSONParseError\n\nparseJson.noExceptions = (txt, reviver) => {\n  try {\n    return JSON.parse(stripBOM(txt), reviver)\n  } catch (e) {}\n}\n", "\"use strict\";\nexports.__esModule = true;\nexports.LinesAndColumns = void 0;\nvar LF = '\\n';\nvar CR = '\\r';\nvar LinesAndColumns = /** @class */ (function () {\n    function LinesAndColumns(string) {\n        this.string = string;\n        var offsets = [0];\n        for (var offset = 0; offset < string.length;) {\n            switch (string[offset]) {\n                case LF:\n                    offset += LF.length;\n                    offsets.push(offset);\n                    break;\n                case CR:\n                    offset += CR.length;\n                    if (string[offset] === LF) {\n                        offset += LF.length;\n                    }\n                    offsets.push(offset);\n                    break;\n                default:\n                    offset++;\n                    break;\n            }\n        }\n        this.offsets = offsets;\n    }\n    LinesAndColumns.prototype.locationForIndex = function (index) {\n        if (index < 0 || index > this.string.length) {\n            return null;\n        }\n        var line = 0;\n        var offsets = this.offsets;\n        while (offsets[line + 1] <= index) {\n            line++;\n        }\n        var column = index - offsets[line];\n        return { line: line, column: column };\n    };\n    LinesAndColumns.prototype.indexForLocation = function (location) {\n        var line = location.line, column = location.column;\n        if (line < 0 || line >= this.offsets.length) {\n            return null;\n        }\n        if (column < 0 || column > this.lengthOfLine(line)) {\n            return null;\n        }\n        return this.offsets[line] + column;\n    };\n    LinesAndColumns.prototype.lengthOfLine = function (line) {\n        var offset = this.offsets[line];\n        var nextOffset = line === this.offsets.length - 1\n            ? this.string.length\n            : this.offsets[line + 1];\n        return nextOffset - offset;\n    };\n    return LinesAndColumns;\n}());\nexports.LinesAndColumns = LinesAndColumns;\nexports[\"default\"] = LinesAndColumns;\n", "// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell\n// License: MIT. (See LICENSE.)\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n})\n\n// This regex comes from regex.coffee, and is inserted here by generate-index.js\n// (run `npm run build`).\nexports.default = /((['\"])(?:(?!\\2|\\\\).|\\\\(?:\\r\\n|[\\s\\S]))*(\\2)?|`(?:[^`\\\\$]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{[^}]*\\}?)*\\}?)*(`)?)|(\\/\\/.*)|(\\/\\*(?:[^*]|\\*(?!\\/))*(\\*\\/)?)|(\\/(?!\\*)(?:\\[(?:(?![\\]\\\\]).|\\\\.)*\\]|(?![\\/\\]\\\\]).|\\\\.)+\\/(?:(?!\\s*(?:\\b|[\\u0080-\\uFFFF$\\\\'\"~({]|[+\\-!](?!=)|\\.?\\d))|[gmiyus]{1,6}\\b(?![\\u0080-\\uFFFF$\\\\]|\\s*(?:[+\\-*%&|^<>!=?({]|\\/(?![\\/*])))))|(0[xX][\\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][+-]?\\d+)?)|((?!\\d)(?:(?!\\s)[$\\w\\u0080-\\uFFFF]|\\\\u[\\da-fA-F]{4}|\\\\u\\{[\\da-fA-F]+\\})+)|(--|\\+\\+|&&|\\|\\||=>|\\.{3}|(?:[+\\-\\/%&|^]|\\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\\](){}])|(\\s+)|(^$|[\\s\\S])/g\n\nexports.matchToToken = function(match) {\n  var token = {type: \"invalid\", value: match[0], closed: undefined}\n       if (match[ 1]) token.type = \"string\" , token.closed = !!(match[3] || match[4])\n  else if (match[ 5]) token.type = \"comment\"\n  else if (match[ 6]) token.type = \"comment\", token.closed = !!match[7]\n  else if (match[ 8]) token.type = \"regex\"\n  else if (match[ 9]) token.type = \"number\"\n  else if (match[10]) token.type = \"name\"\n  else if (match[11]) token.type = \"punctuator\"\n  else if (match[12]) token.type = \"whitespace\"\n  return token\n}\n", "// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088e\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7ca\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7d9\\ua7f2-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0898-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1ace\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (let i = 0; i < name.length; i++) {\n    // The implementation is based on\n    // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n    // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n    // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n    let cp = name.charCodeAt(i);\n    if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n      const trail = name.charCodeAt(++i);\n      if ((trail & 0xfc00) === 0xdc00) {\n        cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n      }\n    }\n    if (isFirst) {\n      isFirst = false;\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return !isFirst;\n}\n", "const reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n", "export {\n  isIdentifierName,\n  isIdentifierChar,\n  isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"./keyword.ts\";\n", "let argv = process.argv || [],\n\tenv = process.env\nlet isColorSupported =\n\t!(\"NO_COLOR\" in env || argv.includes(\"--no-color\")) &&\n\t(\"FORCE_COLOR\" in env ||\n\t\targv.includes(\"--color\") ||\n\t\tprocess.platform === \"win32\" ||\n\t\t(require != null && require(\"tty\").isatty(1) && env.TERM !== \"dumb\") ||\n\t\t\"CI\" in env)\n\nlet formatter =\n\t(open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input\n\t\tlet index = string.indexOf(close, open.length)\n\t\treturn ~index\n\t\t\t? open + replaceClose(string, close, replace, index) + close\n\t\t\t: open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\"\n\tlet cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet init = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: init(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: init(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: init(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: init(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: init(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: init(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: init(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: init(\"\\x1b[9m\", \"\\x1b[29m\"),\n\t\tblack: init(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: init(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: init(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: init(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: init(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: init(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: init(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: init(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: init(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tbgBlack: init(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: init(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: init(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: init(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: init(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: init(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: init(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: init(\"\\x1b[47m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n", "'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n", "'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n", "/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n//       values that give correct `typeof` results).\n//       do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n", "var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n", "var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n", "'use strict';\nconst colorConvert = require('color-convert');\n\nconst wrapAnsi16 = (fn, offset) => function () {\n\tconst code = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => function () {\n\tconst code = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => function () {\n\tconst rgb = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\t\t\tgray: [90, 39],\n\n\t\t\t// Bright color\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Fix humans\n\tstyles.color.grey = styles.color.gray;\n\n\tfor (const groupName of Object.keys(styles)) {\n\t\tconst group = styles[groupName];\n\n\t\tfor (const styleName of Object.keys(group)) {\n\t\t\tconst style = group[styleName];\n\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tObject.defineProperty(styles, 'codes', {\n\t\t\tvalue: codes,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tconst ansi2ansi = n => n;\n\tconst rgb2rgb = (r, g, b) => [r, g, b];\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = {\n\t\tansi: wrapAnsi16(ansi2ansi, 0)\n\t};\n\tstyles.color.ansi256 = {\n\t\tansi256: wrapAnsi256(ansi2ansi, 0)\n\t};\n\tstyles.color.ansi16m = {\n\t\trgb: wrapAnsi16m(rgb2rgb, 0)\n\t};\n\n\tstyles.bgColor.ansi = {\n\t\tansi: wrapAnsi16(ansi2ansi, 10)\n\t};\n\tstyles.bgColor.ansi256 = {\n\t\tansi256: wrapAnsi256(ansi2ansi, 10)\n\t};\n\tstyles.bgColor.ansi16m = {\n\t\trgb: wrapAnsi16m(rgb2rgb, 10)\n\t};\n\n\tfor (let key of Object.keys(colorConvert)) {\n\t\tif (typeof colorConvert[key] !== 'object') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst suite = colorConvert[key];\n\n\t\tif (key === 'ansi16') {\n\t\t\tkey = 'ansi';\n\t\t}\n\n\t\tif ('ansi16' in suite) {\n\t\t\tstyles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);\n\t\t\tstyles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);\n\t\t}\n\n\t\tif ('ansi256' in suite) {\n\t\t\tstyles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);\n\t\t\tstyles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);\n\t\t}\n\n\t\tif ('rgb' in suite) {\n\t\t\tstyles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);\n\t\t\tstyles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);\n\t\t}\n\t}\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n", "'use strict';\nmodule.exports = (flag, argv) => {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n", "'use strict';\nconst os = require('os');\nconst hasFlag = require('has-flag');\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n", "'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u[a-f\\d]{4}|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u[a-f\\d]{4}|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tif ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, args) {\n\tconst results = [];\n\tconst chunks = args.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tif (!isNaN(chunk)) {\n\t\t\tresults.push(Number(chunk));\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const styleName of Object.keys(enabled)) {\n\t\tif (Array.isArray(enabled[styleName])) {\n\t\t\tif (!(styleName in current)) {\n\t\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t\t}\n\n\t\t\tif (enabled[styleName].length > 0) {\n\t\t\t\tcurrent = current[styleName].apply(current, enabled[styleName]);\n\t\t\t} else {\n\t\t\t\tcurrent = current[styleName];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, tmp) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {\n\t\tif (escapeChar) {\n\t\t\tchunk.push(unescape(escapeChar));\n\t\t} else if (style) {\n\t\t\tconst str = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(chr);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMsg);\n\t}\n\n\treturn chunks.join('');\n};\n", "'use strict';\nconst escapeStringRegexp = require('escape-string-regexp');\nconst ansiStyles = require('ansi-styles');\nconst stdoutColor = require('supports-color').stdout;\n\nconst template = require('./templates.js');\n\nconst isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');\n\n// `supportsColor.level` \u2192 `ansiStyles.color[name]` mapping\nconst levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];\n\n// `color-convert` models to exclude from the Chalk API due to conflicts and such\nconst skipModels = new Set(['gray']);\n\nconst styles = Object.create(null);\n\nfunction applyOptions(obj, options) {\n\toptions = options || {};\n\n\t// Detect level if not set manually\n\tconst scLevel = stdoutColor ? stdoutColor.level : 0;\n\tobj.level = options.level === undefined ? scLevel : options.level;\n\tobj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;\n}\n\nfunction Chalk(options) {\n\t// We check for this.template here since calling `chalk.constructor()`\n\t// by itself will have a `this` of a previously constructed chalk object\n\tif (!this || !(this instanceof Chalk) || this.template) {\n\t\tconst chalk = {};\n\t\tapplyOptions(chalk, options);\n\n\t\tchalk.template = function () {\n\t\t\tconst args = [].slice.call(arguments);\n\t\t\treturn chalkTag.apply(null, [chalk.template].concat(args));\n\t\t};\n\n\t\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\t\tObject.setPrototypeOf(chalk.template, chalk);\n\n\t\tchalk.template.constructor = Chalk;\n\n\t\treturn chalk.template;\n\t}\n\n\tapplyOptions(this, options);\n}\n\n// Use bright blue on Windows as the normal blue color is illegible\nif (isSimpleWindowsTerm) {\n\tansiStyles.blue.open = '\\u001B[94m';\n}\n\nfor (const key of Object.keys(ansiStyles)) {\n\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n\n\tstyles[key] = {\n\t\tget() {\n\t\t\tconst codes = ansiStyles[key];\n\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\treturn build.call(this, this._styles || [], true, 'visible');\n\t}\n};\n\nansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');\nfor (const model of Object.keys(ansiStyles.color.ansi)) {\n\tif (skipModels.has(model)) {\n\t\tcontinue;\n\t}\n\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst level = this.level;\n\t\t\treturn function () {\n\t\t\t\tconst open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);\n\t\t\t\tconst codes = {\n\t\t\t\t\topen,\n\t\t\t\t\tclose: ansiStyles.color.close,\n\t\t\t\t\tcloseRe: ansiStyles.color.closeRe\n\t\t\t\t};\n\t\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n\t\t\t};\n\t\t}\n\t};\n}\n\nansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');\nfor (const model of Object.keys(ansiStyles.bgColor.ansi)) {\n\tif (skipModels.has(model)) {\n\t\tcontinue;\n\t}\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst level = this.level;\n\t\t\treturn function () {\n\t\t\t\tconst open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);\n\t\t\t\tconst codes = {\n\t\t\t\t\topen,\n\t\t\t\t\tclose: ansiStyles.bgColor.close,\n\t\t\t\t\tcloseRe: ansiStyles.bgColor.closeRe\n\t\t\t\t};\n\t\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, styles);\n\nfunction build(_styles, _empty, key) {\n\tconst builder = function () {\n\t\treturn applyStyle.apply(builder, arguments);\n\t};\n\n\tbuilder._styles = _styles;\n\tbuilder._empty = _empty;\n\n\tconst self = this;\n\n\tObject.defineProperty(builder, 'level', {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn self.level;\n\t\t},\n\t\tset(level) {\n\t\t\tself.level = level;\n\t\t}\n\t});\n\n\tObject.defineProperty(builder, 'enabled', {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn self.enabled;\n\t\t},\n\t\tset(enabled) {\n\t\t\tself.enabled = enabled;\n\t\t}\n\t});\n\n\t// See below for fix regarding invisible grey/dim combination on Windows\n\tbuilder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';\n\n\t// `__proto__` is used because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tbuilder.__proto__ = proto; // eslint-disable-line no-proto\n\n\treturn builder;\n}\n\nfunction applyStyle() {\n\t// Support varags, but simply cast to string in case there's only one arg\n\tconst args = arguments;\n\tconst argsLen = args.length;\n\tlet str = String(arguments[0]);\n\n\tif (argsLen === 0) {\n\t\treturn '';\n\t}\n\n\tif (argsLen > 1) {\n\t\t// Don't slice `arguments`, it prevents V8 optimizations\n\t\tfor (let a = 1; a < argsLen; a++) {\n\t\t\tstr += ' ' + args[a];\n\t\t}\n\t}\n\n\tif (!this.enabled || this.level <= 0 || !str) {\n\t\treturn this._empty ? '' : str;\n\t}\n\n\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\n\t// see https://github.com/chalk/chalk/issues/58\n\t// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.\n\tconst originalDim = ansiStyles.dim.open;\n\tif (isSimpleWindowsTerm && this.hasGrey) {\n\t\tansiStyles.dim.open = '';\n\t}\n\n\tfor (const code of this._styles.slice().reverse()) {\n\t\t// Replace any instances already present with a re-opening code\n\t\t// otherwise only the part of the string until said closing code\n\t\t// will be colored, and the rest will simply be 'plain'.\n\t\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\n\n\t\t// Close the styling before a linebreak and reopen\n\t\t// after next line to fix a bleed issue on macOS\n\t\t// https://github.com/chalk/chalk/pull/92\n\t\tstr = str.replace(/\\r?\\n/g, `${code.close}$&${code.open}`);\n\t}\n\n\t// Reset the original `dim` if we changed it to work around the Windows dimmed gray issue\n\tansiStyles.dim.open = originalDim;\n\n\treturn str;\n}\n\nfunction chalkTag(chalk, strings) {\n\tif (!Array.isArray(strings)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn [].slice.call(arguments, 1).join(' ');\n\t}\n\n\tconst args = [].slice.call(arguments, 2);\n\tconst parts = [strings.raw[0]];\n\n\tfor (let i = 1; i < strings.length; i++) {\n\t\tparts.push(String(args[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'));\n\t\tparts.push(String(strings.raw[i]));\n\t}\n\n\treturn template(chalk, parts.join(''));\n}\n\nObject.defineProperties(Chalk.prototype, styles);\n\nmodule.exports = Chalk(); // eslint-disable-line new-cap\nmodule.exports.supportsColor = stdoutColor;\nmodule.exports.default = module.exports; // For TypeScript\n", "import type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n\nimport {\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport _colors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n// See https://github.com/alexeyraspopov/picocolors/issues/62\nconst colors =\n  typeof process === \"object\" &&\n  (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n    ? createColors(false)\n    : _colors;\n\nconst compose: <T, U, V>(f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n  (f, g) => v =>\n    f(g(v));\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype InternalTokenType =\n  | \"keyword\"\n  | \"capitalized\"\n  | \"jsxIdentifier\"\n  | \"punctuator\"\n  | \"number\"\n  | \"string\"\n  | \"regex\"\n  | \"comment\"\n  | \"invalid\";\n\ntype Token = {\n  type: InternalTokenType | \"uncolored\";\n  value: string;\n};\n/**\n * Styles for token types.\n */\nfunction getDefs(colors: Colors): Record<InternalTokenType, Formatter> {\n  return {\n    keyword: colors.cyan,\n    capitalized: colors.yellow,\n    jsxIdentifier: colors.yellow,\n    punctuator: colors.yellow,\n    number: colors.magenta,\n    string: colors.green,\n    regex: colors.magenta,\n    comment: colors.gray,\n    invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n  };\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n  text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n  /**\n   * Get the type of token, specifying punctuator type.\n   */\n  const getTokenType = function (\n    token: JSToken | JSXToken,\n  ): InternalTokenType | \"uncolored\" {\n    if (token.type === \"IdentifierName\") {\n      if (\n        isKeyword(token.value) ||\n        isStrictReservedWord(token.value, true) ||\n        sometimesKeywords.has(token.value)\n      ) {\n        return \"keyword\";\n      }\n\n      if (token.value[0] !== token.value[0].toLowerCase()) {\n        return \"capitalized\";\n      }\n    }\n\n    if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n      return \"uncolored\";\n    }\n\n    if (token.type === \"Invalid\" && token.value === \"@\") {\n      return \"punctuator\";\n    }\n\n    switch (token.type) {\n      case \"NumericLiteral\":\n        return \"number\";\n\n      case \"StringLiteral\":\n      case \"JSXString\":\n      case \"NoSubstitutionTemplate\":\n        return \"string\";\n\n      case \"RegularExpressionLiteral\":\n        return \"regex\";\n\n      case \"Punctuator\":\n      case \"JSXPunctuator\":\n        return \"punctuator\";\n\n      case \"MultiLineComment\":\n      case \"SingleLineComment\":\n        return \"comment\";\n\n      case \"Invalid\":\n      case \"JSXInvalid\":\n        return \"invalid\";\n\n      case \"JSXIdentifier\":\n        return \"jsxIdentifier\";\n\n      default:\n        return \"uncolored\";\n    }\n  };\n\n  /**\n   * Turn a string of JS into an array of objects.\n   */\n  tokenize = function* (text: string): Generator<Token> {\n    for (const token of jsTokens(text, { jsx: true })) {\n      switch (token.type) {\n        case \"TemplateHead\":\n          yield { type: \"string\", value: token.value.slice(0, -2) };\n          yield { type: \"punctuator\", value: \"${\" };\n          break;\n\n        case \"TemplateMiddle\":\n          yield { type: \"punctuator\", value: \"}\" };\n          yield { type: \"string\", value: token.value.slice(1, -2) };\n          yield { type: \"punctuator\", value: \"${\" };\n          break;\n\n        case \"TemplateTail\":\n          yield { type: \"punctuator\", value: \"}\" };\n          yield { type: \"string\", value: token.value.slice(1) };\n          break;\n\n        default:\n          yield {\n            type: getTokenType(token),\n            value: token.value,\n          };\n      }\n    }\n  };\n} else {\n  /**\n   * RegExp to test for what seems to be a JSX tag name.\n   */\n  const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n  // The token here is defined in js-tokens@4. However we don't bother\n  // typing it since the whole block will be removed in Babel 8\n  const getTokenType = function (token: any, offset: number, text: string) {\n    if (token.type === \"name\") {\n      if (\n        isKeyword(token.value) ||\n        isStrictReservedWord(token.value, true) ||\n        sometimesKeywords.has(token.value)\n      ) {\n        return \"keyword\";\n      }\n\n      if (\n        JSX_TAG.test(token.value) &&\n        (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \"</\")\n      ) {\n        return \"jsxIdentifier\";\n      }\n\n      if (token.value[0] !== token.value[0].toLowerCase()) {\n        return \"capitalized\";\n      }\n    }\n\n    if (token.type === \"punctuator\" && BRACKET.test(token.value)) {\n      return \"bracket\";\n    }\n\n    if (\n      token.type === \"invalid\" &&\n      (token.value === \"@\" || token.value === \"#\")\n    ) {\n      return \"punctuator\";\n    }\n\n    return token.type;\n  };\n\n  tokenize = function* (text: string) {\n    let match;\n    while ((match = (jsTokens as any).default.exec(text))) {\n      const token = (jsTokens as any).matchToToken(match);\n\n      yield {\n        type: getTokenType(token, match.index, text),\n        value: token.value,\n      };\n    }\n  };\n}\n\n/**\n * Highlight `text` using the token definitions in `defs`.\n */\nfunction highlightTokens(defs: Record<string, Formatter>, text: string) {\n  let highlighted = \"\";\n\n  for (const { type, value } of tokenize(text)) {\n    const colorize = defs[type];\n    if (colorize) {\n      highlighted += value\n        .split(NEWLINE)\n        .map(str => colorize(str))\n        .join(\"\\n\");\n    } else {\n      highlighted += value;\n    }\n  }\n\n  return highlighted;\n}\n\n/**\n * Highlight `text` using the token definitions in `defs`.\n */\n\ntype Options = {\n  forceColor?: boolean;\n};\n\n/**\n * Whether the code should be highlighted given the passed options.\n */\nexport function shouldHighlight(options: Options): boolean {\n  return colors.isColorSupported || options.forceColor;\n}\n\nlet pcWithForcedColor: Colors = undefined;\nfunction getColors(forceColor: boolean) {\n  if (forceColor) {\n    pcWithForcedColor ??= createColors(true);\n    return pcWithForcedColor;\n  }\n  return colors;\n}\n\n/**\n * Highlight `code`.\n */\nexport default function highlight(code: string, options: Options = {}): string {\n  if (code !== \"\" && shouldHighlight(options)) {\n    const defs = getDefs(getColors(options.forceColor));\n    return highlightTokens(defs, code);\n  } else {\n    return code;\n  }\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n  let chalk: any, chalkWithForcedColor: any;\n  // eslint-disable-next-line no-restricted-globals\n  exports.getChalk = ({ forceColor }: Options) => {\n    // eslint-disable-next-line no-restricted-globals\n    chalk ??= require(\"chalk\");\n    if (forceColor) {\n      chalkWithForcedColor ??= new chalk.constructor({\n        enabled: true,\n        level: 1,\n      });\n      return chalkWithForcedColor;\n    }\n    return chalk;\n  };\n}\n", "import highlight, { shouldHighlight } from \"@babel/highlight\";\n\nimport _colors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n// See https://github.com/alexeyraspopov/picocolors/issues/62\nconst colors =\n  typeof process === \"object\" &&\n  (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n    ? createColors(false)\n    : _colors;\n\nconst compose: <T, U, V>(f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n  (f, g) => v =>\n    f(g(v));\n\nlet pcWithForcedColor: Colors = undefined;\nfunction getColors(forceColor: boolean) {\n  if (forceColor) {\n    pcWithForcedColor ??= createColors(true);\n    return pcWithForcedColor;\n  }\n  return colors;\n}\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n  column: number;\n  line: number;\n};\n\ntype NodeLocation = {\n  end?: Location;\n  start: Location;\n};\n\nexport interface Options {\n  /** Syntax highlight the code as JavaScript for terminals. default: false */\n  highlightCode?: boolean;\n  /**  The number of lines to show above the error. default: 2 */\n  linesAbove?: number;\n  /**  The number of lines to show below the error. default: 3 */\n  linesBelow?: number;\n  /**\n   * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n   * overrides highlightCode.\n   * default: false\n   */\n  forceColor?: boolean;\n  /**\n   * Pass in a string to be displayed inline (if possible) next to the\n   * highlighted location in the code. If it can't be positioned inline,\n   * it will be placed above the code frame.\n   * default: nothing\n   */\n  message?: string;\n}\n\n/**\n * Styles for code frame token types.\n */\nfunction getDefs(colors: Colors) {\n  return {\n    gutter: colors.gray,\n    marker: compose(colors.red, colors.bold),\n    message: compose(colors.red, colors.bold),\n  };\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record<number, true | [number, number]>;\n\nfunction getMarkerLines(\n  loc: NodeLocation,\n  source: Array<string>,\n  opts: Options,\n): {\n  start: number;\n  end: number;\n  markerLines: MarkerLines;\n} {\n  const startLoc: Location = {\n    column: 0,\n    line: -1,\n    ...loc.start,\n  };\n  const endLoc: Location = {\n    ...startLoc,\n    ...loc.end,\n  };\n  const { linesAbove = 2, linesBelow = 3 } = opts || {};\n  const startLine = startLoc.line;\n  const startColumn = startLoc.column;\n  const endLine = endLoc.line;\n  const endColumn = endLoc.column;\n\n  let start = Math.max(startLine - (linesAbove + 1), 0);\n  let end = Math.min(source.length, endLine + linesBelow);\n\n  if (startLine === -1) {\n    start = 0;\n  }\n\n  if (endLine === -1) {\n    end = source.length;\n  }\n\n  const lineDiff = endLine - startLine;\n  const markerLines: MarkerLines = {};\n\n  if (lineDiff) {\n    for (let i = 0; i <= lineDiff; i++) {\n      const lineNumber = i + startLine;\n\n      if (!startColumn) {\n        markerLines[lineNumber] = true;\n      } else if (i === 0) {\n        const sourceLength = source[lineNumber - 1].length;\n\n        markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n      } else if (i === lineDiff) {\n        markerLines[lineNumber] = [0, endColumn];\n      } else {\n        const sourceLength = source[lineNumber - i].length;\n\n        markerLines[lineNumber] = [0, sourceLength];\n      }\n    }\n  } else {\n    if (startColumn === endColumn) {\n      if (startColumn) {\n        markerLines[startLine] = [startColumn, 0];\n      } else {\n        markerLines[startLine] = true;\n      }\n    } else {\n      markerLines[startLine] = [startColumn, endColumn - startColumn];\n    }\n  }\n\n  return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n  rawLines: string,\n  loc: NodeLocation,\n  opts: Options = {},\n): string {\n  const highlighted =\n    (opts.highlightCode || opts.forceColor) && shouldHighlight(opts);\n  const colors = getColors(opts.forceColor);\n  const defs = getDefs(colors);\n  const maybeHighlight = (fmt: Formatter, string: string) => {\n    return highlighted ? fmt(string) : string;\n  };\n  const lines = rawLines.split(NEWLINE);\n  const { start, end, markerLines } = getMarkerLines(loc, lines, opts);\n  const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n  const numberMaxWidth = String(end).length;\n\n  const highlightedLines = highlighted ? highlight(rawLines, opts) : rawLines;\n\n  let frame = highlightedLines\n    .split(NEWLINE, end)\n    .slice(start, end)\n    .map((line, index) => {\n      const number = start + 1 + index;\n      const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n      const gutter = ` ${paddedNumber} |`;\n      const hasMarker = markerLines[number];\n      const lastMarkerLine = !markerLines[number + 1];\n      if (hasMarker) {\n        let markerLine = \"\";\n        if (Array.isArray(hasMarker)) {\n          const markerSpacing = line\n            .slice(0, Math.max(hasMarker[0] - 1, 0))\n            .replace(/[^\\t]/g, \" \");\n          const numberOfMarkers = hasMarker[1] || 1;\n\n          markerLine = [\n            \"\\n \",\n            maybeHighlight(defs.gutter, gutter.replace(/\\d/g, \" \")),\n            \" \",\n            markerSpacing,\n            maybeHighlight(defs.marker, \"^\").repeat(numberOfMarkers),\n          ].join(\"\");\n\n          if (lastMarkerLine && opts.message) {\n            markerLine += \" \" + maybeHighlight(defs.message, opts.message);\n          }\n        }\n        return [\n          maybeHighlight(defs.marker, \">\"),\n          maybeHighlight(defs.gutter, gutter),\n          line.length > 0 ? ` ${line}` : \"\",\n          markerLine,\n        ].join(\"\");\n      } else {\n        return ` ${maybeHighlight(defs.gutter, gutter)}${\n          line.length > 0 ? ` ${line}` : \"\"\n        }`;\n      }\n    })\n    .join(\"\\n\");\n\n  if (opts.message && !hasColumns) {\n    frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n  }\n\n  if (highlighted) {\n    return colors.reset(frame);\n  } else {\n    return frame;\n  }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n  rawLines: string,\n  lineNumber: number,\n  colNumber?: number | null,\n  opts: Options = {},\n): string {\n  if (!deprecationWarningShown) {\n    deprecationWarningShown = true;\n\n    const message =\n      \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n    if (process.emitWarning) {\n      // A string is directly supplied to emitWarning, because when supplying an\n      // Error object node throws in the tests because of different contexts\n      process.emitWarning(message, \"DeprecationWarning\");\n    } else {\n      const deprecationError = new Error(message);\n      deprecationError.name = \"DeprecationWarning\";\n      console.warn(new Error(message));\n    }\n  }\n\n  colNumber = Math.max(colNumber, 0);\n\n  const location: NodeLocation = {\n    start: { column: colNumber, line: lineNumber },\n  };\n\n  return codeFrameColumns(rawLines, location, opts);\n}\n", "'use strict';\nconst errorEx = require('error-ex');\nconst fallback = require('json-parse-even-better-errors');\nconst {default: LinesAndColumns} = require('lines-and-columns');\nconst {codeFrameColumns} = require('@babel/code-frame');\n\nconst JSONError = errorEx('JSONError', {\n\tfileName: errorEx.append('in %s'),\n\tcodeFrame: errorEx.append('\\n\\n%s\\n')\n});\n\nconst parseJson = (string, reviver, filename) => {\n\tif (typeof reviver === 'string') {\n\t\tfilename = reviver;\n\t\treviver = null;\n\t}\n\n\ttry {\n\t\ttry {\n\t\t\treturn JSON.parse(string, reviver);\n\t\t} catch (error) {\n\t\t\tfallback(string, reviver);\n\t\t\tthrow error;\n\t\t}\n\t} catch (error) {\n\t\terror.message = error.message.replace(/\\n/g, '');\n\t\tconst indexMatch = error.message.match(/in JSON at position (\\d+) while parsing/);\n\n\t\tconst jsonError = new JSONError(error);\n\t\tif (filename) {\n\t\t\tjsonError.fileName = filename;\n\t\t}\n\n\t\tif (indexMatch && indexMatch.length > 0) {\n\t\t\tconst lines = new LinesAndColumns(string);\n\t\t\tconst index = Number(indexMatch[1]);\n\t\t\tconst location = lines.locationForIndex(index);\n\n\t\t\tconst codeFrame = codeFrameColumns(\n\t\t\t\tstring,\n\t\t\t\t{start: {line: location.line + 1, column: location.column + 1}},\n\t\t\t\t{highlightCode: true}\n\t\t\t);\n\n\t\t\tjsonError.codeFrame = codeFrame;\n\t\t}\n\n\t\tthrow jsonError;\n\t}\n};\n\nparseJson.JSONError = JSONError;\n\nmodule.exports = parseJson;\n", "exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n    process.env &&\n    process.env.NODE_DEBUG &&\n    /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n  debug = function () {\n    var args = Array.prototype.slice.call(arguments, 0)\n    args.unshift('SEMVER')\n    console.log.apply(console, args)\n  }\n} else {\n  debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n  /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar R = 0\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n  ['\\\\s', 1],\n  ['\\\\d', MAX_LENGTH],\n  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n  for (var i = 0; i < safeRegexReplacements.length; i++) {\n    var token = safeRegexReplacements[i][0]\n    var max = safeRegexReplacements[i][1]\n    value = value\n      .split(token + '*').join(token + '{0,' + max + '}')\n      .split(token + '+').join(token + '{1,' + max + '}')\n  }\n  return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\nvar NUMERICIDENTIFIER = R++\nsrc[NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\nvar NUMERICIDENTIFIERLOOSE = R++\nsrc[NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\nvar NONNUMERICIDENTIFIER = R++\nsrc[NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\nvar MAINVERSION = R++\nsrc[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n                   '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n                   '(' + src[NUMERICIDENTIFIER] + ')'\n\nvar MAINVERSIONLOOSE = R++\nsrc[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\nvar PRERELEASEIDENTIFIER = R++\nsrc[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +\n                            '|' + src[NONNUMERICIDENTIFIER] + ')'\n\nvar PRERELEASEIDENTIFIERLOOSE = R++\nsrc[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +\n                                 '|' + src[NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\nvar PRERELEASE = R++\nsrc[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +\n                  '(?:\\\\.' + src[PRERELEASEIDENTIFIER] + ')*))'\n\nvar PRERELEASELOOSE = R++\nsrc[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +\n                       '(?:\\\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\nvar BUILDIDENTIFIER = R++\nsrc[BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\nvar BUILD = R++\nsrc[BUILD] = '(?:\\\\+(' + src[BUILDIDENTIFIER] +\n             '(?:\\\\.' + src[BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\nvar FULL = R++\nvar FULLPLAIN = 'v?' + src[MAINVERSION] +\n                src[PRERELEASE] + '?' +\n                src[BUILD] + '?'\n\nsrc[FULL] = '^' + FULLPLAIN + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\nvar LOOSEPLAIN = '[v=\\\\s]*' + src[MAINVERSIONLOOSE] +\n                 src[PRERELEASELOOSE] + '?' +\n                 src[BUILD] + '?'\n\nvar LOOSE = R++\nsrc[LOOSE] = '^' + LOOSEPLAIN + '$'\n\nvar GTLT = R++\nsrc[GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\nvar XRANGEIDENTIFIERLOOSE = R++\nsrc[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\nvar XRANGEIDENTIFIER = R++\nsrc[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\nvar XRANGEPLAIN = R++\nsrc[XRANGEPLAIN] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIER] + ')' +\n                   '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n                   '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n                   '(?:' + src[PRERELEASE] + ')?' +\n                   src[BUILD] + '?' +\n                   ')?)?'\n\nvar XRANGEPLAINLOOSE = R++\nsrc[XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n                        '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n                        '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n                        '(?:' + src[PRERELEASELOOSE] + ')?' +\n                        src[BUILD] + '?' +\n                        ')?)?'\n\nvar XRANGE = R++\nsrc[XRANGE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAIN] + '$'\nvar XRANGELOOSE = R++\nsrc[XRANGELOOSE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\nvar COERCE = R++\nsrc[COERCE] = '(?:^|[^\\\\d])' +\n              '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n              '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n              '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n              '(?:$|[^\\\\d])'\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\nvar LONETILDE = R++\nsrc[LONETILDE] = '(?:~>?)'\n\nvar TILDETRIM = R++\nsrc[TILDETRIM] = '(\\\\s*)' + src[LONETILDE] + '\\\\s+'\nre[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')\nsafeRe[TILDETRIM] = new RegExp(makeSafeRe(src[TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\nvar TILDE = R++\nsrc[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'\nvar TILDELOOSE = R++\nsrc[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\nvar LONECARET = R++\nsrc[LONECARET] = '(?:\\\\^)'\n\nvar CARETTRIM = R++\nsrc[CARETTRIM] = '(\\\\s*)' + src[LONECARET] + '\\\\s+'\nre[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')\nsafeRe[CARETTRIM] = new RegExp(makeSafeRe(src[CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\nvar CARET = R++\nsrc[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'\nvar CARETLOOSE = R++\nsrc[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\nvar COMPARATORLOOSE = R++\nsrc[COMPARATORLOOSE] = '^' + src[GTLT] + '\\\\s*(' + LOOSEPLAIN + ')$|^$'\nvar COMPARATOR = R++\nsrc[COMPARATOR] = '^' + src[GTLT] + '\\\\s*(' + FULLPLAIN + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\nvar COMPARATORTRIM = R++\nsrc[COMPARATORTRIM] = '(\\\\s*)' + src[GTLT] +\n                      '\\\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')\nsafeRe[COMPARATORTRIM] = new RegExp(makeSafeRe(src[COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\nvar HYPHENRANGE = R++\nsrc[HYPHENRANGE] = '^\\\\s*(' + src[XRANGEPLAIN] + ')' +\n                   '\\\\s+-\\\\s+' +\n                   '(' + src[XRANGEPLAIN] + ')' +\n                   '\\\\s*$'\n\nvar HYPHENRANGELOOSE = R++\nsrc[HYPHENRANGELOOSE] = '^\\\\s*(' + src[XRANGEPLAINLOOSE] + ')' +\n                        '\\\\s+-\\\\s+' +\n                        '(' + src[XRANGEPLAINLOOSE] + ')' +\n                        '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\nvar STAR = R++\nsrc[STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n  debug(i, src[i])\n  if (!re[i]) {\n    re[i] = new RegExp(src[i])\n\n    // Replace all greedy whitespace to prevent regex dos issues. These regex are\n    // used internally via the safeRe object since all inputs in this library get\n    // normalized first to trim and collapse all extra whitespace. The original\n    // regexes are exported for userland consumption and lower level usage. A\n    // future breaking change could export the safer regex only with a note that\n    // all input should have extra whitespace removed.\n    safeRe[i] = new RegExp(makeSafeRe(src[i]))\n  }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  if (version.length > MAX_LENGTH) {\n    return null\n  }\n\n  var r = options.loose ? safeRe[LOOSE] : safeRe[FULL]\n  if (!r.test(version)) {\n    return null\n  }\n\n  try {\n    return new SemVer(version, options)\n  } catch (er) {\n    return null\n  }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n  var v = parse(version, options)\n  return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n  var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n  return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n  if (version instanceof SemVer) {\n    if (version.loose === options.loose) {\n      return version\n    } else {\n      version = version.version\n    }\n  } else if (typeof version !== 'string') {\n    throw new TypeError('Invalid Version: ' + version)\n  }\n\n  if (version.length > MAX_LENGTH) {\n    throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n  }\n\n  if (!(this instanceof SemVer)) {\n    return new SemVer(version, options)\n  }\n\n  debug('SemVer', version, options)\n  this.options = options\n  this.loose = !!options.loose\n\n  var m = version.trim().match(options.loose ? safeRe[LOOSE] : safeRe[FULL])\n\n  if (!m) {\n    throw new TypeError('Invalid Version: ' + version)\n  }\n\n  this.raw = version\n\n  // these are actually numbers\n  this.major = +m[1]\n  this.minor = +m[2]\n  this.patch = +m[3]\n\n  if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n    throw new TypeError('Invalid major version')\n  }\n\n  if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n    throw new TypeError('Invalid minor version')\n  }\n\n  if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n    throw new TypeError('Invalid patch version')\n  }\n\n  // numberify any prerelease numeric ids\n  if (!m[4]) {\n    this.prerelease = []\n  } else {\n    this.prerelease = m[4].split('.').map(function (id) {\n      if (/^[0-9]+$/.test(id)) {\n        var num = +id\n        if (num >= 0 && num < MAX_SAFE_INTEGER) {\n          return num\n        }\n      }\n      return id\n    })\n  }\n\n  this.build = m[5] ? m[5].split('.') : []\n  this.format()\n}\n\nSemVer.prototype.format = function () {\n  this.version = this.major + '.' + this.minor + '.' + this.patch\n  if (this.prerelease.length) {\n    this.version += '-' + this.prerelease.join('.')\n  }\n  return this.version\n}\n\nSemVer.prototype.toString = function () {\n  return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n  debug('SemVer.compare', this.version, this.options, other)\n  if (!(other instanceof SemVer)) {\n    other = new SemVer(other, this.options)\n  }\n\n  return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n  if (!(other instanceof SemVer)) {\n    other = new SemVer(other, this.options)\n  }\n\n  return compareIdentifiers(this.major, other.major) ||\n         compareIdentifiers(this.minor, other.minor) ||\n         compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n  if (!(other instanceof SemVer)) {\n    other = new SemVer(other, this.options)\n  }\n\n  // NOT having a prerelease is > having one\n  if (this.prerelease.length && !other.prerelease.length) {\n    return -1\n  } else if (!this.prerelease.length && other.prerelease.length) {\n    return 1\n  } else if (!this.prerelease.length && !other.prerelease.length) {\n    return 0\n  }\n\n  var i = 0\n  do {\n    var a = this.prerelease[i]\n    var b = other.prerelease[i]\n    debug('prerelease compare', i, a, b)\n    if (a === undefined && b === undefined) {\n      return 0\n    } else if (b === undefined) {\n      return 1\n    } else if (a === undefined) {\n      return -1\n    } else if (a === b) {\n      continue\n    } else {\n      return compareIdentifiers(a, b)\n    }\n  } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n  switch (release) {\n    case 'premajor':\n      this.prerelease.length = 0\n      this.patch = 0\n      this.minor = 0\n      this.major++\n      this.inc('pre', identifier)\n      break\n    case 'preminor':\n      this.prerelease.length = 0\n      this.patch = 0\n      this.minor++\n      this.inc('pre', identifier)\n      break\n    case 'prepatch':\n      // If this is already a prerelease, it will bump to the next version\n      // drop any prereleases that might already exist, since they are not\n      // relevant at this point.\n      this.prerelease.length = 0\n      this.inc('patch', identifier)\n      this.inc('pre', identifier)\n      break\n    // If the input is a non-prerelease version, this acts the same as\n    // prepatch.\n    case 'prerelease':\n      if (this.prerelease.length === 0) {\n        this.inc('patch', identifier)\n      }\n      this.inc('pre', identifier)\n      break\n\n    case 'major':\n      // If this is a pre-major version, bump up to the same major version.\n      // Otherwise increment major.\n      // 1.0.0-5 bumps to 1.0.0\n      // 1.1.0 bumps to 2.0.0\n      if (this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0) {\n        this.major++\n      }\n      this.minor = 0\n      this.patch = 0\n      this.prerelease = []\n      break\n    case 'minor':\n      // If this is a pre-minor version, bump up to the same minor version.\n      // Otherwise increment minor.\n      // 1.2.0-5 bumps to 1.2.0\n      // 1.2.1 bumps to 1.3.0\n      if (this.patch !== 0 || this.prerelease.length === 0) {\n        this.minor++\n      }\n      this.patch = 0\n      this.prerelease = []\n      break\n    case 'patch':\n      // If this is not a pre-release version, it will increment the patch.\n      // If it is a pre-release it will bump up to the same patch version.\n      // 1.2.0-5 patches to 1.2.0\n      // 1.2.0 patches to 1.2.1\n      if (this.prerelease.length === 0) {\n        this.patch++\n      }\n      this.prerelease = []\n      break\n    // This probably shouldn't be used publicly.\n    // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n    case 'pre':\n      if (this.prerelease.length === 0) {\n        this.prerelease = [0]\n      } else {\n        var i = this.prerelease.length\n        while (--i >= 0) {\n          if (typeof this.prerelease[i] === 'number') {\n            this.prerelease[i]++\n            i = -2\n          }\n        }\n        if (i === -1) {\n          // didn't increment anything\n          this.prerelease.push(0)\n        }\n      }\n      if (identifier) {\n        // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n        // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n        if (this.prerelease[0] === identifier) {\n          if (isNaN(this.prerelease[1])) {\n            this.prerelease = [identifier, 0]\n          }\n        } else {\n          this.prerelease = [identifier, 0]\n        }\n      }\n      break\n\n    default:\n      throw new Error('invalid increment argument: ' + release)\n  }\n  this.format()\n  this.raw = this.version\n  return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n  if (typeof (loose) === 'string') {\n    identifier = loose\n    loose = undefined\n  }\n\n  try {\n    return new SemVer(version, loose).inc(release, identifier).version\n  } catch (er) {\n    return null\n  }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n  if (eq(version1, version2)) {\n    return null\n  } else {\n    var v1 = parse(version1)\n    var v2 = parse(version2)\n    var prefix = ''\n    if (v1.prerelease.length || v2.prerelease.length) {\n      prefix = 'pre'\n      var defaultResult = 'prerelease'\n    }\n    for (var key in v1) {\n      if (key === 'major' || key === 'minor' || key === 'patch') {\n        if (v1[key] !== v2[key]) {\n          return prefix + key\n        }\n      }\n    }\n    return defaultResult // may be undefined\n  }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n  var anum = numeric.test(a)\n  var bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n  return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n  return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n  return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n  return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n  return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n  return compare(a, b, true)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n  return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n  return list.sort(function (a, b) {\n    return exports.compare(a, b, loose)\n  })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n  return list.sort(function (a, b) {\n    return exports.rcompare(a, b, loose)\n  })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n  return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n  return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n  return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n  return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n  return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n  return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object')\n        a = a.version\n      if (typeof b === 'object')\n        b = b.version\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object')\n        a = a.version\n      if (typeof b === 'object')\n        b = b.version\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError('Invalid operator: ' + op)\n  }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  if (comp instanceof Comparator) {\n    if (comp.loose === !!options.loose) {\n      return comp\n    } else {\n      comp = comp.value\n    }\n  }\n\n  if (!(this instanceof Comparator)) {\n    return new Comparator(comp, options)\n  }\n\n  comp = comp.trim().split(/\\s+/).join(' ')\n  debug('comparator', comp, options)\n  this.options = options\n  this.loose = !!options.loose\n  this.parse(comp)\n\n  if (this.semver === ANY) {\n    this.value = ''\n  } else {\n    this.value = this.operator + this.semver.version\n  }\n\n  debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n  var r = this.options.loose ? safeRe[COMPARATORLOOSE] : safeRe[COMPARATOR]\n  var m = comp.match(r)\n\n  if (!m) {\n    throw new TypeError('Invalid comparator: ' + comp)\n  }\n\n  this.operator = m[1]\n  if (this.operator === '=') {\n    this.operator = ''\n  }\n\n  // if it literally is just '>' or '' then allow anything.\n  if (!m[2]) {\n    this.semver = ANY\n  } else {\n    this.semver = new SemVer(m[2], this.options.loose)\n  }\n}\n\nComparator.prototype.toString = function () {\n  return this.value\n}\n\nComparator.prototype.test = function (version) {\n  debug('Comparator.test', version, this.options.loose)\n\n  if (this.semver === ANY) {\n    return true\n  }\n\n  if (typeof version === 'string') {\n    version = new SemVer(version, this.options)\n  }\n\n  return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n  if (!(comp instanceof Comparator)) {\n    throw new TypeError('a Comparator is required')\n  }\n\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  var rangeTmp\n\n  if (this.operator === '') {\n    rangeTmp = new Range(comp.value, options)\n    return satisfies(this.value, rangeTmp, options)\n  } else if (comp.operator === '') {\n    rangeTmp = new Range(this.value, options)\n    return satisfies(comp.semver, rangeTmp, options)\n  }\n\n  var sameDirectionIncreasing =\n    (this.operator === '>=' || this.operator === '>') &&\n    (comp.operator === '>=' || comp.operator === '>')\n  var sameDirectionDecreasing =\n    (this.operator === '<=' || this.operator === '<') &&\n    (comp.operator === '<=' || comp.operator === '<')\n  var sameSemVer = this.semver.version === comp.semver.version\n  var differentDirectionsInclusive =\n    (this.operator === '>=' || this.operator === '<=') &&\n    (comp.operator === '>=' || comp.operator === '<=')\n  var oppositeDirectionsLessThan =\n    cmp(this.semver, '<', comp.semver, options) &&\n    ((this.operator === '>=' || this.operator === '>') &&\n    (comp.operator === '<=' || comp.operator === '<'))\n  var oppositeDirectionsGreaterThan =\n    cmp(this.semver, '>', comp.semver, options) &&\n    ((this.operator === '<=' || this.operator === '<') &&\n    (comp.operator === '>=' || comp.operator === '>'))\n\n  return sameDirectionIncreasing || sameDirectionDecreasing ||\n    (sameSemVer && differentDirectionsInclusive) ||\n    oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  if (range instanceof Range) {\n    if (range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease) {\n      return range\n    } else {\n      return new Range(range.raw, options)\n    }\n  }\n\n  if (range instanceof Comparator) {\n    return new Range(range.value, options)\n  }\n\n  if (!(this instanceof Range)) {\n    return new Range(range, options)\n  }\n\n  this.options = options\n  this.loose = !!options.loose\n  this.includePrerelease = !!options.includePrerelease\n\n  // First reduce all whitespace as much as possible so we do not have to rely\n  // on potentially slow regexes like \\s*. This is then stored and used for\n  // future error messages as well.\n  this.raw = range\n    .trim()\n    .split(/\\s+/)\n    .join(' ')\n\n  // First, split based on boolean or ||\n  this.set = this.raw.split('||').map(function (range) {\n    return this.parseRange(range.trim())\n  }, this).filter(function (c) {\n    // throw out any that are not relevant for whatever reason\n    return c.length\n  })\n\n  if (!this.set.length) {\n    throw new TypeError('Invalid SemVer Range: ' + this.raw)\n  }\n\n  this.format()\n}\n\nRange.prototype.format = function () {\n  this.range = this.set.map(function (comps) {\n    return comps.join(' ').trim()\n  }).join('||').trim()\n  return this.range\n}\n\nRange.prototype.toString = function () {\n  return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n  var loose = this.options.loose\n  // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n  var hr = loose ? safeRe[HYPHENRANGELOOSE] : safeRe[HYPHENRANGE]\n  range = range.replace(hr, hyphenReplace)\n  debug('hyphen replace', range)\n  // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n  range = range.replace(safeRe[COMPARATORTRIM], comparatorTrimReplace)\n  debug('comparator trim', range, safeRe[COMPARATORTRIM])\n\n  // `~ 1.2.3` => `~1.2.3`\n  range = range.replace(safeRe[TILDETRIM], tildeTrimReplace)\n\n  // `^ 1.2.3` => `^1.2.3`\n  range = range.replace(safeRe[CARETTRIM], caretTrimReplace)\n\n  // At this point, the range is completely trimmed and\n  // ready to be split into comparators.\n  var compRe = loose ? safeRe[COMPARATORLOOSE] : safeRe[COMPARATOR]\n  var set = range.split(' ').map(function (comp) {\n    return parseComparator(comp, this.options)\n  }, this).join(' ').split(/\\s+/)\n  if (this.options.loose) {\n    // in loose mode, throw out any that are not valid comparators\n    set = set.filter(function (comp) {\n      return !!comp.match(compRe)\n    })\n  }\n  set = set.map(function (comp) {\n    return new Comparator(comp, this.options)\n  }, this)\n\n  return set\n}\n\nRange.prototype.intersects = function (range, options) {\n  if (!(range instanceof Range)) {\n    throw new TypeError('a Range is required')\n  }\n\n  return this.set.some(function (thisComparators) {\n    return thisComparators.every(function (thisComparator) {\n      return range.set.some(function (rangeComparators) {\n        return rangeComparators.every(function (rangeComparator) {\n          return thisComparator.intersects(rangeComparator, options)\n        })\n      })\n    })\n  })\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n  return new Range(range, options).set.map(function (comp) {\n    return comp.map(function (c) {\n      return c.value\n    }).join(' ').trim().split(' ')\n  })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nfunction isX (id) {\n  return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n  return comp.trim().split(/\\s+/).map(function (comp) {\n    return replaceTilde(comp, options)\n  }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n  var r = options.loose ? safeRe[TILDELOOSE] : safeRe[TILDE]\n  return comp.replace(r, function (_, M, m, p, pr) {\n    debug('tilde', comp, _, M, m, p, pr)\n    var ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0\n      ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n            ' <' + M + '.' + (+m + 1) + '.0'\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0\n      ret = '>=' + M + '.' + m + '.' + p +\n            ' <' + M + '.' + (+m + 1) + '.0'\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n  return comp.trim().split(/\\s+/).map(function (comp) {\n    return replaceCaret(comp, options)\n  }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n  debug('caret', comp, options)\n  var r = options.loose ? safeRe[CARETLOOSE] : safeRe[CARET]\n  return comp.replace(r, function (_, M, m, p, pr) {\n    debug('caret', comp, _, M, m, p, pr)\n    var ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n      } else {\n        ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n                ' <' + M + '.' + m + '.' + (+p + 1)\n        } else {\n          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n                ' <' + M + '.' + (+m + 1) + '.0'\n        }\n      } else {\n        ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n              ' <' + (+M + 1) + '.0.0'\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = '>=' + M + '.' + m + '.' + p +\n                ' <' + M + '.' + m + '.' + (+p + 1)\n        } else {\n          ret = '>=' + M + '.' + m + '.' + p +\n                ' <' + M + '.' + (+m + 1) + '.0'\n        }\n      } else {\n        ret = '>=' + M + '.' + m + '.' + p +\n              ' <' + (+M + 1) + '.0.0'\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nfunction replaceXRanges (comp, options) {\n  debug('replaceXRanges', comp, options)\n  return comp.split(/\\s+/).map(function (comp) {\n    return replaceXRange(comp, options)\n  }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n  comp = comp.trim()\n  var r = options.loose ? safeRe[XRANGELOOSE] : safeRe[XRANGE]\n  return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    var xM = isX(M)\n    var xm = xM || isX(m)\n    var xp = xm || isX(p)\n    var anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        // >1.2.3 => >= 1.2.4\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      ret = gtlt + M + '.' + m + '.' + p\n    } else if (xm) {\n      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n    } else if (xp) {\n      ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp.trim().replace(safeRe[STAR], '')\n}\n\n// This function is passed to string.replace(safeRe[HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr, tb) {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = '>=' + fM + '.0.0'\n  } else if (isX(fp)) {\n    from = '>=' + fM + '.' + fm + '.0'\n  } else {\n    from = '>=' + from\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = '<' + (+tM + 1) + '.0.0'\n  } else if (isX(tp)) {\n    to = '<' + tM + '.' + (+tm + 1) + '.0'\n  } else if (tpr) {\n    to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n  } else {\n    to = '<=' + to\n  }\n\n  return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n  if (!version) {\n    return false\n  }\n\n  if (typeof version === 'string') {\n    version = new SemVer(version, this.options)\n  }\n\n  for (var i = 0; i < this.set.length; i++) {\n    if (testSet(this.set[i], version, this.options)) {\n      return true\n    }\n  }\n  return false\n}\n\nfunction testSet (set, version, options) {\n  for (var i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        var allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n  var max = null\n  var maxSV = null\n  try {\n    var rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach(function (v) {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!max || maxSV.compare(v) === -1) {\n        // compare(max, v, true)\n        max = v\n        maxSV = new SemVer(max, options)\n      }\n    }\n  })\n  return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n  var min = null\n  var minSV = null\n  try {\n    var rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach(function (v) {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!min || minSV.compare(v) === 1) {\n        // compare(min, v, true)\n        min = v\n        minSV = new SemVer(min, options)\n      }\n    }\n  })\n  return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n  range = new Range(range, loose)\n\n  var minver = new SemVer('0.0.0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = new SemVer('0.0.0-0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = null\n  for (var i = 0; i < range.set.length; ++i) {\n    var comparators = range.set[i]\n\n    comparators.forEach(function (comparator) {\n      // Clone to avoid manipulating the comparator's semver object.\n      var compver = new SemVer(comparator.semver.version)\n      switch (comparator.operator) {\n        case '>':\n          if (compver.prerelease.length === 0) {\n            compver.patch++\n          } else {\n            compver.prerelease.push(0)\n          }\n          compver.raw = compver.format()\n          /* fallthrough */\n        case '':\n        case '>=':\n          if (!minver || gt(minver, compver)) {\n            minver = compver\n          }\n          break\n        case '<':\n        case '<=':\n          /* Ignore maximum versions */\n          break\n        /* istanbul ignore next */\n        default:\n          throw new Error('Unexpected operation: ' + comparator.operator)\n      }\n    })\n  }\n\n  if (minver && range.test(minver)) {\n    return minver\n  }\n\n  return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n  try {\n    // Return '*' instead of '' so that truthiness works.\n    // This will throw if it's invalid anyway\n    return new Range(range, options).range || '*'\n  } catch (er) {\n    return null\n  }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n  return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n  return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n  version = new SemVer(version, options)\n  range = new Range(range, options)\n\n  var gtfn, ltefn, ltfn, comp, ecomp\n  switch (hilo) {\n    case '>':\n      gtfn = gt\n      ltefn = lte\n      ltfn = lt\n      comp = '>'\n      ecomp = '>='\n      break\n    case '<':\n      gtfn = lt\n      ltefn = gte\n      ltfn = gt\n      comp = '<'\n      ecomp = '<='\n      break\n    default:\n      throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n  }\n\n  // If it satisifes the range it is not outside\n  if (satisfies(version, range, options)) {\n    return false\n  }\n\n  // From now on, variable terms are as if we're in \"gtr\" mode.\n  // but note that everything is flipped for the \"ltr\" function.\n\n  for (var i = 0; i < range.set.length; ++i) {\n    var comparators = range.set[i]\n\n    var high = null\n    var low = null\n\n    comparators.forEach(function (comparator) {\n      if (comparator.semver === ANY) {\n        comparator = new Comparator('>=0.0.0')\n      }\n      high = high || comparator\n      low = low || comparator\n      if (gtfn(comparator.semver, high.semver, options)) {\n        high = comparator\n      } else if (ltfn(comparator.semver, low.semver, options)) {\n        low = comparator\n      }\n    })\n\n    // If the edge version comparator has a operator then our version\n    // isn't outside it\n    if (high.operator === comp || high.operator === ecomp) {\n      return false\n    }\n\n    // If the lowest version comparator has an operator and our version\n    // is less than it then it isn't higher than the range\n    if ((!low.operator || low.operator === comp) &&\n        ltefn(version, low.semver)) {\n      return false\n    } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n      return false\n    }\n  }\n  return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n  var parsed = parse(version, options)\n  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n  r1 = new Range(r1, options)\n  r2 = new Range(r2, options)\n  return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version) {\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  var match = version.match(safeRe[COERCE])\n\n  if (match == null) {\n    return null\n  }\n\n  return parse(match[1] +\n    '.' + (match[2] || '0') +\n    '.' + (match[3] || '0'))\n}\n", "[\n\t\"0BSD\",\n\t\"3D-Slicer-1.0\",\n\t\"AAL\",\n\t\"ADSL\",\n\t\"AFL-1.1\",\n\t\"AFL-1.2\",\n\t\"AFL-2.0\",\n\t\"AFL-2.1\",\n\t\"AFL-3.0\",\n\t\"AGPL-1.0-only\",\n\t\"AGPL-1.0-or-later\",\n\t\"AGPL-3.0-only\",\n\t\"AGPL-3.0-or-later\",\n\t\"AMD-newlib\",\n\t\"AMDPLPA\",\n\t\"AML\",\n\t\"AML-glslang\",\n\t\"AMPAS\",\n\t\"ANTLR-PD\",\n\t\"ANTLR-PD-fallback\",\n\t\"APAFML\",\n\t\"APL-1.0\",\n\t\"APSL-1.0\",\n\t\"APSL-1.1\",\n\t\"APSL-1.2\",\n\t\"APSL-2.0\",\n\t\"ASWF-Digital-Assets-1.0\",\n\t\"ASWF-Digital-Assets-1.1\",\n\t\"Abstyles\",\n\t\"AdaCore-doc\",\n\t\"Adobe-2006\",\n\t\"Adobe-Display-PostScript\",\n\t\"Adobe-Glyph\",\n\t\"Adobe-Utopia\",\n\t\"Afmparse\",\n\t\"Aladdin\",\n\t\"Apache-1.0\",\n\t\"Apache-1.1\",\n\t\"Apache-2.0\",\n\t\"App-s2p\",\n\t\"Arphic-1999\",\n\t\"Artistic-1.0\",\n\t\"Artistic-1.0-Perl\",\n\t\"Artistic-1.0-cl8\",\n\t\"Artistic-2.0\",\n\t\"BSD-1-Clause\",\n\t\"BSD-2-Clause\",\n\t\"BSD-2-Clause-Darwin\",\n\t\"BSD-2-Clause-Patent\",\n\t\"BSD-2-Clause-Views\",\n\t\"BSD-2-Clause-first-lines\",\n\t\"BSD-3-Clause\",\n\t\"BSD-3-Clause-Attribution\",\n\t\"BSD-3-Clause-Clear\",\n\t\"BSD-3-Clause-HP\",\n\t\"BSD-3-Clause-LBNL\",\n\t\"BSD-3-Clause-Modification\",\n\t\"BSD-3-Clause-No-Military-License\",\n\t\"BSD-3-Clause-No-Nuclear-License\",\n\t\"BSD-3-Clause-No-Nuclear-License-2014\",\n\t\"BSD-3-Clause-No-Nuclear-Warranty\",\n\t\"BSD-3-Clause-Open-MPI\",\n\t\"BSD-3-Clause-Sun\",\n\t\"BSD-3-Clause-acpica\",\n\t\"BSD-3-Clause-flex\",\n\t\"BSD-4-Clause\",\n\t\"BSD-4-Clause-Shortened\",\n\t\"BSD-4-Clause-UC\",\n\t\"BSD-4.3RENO\",\n\t\"BSD-4.3TAHOE\",\n\t\"BSD-Advertising-Acknowledgement\",\n\t\"BSD-Attribution-HPND-disclaimer\",\n\t\"BSD-Inferno-Nettverk\",\n\t\"BSD-Protection\",\n\t\"BSD-Source-Code\",\n\t\"BSD-Source-beginning-file\",\n\t\"BSD-Systemics\",\n\t\"BSD-Systemics-W3Works\",\n\t\"BSL-1.0\",\n\t\"BUSL-1.1\",\n\t\"Baekmuk\",\n\t\"Bahyph\",\n\t\"Barr\",\n\t\"Beerware\",\n\t\"BitTorrent-1.0\",\n\t\"BitTorrent-1.1\",\n\t\"Bitstream-Charter\",\n\t\"Bitstream-Vera\",\n\t\"BlueOak-1.0.0\",\n\t\"Boehm-GC\",\n\t\"Borceux\",\n\t\"Brian-Gladman-2-Clause\",\n\t\"Brian-Gladman-3-Clause\",\n\t\"C-UDA-1.0\",\n\t\"CAL-1.0\",\n\t\"CAL-1.0-Combined-Work-Exception\",\n\t\"CATOSL-1.1\",\n\t\"CC-BY-1.0\",\n\t\"CC-BY-2.0\",\n\t\"CC-BY-2.5\",\n\t\"CC-BY-2.5-AU\",\n\t\"CC-BY-3.0\",\n\t\"CC-BY-3.0-AT\",\n\t\"CC-BY-3.0-AU\",\n\t\"CC-BY-3.0-DE\",\n\t\"CC-BY-3.0-IGO\",\n\t\"CC-BY-3.0-NL\",\n\t\"CC-BY-3.0-US\",\n\t\"CC-BY-4.0\",\n\t\"CC-BY-NC-1.0\",\n\t\"CC-BY-NC-2.0\",\n\t\"CC-BY-NC-2.5\",\n\t\"CC-BY-NC-3.0\",\n\t\"CC-BY-NC-3.0-DE\",\n\t\"CC-BY-NC-4.0\",\n\t\"CC-BY-NC-ND-1.0\",\n\t\"CC-BY-NC-ND-2.0\",\n\t\"CC-BY-NC-ND-2.5\",\n\t\"CC-BY-NC-ND-3.0\",\n\t\"CC-BY-NC-ND-3.0-DE\",\n\t\"CC-BY-NC-ND-3.0-IGO\",\n\t\"CC-BY-NC-ND-4.0\",\n\t\"CC-BY-NC-SA-1.0\",\n\t\"CC-BY-NC-SA-2.0\",\n\t\"CC-BY-NC-SA-2.0-DE\",\n\t\"CC-BY-NC-SA-2.0-FR\",\n\t\"CC-BY-NC-SA-2.0-UK\",\n\t\"CC-BY-NC-SA-2.5\",\n\t\"CC-BY-NC-SA-3.0\",\n\t\"CC-BY-NC-SA-3.0-DE\",\n\t\"CC-BY-NC-SA-3.0-IGO\",\n\t\"CC-BY-NC-SA-4.0\",\n\t\"CC-BY-ND-1.0\",\n\t\"CC-BY-ND-2.0\",\n\t\"CC-BY-ND-2.5\",\n\t\"CC-BY-ND-3.0\",\n\t\"CC-BY-ND-3.0-DE\",\n\t\"CC-BY-ND-4.0\",\n\t\"CC-BY-SA-1.0\",\n\t\"CC-BY-SA-2.0\",\n\t\"CC-BY-SA-2.0-UK\",\n\t\"CC-BY-SA-2.1-JP\",\n\t\"CC-BY-SA-2.5\",\n\t\"CC-BY-SA-3.0\",\n\t\"CC-BY-SA-3.0-AT\",\n\t\"CC-BY-SA-3.0-DE\",\n\t\"CC-BY-SA-3.0-IGO\",\n\t\"CC-BY-SA-4.0\",\n\t\"CC-PDDC\",\n\t\"CC0-1.0\",\n\t\"CDDL-1.0\",\n\t\"CDDL-1.1\",\n\t\"CDL-1.0\",\n\t\"CDLA-Permissive-1.0\",\n\t\"CDLA-Permissive-2.0\",\n\t\"CDLA-Sharing-1.0\",\n\t\"CECILL-1.0\",\n\t\"CECILL-1.1\",\n\t\"CECILL-2.0\",\n\t\"CECILL-2.1\",\n\t\"CECILL-B\",\n\t\"CECILL-C\",\n\t\"CERN-OHL-1.1\",\n\t\"CERN-OHL-1.2\",\n\t\"CERN-OHL-P-2.0\",\n\t\"CERN-OHL-S-2.0\",\n\t\"CERN-OHL-W-2.0\",\n\t\"CFITSIO\",\n\t\"CMU-Mach\",\n\t\"CMU-Mach-nodoc\",\n\t\"CNRI-Jython\",\n\t\"CNRI-Python\",\n\t\"CNRI-Python-GPL-Compatible\",\n\t\"COIL-1.0\",\n\t\"CPAL-1.0\",\n\t\"CPL-1.0\",\n\t\"CPOL-1.02\",\n\t\"CUA-OPL-1.0\",\n\t\"Caldera\",\n\t\"Caldera-no-preamble\",\n\t\"Catharon\",\n\t\"ClArtistic\",\n\t\"Clips\",\n\t\"Community-Spec-1.0\",\n\t\"Condor-1.1\",\n\t\"Cornell-Lossless-JPEG\",\n\t\"Cronyx\",\n\t\"Crossword\",\n\t\"CrystalStacker\",\n\t\"Cube\",\n\t\"D-FSL-1.0\",\n\t\"DEC-3-Clause\",\n\t\"DL-DE-BY-2.0\",\n\t\"DL-DE-ZERO-2.0\",\n\t\"DOC\",\n\t\"DRL-1.0\",\n\t\"DRL-1.1\",\n\t\"DSDP\",\n\t\"DocBook-Schema\",\n\t\"DocBook-XML\",\n\t\"Dotseqn\",\n\t\"ECL-1.0\",\n\t\"ECL-2.0\",\n\t\"EFL-1.0\",\n\t\"EFL-2.0\",\n\t\"EPICS\",\n\t\"EPL-1.0\",\n\t\"EPL-2.0\",\n\t\"EUDatagrid\",\n\t\"EUPL-1.0\",\n\t\"EUPL-1.1\",\n\t\"EUPL-1.2\",\n\t\"Elastic-2.0\",\n\t\"Entessa\",\n\t\"ErlPL-1.1\",\n\t\"Eurosym\",\n\t\"FBM\",\n\t\"FDK-AAC\",\n\t\"FSFAP\",\n\t\"FSFAP-no-warranty-disclaimer\",\n\t\"FSFUL\",\n\t\"FSFULLR\",\n\t\"FSFULLRWD\",\n\t\"FTL\",\n\t\"Fair\",\n\t\"Ferguson-Twofish\",\n\t\"Frameworx-1.0\",\n\t\"FreeBSD-DOC\",\n\t\"FreeImage\",\n\t\"Furuseth\",\n\t\"GCR-docs\",\n\t\"GD\",\n\t\"GFDL-1.1-invariants-only\",\n\t\"GFDL-1.1-invariants-or-later\",\n\t\"GFDL-1.1-no-invariants-only\",\n\t\"GFDL-1.1-no-invariants-or-later\",\n\t\"GFDL-1.1-only\",\n\t\"GFDL-1.1-or-later\",\n\t\"GFDL-1.2-invariants-only\",\n\t\"GFDL-1.2-invariants-or-later\",\n\t\"GFDL-1.2-no-invariants-only\",\n\t\"GFDL-1.2-no-invariants-or-later\",\n\t\"GFDL-1.2-only\",\n\t\"GFDL-1.2-or-later\",\n\t\"GFDL-1.3-invariants-only\",\n\t\"GFDL-1.3-invariants-or-later\",\n\t\"GFDL-1.3-no-invariants-only\",\n\t\"GFDL-1.3-no-invariants-or-later\",\n\t\"GFDL-1.3-only\",\n\t\"GFDL-1.3-or-later\",\n\t\"GL2PS\",\n\t\"GLWTPL\",\n\t\"GPL-1.0-only\",\n\t\"GPL-1.0-or-later\",\n\t\"GPL-2.0-only\",\n\t\"GPL-2.0-or-later\",\n\t\"GPL-3.0-only\",\n\t\"GPL-3.0-or-later\",\n\t\"Giftware\",\n\t\"Glide\",\n\t\"Glulxe\",\n\t\"Graphics-Gems\",\n\t\"Gutmann\",\n\t\"HIDAPI\",\n\t\"HP-1986\",\n\t\"HP-1989\",\n\t\"HPND\",\n\t\"HPND-DEC\",\n\t\"HPND-Fenneberg-Livingston\",\n\t\"HPND-INRIA-IMAG\",\n\t\"HPND-Intel\",\n\t\"HPND-Kevlin-Henney\",\n\t\"HPND-MIT-disclaimer\",\n\t\"HPND-Markus-Kuhn\",\n\t\"HPND-Netrek\",\n\t\"HPND-Pbmplus\",\n\t\"HPND-UC\",\n\t\"HPND-UC-export-US\",\n\t\"HPND-doc\",\n\t\"HPND-doc-sell\",\n\t\"HPND-export-US\",\n\t\"HPND-export-US-acknowledgement\",\n\t\"HPND-export-US-modify\",\n\t\"HPND-export2-US\",\n\t\"HPND-merchantability-variant\",\n\t\"HPND-sell-MIT-disclaimer-xserver\",\n\t\"HPND-sell-regexpr\",\n\t\"HPND-sell-variant\",\n\t\"HPND-sell-variant-MIT-disclaimer\",\n\t\"HPND-sell-variant-MIT-disclaimer-rev\",\n\t\"HTMLTIDY\",\n\t\"HaskellReport\",\n\t\"Hippocratic-2.1\",\n\t\"IBM-pibs\",\n\t\"ICU\",\n\t\"IEC-Code-Components-EULA\",\n\t\"IJG\",\n\t\"IJG-short\",\n\t\"IPA\",\n\t\"IPL-1.0\",\n\t\"ISC\",\n\t\"ISC-Veillard\",\n\t\"ImageMagick\",\n\t\"Imlib2\",\n\t\"Info-ZIP\",\n\t\"Inner-Net-2.0\",\n\t\"Intel\",\n\t\"Intel-ACPI\",\n\t\"Interbase-1.0\",\n\t\"JPL-image\",\n\t\"JPNIC\",\n\t\"JSON\",\n\t\"Jam\",\n\t\"JasPer-2.0\",\n\t\"Kastrup\",\n\t\"Kazlib\",\n\t\"Knuth-CTAN\",\n\t\"LAL-1.2\",\n\t\"LAL-1.3\",\n\t\"LGPL-2.0-only\",\n\t\"LGPL-2.0-or-later\",\n\t\"LGPL-2.1-only\",\n\t\"LGPL-2.1-or-later\",\n\t\"LGPL-3.0-only\",\n\t\"LGPL-3.0-or-later\",\n\t\"LGPLLR\",\n\t\"LOOP\",\n\t\"LPD-document\",\n\t\"LPL-1.0\",\n\t\"LPL-1.02\",\n\t\"LPPL-1.0\",\n\t\"LPPL-1.1\",\n\t\"LPPL-1.2\",\n\t\"LPPL-1.3a\",\n\t\"LPPL-1.3c\",\n\t\"LZMA-SDK-9.11-to-9.20\",\n\t\"LZMA-SDK-9.22\",\n\t\"Latex2e\",\n\t\"Latex2e-translated-notice\",\n\t\"Leptonica\",\n\t\"LiLiQ-P-1.1\",\n\t\"LiLiQ-R-1.1\",\n\t\"LiLiQ-Rplus-1.1\",\n\t\"Libpng\",\n\t\"Linux-OpenIB\",\n\t\"Linux-man-pages-1-para\",\n\t\"Linux-man-pages-copyleft\",\n\t\"Linux-man-pages-copyleft-2-para\",\n\t\"Linux-man-pages-copyleft-var\",\n\t\"Lucida-Bitmap-Fonts\",\n\t\"MIT\",\n\t\"MIT-0\",\n\t\"MIT-CMU\",\n\t\"MIT-Festival\",\n\t\"MIT-Khronos-old\",\n\t\"MIT-Modern-Variant\",\n\t\"MIT-Wu\",\n\t\"MIT-advertising\",\n\t\"MIT-enna\",\n\t\"MIT-feh\",\n\t\"MIT-open-group\",\n\t\"MIT-testregex\",\n\t\"MITNFA\",\n\t\"MMIXware\",\n\t\"MPEG-SSG\",\n\t\"MPL-1.0\",\n\t\"MPL-1.1\",\n\t\"MPL-2.0\",\n\t\"MPL-2.0-no-copyleft-exception\",\n\t\"MS-LPL\",\n\t\"MS-PL\",\n\t\"MS-RL\",\n\t\"MTLL\",\n\t\"Mackerras-3-Clause\",\n\t\"Mackerras-3-Clause-acknowledgment\",\n\t\"MakeIndex\",\n\t\"Martin-Birgmeier\",\n\t\"McPhee-slideshow\",\n\t\"Minpack\",\n\t\"MirOS\",\n\t\"Motosoto\",\n\t\"MulanPSL-1.0\",\n\t\"MulanPSL-2.0\",\n\t\"Multics\",\n\t\"Mup\",\n\t\"NAIST-2003\",\n\t\"NASA-1.3\",\n\t\"NBPL-1.0\",\n\t\"NCBI-PD\",\n\t\"NCGL-UK-2.0\",\n\t\"NCL\",\n\t\"NCSA\",\n\t\"NGPL\",\n\t\"NICTA-1.0\",\n\t\"NIST-PD\",\n\t\"NIST-PD-fallback\",\n\t\"NIST-Software\",\n\t\"NLOD-1.0\",\n\t\"NLOD-2.0\",\n\t\"NLPL\",\n\t\"NOSL\",\n\t\"NPL-1.0\",\n\t\"NPL-1.1\",\n\t\"NPOSL-3.0\",\n\t\"NRL\",\n\t\"NTP\",\n\t\"NTP-0\",\n\t\"Naumen\",\n\t\"NetCDF\",\n\t\"Newsletr\",\n\t\"Nokia\",\n\t\"Noweb\",\n\t\"O-UDA-1.0\",\n\t\"OAR\",\n\t\"OCCT-PL\",\n\t\"OCLC-2.0\",\n\t\"ODC-By-1.0\",\n\t\"ODbL-1.0\",\n\t\"OFFIS\",\n\t\"OFL-1.0\",\n\t\"OFL-1.0-RFN\",\n\t\"OFL-1.0-no-RFN\",\n\t\"OFL-1.1\",\n\t\"OFL-1.1-RFN\",\n\t\"OFL-1.1-no-RFN\",\n\t\"OGC-1.0\",\n\t\"OGDL-Taiwan-1.0\",\n\t\"OGL-Canada-2.0\",\n\t\"OGL-UK-1.0\",\n\t\"OGL-UK-2.0\",\n\t\"OGL-UK-3.0\",\n\t\"OGTSL\",\n\t\"OLDAP-1.1\",\n\t\"OLDAP-1.2\",\n\t\"OLDAP-1.3\",\n\t\"OLDAP-1.4\",\n\t\"OLDAP-2.0\",\n\t\"OLDAP-2.0.1\",\n\t\"OLDAP-2.1\",\n\t\"OLDAP-2.2\",\n\t\"OLDAP-2.2.1\",\n\t\"OLDAP-2.2.2\",\n\t\"OLDAP-2.3\",\n\t\"OLDAP-2.4\",\n\t\"OLDAP-2.5\",\n\t\"OLDAP-2.6\",\n\t\"OLDAP-2.7\",\n\t\"OLDAP-2.8\",\n\t\"OLFL-1.3\",\n\t\"OML\",\n\t\"OPL-1.0\",\n\t\"OPL-UK-3.0\",\n\t\"OPUBL-1.0\",\n\t\"OSET-PL-2.1\",\n\t\"OSL-1.0\",\n\t\"OSL-1.1\",\n\t\"OSL-2.0\",\n\t\"OSL-2.1\",\n\t\"OSL-3.0\",\n\t\"OpenPBS-2.3\",\n\t\"OpenSSL\",\n\t\"OpenSSL-standalone\",\n\t\"OpenVision\",\n\t\"PADL\",\n\t\"PDDL-1.0\",\n\t\"PHP-3.0\",\n\t\"PHP-3.01\",\n\t\"PPL\",\n\t\"PSF-2.0\",\n\t\"Parity-6.0.0\",\n\t\"Parity-7.0.0\",\n\t\"Pixar\",\n\t\"Plexus\",\n\t\"PolyForm-Noncommercial-1.0.0\",\n\t\"PolyForm-Small-Business-1.0.0\",\n\t\"PostgreSQL\",\n\t\"Python-2.0\",\n\t\"Python-2.0.1\",\n\t\"QPL-1.0\",\n\t\"QPL-1.0-INRIA-2004\",\n\t\"Qhull\",\n\t\"RHeCos-1.1\",\n\t\"RPL-1.1\",\n\t\"RPL-1.5\",\n\t\"RPSL-1.0\",\n\t\"RSA-MD\",\n\t\"RSCPL\",\n\t\"Rdisc\",\n\t\"Ruby\",\n\t\"Ruby-pty\",\n\t\"SAX-PD\",\n\t\"SAX-PD-2.0\",\n\t\"SCEA\",\n\t\"SGI-B-1.0\",\n\t\"SGI-B-1.1\",\n\t\"SGI-B-2.0\",\n\t\"SGI-OpenGL\",\n\t\"SGP4\",\n\t\"SHL-0.5\",\n\t\"SHL-0.51\",\n\t\"SISSL\",\n\t\"SISSL-1.2\",\n\t\"SL\",\n\t\"SMLNJ\",\n\t\"SMPPL\",\n\t\"SNIA\",\n\t\"SPL-1.0\",\n\t\"SSH-OpenSSH\",\n\t\"SSH-short\",\n\t\"SSLeay-standalone\",\n\t\"SSPL-1.0\",\n\t\"SWL\",\n\t\"Saxpath\",\n\t\"SchemeReport\",\n\t\"Sendmail\",\n\t\"Sendmail-8.23\",\n\t\"SimPL-2.0\",\n\t\"Sleepycat\",\n\t\"Soundex\",\n\t\"Spencer-86\",\n\t\"Spencer-94\",\n\t\"Spencer-99\",\n\t\"SugarCRM-1.1.3\",\n\t\"Sun-PPP\",\n\t\"Sun-PPP-2000\",\n\t\"SunPro\",\n\t\"Symlinks\",\n\t\"TAPR-OHL-1.0\",\n\t\"TCL\",\n\t\"TCP-wrappers\",\n\t\"TGPPL-1.0\",\n\t\"TMate\",\n\t\"TORQUE-1.1\",\n\t\"TOSL\",\n\t\"TPDL\",\n\t\"TPL-1.0\",\n\t\"TTWL\",\n\t\"TTYP0\",\n\t\"TU-Berlin-1.0\",\n\t\"TU-Berlin-2.0\",\n\t\"TermReadKey\",\n\t\"UCAR\",\n\t\"UCL-1.0\",\n\t\"UMich-Merit\",\n\t\"UPL-1.0\",\n\t\"URT-RLE\",\n\t\"Ubuntu-font-1.0\",\n\t\"Unicode-3.0\",\n\t\"Unicode-DFS-2015\",\n\t\"Unicode-DFS-2016\",\n\t\"Unicode-TOU\",\n\t\"UnixCrypt\",\n\t\"Unlicense\",\n\t\"VOSTROM\",\n\t\"VSL-1.0\",\n\t\"Vim\",\n\t\"W3C\",\n\t\"W3C-19980720\",\n\t\"W3C-20150513\",\n\t\"WTFPL\",\n\t\"Watcom-1.0\",\n\t\"Widget-Workshop\",\n\t\"Wsuipa\",\n\t\"X11\",\n\t\"X11-distribute-modifications-variant\",\n\t\"X11-swapped\",\n\t\"XFree86-1.1\",\n\t\"XSkat\",\n\t\"Xdebug-1.03\",\n\t\"Xerox\",\n\t\"Xfig\",\n\t\"Xnet\",\n\t\"YPL-1.0\",\n\t\"YPL-1.1\",\n\t\"ZPL-1.1\",\n\t\"ZPL-2.0\",\n\t\"ZPL-2.1\",\n\t\"Zed\",\n\t\"Zeeff\",\n\t\"Zend-2.0\",\n\t\"Zimbra-1.3\",\n\t\"Zimbra-1.4\",\n\t\"Zlib\",\n\t\"any-OSI\",\n\t\"bcrypt-Solar-Designer\",\n\t\"blessing\",\n\t\"bzip2-1.0.6\",\n\t\"check-cvs\",\n\t\"checkmk\",\n\t\"copyleft-next-0.3.0\",\n\t\"copyleft-next-0.3.1\",\n\t\"curl\",\n\t\"cve-tou\",\n\t\"diffmark\",\n\t\"dtoa\",\n\t\"dvipdfm\",\n\t\"eGenix\",\n\t\"etalab-2.0\",\n\t\"fwlw\",\n\t\"gSOAP-1.3b\",\n\t\"gnuplot\",\n\t\"gtkbook\",\n\t\"hdparm\",\n\t\"iMatix\",\n\t\"libpng-2.0\",\n\t\"libselinux-1.0\",\n\t\"libtiff\",\n\t\"libutil-David-Nugent\",\n\t\"lsof\",\n\t\"magaz\",\n\t\"mailprio\",\n\t\"metamail\",\n\t\"mpi-permissive\",\n\t\"mpich2\",\n\t\"mplus\",\n\t\"pkgconf\",\n\t\"pnmstitch\",\n\t\"psfrag\",\n\t\"psutils\",\n\t\"python-ldap\",\n\t\"radvd\",\n\t\"snprintf\",\n\t\"softSurfer\",\n\t\"ssh-keyscan\",\n\t\"swrule\",\n\t\"threeparttable\",\n\t\"ulem\",\n\t\"w3m\",\n\t\"xinetd\",\n\t\"xkeyboard-config-Zinoviev\",\n\t\"xlock\",\n\t\"xpp\",\n\t\"xzoom\",\n\t\"zlib-acknowledgement\"\n]\n", "[\n\t\"AGPL-1.0\",\n\t\"AGPL-3.0\",\n\t\"BSD-2-Clause-FreeBSD\",\n\t\"BSD-2-Clause-NetBSD\",\n\t\"GFDL-1.1\",\n\t\"GFDL-1.2\",\n\t\"GFDL-1.3\",\n\t\"GPL-1.0\",\n\t\"GPL-2.0\",\n\t\"GPL-2.0-with-GCC-exception\",\n\t\"GPL-2.0-with-autoconf-exception\",\n\t\"GPL-2.0-with-bison-exception\",\n\t\"GPL-2.0-with-classpath-exception\",\n\t\"GPL-2.0-with-font-exception\",\n\t\"GPL-3.0\",\n\t\"GPL-3.0-with-GCC-exception\",\n\t\"GPL-3.0-with-autoconf-exception\",\n\t\"LGPL-2.0\",\n\t\"LGPL-2.1\",\n\t\"LGPL-3.0\",\n\t\"Net-SNMP\",\n\t\"Nunit\",\n\t\"StandardML-NJ\",\n\t\"bzip2-1.0.5\",\n\t\"eCos-2.0\",\n\t\"wxWindows\"\n]\n", "[\n  \"389-exception\",\n  \"Asterisk-exception\",\n  \"Autoconf-exception-2.0\",\n  \"Autoconf-exception-3.0\",\n  \"Autoconf-exception-generic\",\n  \"Autoconf-exception-generic-3.0\",\n  \"Autoconf-exception-macro\",\n  \"Bison-exception-1.24\",\n  \"Bison-exception-2.2\",\n  \"Bootloader-exception\",\n  \"Classpath-exception-2.0\",\n  \"CLISP-exception-2.0\",\n  \"cryptsetup-OpenSSL-exception\",\n  \"DigiRule-FOSS-exception\",\n  \"eCos-exception-2.0\",\n  \"Fawkes-Runtime-exception\",\n  \"FLTK-exception\",\n  \"fmt-exception\",\n  \"Font-exception-2.0\",\n  \"freertos-exception-2.0\",\n  \"GCC-exception-2.0\",\n  \"GCC-exception-2.0-note\",\n  \"GCC-exception-3.1\",\n  \"Gmsh-exception\",\n  \"GNAT-exception\",\n  \"GNOME-examples-exception\",\n  \"GNU-compiler-exception\",\n  \"gnu-javamail-exception\",\n  \"GPL-3.0-interface-exception\",\n  \"GPL-3.0-linking-exception\",\n  \"GPL-3.0-linking-source-exception\",\n  \"GPL-CC-1.0\",\n  \"GStreamer-exception-2005\",\n  \"GStreamer-exception-2008\",\n  \"i2p-gpl-java-exception\",\n  \"KiCad-libraries-exception\",\n  \"LGPL-3.0-linking-exception\",\n  \"libpri-OpenH323-exception\",\n  \"Libtool-exception\",\n  \"Linux-syscall-note\",\n  \"LLGPL\",\n  \"LLVM-exception\",\n  \"LZMA-exception\",\n  \"mif-exception\",\n  \"OCaml-LGPL-linking-exception\",\n  \"OCCT-exception-1.0\",\n  \"OpenJDK-assembly-exception-1.0\",\n  \"openvpn-openssl-exception\",\n  \"PS-or-PDF-font-exception-20170817\",\n  \"QPL-1.0-INRIA-2004-exception\",\n  \"Qt-GPL-exception-1.0\",\n  \"Qt-LGPL-exception-1.1\",\n  \"Qwt-exception-1.0\",\n  \"SANE-exception\",\n  \"SHL-2.0\",\n  \"SHL-2.1\",\n  \"stunnel-exception\",\n  \"SWI-exception\",\n  \"Swift-exception\",\n  \"Texinfo-exception\",\n  \"u-boot-exception-2.0\",\n  \"UBDL-exception\",\n  \"Universal-FOSS-exception-1.0\",\n  \"vsftpd-openssl-exception\",\n  \"WxWindows-exception-3.1\",\n  \"x11vnc-openssl-exception\"\n]\n", "'use strict'\n\nvar licenses = []\n  .concat(require('spdx-license-ids'))\n  .concat(require('spdx-license-ids/deprecated'))\nvar exceptions = require('spdx-exceptions')\n\nmodule.exports = function (source) {\n  var index = 0\n\n  function hasMore () {\n    return index < source.length\n  }\n\n  // `value` can be a regexp or a string.\n  // If it is recognized, the matching source string is returned and\n  // the index is incremented. Otherwise `undefined` is returned.\n  function read (value) {\n    if (value instanceof RegExp) {\n      var chars = source.slice(index)\n      var match = chars.match(value)\n      if (match) {\n        index += match[0].length\n        return match[0]\n      }\n    } else {\n      if (source.indexOf(value, index) === index) {\n        index += value.length\n        return value\n      }\n    }\n  }\n\n  function skipWhitespace () {\n    read(/[ ]*/)\n  }\n\n  function operator () {\n    var string\n    var possibilities = ['WITH', 'AND', 'OR', '(', ')', ':', '+']\n    for (var i = 0; i < possibilities.length; i++) {\n      string = read(possibilities[i])\n      if (string) {\n        break\n      }\n    }\n\n    if (string === '+' && index > 1 && source[index - 2] === ' ') {\n      throw new Error('Space before `+`')\n    }\n\n    return string && {\n      type: 'OPERATOR',\n      string: string\n    }\n  }\n\n  function idstring () {\n    return read(/[A-Za-z0-9-.]+/)\n  }\n\n  function expectIdstring () {\n    var string = idstring()\n    if (!string) {\n      throw new Error('Expected idstring at offset ' + index)\n    }\n    return string\n  }\n\n  function documentRef () {\n    if (read('DocumentRef-')) {\n      var string = expectIdstring()\n      return { type: 'DOCUMENTREF', string: string }\n    }\n  }\n\n  function licenseRef () {\n    if (read('LicenseRef-')) {\n      var string = expectIdstring()\n      return { type: 'LICENSEREF', string: string }\n    }\n  }\n\n  function identifier () {\n    var begin = index\n    var string = idstring()\n\n    if (licenses.indexOf(string) !== -1) {\n      return {\n        type: 'LICENSE',\n        string: string\n      }\n    } else if (exceptions.indexOf(string) !== -1) {\n      return {\n        type: 'EXCEPTION',\n        string: string\n      }\n    }\n\n    index = begin\n  }\n\n  // Tries to read the next token. Returns `undefined` if no token is\n  // recognized.\n  function parseToken () {\n    // Ordering matters\n    return (\n      operator() ||\n      documentRef() ||\n      licenseRef() ||\n      identifier()\n    )\n  }\n\n  var tokens = []\n  while (hasMore()) {\n    skipWhitespace()\n    if (!hasMore()) {\n      break\n    }\n\n    var token = parseToken()\n    if (!token) {\n      throw new Error('Unexpected `' + source[index] +\n                      '` at offset ' + index)\n    }\n\n    tokens.push(token)\n  }\n  return tokens\n}\n", "'use strict'\n\n// The ABNF grammar in the spec is totally ambiguous.\n//\n// This parser follows the operator precedence defined in the\n// `Order of Precedence and Parentheses` section.\n\nmodule.exports = function (tokens) {\n  var index = 0\n\n  function hasMore () {\n    return index < tokens.length\n  }\n\n  function token () {\n    return hasMore() ? tokens[index] : null\n  }\n\n  function next () {\n    if (!hasMore()) {\n      throw new Error()\n    }\n    index++\n  }\n\n  function parseOperator (operator) {\n    var t = token()\n    if (t && t.type === 'OPERATOR' && operator === t.string) {\n      next()\n      return t.string\n    }\n  }\n\n  function parseWith () {\n    if (parseOperator('WITH')) {\n      var t = token()\n      if (t && t.type === 'EXCEPTION') {\n        next()\n        return t.string\n      }\n      throw new Error('Expected exception after `WITH`')\n    }\n  }\n\n  function parseLicenseRef () {\n    // TODO: Actually, everything is concatenated into one string\n    // for backward-compatibility but it could be better to return\n    // a nice structure.\n    var begin = index\n    var string = ''\n    var t = token()\n    if (t.type === 'DOCUMENTREF') {\n      next()\n      string += 'DocumentRef-' + t.string + ':'\n      if (!parseOperator(':')) {\n        throw new Error('Expected `:` after `DocumentRef-...`')\n      }\n    }\n    t = token()\n    if (t.type === 'LICENSEREF') {\n      next()\n      string += 'LicenseRef-' + t.string\n      return { license: string }\n    }\n    index = begin\n  }\n\n  function parseLicense () {\n    var t = token()\n    if (t && t.type === 'LICENSE') {\n      next()\n      var node = { license: t.string }\n      if (parseOperator('+')) {\n        node.plus = true\n      }\n      var exception = parseWith()\n      if (exception) {\n        node.exception = exception\n      }\n      return node\n    }\n  }\n\n  function parseParenthesizedExpression () {\n    var left = parseOperator('(')\n    if (!left) {\n      return\n    }\n\n    var expr = parseExpression()\n\n    if (!parseOperator(')')) {\n      throw new Error('Expected `)`')\n    }\n\n    return expr\n  }\n\n  function parseAtom () {\n    return (\n      parseParenthesizedExpression() ||\n      parseLicenseRef() ||\n      parseLicense()\n    )\n  }\n\n  function makeBinaryOpParser (operator, nextParser) {\n    return function parseBinaryOp () {\n      var left = nextParser()\n      if (!left) {\n        return\n      }\n\n      if (!parseOperator(operator)) {\n        return left\n      }\n\n      var right = parseBinaryOp()\n      if (!right) {\n        throw new Error('Expected expression')\n      }\n      return {\n        left: left,\n        conjunction: operator.toLowerCase(),\n        right: right\n      }\n    }\n  }\n\n  var parseAnd = makeBinaryOpParser('AND', parseAtom)\n  var parseExpression = makeBinaryOpParser('OR', parseAnd)\n\n  var node = parseExpression()\n  if (!node || hasMore()) {\n    throw new Error('Syntax error')\n  }\n  return node\n}\n", "'use strict'\n\nvar scan = require('./scan')\nvar parse = require('./parse')\n\nmodule.exports = function (source) {\n  return parse(scan(source))\n}\n", "/*\nCopyright spdx-correct.js contributors\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nvar parse = require('spdx-expression-parse')\nvar spdxLicenseIds = require('spdx-license-ids')\n\nfunction valid (string) {\n  try {\n    parse(string)\n    return true\n  } catch (error) {\n    return false\n  }\n}\n\n// Sorting function that orders the given array of transpositions such\n// that a transposition with the longer pattern comes before a transposition\n// with a shorter pattern. This is to prevent e.g. the transposition\n// [\"General Public License\", \"GPL\"] from matching to \"Lesser General Public License\"\n// before a longer and more accurate transposition [\"Lesser General Public License\", \"LGPL\"]\n// has a chance to be recognized.\nfunction sortTranspositions(a, b) {\n  var length = b[0].length - a[0].length\n  if (length !== 0) return length\n  return a[0].toUpperCase().localeCompare(b[0].toUpperCase())\n}\n\n// Common transpositions of license identifier acronyms\nvar transpositions = [\n  ['APGL', 'AGPL'],\n  ['Gpl', 'GPL'],\n  ['GLP', 'GPL'],\n  ['APL', 'Apache'],\n  ['ISD', 'ISC'],\n  ['GLP', 'GPL'],\n  ['IST', 'ISC'],\n  ['Claude', 'Clause'],\n  [' or later', '+'],\n  [' International', ''],\n  ['GNU', 'GPL'],\n  ['GUN', 'GPL'],\n  ['+', ''],\n  ['GNU GPL', 'GPL'],\n  ['GNU LGPL', 'LGPL'],\n  ['GNU/GPL', 'GPL'],\n  ['GNU GLP', 'GPL'],\n  ['GNU LESSER GENERAL PUBLIC LICENSE', 'LGPL'],\n  ['GNU Lesser General Public License', 'LGPL'],\n  ['GNU LESSER GENERAL PUBLIC LICENSE', 'LGPL-2.1'],\n  ['GNU Lesser General Public License', 'LGPL-2.1'],\n  ['LESSER GENERAL PUBLIC LICENSE', 'LGPL'],\n  ['Lesser General Public License', 'LGPL'],\n  ['LESSER GENERAL PUBLIC LICENSE', 'LGPL-2.1'],\n  ['Lesser General Public License', 'LGPL-2.1'],\n  ['GNU General Public License', 'GPL'],\n  ['Gnu public license', 'GPL'],\n  ['GNU Public License', 'GPL'],\n  ['GNU GENERAL PUBLIC LICENSE', 'GPL'],\n  ['MTI', 'MIT'],\n  ['Mozilla Public License', 'MPL'],\n  ['Universal Permissive License', 'UPL'],\n  ['WTH', 'WTF'],\n  ['WTFGPL', 'WTFPL'],\n  ['-License', '']\n].sort(sortTranspositions)\n\nvar TRANSPOSED = 0\nvar CORRECT = 1\n\n// Simple corrections to nearly valid identifiers.\nvar transforms = [\n  // e.g. 'mit'\n  function (argument) {\n    return argument.toUpperCase()\n  },\n  // e.g. 'MIT '\n  function (argument) {\n    return argument.trim()\n  },\n  // e.g. 'M.I.T.'\n  function (argument) {\n    return argument.replace(/\\./g, '')\n  },\n  // e.g. 'Apache- 2.0'\n  function (argument) {\n    return argument.replace(/\\s+/g, '')\n  },\n  // e.g. 'CC BY 4.0''\n  function (argument) {\n    return argument.replace(/\\s+/g, '-')\n  },\n  // e.g. 'LGPLv2.1'\n  function (argument) {\n    return argument.replace('v', '-')\n  },\n  // e.g. 'Apache 2.0'\n  function (argument) {\n    return argument.replace(/,?\\s*(\\d)/, '-$1')\n  },\n  // e.g. 'GPL 2'\n  function (argument) {\n    return argument.replace(/,?\\s*(\\d)/, '-$1.0')\n  },\n  // e.g. 'Apache Version 2.0'\n  function (argument) {\n    return argument\n      .replace(/,?\\s*(V\\.|v\\.|V|v|Version|version)\\s*(\\d)/, '-$2')\n  },\n  // e.g. 'Apache Version 2'\n  function (argument) {\n    return argument\n      .replace(/,?\\s*(V\\.|v\\.|V|v|Version|version)\\s*(\\d)/, '-$2.0')\n  },\n  // e.g. 'ZLIB'\n  function (argument) {\n    return argument[0].toUpperCase() + argument.slice(1)\n  },\n  // e.g. 'MPL/2.0'\n  function (argument) {\n    return argument.replace('/', '-')\n  },\n  // e.g. 'Apache 2'\n  function (argument) {\n    return argument\n      .replace(/\\s*V\\s*(\\d)/, '-$1')\n      .replace(/(\\d)$/, '$1.0')\n  },\n  // e.g. 'GPL-2.0', 'GPL-3.0'\n  function (argument) {\n    if (argument.indexOf('3.0') !== -1) {\n      return argument + '-or-later'\n    } else {\n      return argument + '-only'\n    }\n  },\n  // e.g. 'GPL-2.0-'\n  function (argument) {\n    return argument + 'only'\n  },\n  // e.g. 'GPL2'\n  function (argument) {\n    return argument.replace(/(\\d)$/, '-$1.0')\n  },\n  // e.g. 'BSD 3'\n  function (argument) {\n    return argument.replace(/(-| )?(\\d)$/, '-$2-Clause')\n  },\n  // e.g. 'BSD clause 3'\n  function (argument) {\n    return argument.replace(/(-| )clause(-| )(\\d)/, '-$3-Clause')\n  },\n  // e.g. 'New BSD license'\n  function (argument) {\n    return argument.replace(/\\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i, 'BSD-3-Clause')\n  },\n  // e.g. 'Simplified BSD license'\n  function (argument) {\n    return argument.replace(/\\bSimplified(-| )?BSD((-| )License)?/i, 'BSD-2-Clause')\n  },\n  // e.g. 'Free BSD license'\n  function (argument) {\n    return argument.replace(/\\b(Free|Net)(-| )?BSD((-| )License)?/i, 'BSD-2-Clause-$1BSD')\n  },\n  // e.g. 'Clear BSD license'\n  function (argument) {\n    return argument.replace(/\\bClear(-| )?BSD((-| )License)?/i, 'BSD-3-Clause-Clear')\n  },\n  // e.g. 'Old BSD License'\n  function (argument) {\n    return argument.replace(/\\b(Old|Original)(-| )?BSD((-| )License)?/i, 'BSD-4-Clause')\n  },\n  // e.g. 'BY-NC-4.0'\n  function (argument) {\n    return 'CC-' + argument\n  },\n  // e.g. 'BY-NC'\n  function (argument) {\n    return 'CC-' + argument + '-4.0'\n  },\n  // e.g. 'Attribution-NonCommercial'\n  function (argument) {\n    return argument\n      .replace('Attribution', 'BY')\n      .replace('NonCommercial', 'NC')\n      .replace('NoDerivatives', 'ND')\n      .replace(/ (\\d)/, '-$1')\n      .replace(/ ?International/, '')\n  },\n  // e.g. 'Attribution-NonCommercial'\n  function (argument) {\n    return 'CC-' +\n      argument\n        .replace('Attribution', 'BY')\n        .replace('NonCommercial', 'NC')\n        .replace('NoDerivatives', 'ND')\n        .replace(/ (\\d)/, '-$1')\n        .replace(/ ?International/, '') +\n      '-4.0'\n  }\n]\n\nvar licensesWithVersions = spdxLicenseIds\n  .map(function (id) {\n    var match = /^(.*)-\\d+\\.\\d+$/.exec(id)\n    return match\n      ? [match[0], match[1]]\n      : [id, null]\n  })\n  .reduce(function (objectMap, item) {\n    var key = item[1]\n    objectMap[key] = objectMap[key] || []\n    objectMap[key].push(item[0])\n    return objectMap\n  }, {})\n\nvar licensesWithOneVersion = Object.keys(licensesWithVersions)\n  .map(function makeEntries (key) {\n    return [key, licensesWithVersions[key]]\n  })\n  .filter(function identifySoleVersions (item) {\n    return (\n      // Licenses has just one valid version suffix.\n      item[1].length === 1 &&\n      item[0] !== null &&\n      // APL will be considered Apache, rather than APL-1.0\n      item[0] !== 'APL'\n    )\n  })\n  .map(function createLastResorts (item) {\n    return [item[0], item[1][0]]\n  })\n\nlicensesWithVersions = undefined\n\n// If all else fails, guess that strings containing certain substrings\n// meant to identify certain licenses.\nvar lastResorts = [\n  ['UNLI', 'Unlicense'],\n  ['WTF', 'WTFPL'],\n  ['2 CLAUSE', 'BSD-2-Clause'],\n  ['2-CLAUSE', 'BSD-2-Clause'],\n  ['3 CLAUSE', 'BSD-3-Clause'],\n  ['3-CLAUSE', 'BSD-3-Clause'],\n  ['AFFERO', 'AGPL-3.0-or-later'],\n  ['AGPL', 'AGPL-3.0-or-later'],\n  ['APACHE', 'Apache-2.0'],\n  ['ARTISTIC', 'Artistic-2.0'],\n  ['Affero', 'AGPL-3.0-or-later'],\n  ['BEER', 'Beerware'],\n  ['BOOST', 'BSL-1.0'],\n  ['BSD', 'BSD-2-Clause'],\n  ['CDDL', 'CDDL-1.1'],\n  ['ECLIPSE', 'EPL-1.0'],\n  ['FUCK', 'WTFPL'],\n  ['GNU', 'GPL-3.0-or-later'],\n  ['LGPL', 'LGPL-3.0-or-later'],\n  ['GPLV1', 'GPL-1.0-only'],\n  ['GPL-1', 'GPL-1.0-only'],\n  ['GPLV2', 'GPL-2.0-only'],\n  ['GPL-2', 'GPL-2.0-only'],\n  ['GPL', 'GPL-3.0-or-later'],\n  ['MIT +NO-FALSE-ATTRIBS', 'MITNFA'],\n  ['MIT', 'MIT'],\n  ['MPL', 'MPL-2.0'],\n  ['X11', 'X11'],\n  ['ZLIB', 'Zlib']\n].concat(licensesWithOneVersion).sort(sortTranspositions)\n\nvar SUBSTRING = 0\nvar IDENTIFIER = 1\n\nvar validTransformation = function (identifier) {\n  for (var i = 0; i < transforms.length; i++) {\n    var transformed = transforms[i](identifier).trim()\n    if (transformed !== identifier && valid(transformed)) {\n      return transformed\n    }\n  }\n  return null\n}\n\nvar validLastResort = function (identifier) {\n  var upperCased = identifier.toUpperCase()\n  for (var i = 0; i < lastResorts.length; i++) {\n    var lastResort = lastResorts[i]\n    if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) {\n      return lastResort[IDENTIFIER]\n    }\n  }\n  return null\n}\n\nvar anyCorrection = function (identifier, check) {\n  for (var i = 0; i < transpositions.length; i++) {\n    var transposition = transpositions[i]\n    var transposed = transposition[TRANSPOSED]\n    if (identifier.indexOf(transposed) > -1) {\n      var corrected = identifier.replace(\n        transposed,\n        transposition[CORRECT]\n      )\n      var checked = check(corrected)\n      if (checked !== null) {\n        return checked\n      }\n    }\n  }\n  return null\n}\n\nmodule.exports = function (identifier, options) {\n  options = options || {}\n  var upgrade = options.upgrade === undefined ? true : !!options.upgrade\n  function postprocess (value) {\n    return upgrade ? upgradeGPLs(value) : value\n  }\n  var validArugment = (\n    typeof identifier === 'string' &&\n    identifier.trim().length !== 0\n  )\n  if (!validArugment) {\n    throw Error('Invalid argument. Expected non-empty string.')\n  }\n  identifier = identifier.trim()\n  if (valid(identifier)) {\n    return postprocess(identifier)\n  }\n  var noPlus = identifier.replace(/\\+$/, '').trim()\n  if (valid(noPlus)) {\n    return postprocess(noPlus)\n  }\n  var transformed = validTransformation(identifier)\n  if (transformed !== null) {\n    return postprocess(transformed)\n  }\n  transformed = anyCorrection(identifier, function (argument) {\n    if (valid(argument)) {\n      return argument\n    }\n    return validTransformation(argument)\n  })\n  if (transformed !== null) {\n    return postprocess(transformed)\n  }\n  transformed = validLastResort(identifier)\n  if (transformed !== null) {\n    return postprocess(transformed)\n  }\n  transformed = anyCorrection(identifier, validLastResort)\n  if (transformed !== null) {\n    return postprocess(transformed)\n  }\n  return null\n}\n\nfunction upgradeGPLs (value) {\n  if ([\n    'GPL-1.0', 'LGPL-1.0', 'AGPL-1.0',\n    'GPL-2.0', 'LGPL-2.0', 'AGPL-2.0',\n    'LGPL-2.1'\n  ].indexOf(value) !== -1) {\n    return value + '-only'\n  } else if ([\n    'GPL-1.0+', 'GPL-2.0+', 'GPL-3.0+',\n    'LGPL-2.0+', 'LGPL-2.1+', 'LGPL-3.0+',\n    'AGPL-1.0+', 'AGPL-3.0+'\n  ].indexOf(value) !== -1) {\n    return value.replace(/\\+$/, '-or-later')\n  } else if (['GPL-3.0', 'LGPL-3.0', 'AGPL-3.0'].indexOf(value) !== -1) {\n    return value + '-or-later'\n  } else {\n    return value\n  }\n}\n", "var parse = require('spdx-expression-parse');\nvar correct = require('spdx-correct');\n\nvar genericWarning = (\n  'license should be ' +\n  'a valid SPDX license expression (without \"LicenseRef\"), ' +\n  '\"UNLICENSED\", or ' +\n  '\"SEE LICENSE IN <filename>\"'\n);\n\nvar fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/;\n\nfunction startsWith(prefix, string) {\n  return string.slice(0, prefix.length) === prefix;\n}\n\nfunction usesLicenseRef(ast) {\n  if (ast.hasOwnProperty('license')) {\n    var license = ast.license;\n    return (\n      startsWith('LicenseRef', license) ||\n      startsWith('DocumentRef', license)\n    );\n  } else {\n    return (\n      usesLicenseRef(ast.left) ||\n      usesLicenseRef(ast.right)\n    );\n  }\n}\n\nmodule.exports = function(argument) {\n  var ast;\n\n  try {\n    ast = parse(argument);\n  } catch (e) {\n    var match\n    if (\n      argument === 'UNLICENSED' ||\n      argument === 'UNLICENCED'\n    ) {\n      return {\n        validForOldPackages: true,\n        validForNewPackages: true,\n        unlicensed: true\n      };\n    } else if (match = fileReferenceRE.exec(argument)) {\n      return {\n        validForOldPackages: true,\n        validForNewPackages: true,\n        inFile: match[1]\n      };\n    } else {\n      var result = {\n        validForOldPackages: false,\n        validForNewPackages: false,\n        warnings: [genericWarning]\n      };\n      if (argument.trim().length !== 0) {\n        var corrected = correct(argument);\n        if (corrected) {\n          result.warnings.push(\n            'license is similar to the valid expression \"' + corrected + '\"'\n          );\n        }\n      }\n      return result;\n    }\n  }\n\n  if (usesLicenseRef(ast)) {\n    return {\n      validForNewPackages: false,\n      validForOldPackages: false,\n      spdx: true,\n      warnings: [genericWarning]\n    };\n  } else {\n    return {\n      validForNewPackages: true,\n      validForOldPackages: true,\n      spdx: true\n    };\n  }\n};\n", "'use strict'\n\nvar gitHosts = module.exports = {\n  github: {\n    // First two are insecure and generally shouldn't be used any more, but\n    // they are still supported.\n    'protocols': [ 'git', 'http', 'git+ssh', 'git+https', 'ssh', 'https' ],\n    'domain': 'github.com',\n    'treepath': 'tree',\n    'filetemplate': 'https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}',\n    'bugstemplate': 'https://{domain}/{user}/{project}/issues',\n    'gittemplate': 'git://{auth@}{domain}/{user}/{project}.git{#committish}',\n    'tarballtemplate': 'https://codeload.{domain}/{user}/{project}/tar.gz/{committish}'\n  },\n  bitbucket: {\n    'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ],\n    'domain': 'bitbucket.org',\n    'treepath': 'src',\n    'tarballtemplate': 'https://{domain}/{user}/{project}/get/{committish}.tar.gz'\n  },\n  gitlab: {\n    'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ],\n    'domain': 'gitlab.com',\n    'treepath': 'tree',\n    'bugstemplate': 'https://{domain}/{user}/{project}/issues',\n    'httpstemplate': 'git+https://{auth@}{domain}/{user}/{projectPath}.git{#committish}',\n    'tarballtemplate': 'https://{domain}/{user}/{project}/repository/archive.tar.gz?ref={committish}',\n    'pathmatch': /^[/]([^/]+)[/]((?!.*(\\/-\\/|\\/repository\\/archive\\.tar\\.gz\\?=.*|\\/repository\\/[^/]+\\/archive.tar.gz$)).*?)(?:[.]git|[/])?$/\n  },\n  gist: {\n    'protocols': [ 'git', 'git+ssh', 'git+https', 'ssh', 'https' ],\n    'domain': 'gist.github.com',\n    'pathmatch': /^[/](?:([^/]+)[/])?([a-z0-9]{32,})(?:[.]git)?$/,\n    'filetemplate': 'https://gist.githubusercontent.com/{user}/{project}/raw{/committish}/{path}',\n    'bugstemplate': 'https://{domain}/{project}',\n    'gittemplate': 'git://{domain}/{project}.git{#committish}',\n    'sshtemplate': 'git@{domain}:/{project}.git{#committish}',\n    'sshurltemplate': 'git+ssh://git@{domain}/{project}.git{#committish}',\n    'browsetemplate': 'https://{domain}/{project}{/committish}',\n    'browsefiletemplate': 'https://{domain}/{project}{/committish}{#path}',\n    'docstemplate': 'https://{domain}/{project}{/committish}',\n    'httpstemplate': 'git+https://{domain}/{project}.git{#committish}',\n    'shortcuttemplate': '{type}:{project}{#committish}',\n    'pathtemplate': '{project}{#committish}',\n    'tarballtemplate': 'https://codeload.github.com/gist/{project}/tar.gz/{committish}',\n    'hashformat': function (fragment) {\n      return 'file-' + formatHashFragment(fragment)\n    }\n  }\n}\n\nvar gitHostDefaults = {\n  'sshtemplate': 'git@{domain}:{user}/{project}.git{#committish}',\n  'sshurltemplate': 'git+ssh://git@{domain}/{user}/{project}.git{#committish}',\n  'browsetemplate': 'https://{domain}/{user}/{project}{/tree/committish}',\n  'browsefiletemplate': 'https://{domain}/{user}/{project}/{treepath}/{committish}/{path}{#fragment}',\n  'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#readme',\n  'httpstemplate': 'git+https://{auth@}{domain}/{user}/{project}.git{#committish}',\n  'filetemplate': 'https://{domain}/{user}/{project}/raw/{committish}/{path}',\n  'shortcuttemplate': '{type}:{user}/{project}{#committish}',\n  'pathtemplate': '{user}/{project}{#committish}',\n  'pathmatch': /^[/]([^/]+)[/]([^/]+?)(?:[.]git|[/])?$/,\n  'hashformat': formatHashFragment\n}\n\nObject.keys(gitHosts).forEach(function (name) {\n  Object.keys(gitHostDefaults).forEach(function (key) {\n    if (gitHosts[name][key]) return\n    gitHosts[name][key] = gitHostDefaults[key]\n  })\n  gitHosts[name].protocols_re = RegExp('^(' +\n    gitHosts[name].protocols.map(function (protocol) {\n      return protocol.replace(/([\\\\+*{}()[\\]$^|])/g, '\\\\$1')\n    }).join('|') + '):$')\n})\n\nfunction formatHashFragment (fragment) {\n  return fragment.toLowerCase().replace(/^\\W+|\\/|\\W+$/g, '').replace(/\\W+/g, '-')\n}\n", "'use strict'\nvar gitHosts = require('./git-host-info.js')\n/* eslint-disable node/no-deprecated-api */\n\n// copy-pasta util._extend from node's source, to avoid pulling\n// the whole util module into peoples' webpack bundles.\n/* istanbul ignore next */\nvar extend = Object.assign || function _extend (target, source) {\n  // Don't do anything if source isn't an object\n  if (source === null || typeof source !== 'object') return target\n\n  var keys = Object.keys(source)\n  var i = keys.length\n  while (i--) {\n    target[keys[i]] = source[keys[i]]\n  }\n  return target\n}\n\nmodule.exports = GitHost\nfunction GitHost (type, user, auth, project, committish, defaultRepresentation, opts) {\n  var gitHostInfo = this\n  gitHostInfo.type = type\n  Object.keys(gitHosts[type]).forEach(function (key) {\n    gitHostInfo[key] = gitHosts[type][key]\n  })\n  gitHostInfo.user = user\n  gitHostInfo.auth = auth\n  gitHostInfo.project = project\n  gitHostInfo.committish = committish\n  gitHostInfo.default = defaultRepresentation\n  gitHostInfo.opts = opts || {}\n}\n\nGitHost.prototype.hash = function () {\n  return this.committish ? '#' + this.committish : ''\n}\n\nGitHost.prototype._fill = function (template, opts) {\n  if (!template) return\n  var vars = extend({}, opts)\n  vars.path = vars.path ? vars.path.replace(/^[/]+/g, '') : ''\n  opts = extend(extend({}, this.opts), opts)\n  var self = this\n  Object.keys(this).forEach(function (key) {\n    if (self[key] != null && vars[key] == null) vars[key] = self[key]\n  })\n  var rawAuth = vars.auth\n  var rawcommittish = vars.committish\n  var rawFragment = vars.fragment\n  var rawPath = vars.path\n  var rawProject = vars.project\n  Object.keys(vars).forEach(function (key) {\n    var value = vars[key]\n    if ((key === 'path' || key === 'project') && typeof value === 'string') {\n      vars[key] = value.split('/').map(function (pathComponent) {\n        return encodeURIComponent(pathComponent)\n      }).join('/')\n    } else {\n      vars[key] = encodeURIComponent(value)\n    }\n  })\n  vars['auth@'] = rawAuth ? rawAuth + '@' : ''\n  vars['#fragment'] = rawFragment ? '#' + this.hashformat(rawFragment) : ''\n  vars.fragment = vars.fragment ? vars.fragment : ''\n  vars['#path'] = rawPath ? '#' + this.hashformat(rawPath) : ''\n  vars['/path'] = vars.path ? '/' + vars.path : ''\n  vars.projectPath = rawProject.split('/').map(encodeURIComponent).join('/')\n  if (opts.noCommittish) {\n    vars['#committish'] = ''\n    vars['/tree/committish'] = ''\n    vars['/committish'] = ''\n    vars.committish = ''\n  } else {\n    vars['#committish'] = rawcommittish ? '#' + rawcommittish : ''\n    vars['/tree/committish'] = vars.committish\n      ? '/' + vars.treepath + '/' + vars.committish\n      : ''\n    vars['/committish'] = vars.committish ? '/' + vars.committish : ''\n    vars.committish = vars.committish || 'master'\n  }\n  var res = template\n  Object.keys(vars).forEach(function (key) {\n    res = res.replace(new RegExp('[{]' + key + '[}]', 'g'), vars[key])\n  })\n  if (opts.noGitPlus) {\n    return res.replace(/^git[+]/, '')\n  } else {\n    return res\n  }\n}\n\nGitHost.prototype.ssh = function (opts) {\n  return this._fill(this.sshtemplate, opts)\n}\n\nGitHost.prototype.sshurl = function (opts) {\n  return this._fill(this.sshurltemplate, opts)\n}\n\nGitHost.prototype.browse = function (P, F, opts) {\n  if (typeof P === 'string') {\n    if (typeof F !== 'string') {\n      opts = F\n      F = null\n    }\n    return this._fill(this.browsefiletemplate, extend({\n      fragment: F,\n      path: P\n    }, opts))\n  } else {\n    return this._fill(this.browsetemplate, P)\n  }\n}\n\nGitHost.prototype.docs = function (opts) {\n  return this._fill(this.docstemplate, opts)\n}\n\nGitHost.prototype.bugs = function (opts) {\n  return this._fill(this.bugstemplate, opts)\n}\n\nGitHost.prototype.https = function (opts) {\n  return this._fill(this.httpstemplate, opts)\n}\n\nGitHost.prototype.git = function (opts) {\n  return this._fill(this.gittemplate, opts)\n}\n\nGitHost.prototype.shortcut = function (opts) {\n  return this._fill(this.shortcuttemplate, opts)\n}\n\nGitHost.prototype.path = function (opts) {\n  return this._fill(this.pathtemplate, opts)\n}\n\nGitHost.prototype.tarball = function (opts_) {\n  var opts = extend({}, opts_, { noCommittish: false })\n  return this._fill(this.tarballtemplate, opts)\n}\n\nGitHost.prototype.file = function (P, opts) {\n  return this._fill(this.filetemplate, extend({ path: P }, opts))\n}\n\nGitHost.prototype.getDefaultRepresentation = function () {\n  return this.default\n}\n\nGitHost.prototype.toString = function (opts) {\n  if (this.default && typeof this[this.default] === 'function') return this[this.default](opts)\n  return this.sshurl(opts)\n}\n", "'use strict'\nvar url = require('url')\nvar gitHosts = require('./git-host-info.js')\nvar GitHost = module.exports = require('./git-host.js')\n\nvar protocolToRepresentationMap = {\n  'git+ssh:': 'sshurl',\n  'git+https:': 'https',\n  'ssh:': 'sshurl',\n  'git:': 'git'\n}\n\nfunction protocolToRepresentation (protocol) {\n  return protocolToRepresentationMap[protocol] || protocol.slice(0, -1)\n}\n\nvar authProtocols = {\n  'git:': true,\n  'https:': true,\n  'git+https:': true,\n  'http:': true,\n  'git+http:': true\n}\n\nvar cache = {}\n\nmodule.exports.fromUrl = function (giturl, opts) {\n  if (typeof giturl !== 'string') return\n  var key = giturl + JSON.stringify(opts || {})\n\n  if (!(key in cache)) {\n    cache[key] = fromUrl(giturl, opts)\n  }\n\n  return cache[key]\n}\n\nfunction fromUrl (giturl, opts) {\n  if (giturl == null || giturl === '') return\n  var url = fixupUnqualifiedGist(\n    isGitHubShorthand(giturl) ? 'github:' + giturl : giturl\n  )\n  var parsed = parseGitUrl(url)\n  var shortcutMatch = url.match(/^([^:]+):(?:[^@]+@)?(?:([^/]*)\\/)?([^#]+)/)\n  var matches = Object.keys(gitHosts).map(function (gitHostName) {\n    try {\n      var gitHostInfo = gitHosts[gitHostName]\n      var auth = null\n      if (parsed.auth && authProtocols[parsed.protocol]) {\n        auth = parsed.auth\n      }\n      var committish = parsed.hash ? decodeURIComponent(parsed.hash.substr(1)) : null\n      var user = null\n      var project = null\n      var defaultRepresentation = null\n      if (shortcutMatch && shortcutMatch[1] === gitHostName) {\n        user = shortcutMatch[2] && decodeURIComponent(shortcutMatch[2])\n        project = decodeURIComponent(shortcutMatch[3].replace(/\\.git$/, ''))\n        defaultRepresentation = 'shortcut'\n      } else {\n        if (parsed.host && parsed.host !== gitHostInfo.domain && parsed.host.replace(/^www[.]/, '') !== gitHostInfo.domain) return\n        if (!gitHostInfo.protocols_re.test(parsed.protocol)) return\n        if (!parsed.path) return\n        var pathmatch = gitHostInfo.pathmatch\n        var matched = parsed.path.match(pathmatch)\n        if (!matched) return\n        /* istanbul ignore else */\n        if (matched[1] !== null && matched[1] !== undefined) {\n          user = decodeURIComponent(matched[1].replace(/^:/, ''))\n        }\n        project = decodeURIComponent(matched[2])\n        defaultRepresentation = protocolToRepresentation(parsed.protocol)\n      }\n      return new GitHost(gitHostName, user, auth, project, committish, defaultRepresentation, opts)\n    } catch (ex) {\n      /* istanbul ignore else */\n      if (ex instanceof URIError) {\n      } else throw ex\n    }\n  }).filter(function (gitHostInfo) { return gitHostInfo })\n  if (matches.length !== 1) return\n  return matches[0]\n}\n\nfunction isGitHubShorthand (arg) {\n  // Note: This does not fully test the git ref format.\n  // See https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html\n  //\n  // The only way to do this properly would be to shell out to\n  // git-check-ref-format, and as this is a fast sync function,\n  // we don't want to do that.  Just let git fail if it turns\n  // out that the commit-ish is invalid.\n  // GH usernames cannot start with . or -\n  return /^[^:@%/\\s.-][^:@%/\\s]*[/][^:@\\s/%]+(?:#.*)?$/.test(arg)\n}\n\nfunction fixupUnqualifiedGist (giturl) {\n  // necessary for round-tripping gists\n  var parsed = url.parse(giturl)\n  if (parsed.protocol === 'gist:' && parsed.host && !parsed.path) {\n    return parsed.protocol + '/' + parsed.host\n  } else {\n    return giturl\n  }\n}\n\nfunction parseGitUrl (giturl) {\n  var matched = giturl.match(/^([^@]+)@([^:/]+):[/]?((?:[^/]+[/])?[^/]+?)(?:[.]git)?(#.*)?$/)\n  if (!matched) {\n    var legacy = url.parse(giturl)\n    // If we don't have url.URL, then sorry, this is just not fixable.\n    // This affects Node <= 6.12.\n    if (legacy.auth && typeof url.URL === 'function') {\n      // git urls can be in the form of scp-style/ssh-connect strings, like\n      // git+ssh://user@host.com:some/path, which the legacy url parser\n      // supports, but WhatWG url.URL class does not.  However, the legacy\n      // parser de-urlencodes the username and password, so something like\n      // https://user%3An%40me:p%40ss%3Aword@x.com/ becomes\n      // https://user:n@me:p@ss:word@x.com/ which is all kinds of wrong.\n      // Pull off just the auth and host, so we dont' get the confusing\n      // scp-style URL, then pass that to the WhatWG parser to get the\n      // auth properly escaped.\n      var authmatch = giturl.match(/[^@]+@[^:/]+/)\n      /* istanbul ignore else - this should be impossible */\n      if (authmatch) {\n        var whatwg = new url.URL(authmatch[0])\n        legacy.auth = whatwg.username || ''\n        if (whatwg.password) legacy.auth += ':' + whatwg.password\n      }\n    }\n    return legacy\n  }\n  return {\n    protocol: 'git+ssh:',\n    slashes: true,\n    auth: matched[1],\n    host: matched[2],\n    port: null,\n    hostname: matched[2],\n    hash: matched[4],\n    search: null,\n    query: null,\n    pathname: '/' + matched[3],\n    path: '/' + matched[3],\n    href: 'git+ssh://' + matched[1] + '@' + matched[2] +\n          '/' + matched[3] + (matched[4] || '')\n  }\n}\n", "'use strict';\n\nvar os = require('os');\n\n// adapted from https://github.com/sindresorhus/os-homedir/blob/11e089f4754db38bb535e5a8416320c4446e8cfd/index.js\n\nmodule.exports = os.homedir || function homedir() {\n    var home = process.env.HOME;\n    var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME;\n\n    if (process.platform === 'win32') {\n        return process.env.USERPROFILE || process.env.HOMEDRIVE + process.env.HOMEPATH || home || null;\n    }\n\n    if (process.platform === 'darwin') {\n        return home || (user ? '/Users/' + user : null);\n    }\n\n    if (process.platform === 'linux') {\n        return home || (process.getuid() === 0 ? '/root' : (user ? '/home/' + user : null)); // eslint-disable-line no-extra-parens\n    }\n\n    return home || null;\n};\n", "module.exports = function () {\n    // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi\n    var origPrepareStackTrace = Error.prepareStackTrace;\n    Error.prepareStackTrace = function (_, stack) { return stack; };\n    var stack = (new Error()).stack;\n    Error.prepareStackTrace = origPrepareStackTrace;\n    return stack[2].getFileName();\n};\n", "'use strict';\n\nvar isWindows = process.platform === 'win32';\n\n// Regex to split a windows path into into [dir, root, basename, name, ext]\nvar splitWindowsRe =\n    /^(((?:[a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?[\\\\\\/]?)(?:[^\\\\\\/]*[\\\\\\/])*)((\\.{1,2}|[^\\\\\\/]+?|)(\\.[^.\\/\\\\]*|))[\\\\\\/]*$/;\n\nvar win32 = {};\n\nfunction win32SplitPath(filename) {\n  return splitWindowsRe.exec(filename).slice(1);\n}\n\nwin32.parse = function(pathString) {\n  if (typeof pathString !== 'string') {\n    throw new TypeError(\n        \"Parameter 'pathString' must be a string, not \" + typeof pathString\n    );\n  }\n  var allParts = win32SplitPath(pathString);\n  if (!allParts || allParts.length !== 5) {\n    throw new TypeError(\"Invalid path '\" + pathString + \"'\");\n  }\n  return {\n    root: allParts[1],\n    dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1),\n    base: allParts[2],\n    ext: allParts[4],\n    name: allParts[3]\n  };\n};\n\n\n\n// Split a filename into [dir, root, basename, name, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n    /^((\\/?)(?:[^\\/]*\\/)*)((\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))[\\/]*$/;\nvar posix = {};\n\n\nfunction posixSplitPath(filename) {\n  return splitPathRe.exec(filename).slice(1);\n}\n\n\nposix.parse = function(pathString) {\n  if (typeof pathString !== 'string') {\n    throw new TypeError(\n        \"Parameter 'pathString' must be a string, not \" + typeof pathString\n    );\n  }\n  var allParts = posixSplitPath(pathString);\n  if (!allParts || allParts.length !== 5) {\n    throw new TypeError(\"Invalid path '\" + pathString + \"'\");\n  }\n  \n  return {\n    root: allParts[1],\n    dir: allParts[0].slice(0, -1),\n    base: allParts[2],\n    ext: allParts[4],\n    name: allParts[3],\n  };\n};\n\n\nif (isWindows)\n  module.exports = win32.parse;\nelse /* posix */\n  module.exports = posix.parse;\n\nmodule.exports.posix = posix.parse;\nmodule.exports.win32 = win32.parse;\n", "var path = require('path');\nvar parse = path.parse || require('path-parse'); // eslint-disable-line global-require\n\nvar getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) {\n    var prefix = '/';\n    if ((/^([A-Za-z]:)/).test(absoluteStart)) {\n        prefix = '';\n    } else if ((/^\\\\\\\\/).test(absoluteStart)) {\n        prefix = '\\\\\\\\';\n    }\n\n    var paths = [absoluteStart];\n    var parsed = parse(absoluteStart);\n    while (parsed.dir !== paths[paths.length - 1]) {\n        paths.push(parsed.dir);\n        parsed = parse(parsed.dir);\n    }\n\n    return paths.reduce(function (dirs, aPath) {\n        return dirs.concat(modules.map(function (moduleDir) {\n            return path.resolve(prefix, aPath, moduleDir);\n        }));\n    }, []);\n};\n\nmodule.exports = function nodeModulesPaths(start, opts, request) {\n    var modules = opts && opts.moduleDirectory\n        ? [].concat(opts.moduleDirectory)\n        : ['node_modules'];\n\n    if (opts && typeof opts.paths === 'function') {\n        return opts.paths(\n            request,\n            start,\n            function () { return getNodeModulesDirs(start, modules); },\n            opts\n        );\n    }\n\n    var dirs = getNodeModulesDirs(start, modules);\n    return opts && opts.paths ? dirs.concat(opts.paths) : dirs;\n};\n", "module.exports = function (x, opts) {\n    /**\n     * This file is purposefully a passthrough. It's expected that third-party\n     * environments will override it at runtime in order to inject special logic\n     * into `resolve` (by manipulating the options). One such example is the PnP\n     * code path in Yarn.\n     */\n\n    return opts || {};\n};\n", "'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n", "'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n", "{\n\t\"assert\": true,\n\t\"node:assert\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"assert/strict\": \">= 15\",\n\t\"node:assert/strict\": \">= 16\",\n\t\"async_hooks\": \">= 8\",\n\t\"node:async_hooks\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"buffer_ieee754\": \">= 0.5 && < 0.9.7\",\n\t\"buffer\": true,\n\t\"node:buffer\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"child_process\": true,\n\t\"node:child_process\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"cluster\": \">= 0.5\",\n\t\"node:cluster\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"console\": true,\n\t\"node:console\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"constants\": true,\n\t\"node:constants\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"crypto\": true,\n\t\"node:crypto\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_debug_agent\": \">= 1 && < 8\",\n\t\"_debugger\": \"< 8\",\n\t\"dgram\": true,\n\t\"node:dgram\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"diagnostics_channel\": [\">= 14.17 && < 15\", \">= 15.1\"],\n\t\"node:diagnostics_channel\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"dns\": true,\n\t\"node:dns\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"dns/promises\": \">= 15\",\n\t\"node:dns/promises\": \">= 16\",\n\t\"domain\": \">= 0.7.12\",\n\t\"node:domain\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"events\": true,\n\t\"node:events\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"freelist\": \"< 6\",\n\t\"fs\": true,\n\t\"node:fs\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"fs/promises\": [\">= 10 && < 10.1\", \">= 14\"],\n\t\"node:fs/promises\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_agent\": \">= 0.11.1\",\n\t\"node:_http_agent\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_client\": \">= 0.11.1\",\n\t\"node:_http_client\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_common\": \">= 0.11.1\",\n\t\"node:_http_common\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_incoming\": \">= 0.11.1\",\n\t\"node:_http_incoming\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_outgoing\": \">= 0.11.1\",\n\t\"node:_http_outgoing\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_server\": \">= 0.11.1\",\n\t\"node:_http_server\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"http\": true,\n\t\"node:http\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"http2\": \">= 8.8\",\n\t\"node:http2\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"https\": true,\n\t\"node:https\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"inspector\": \">= 8\",\n\t\"node:inspector\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"inspector/promises\": [\">= 19\"],\n\t\"node:inspector/promises\": [\">= 19\"],\n\t\"_linklist\": \"< 8\",\n\t\"module\": true,\n\t\"node:module\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"net\": true,\n\t\"node:net\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"node-inspect/lib/_inspect\": \">= 7.6 && < 12\",\n\t\"node-inspect/lib/internal/inspect_client\": \">= 7.6 && < 12\",\n\t\"node-inspect/lib/internal/inspect_repl\": \">= 7.6 && < 12\",\n\t\"os\": true,\n\t\"node:os\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"path\": true,\n\t\"node:path\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"path/posix\": \">= 15.3\",\n\t\"node:path/posix\": \">= 16\",\n\t\"path/win32\": \">= 15.3\",\n\t\"node:path/win32\": \">= 16\",\n\t\"perf_hooks\": \">= 8.5\",\n\t\"node:perf_hooks\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"process\": \">= 1\",\n\t\"node:process\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"punycode\": \">= 0.5\",\n\t\"node:punycode\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"querystring\": true,\n\t\"node:querystring\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"readline\": true,\n\t\"node:readline\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"readline/promises\": \">= 17\",\n\t\"node:readline/promises\": \">= 17\",\n\t\"repl\": true,\n\t\"node:repl\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"node:sea\": [\">= 20.12 && < 21\", \">= 21.7\"],\n\t\"smalloc\": \">= 0.11.5 && < 3\",\n\t\"_stream_duplex\": \">= 0.9.4\",\n\t\"node:_stream_duplex\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_transform\": \">= 0.9.4\",\n\t\"node:_stream_transform\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_wrap\": \">= 1.4.1\",\n\t\"node:_stream_wrap\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_passthrough\": \">= 0.9.4\",\n\t\"node:_stream_passthrough\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_readable\": \">= 0.9.4\",\n\t\"node:_stream_readable\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_writable\": \">= 0.9.4\",\n\t\"node:_stream_writable\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"stream\": true,\n\t\"node:stream\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"stream/consumers\": \">= 16.7\",\n\t\"node:stream/consumers\": \">= 16.7\",\n\t\"stream/promises\": \">= 15\",\n\t\"node:stream/promises\": \">= 16\",\n\t\"stream/web\": \">= 16.5\",\n\t\"node:stream/web\": \">= 16.5\",\n\t\"string_decoder\": true,\n\t\"node:string_decoder\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"sys\": [\">= 0.4 && < 0.7\", \">= 0.8\"],\n\t\"node:sys\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"test/reporters\": \">= 19.9 && < 20.2\",\n\t\"node:test/reporters\": [\">= 18.17 && < 19\", \">= 19.9\", \">= 20\"],\n\t\"test/mock_loader\": \">= 22.3 && < 22.7\",\n\t\"node:test/mock_loader\": \">= 22.3 && < 22.7\",\n\t\"node:test\": [\">= 16.17 && < 17\", \">= 18\"],\n\t\"timers\": true,\n\t\"node:timers\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"timers/promises\": \">= 15\",\n\t\"node:timers/promises\": \">= 16\",\n\t\"_tls_common\": \">= 0.11.13\",\n\t\"node:_tls_common\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_tls_legacy\": \">= 0.11.3 && < 10\",\n\t\"_tls_wrap\": \">= 0.11.3\",\n\t\"node:_tls_wrap\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"tls\": true,\n\t\"node:tls\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"trace_events\": \">= 10\",\n\t\"node:trace_events\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"tty\": true,\n\t\"node:tty\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"url\": true,\n\t\"node:url\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"util\": true,\n\t\"node:util\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"util/types\": \">= 15.3\",\n\t\"node:util/types\": \">= 16\",\n\t\"v8/tools/arguments\": \">= 10 && < 12\",\n\t\"v8/tools/codemap\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/consarray\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/csvparser\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/logreader\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/profile_view\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/splaytree\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8\": \">= 1\",\n\t\"node:v8\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"vm\": true,\n\t\"node:vm\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"wasi\": [\">= 13.4 && < 13.5\", \">= 18.17 && < 19\", \">= 20\"],\n\t\"node:wasi\": [\">= 18.17 && < 19\", \">= 20\"],\n\t\"worker_threads\": \">= 11.7\",\n\t\"node:worker_threads\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"zlib\": \">= 0.5\",\n\t\"node:zlib\": [\">= 14.18 && < 15\", \">= 16\"]\n}\n", "'use strict';\n\nvar hasOwn = require('hasown');\n\nfunction specifierIncluded(current, specifier) {\n\tvar nodeParts = current.split('.');\n\tvar parts = specifier.split(' ');\n\tvar op = parts.length > 1 ? parts[0] : '=';\n\tvar versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.');\n\n\tfor (var i = 0; i < 3; ++i) {\n\t\tvar cur = parseInt(nodeParts[i] || 0, 10);\n\t\tvar ver = parseInt(versionParts[i] || 0, 10);\n\t\tif (cur === ver) {\n\t\t\tcontinue; // eslint-disable-line no-restricted-syntax, no-continue\n\t\t}\n\t\tif (op === '<') {\n\t\t\treturn cur < ver;\n\t\t}\n\t\tif (op === '>=') {\n\t\t\treturn cur >= ver;\n\t\t}\n\t\treturn false;\n\t}\n\treturn op === '>=';\n}\n\nfunction matchesRange(current, range) {\n\tvar specifiers = range.split(/ ?&& ?/);\n\tif (specifiers.length === 0) {\n\t\treturn false;\n\t}\n\tfor (var i = 0; i < specifiers.length; ++i) {\n\t\tif (!specifierIncluded(current, specifiers[i])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction versionIncluded(nodeVersion, specifierValue) {\n\tif (typeof specifierValue === 'boolean') {\n\t\treturn specifierValue;\n\t}\n\n\tvar current = typeof nodeVersion === 'undefined'\n\t\t? process.versions && process.versions.node\n\t\t: nodeVersion;\n\n\tif (typeof current !== 'string') {\n\t\tthrow new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required');\n\t}\n\n\tif (specifierValue && typeof specifierValue === 'object') {\n\t\tfor (var i = 0; i < specifierValue.length; ++i) {\n\t\t\tif (matchesRange(current, specifierValue[i])) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\treturn matchesRange(current, specifierValue);\n}\n\nvar data = require('./core.json');\n\nmodule.exports = function isCore(x, nodeVersion) {\n\treturn hasOwn(data, x) && versionIncluded(nodeVersion, data[x]);\n};\n", "var fs = require('fs');\nvar getHomedir = require('./homedir');\nvar path = require('path');\nvar caller = require('./caller');\nvar nodeModulesPaths = require('./node-modules-paths');\nvar normalizeOptions = require('./normalize-options');\nvar isCore = require('is-core-module');\n\nvar realpathFS = process.platform !== 'win32' && fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath;\n\nvar homedir = getHomedir();\nvar defaultPaths = function () {\n    return [\n        path.join(homedir, '.node_modules'),\n        path.join(homedir, '.node_libraries')\n    ];\n};\n\nvar defaultIsFile = function isFile(file, cb) {\n    fs.stat(file, function (err, stat) {\n        if (!err) {\n            return cb(null, stat.isFile() || stat.isFIFO());\n        }\n        if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);\n        return cb(err);\n    });\n};\n\nvar defaultIsDir = function isDirectory(dir, cb) {\n    fs.stat(dir, function (err, stat) {\n        if (!err) {\n            return cb(null, stat.isDirectory());\n        }\n        if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);\n        return cb(err);\n    });\n};\n\nvar defaultRealpath = function realpath(x, cb) {\n    realpathFS(x, function (realpathErr, realPath) {\n        if (realpathErr && realpathErr.code !== 'ENOENT') cb(realpathErr);\n        else cb(null, realpathErr ? x : realPath);\n    });\n};\n\nvar maybeRealpath = function maybeRealpath(realpath, x, opts, cb) {\n    if (opts && opts.preserveSymlinks === false) {\n        realpath(x, cb);\n    } else {\n        cb(null, x);\n    }\n};\n\nvar defaultReadPackage = function defaultReadPackage(readFile, pkgfile, cb) {\n    readFile(pkgfile, function (readFileErr, body) {\n        if (readFileErr) cb(readFileErr);\n        else {\n            try {\n                var pkg = JSON.parse(body);\n                cb(null, pkg);\n            } catch (jsonErr) {\n                cb(null);\n            }\n        }\n    });\n};\n\nvar getPackageCandidates = function getPackageCandidates(x, start, opts) {\n    var dirs = nodeModulesPaths(start, opts, x);\n    for (var i = 0; i < dirs.length; i++) {\n        dirs[i] = path.join(dirs[i], x);\n    }\n    return dirs;\n};\n\nmodule.exports = function resolve(x, options, callback) {\n    var cb = callback;\n    var opts = options;\n    if (typeof options === 'function') {\n        cb = opts;\n        opts = {};\n    }\n    if (typeof x !== 'string') {\n        var err = new TypeError('Path must be a string.');\n        return process.nextTick(function () {\n            cb(err);\n        });\n    }\n\n    opts = normalizeOptions(x, opts);\n\n    var isFile = opts.isFile || defaultIsFile;\n    var isDirectory = opts.isDirectory || defaultIsDir;\n    var readFile = opts.readFile || fs.readFile;\n    var realpath = opts.realpath || defaultRealpath;\n    var readPackage = opts.readPackage || defaultReadPackage;\n    if (opts.readFile && opts.readPackage) {\n        var conflictErr = new TypeError('`readFile` and `readPackage` are mutually exclusive.');\n        return process.nextTick(function () {\n            cb(conflictErr);\n        });\n    }\n    var packageIterator = opts.packageIterator;\n\n    var extensions = opts.extensions || ['.js'];\n    var includeCoreModules = opts.includeCoreModules !== false;\n    var basedir = opts.basedir || path.dirname(caller());\n    var parent = opts.filename || basedir;\n\n    opts.paths = opts.paths || defaultPaths();\n\n    // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory\n    var absoluteStart = path.resolve(basedir);\n\n    maybeRealpath(\n        realpath,\n        absoluteStart,\n        opts,\n        function (err, realStart) {\n            if (err) cb(err);\n            else init(realStart);\n        }\n    );\n\n    var res;\n    function init(basedir) {\n        if ((/^(?:\\.\\.?(?:\\/|$)|\\/|([A-Za-z]:)?[/\\\\])/).test(x)) {\n            res = path.resolve(basedir, x);\n            if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';\n            if ((/\\/$/).test(x) && res === basedir) {\n                loadAsDirectory(res, opts.package, onfile);\n            } else loadAsFile(res, opts.package, onfile);\n        } else if (includeCoreModules && isCore(x)) {\n            return cb(null, x);\n        } else loadNodeModules(x, basedir, function (err, n, pkg) {\n            if (err) cb(err);\n            else if (n) {\n                return maybeRealpath(realpath, n, opts, function (err, realN) {\n                    if (err) {\n                        cb(err);\n                    } else {\n                        cb(null, realN, pkg);\n                    }\n                });\n            } else {\n                var moduleError = new Error(\"Cannot find module '\" + x + \"' from '\" + parent + \"'\");\n                moduleError.code = 'MODULE_NOT_FOUND';\n                cb(moduleError);\n            }\n        });\n    }\n\n    function onfile(err, m, pkg) {\n        if (err) cb(err);\n        else if (m) cb(null, m, pkg);\n        else loadAsDirectory(res, function (err, d, pkg) {\n            if (err) cb(err);\n            else if (d) {\n                maybeRealpath(realpath, d, opts, function (err, realD) {\n                    if (err) {\n                        cb(err);\n                    } else {\n                        cb(null, realD, pkg);\n                    }\n                });\n            } else {\n                var moduleError = new Error(\"Cannot find module '\" + x + \"' from '\" + parent + \"'\");\n                moduleError.code = 'MODULE_NOT_FOUND';\n                cb(moduleError);\n            }\n        });\n    }\n\n    function loadAsFile(x, thePackage, callback) {\n        var loadAsFilePackage = thePackage;\n        var cb = callback;\n        if (typeof loadAsFilePackage === 'function') {\n            cb = loadAsFilePackage;\n            loadAsFilePackage = undefined;\n        }\n\n        var exts = [''].concat(extensions);\n        load(exts, x, loadAsFilePackage);\n\n        function load(exts, x, loadPackage) {\n            if (exts.length === 0) return cb(null, undefined, loadPackage);\n            var file = x + exts[0];\n\n            var pkg = loadPackage;\n            if (pkg) onpkg(null, pkg);\n            else loadpkg(path.dirname(file), onpkg);\n\n            function onpkg(err, pkg_, dir) {\n                pkg = pkg_;\n                if (err) return cb(err);\n                if (dir && pkg && opts.pathFilter) {\n                    var rfile = path.relative(dir, file);\n                    var rel = rfile.slice(0, rfile.length - exts[0].length);\n                    var r = opts.pathFilter(pkg, x, rel);\n                    if (r) return load(\n                        [''].concat(extensions.slice()),\n                        path.resolve(dir, r),\n                        pkg\n                    );\n                }\n                isFile(file, onex);\n            }\n            function onex(err, ex) {\n                if (err) return cb(err);\n                if (ex) return cb(null, file, pkg);\n                load(exts.slice(1), x, pkg);\n            }\n        }\n    }\n\n    function loadpkg(dir, cb) {\n        if (dir === '' || dir === '/') return cb(null);\n        if (process.platform === 'win32' && (/^\\w:[/\\\\]*$/).test(dir)) {\n            return cb(null);\n        }\n        if ((/[/\\\\]node_modules[/\\\\]*$/).test(dir)) return cb(null);\n\n        maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) {\n            if (unwrapErr) return loadpkg(path.dirname(dir), cb);\n            var pkgfile = path.join(pkgdir, 'package.json');\n            isFile(pkgfile, function (err, ex) {\n                // on err, ex is false\n                if (!ex) return loadpkg(path.dirname(dir), cb);\n\n                readPackage(readFile, pkgfile, function (err, pkgParam) {\n                    if (err) cb(err);\n\n                    var pkg = pkgParam;\n\n                    if (pkg && opts.packageFilter) {\n                        pkg = opts.packageFilter(pkg, pkgfile);\n                    }\n                    cb(null, pkg, dir);\n                });\n            });\n        });\n    }\n\n    function loadAsDirectory(x, loadAsDirectoryPackage, callback) {\n        var cb = callback;\n        var fpkg = loadAsDirectoryPackage;\n        if (typeof fpkg === 'function') {\n            cb = fpkg;\n            fpkg = opts.package;\n        }\n\n        maybeRealpath(realpath, x, opts, function (unwrapErr, pkgdir) {\n            if (unwrapErr) return cb(unwrapErr);\n            var pkgfile = path.join(pkgdir, 'package.json');\n            isFile(pkgfile, function (err, ex) {\n                if (err) return cb(err);\n                if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb);\n\n                readPackage(readFile, pkgfile, function (err, pkgParam) {\n                    if (err) return cb(err);\n\n                    var pkg = pkgParam;\n\n                    if (pkg && opts.packageFilter) {\n                        pkg = opts.packageFilter(pkg, pkgfile);\n                    }\n\n                    if (pkg && pkg.main) {\n                        if (typeof pkg.main !== 'string') {\n                            var mainError = new TypeError('package \u201C' + pkg.name + '\u201D `main` must be a string');\n                            mainError.code = 'INVALID_PACKAGE_MAIN';\n                            return cb(mainError);\n                        }\n                        if (pkg.main === '.' || pkg.main === './') {\n                            pkg.main = 'index';\n                        }\n                        loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) {\n                            if (err) return cb(err);\n                            if (m) return cb(null, m, pkg);\n                            if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb);\n\n                            var dir = path.resolve(x, pkg.main);\n                            loadAsDirectory(dir, pkg, function (err, n, pkg) {\n                                if (err) return cb(err);\n                                if (n) return cb(null, n, pkg);\n                                loadAsFile(path.join(x, 'index'), pkg, cb);\n                            });\n                        });\n                        return;\n                    }\n\n                    loadAsFile(path.join(x, '/index'), pkg, cb);\n                });\n            });\n        });\n    }\n\n    function processDirs(cb, dirs) {\n        if (dirs.length === 0) return cb(null, undefined);\n        var dir = dirs[0];\n\n        isDirectory(path.dirname(dir), isdir);\n\n        function isdir(err, isdir) {\n            if (err) return cb(err);\n            if (!isdir) return processDirs(cb, dirs.slice(1));\n            loadAsFile(dir, opts.package, onfile);\n        }\n\n        function onfile(err, m, pkg) {\n            if (err) return cb(err);\n            if (m) return cb(null, m, pkg);\n            loadAsDirectory(dir, opts.package, ondir);\n        }\n\n        function ondir(err, n, pkg) {\n            if (err) return cb(err);\n            if (n) return cb(null, n, pkg);\n            processDirs(cb, dirs.slice(1));\n        }\n    }\n    function loadNodeModules(x, start, cb) {\n        var thunk = function () { return getPackageCandidates(x, start, opts); };\n        processDirs(\n            cb,\n            packageIterator ? packageIterator(x, start, thunk, opts) : thunk()\n        );\n    }\n};\n", "{\n\t\"assert\": true,\n\t\"node:assert\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"assert/strict\": \">= 15\",\n\t\"node:assert/strict\": \">= 16\",\n\t\"async_hooks\": \">= 8\",\n\t\"node:async_hooks\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"buffer_ieee754\": \">= 0.5 && < 0.9.7\",\n\t\"buffer\": true,\n\t\"node:buffer\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"child_process\": true,\n\t\"node:child_process\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"cluster\": \">= 0.5\",\n\t\"node:cluster\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"console\": true,\n\t\"node:console\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"constants\": true,\n\t\"node:constants\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"crypto\": true,\n\t\"node:crypto\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_debug_agent\": \">= 1 && < 8\",\n\t\"_debugger\": \"< 8\",\n\t\"dgram\": true,\n\t\"node:dgram\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"diagnostics_channel\": [\">= 14.17 && < 15\", \">= 15.1\"],\n\t\"node:diagnostics_channel\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"dns\": true,\n\t\"node:dns\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"dns/promises\": \">= 15\",\n\t\"node:dns/promises\": \">= 16\",\n\t\"domain\": \">= 0.7.12\",\n\t\"node:domain\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"events\": true,\n\t\"node:events\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"freelist\": \"< 6\",\n\t\"fs\": true,\n\t\"node:fs\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"fs/promises\": [\">= 10 && < 10.1\", \">= 14\"],\n\t\"node:fs/promises\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_agent\": \">= 0.11.1\",\n\t\"node:_http_agent\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_client\": \">= 0.11.1\",\n\t\"node:_http_client\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_common\": \">= 0.11.1\",\n\t\"node:_http_common\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_incoming\": \">= 0.11.1\",\n\t\"node:_http_incoming\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_outgoing\": \">= 0.11.1\",\n\t\"node:_http_outgoing\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_http_server\": \">= 0.11.1\",\n\t\"node:_http_server\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"http\": true,\n\t\"node:http\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"http2\": \">= 8.8\",\n\t\"node:http2\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"https\": true,\n\t\"node:https\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"inspector\": \">= 8\",\n\t\"node:inspector\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"inspector/promises\": [\">= 19\"],\n\t\"node:inspector/promises\": [\">= 19\"],\n\t\"_linklist\": \"< 8\",\n\t\"module\": true,\n\t\"node:module\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"net\": true,\n\t\"node:net\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"node-inspect/lib/_inspect\": \">= 7.6 && < 12\",\n\t\"node-inspect/lib/internal/inspect_client\": \">= 7.6 && < 12\",\n\t\"node-inspect/lib/internal/inspect_repl\": \">= 7.6 && < 12\",\n\t\"os\": true,\n\t\"node:os\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"path\": true,\n\t\"node:path\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"path/posix\": \">= 15.3\",\n\t\"node:path/posix\": \">= 16\",\n\t\"path/win32\": \">= 15.3\",\n\t\"node:path/win32\": \">= 16\",\n\t\"perf_hooks\": \">= 8.5\",\n\t\"node:perf_hooks\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"process\": \">= 1\",\n\t\"node:process\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"punycode\": \">= 0.5\",\n\t\"node:punycode\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"querystring\": true,\n\t\"node:querystring\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"readline\": true,\n\t\"node:readline\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"readline/promises\": \">= 17\",\n\t\"node:readline/promises\": \">= 17\",\n\t\"repl\": true,\n\t\"node:repl\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"smalloc\": \">= 0.11.5 && < 3\",\n\t\"_stream_duplex\": \">= 0.9.4\",\n\t\"node:_stream_duplex\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_transform\": \">= 0.9.4\",\n\t\"node:_stream_transform\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_wrap\": \">= 1.4.1\",\n\t\"node:_stream_wrap\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_passthrough\": \">= 0.9.4\",\n\t\"node:_stream_passthrough\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_readable\": \">= 0.9.4\",\n\t\"node:_stream_readable\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_stream_writable\": \">= 0.9.4\",\n\t\"node:_stream_writable\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"stream\": true,\n\t\"node:stream\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"stream/consumers\": \">= 16.7\",\n\t\"node:stream/consumers\": \">= 16.7\",\n\t\"stream/promises\": \">= 15\",\n\t\"node:stream/promises\": \">= 16\",\n\t\"stream/web\": \">= 16.5\",\n\t\"node:stream/web\": \">= 16.5\",\n\t\"string_decoder\": true,\n\t\"node:string_decoder\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"sys\": [\">= 0.4 && < 0.7\", \">= 0.8\"],\n\t\"node:sys\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"test/reporters\": \">= 19.9 && < 20.2\",\n\t\"node:test/reporters\": [\">= 18.17 && < 19\", \">= 19.9\", \">= 20\"],\n\t\"node:test\": [\">= 16.17 && < 17\", \">= 18\"],\n\t\"timers\": true,\n\t\"node:timers\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"timers/promises\": \">= 15\",\n\t\"node:timers/promises\": \">= 16\",\n\t\"_tls_common\": \">= 0.11.13\",\n\t\"node:_tls_common\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"_tls_legacy\": \">= 0.11.3 && < 10\",\n\t\"_tls_wrap\": \">= 0.11.3\",\n\t\"node:_tls_wrap\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"tls\": true,\n\t\"node:tls\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"trace_events\": \">= 10\",\n\t\"node:trace_events\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"tty\": true,\n\t\"node:tty\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"url\": true,\n\t\"node:url\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"util\": true,\n\t\"node:util\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"util/types\": \">= 15.3\",\n\t\"node:util/types\": \">= 16\",\n\t\"v8/tools/arguments\": \">= 10 && < 12\",\n\t\"v8/tools/codemap\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/consarray\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/csvparser\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/logreader\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/profile_view\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8/tools/splaytree\": [\">= 4.4 && < 5\", \">= 5.2 && < 12\"],\n\t\"v8\": \">= 1\",\n\t\"node:v8\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"vm\": true,\n\t\"node:vm\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"wasi\": [\">= 13.4 && < 13.5\", \">= 18.17 && < 19\", \">= 20\"],\n\t\"node:wasi\": [\">= 18.17 && < 19\", \">= 20\"],\n\t\"worker_threads\": \">= 11.7\",\n\t\"node:worker_threads\": [\">= 14.18 && < 15\", \">= 16\"],\n\t\"zlib\": \">= 0.5\",\n\t\"node:zlib\": [\">= 14.18 && < 15\", \">= 16\"]\n}\n", "'use strict';\n\nvar isCoreModule = require('is-core-module');\nvar data = require('./core.json');\n\nvar core = {};\nfor (var mod in data) { // eslint-disable-line no-restricted-syntax\n    if (Object.prototype.hasOwnProperty.call(data, mod)) {\n        core[mod] = isCoreModule(mod);\n    }\n}\nmodule.exports = core;\n", "var isCoreModule = require('is-core-module');\n\nmodule.exports = function isCore(x) {\n    return isCoreModule(x);\n};\n", "var isCore = require('is-core-module');\nvar fs = require('fs');\nvar path = require('path');\nvar getHomedir = require('./homedir');\nvar caller = require('./caller');\nvar nodeModulesPaths = require('./node-modules-paths');\nvar normalizeOptions = require('./normalize-options');\n\nvar realpathFS = process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync;\n\nvar homedir = getHomedir();\nvar defaultPaths = function () {\n    return [\n        path.join(homedir, '.node_modules'),\n        path.join(homedir, '.node_libraries')\n    ];\n};\n\nvar defaultIsFile = function isFile(file) {\n    try {\n        var stat = fs.statSync(file, { throwIfNoEntry: false });\n    } catch (e) {\n        if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;\n        throw e;\n    }\n    return !!stat && (stat.isFile() || stat.isFIFO());\n};\n\nvar defaultIsDir = function isDirectory(dir) {\n    try {\n        var stat = fs.statSync(dir, { throwIfNoEntry: false });\n    } catch (e) {\n        if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;\n        throw e;\n    }\n    return !!stat && stat.isDirectory();\n};\n\nvar defaultRealpathSync = function realpathSync(x) {\n    try {\n        return realpathFS(x);\n    } catch (realpathErr) {\n        if (realpathErr.code !== 'ENOENT') {\n            throw realpathErr;\n        }\n    }\n    return x;\n};\n\nvar maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) {\n    if (opts && opts.preserveSymlinks === false) {\n        return realpathSync(x);\n    }\n    return x;\n};\n\nvar defaultReadPackageSync = function defaultReadPackageSync(readFileSync, pkgfile) {\n    var body = readFileSync(pkgfile);\n    try {\n        var pkg = JSON.parse(body);\n        return pkg;\n    } catch (jsonErr) {}\n};\n\nvar getPackageCandidates = function getPackageCandidates(x, start, opts) {\n    var dirs = nodeModulesPaths(start, opts, x);\n    for (var i = 0; i < dirs.length; i++) {\n        dirs[i] = path.join(dirs[i], x);\n    }\n    return dirs;\n};\n\nmodule.exports = function resolveSync(x, options) {\n    if (typeof x !== 'string') {\n        throw new TypeError('Path must be a string.');\n    }\n    var opts = normalizeOptions(x, options);\n\n    var isFile = opts.isFile || defaultIsFile;\n    var readFileSync = opts.readFileSync || fs.readFileSync;\n    var isDirectory = opts.isDirectory || defaultIsDir;\n    var realpathSync = opts.realpathSync || defaultRealpathSync;\n    var readPackageSync = opts.readPackageSync || defaultReadPackageSync;\n    if (opts.readFileSync && opts.readPackageSync) {\n        throw new TypeError('`readFileSync` and `readPackageSync` are mutually exclusive.');\n    }\n    var packageIterator = opts.packageIterator;\n\n    var extensions = opts.extensions || ['.js'];\n    var includeCoreModules = opts.includeCoreModules !== false;\n    var basedir = opts.basedir || path.dirname(caller());\n    var parent = opts.filename || basedir;\n\n    opts.paths = opts.paths || defaultPaths();\n\n    // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory\n    var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts);\n\n    if ((/^(?:\\.\\.?(?:\\/|$)|\\/|([A-Za-z]:)?[/\\\\])/).test(x)) {\n        var res = path.resolve(absoluteStart, x);\n        if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';\n        var m = loadAsFileSync(res) || loadAsDirectorySync(res);\n        if (m) return maybeRealpathSync(realpathSync, m, opts);\n    } else if (includeCoreModules && isCore(x)) {\n        return x;\n    } else {\n        var n = loadNodeModulesSync(x, absoluteStart);\n        if (n) return maybeRealpathSync(realpathSync, n, opts);\n    }\n\n    var err = new Error(\"Cannot find module '\" + x + \"' from '\" + parent + \"'\");\n    err.code = 'MODULE_NOT_FOUND';\n    throw err;\n\n    function loadAsFileSync(x) {\n        var pkg = loadpkg(path.dirname(x));\n\n        if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) {\n            var rfile = path.relative(pkg.dir, x);\n            var r = opts.pathFilter(pkg.pkg, x, rfile);\n            if (r) {\n                x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign\n            }\n        }\n\n        if (isFile(x)) {\n            return x;\n        }\n\n        for (var i = 0; i < extensions.length; i++) {\n            var file = x + extensions[i];\n            if (isFile(file)) {\n                return file;\n            }\n        }\n    }\n\n    function loadpkg(dir) {\n        if (dir === '' || dir === '/') return;\n        if (process.platform === 'win32' && (/^\\w:[/\\\\]*$/).test(dir)) {\n            return;\n        }\n        if ((/[/\\\\]node_modules[/\\\\]*$/).test(dir)) return;\n\n        var pkgfile = path.join(maybeRealpathSync(realpathSync, dir, opts), 'package.json');\n\n        if (!isFile(pkgfile)) {\n            return loadpkg(path.dirname(dir));\n        }\n\n        var pkg = readPackageSync(readFileSync, pkgfile);\n\n        if (pkg && opts.packageFilter) {\n            // v2 will pass pkgfile\n            pkg = opts.packageFilter(pkg, /*pkgfile,*/ dir); // eslint-disable-line spaced-comment\n        }\n\n        return { pkg: pkg, dir: dir };\n    }\n\n    function loadAsDirectorySync(x) {\n        var pkgfile = path.join(maybeRealpathSync(realpathSync, x, opts), '/package.json');\n        if (isFile(pkgfile)) {\n            try {\n                var pkg = readPackageSync(readFileSync, pkgfile);\n            } catch (e) {}\n\n            if (pkg && opts.packageFilter) {\n                // v2 will pass pkgfile\n                pkg = opts.packageFilter(pkg, /*pkgfile,*/ x); // eslint-disable-line spaced-comment\n            }\n\n            if (pkg && pkg.main) {\n                if (typeof pkg.main !== 'string') {\n                    var mainError = new TypeError('package \u201C' + pkg.name + '\u201D `main` must be a string');\n                    mainError.code = 'INVALID_PACKAGE_MAIN';\n                    throw mainError;\n                }\n                if (pkg.main === '.' || pkg.main === './') {\n                    pkg.main = 'index';\n                }\n                try {\n                    var m = loadAsFileSync(path.resolve(x, pkg.main));\n                    if (m) return m;\n                    var n = loadAsDirectorySync(path.resolve(x, pkg.main));\n                    if (n) return n;\n                } catch (e) {}\n            }\n        }\n\n        return loadAsFileSync(path.join(x, '/index'));\n    }\n\n    function loadNodeModulesSync(x, start) {\n        var thunk = function () { return getPackageCandidates(x, start, opts); };\n        var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk();\n\n        for (var i = 0; i < dirs.length; i++) {\n            var dir = dirs[i];\n            if (isDirectory(path.dirname(dir))) {\n                var m = loadAsFileSync(dir);\n                if (m) return m;\n                var n = loadAsDirectorySync(dir);\n                if (n) return n;\n            }\n        }\n    }\n};\n", "var async = require('./lib/async');\nasync.core = require('./lib/core');\nasync.isCore = require('./lib/is-core');\nasync.sync = require('./lib/sync');\n\nmodule.exports = async;\n", "module.exports = extractDescription\n\n// Extracts description from contents of a readme file in markdown format\nfunction extractDescription (d) {\n  if (!d) return;\n  if (d === \"ERROR: No README data found!\") return;\n  // the first block of text before the first heading\n  // that isn't the first line heading\n  d = d.trim().split('\\n')\n  for (var s = 0; d[s] && d[s].trim().match(/^(#|$)/); s ++);\n  var l = d.length\n  for (var e = s + 1; e < l && d[e].trim(); e ++);\n  return d.slice(s, e).join(' ').trim()\n}\n", "{\n  \"topLevel\": {\n    \"dependancies\": \"dependencies\"\n   ,\"dependecies\": \"dependencies\"\n   ,\"depdenencies\": \"dependencies\"\n   ,\"devEependencies\": \"devDependencies\"\n   ,\"depends\": \"dependencies\"\n   ,\"dev-dependencies\": \"devDependencies\"\n   ,\"devDependences\": \"devDependencies\"\n   ,\"devDepenencies\": \"devDependencies\"\n   ,\"devdependencies\": \"devDependencies\"\n   ,\"repostitory\": \"repository\"\n   ,\"repo\": \"repository\"\n   ,\"prefereGlobal\": \"preferGlobal\"\n   ,\"hompage\": \"homepage\"\n   ,\"hampage\": \"homepage\"\n   ,\"autohr\": \"author\"\n   ,\"autor\": \"author\"\n   ,\"contributers\": \"contributors\"\n   ,\"publicationConfig\": \"publishConfig\"\n   ,\"script\": \"scripts\"\n  },\n  \"bugs\": { \"web\": \"url\", \"name\": \"url\" },\n  \"script\": { \"server\": \"start\", \"tests\": \"test\" }\n}\n", "var semver = require(\"semver\")\nvar validateLicense = require('validate-npm-package-license');\nvar hostedGitInfo = require(\"hosted-git-info\")\nvar isBuiltinModule = require(\"resolve\").isCore\nvar depTypes = [\"dependencies\",\"devDependencies\",\"optionalDependencies\"]\nvar extractDescription = require(\"./extract_description\")\nvar url = require(\"url\")\nvar typos = require(\"./typos.json\")\n\nvar fixer = module.exports = {\n  // default warning function\n  warn: function() {},\n\n  fixRepositoryField: function(data) {\n    if (data.repositories) {\n      this.warn(\"repositories\");\n      data.repository = data.repositories[0]\n    }\n    if (!data.repository) return this.warn(\"missingRepository\")\n    if (typeof data.repository === \"string\") {\n      data.repository = {\n        type: \"git\",\n        url: data.repository\n      }\n    }\n    var r = data.repository.url || \"\"\n    if (r) {\n      var hosted = hostedGitInfo.fromUrl(r)\n      if (hosted) {\n        r = data.repository.url\n          = hosted.getDefaultRepresentation() == \"shortcut\" ? hosted.https() : hosted.toString()\n      }\n    }\n\n    if (r.match(/github.com\\/[^\\/]+\\/[^\\/]+\\.git\\.git$/)) {\n      this.warn(\"brokenGitUrl\", r)\n    }\n  }\n\n, fixTypos: function(data) {\n    Object.keys(typos.topLevel).forEach(function (d) {\n      if (data.hasOwnProperty(d)) {\n        this.warn(\"typo\", d, typos.topLevel[d])\n      }\n    }, this)\n  }\n\n, fixScriptsField: function(data) {\n    if (!data.scripts) return\n    if (typeof data.scripts !== \"object\") {\n      this.warn(\"nonObjectScripts\")\n      delete data.scripts\n      return\n    }\n    Object.keys(data.scripts).forEach(function (k) {\n      if (typeof data.scripts[k] !== \"string\") {\n        this.warn(\"nonStringScript\")\n        delete data.scripts[k]\n      } else if (typos.script[k] && !data.scripts[typos.script[k]]) {\n        this.warn(\"typo\", k, typos.script[k], \"scripts\")\n      }\n    }, this)\n  }\n\n, fixFilesField: function(data) {\n    var files = data.files\n    if (files && !Array.isArray(files)) {\n      this.warn(\"nonArrayFiles\")\n      delete data.files\n    } else if (data.files) {\n      data.files = data.files.filter(function(file) {\n        if (!file || typeof file !== \"string\") {\n          this.warn(\"invalidFilename\", file)\n          return false\n        } else {\n          return true\n        }\n      }, this)\n    }\n  }\n\n, fixBinField: function(data) {\n    if (!data.bin) return;\n    if (typeof data.bin === \"string\") {\n      var b = {}\n      var match\n      if (match = data.name.match(/^@[^/]+[/](.*)$/)) {\n        b[match[1]] = data.bin\n      } else {\n        b[data.name] = data.bin\n      }\n      data.bin = b\n    }\n  }\n\n, fixManField: function(data) {\n    if (!data.man) return;\n    if (typeof data.man === \"string\") {\n      data.man = [ data.man ]\n    }\n  }\n, fixBundleDependenciesField: function(data) {\n    var bdd = \"bundledDependencies\"\n    var bd = \"bundleDependencies\"\n    if (data[bdd] && !data[bd]) {\n      data[bd] = data[bdd]\n      delete data[bdd]\n    }\n    if (data[bd] && !Array.isArray(data[bd])) {\n      this.warn(\"nonArrayBundleDependencies\")\n      delete data[bd]\n    } else if (data[bd]) {\n      data[bd] = data[bd].filter(function(bd) {\n        if (!bd || typeof bd !== 'string') {\n          this.warn(\"nonStringBundleDependency\", bd)\n          return false\n        } else {\n          if (!data.dependencies) {\n            data.dependencies = {}\n          }\n          if (!data.dependencies.hasOwnProperty(bd)) {\n            this.warn(\"nonDependencyBundleDependency\", bd)\n            data.dependencies[bd] = \"*\"\n          }\n          return true\n        }\n      }, this)\n    }\n  }\n\n, fixDependencies: function(data, strict) {\n    var loose = !strict\n    objectifyDeps(data, this.warn)\n    addOptionalDepsToDeps(data, this.warn)\n    this.fixBundleDependenciesField(data)\n\n    ;['dependencies','devDependencies'].forEach(function(deps) {\n      if (!(deps in data)) return\n      if (!data[deps] || typeof data[deps] !== \"object\") {\n        this.warn(\"nonObjectDependencies\", deps)\n        delete data[deps]\n        return\n      }\n      Object.keys(data[deps]).forEach(function (d) {\n        var r = data[deps][d]\n        if (typeof r !== 'string') {\n          this.warn(\"nonStringDependency\", d, JSON.stringify(r))\n          delete data[deps][d]\n        }\n        var hosted = hostedGitInfo.fromUrl(data[deps][d])\n        if (hosted) data[deps][d] = hosted.toString()\n      }, this)\n    }, this)\n  }\n\n, fixModulesField: function (data) {\n    if (data.modules) {\n      this.warn(\"deprecatedModules\")\n      delete data.modules\n    }\n  }\n\n, fixKeywordsField: function (data) {\n    if (typeof data.keywords === \"string\") {\n      data.keywords = data.keywords.split(/,\\s+/)\n    }\n    if (data.keywords && !Array.isArray(data.keywords)) {\n      delete data.keywords\n      this.warn(\"nonArrayKeywords\")\n    } else if (data.keywords) {\n      data.keywords = data.keywords.filter(function(kw) {\n        if (typeof kw !== \"string\" || !kw) {\n          this.warn(\"nonStringKeyword\");\n          return false\n        } else {\n          return true\n        }\n      }, this)\n    }\n  }\n\n, fixVersionField: function(data, strict) {\n    // allow \"loose\" semver 1.0 versions in non-strict mode\n    // enforce strict semver 2.0 compliance in strict mode\n    var loose = !strict\n    if (!data.version) {\n      data.version = \"\"\n      return true\n    }\n    if (!semver.valid(data.version, loose)) {\n      throw new Error('Invalid version: \"'+ data.version + '\"')\n    }\n    data.version = semver.clean(data.version, loose)\n    return true\n  }\n\n, fixPeople: function(data) {\n    modifyPeople(data, unParsePerson)\n    modifyPeople(data, parsePerson)\n  }\n\n, fixNameField: function(data, options) {\n    if (typeof options === \"boolean\") options = {strict: options}\n    else if (typeof options === \"undefined\") options = {}\n    var strict = options.strict\n    if (!data.name && !strict) {\n      data.name = \"\"\n      return\n    }\n    if (typeof data.name !== \"string\") {\n      throw new Error(\"name field must be a string.\")\n    }\n    if (!strict)\n      data.name = data.name.trim()\n    ensureValidName(data.name, strict, options.allowLegacyCase)\n    if (isBuiltinModule(data.name))\n      this.warn(\"conflictingName\", data.name)\n  }\n\n\n, fixDescriptionField: function (data) {\n    if (data.description && typeof data.description !== 'string') {\n      this.warn(\"nonStringDescription\")\n      delete data.description\n    }\n    if (data.readme && !data.description)\n      data.description = extractDescription(data.readme)\n      if(data.description === undefined) delete data.description;\n    if (!data.description) this.warn(\"missingDescription\")\n  }\n\n, fixReadmeField: function (data) {\n    if (!data.readme) {\n      this.warn(\"missingReadme\")\n      data.readme = \"ERROR: No README data found!\"\n    }\n  }\n\n, fixBugsField: function(data) {\n    if (!data.bugs && data.repository && data.repository.url) {\n      var hosted = hostedGitInfo.fromUrl(data.repository.url)\n      if(hosted && hosted.bugs()) {\n        data.bugs = {url: hosted.bugs()}\n      }\n    }\n    else if(data.bugs) {\n      var emailRe = /^.+@.*\\..+$/\n      if(typeof data.bugs == \"string\") {\n        if(emailRe.test(data.bugs))\n          data.bugs = {email:data.bugs}\n        else if(url.parse(data.bugs).protocol)\n          data.bugs = {url: data.bugs}\n        else\n          this.warn(\"nonEmailUrlBugsString\")\n      }\n      else {\n        bugsTypos(data.bugs, this.warn)\n        var oldBugs = data.bugs\n        data.bugs = {}\n        if(oldBugs.url) {\n          if(typeof(oldBugs.url) == \"string\" && url.parse(oldBugs.url).protocol)\n            data.bugs.url = oldBugs.url\n          else\n            this.warn(\"nonUrlBugsUrlField\")\n        }\n        if(oldBugs.email) {\n          if(typeof(oldBugs.email) == \"string\" && emailRe.test(oldBugs.email))\n            data.bugs.email = oldBugs.email\n          else\n            this.warn(\"nonEmailBugsEmailField\")\n        }\n      }\n      if(!data.bugs.email && !data.bugs.url) {\n        delete data.bugs\n        this.warn(\"emptyNormalizedBugs\")\n      }\n    }\n  }\n\n, fixHomepageField: function(data) {\n    if (!data.homepage && data.repository && data.repository.url) {\n      var hosted = hostedGitInfo.fromUrl(data.repository.url)\n      if (hosted && hosted.docs()) data.homepage = hosted.docs()\n    }\n    if (!data.homepage) return\n\n    if(typeof data.homepage !== \"string\") {\n      this.warn(\"nonUrlHomepage\")\n      return delete data.homepage\n    }\n    if(!url.parse(data.homepage).protocol) {\n      data.homepage = \"http://\" + data.homepage\n    }\n  }\n\n, fixLicenseField: function(data) {\n    if (!data.license) {\n      return this.warn(\"missingLicense\")\n    } else{\n      if (\n        typeof(data.license) !== 'string' ||\n        data.license.length < 1 ||\n        data.license.trim() === ''\n      ) {\n        this.warn(\"invalidLicense\")\n      } else {\n        if (!validateLicense(data.license).validForNewPackages)\n          this.warn(\"invalidLicense\")\n      }\n    }\n  }\n}\n\nfunction isValidScopedPackageName(spec) {\n  if (spec.charAt(0) !== '@') return false\n\n  var rest = spec.slice(1).split('/')\n  if (rest.length !== 2) return false\n\n  return rest[0] && rest[1] &&\n    rest[0] === encodeURIComponent(rest[0]) &&\n    rest[1] === encodeURIComponent(rest[1])\n}\n\nfunction isCorrectlyEncodedName(spec) {\n  return !spec.match(/[\\/@\\s\\+%:]/) &&\n    spec === encodeURIComponent(spec)\n}\n\nfunction ensureValidName (name, strict, allowLegacyCase) {\n  if (name.charAt(0) === \".\" ||\n      !(isValidScopedPackageName(name) || isCorrectlyEncodedName(name)) ||\n      (strict && (!allowLegacyCase) && name !== name.toLowerCase()) ||\n      name.toLowerCase() === \"node_modules\" ||\n      name.toLowerCase() === \"favicon.ico\") {\n        throw new Error(\"Invalid name: \" + JSON.stringify(name))\n  }\n}\n\nfunction modifyPeople (data, fn) {\n  if (data.author) data.author = fn(data.author)\n  ;[\"maintainers\", \"contributors\"].forEach(function (set) {\n    if (!Array.isArray(data[set])) return;\n    data[set] = data[set].map(fn)\n  })\n  return data\n}\n\nfunction unParsePerson (person) {\n  if (typeof person === \"string\") return person\n  var name = person.name || \"\"\n  var u = person.url || person.web\n  var url = u ? (\" (\"+u+\")\") : \"\"\n  var e = person.email || person.mail\n  var email = e ? (\" <\"+e+\">\") : \"\"\n  return name+email+url\n}\n\nfunction parsePerson (person) {\n  if (typeof person !== \"string\") return person\n  var name = person.match(/^([^\\(<]+)/)\n  var url = person.match(/\\(([^\\)]+)\\)/)\n  var email = person.match(/<([^>]+)>/)\n  var obj = {}\n  if (name && name[0].trim()) obj.name = name[0].trim()\n  if (email) obj.email = email[1];\n  if (url) obj.url = url[1];\n  return obj\n}\n\nfunction addOptionalDepsToDeps (data, warn) {\n  var o = data.optionalDependencies\n  if (!o) return;\n  var d = data.dependencies || {}\n  Object.keys(o).forEach(function (k) {\n    d[k] = o[k]\n  })\n  data.dependencies = d\n}\n\nfunction depObjectify (deps, type, warn) {\n  if (!deps) return {}\n  if (typeof deps === \"string\") {\n    deps = deps.trim().split(/[\\n\\r\\s\\t ,]+/)\n  }\n  if (!Array.isArray(deps)) return deps\n  warn(\"deprecatedArrayDependencies\", type)\n  var o = {}\n  deps.filter(function (d) {\n    return typeof d === \"string\"\n  }).forEach(function(d) {\n    d = d.trim().split(/(:?[@\\s><=])/)\n    var dn = d.shift()\n    var dv = d.join(\"\")\n    dv = dv.trim()\n    dv = dv.replace(/^@/, \"\")\n    o[dn] = dv\n  })\n  return o\n}\n\nfunction objectifyDeps (data, warn) {\n  depTypes.forEach(function (type) {\n    if (!data[type]) return;\n    data[type] = depObjectify(data[type], type, warn)\n  })\n}\n\nfunction bugsTypos(bugs, warn) {\n  if (!bugs) return\n  Object.keys(bugs).forEach(function (k) {\n    if (typos.bugs[k]) {\n      warn(\"typo\", k, typos.bugs[k], \"bugs\")\n      bugs[typos.bugs[k]] = bugs[k]\n      delete bugs[k]\n    }\n  })\n}\n", "{\n  \"repositories\": \"'repositories' (plural) Not supported. Please pick one as the 'repository' field\"\n  ,\"missingRepository\": \"No repository field.\"\n  ,\"brokenGitUrl\": \"Probably broken git url: %s\"\n  ,\"nonObjectScripts\": \"scripts must be an object\"\n  ,\"nonStringScript\": \"script values must be string commands\"\n  ,\"nonArrayFiles\": \"Invalid 'files' member\"\n  ,\"invalidFilename\": \"Invalid filename in 'files' list: %s\"\n  ,\"nonArrayBundleDependencies\": \"Invalid 'bundleDependencies' list. Must be array of package names\"\n  ,\"nonStringBundleDependency\": \"Invalid bundleDependencies member: %s\"\n  ,\"nonDependencyBundleDependency\": \"Non-dependency in bundleDependencies: %s\"\n  ,\"nonObjectDependencies\": \"%s field must be an object\"\n  ,\"nonStringDependency\": \"Invalid dependency: %s %s\"\n  ,\"deprecatedArrayDependencies\": \"specifying %s as array is deprecated\"\n  ,\"deprecatedModules\": \"modules field is deprecated\"\n  ,\"nonArrayKeywords\": \"keywords should be an array of strings\"\n  ,\"nonStringKeyword\": \"keywords should be an array of strings\"\n  ,\"conflictingName\": \"%s is also the name of a node core module.\"\n  ,\"nonStringDescription\": \"'description' field should be a string\"\n  ,\"missingDescription\": \"No description\"\n  ,\"missingReadme\": \"No README data\"\n  ,\"missingLicense\": \"No license field.\"\n  ,\"nonEmailUrlBugsString\": \"Bug string field must be url, email, or {email,url}\"\n  ,\"nonUrlBugsUrlField\": \"bugs.url field must be a string url. Deleted.\"\n  ,\"nonEmailBugsEmailField\": \"bugs.email field must be a string email. Deleted.\"\n  ,\"emptyNormalizedBugs\": \"Normalized value of bugs field is an empty object. Deleted.\"\n  ,\"nonUrlHomepage\": \"homepage field must be a string url. Deleted.\"\n  ,\"invalidLicense\": \"license should be a valid SPDX license expression\"\n  ,\"typo\": \"%s should probably be %s.\"\n}\n", "var util = require(\"util\")\nvar messages = require(\"./warning_messages.json\")\n\nmodule.exports = function() {\n  var args = Array.prototype.slice.call(arguments, 0)\n  var warningName = args.shift()\n  if (warningName == \"typo\") {\n    return makeTypoWarning.apply(null,args)\n  }\n  else {\n    var msgTemplate = messages[warningName] ? messages[warningName] : warningName + \": '%s'\"\n    args.unshift(msgTemplate)\n    return util.format.apply(null, args)\n  }\n}\n\nfunction makeTypoWarning (providedName, probableName, field) {\n  if (field) {\n    providedName = field + \"['\" + providedName + \"']\"\n    probableName = field + \"['\" + probableName + \"']\"\n  }\n  return util.format(messages.typo, providedName, probableName)\n}\n", "module.exports = normalize\n\nvar fixer = require(\"./fixer\")\nnormalize.fixer = fixer\n\nvar makeWarning = require(\"./make_warning\")\n\nvar fieldsToFix = ['name','version','description','repository','modules','scripts'\n                  ,'files','bin','man','bugs','keywords','readme','homepage','license']\nvar otherThingsToFix = ['dependencies','people', 'typos']\n\nvar thingsToFix = fieldsToFix.map(function(fieldName) {\n  return ucFirst(fieldName) + \"Field\"\n})\n// two ways to do this in CoffeeScript on only one line, sub-70 chars:\n// thingsToFix = fieldsToFix.map (name) -> ucFirst(name) + \"Field\"\n// thingsToFix = (ucFirst(name) + \"Field\" for name in fieldsToFix)\nthingsToFix = thingsToFix.concat(otherThingsToFix)\n\nfunction normalize (data, warn, strict) {\n  if(warn === true) warn = null, strict = true\n  if(!strict) strict = false\n  if(!warn || data.private) warn = function(msg) { /* noop */ }\n\n  if (data.scripts &&\n      data.scripts.install === \"node-gyp rebuild\" &&\n      !data.scripts.preinstall) {\n    data.gypfile = true\n  }\n  fixer.warn = function() { warn(makeWarning.apply(null, arguments)) }\n  thingsToFix.forEach(function(thingName) {\n    fixer[\"fix\" + ucFirst(thingName)](data, strict)\n  })\n  data._id = data.name + \"@\" + data.version\n}\n\nfunction ucFirst (string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n", "'use strict';\nconst {promisify} = require('util');\nconst fs = require('fs');\nconst path = require('path');\nconst parseJson = require('parse-json');\n\nconst readFileAsync = promisify(fs.readFile);\n\nmodule.exports = async options => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\tnormalize: true,\n\t\t...options\n\t};\n\n\tconst filePath = path.resolve(options.cwd, 'package.json');\n\tconst json = parseJson(await readFileAsync(filePath, 'utf8'));\n\n\tif (options.normalize) {\n\t\trequire('normalize-package-data')(json);\n\t}\n\n\treturn json;\n};\n\nmodule.exports.sync = options => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\tnormalize: true,\n\t\t...options\n\t};\n\n\tconst filePath = path.resolve(options.cwd, 'package.json');\n\tconst json = parseJson(fs.readFileSync(filePath, 'utf8'));\n\n\tif (options.normalize) {\n\t\trequire('normalize-package-data')(json);\n\t}\n\n\treturn json;\n};\n", "'use strict';\nconst path = require('path');\nconst findUp = require('find-up');\nconst readPkg = require('read-pkg');\n\nmodule.exports = async options => {\n\tconst filePath = await findUp('package.json', options);\n\n\tif (!filePath) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\tpackageJson: await readPkg({...options, cwd: path.dirname(filePath)}),\n\t\tpath: filePath\n\t};\n};\n\nmodule.exports.sync = options => {\n\tconst filePath = findUp.sync('package.json', options);\n\n\tif (!filePath) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\tpackageJson: readPkg.sync({...options, cwd: path.dirname(filePath)}),\n\t\tpath: filePath\n\t};\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crossLaunchCommand = exports.callbackLaunchCommand = void 0;\nconst api_1 = require(\"@raycast/api\");\nconst read_pkg_up_1 = require(\"read-pkg-up\");\nconst callbackLaunchCommand = async (options, result) => (0, api_1.launchCommand)({\n    ...options,\n    context: {\n        ...options.context,\n        ...result,\n    },\n});\nexports.callbackLaunchCommand = callbackLaunchCommand;\nconst crossLaunchCommand = async (options, callbackLaunchOptions) => {\n    if (callbackLaunchOptions === false) {\n        return (0, api_1.launchCommand)(options);\n    }\n    // eslint-disable-next-line unicorn/prefer-module, @typescript-eslint/no-unsafe-assignment\n    const pack = (0, read_pkg_up_1.sync)({ cwd: __dirname, normalize: false });\n    const ownerOrAuthorName = \n    // The `ownerOrAuthorName` was introduced in @raycast/api@1.78.0. We use a fallback to support older versions.\n    api_1.environment.ownerOrAuthorName ??\n        (pack?.packageJson?.owner ?? pack?.packageJson?.author);\n    if ('ownerOrAuthorName' in options) {\n        const targetHandle = `${options.ownerOrAuthorName}/${options.extensionName}`;\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n        if (!pack?.packageJson?.crossExtensions?.includes(targetHandle)) {\n            const message = `Target extension '${targetHandle}' should be listed in 'crossExtensions' of package.json.`;\n            console.error(message);\n            return;\n        }\n    }\n    return (0, api_1.launchCommand)({\n        ...options,\n        context: {\n            ...options.context,\n            callbackLaunchOptions: {\n                name: api_1.environment.commandName,\n                extensionName: api_1.environment.extensionName,\n                ownerOrAuthorName,\n                type: api_1.LaunchType.UserInitiated,\n                ...callbackLaunchOptions,\n            },\n        },\n    });\n};\nexports.crossLaunchCommand = crossLaunchCommand;\n", "\n/**\n * @license\n *\n * chroma.js - JavaScript library for color conversions\n * \n * Copyright (c) 2011-2017, Gregor Aisch\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * \n * 1. Redistributions of source code must retain the above copyright notice, this\n *    list of conditions and the following disclaimer.\n * \n * 2. Redistributions in binary form must reproduce the above copyright notice,\n *    this list of conditions and the following disclaimer in the documentation\n *    and/or other materials provided with the distribution.\n * \n * 3. The name Gregor Aisch may not be used to endorse or promote products\n *    derived from this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n(function() {\n  var Color, DEG2RAD, LAB_CONSTANTS, PI, PITHIRD, RAD2DEG, TWOPI, _average_lrgb, _guess_formats, _guess_formats_sorted, _input, _interpolators, abs, atan2, bezier, blend, blend_f, brewer, burn, chroma, clip_rgb, cmyk2rgb, colors, cos, css2rgb, darken, dodge, each, floor, hcg2rgb, hex2rgb, hsi2rgb, hsl2css, hsl2rgb, hsv2rgb, interpolate, interpolate_hsx, interpolate_lab, interpolate_lrgb, interpolate_num, interpolate_rgb, lab2lch, lab2rgb, lab_xyz, lch2lab, lch2rgb, lighten, limit, log, luminance_x, m, max, multiply, normal, num2rgb, overlay, pow, rgb2cmyk, rgb2css, rgb2hcg, rgb2hex, rgb2hsi, rgb2hsl, rgb2hsv, rgb2lab, rgb2lch, rgb2luminance, rgb2num, rgb2temperature, rgb2xyz, rgb_xyz, rnd, root, round, screen, sin, sqrt, temperature2rgb, type, unpack, w3cx11, xyz_lab, xyz_rgb,\n    slice = [].slice;\n\n  type = (function() {\n\n    /*\n    for browser-safe type checking+\n    ported from jQuery's $.type\n     */\n    var classToType, len, name, o, ref;\n    classToType = {};\n    ref = \"Boolean Number String Function Array Date RegExp Undefined Null\".split(\" \");\n    for (o = 0, len = ref.length; o < len; o++) {\n      name = ref[o];\n      classToType[\"[object \" + name + \"]\"] = name.toLowerCase();\n    }\n    return function(obj) {\n      var strType;\n      strType = Object.prototype.toString.call(obj);\n      return classToType[strType] || \"object\";\n    };\n  })();\n\n  limit = function(x, min, max) {\n    if (min == null) {\n      min = 0;\n    }\n    if (max == null) {\n      max = 1;\n    }\n    if (x < min) {\n      x = min;\n    }\n    if (x > max) {\n      x = max;\n    }\n    return x;\n  };\n\n  unpack = function(args) {\n    if (args.length >= 3) {\n      return Array.prototype.slice.call(args);\n    } else {\n      return args[0];\n    }\n  };\n\n  clip_rgb = function(rgb) {\n    var i, o;\n    rgb._clipped = false;\n    rgb._unclipped = rgb.slice(0);\n    for (i = o = 0; o < 3; i = ++o) {\n      if (i < 3) {\n        if (rgb[i] < 0 || rgb[i] > 255) {\n          rgb._clipped = true;\n        }\n        if (rgb[i] < 0) {\n          rgb[i] = 0;\n        }\n        if (rgb[i] > 255) {\n          rgb[i] = 255;\n        }\n      } else if (i === 3) {\n        if (rgb[i] < 0) {\n          rgb[i] = 0;\n        }\n        if (rgb[i] > 1) {\n          rgb[i] = 1;\n        }\n      }\n    }\n    if (!rgb._clipped) {\n      delete rgb._unclipped;\n    }\n    return rgb;\n  };\n\n  PI = Math.PI, round = Math.round, cos = Math.cos, floor = Math.floor, pow = Math.pow, log = Math.log, sin = Math.sin, sqrt = Math.sqrt, atan2 = Math.atan2, max = Math.max, abs = Math.abs;\n\n  TWOPI = PI * 2;\n\n  PITHIRD = PI / 3;\n\n  DEG2RAD = PI / 180;\n\n  RAD2DEG = 180 / PI;\n\n  chroma = function() {\n    if (arguments[0] instanceof Color) {\n      return arguments[0];\n    }\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, arguments, function(){});\n  };\n\n  chroma[\"default\"] = chroma;\n\n  _interpolators = [];\n\n  if ((typeof module !== \"undefined\" && module !== null) && (module.exports != null)) {\n    module.exports = chroma;\n  }\n\n  if (typeof define === 'function' && define.amd) {\n    define([], function() {\n      return chroma;\n    });\n  } else {\n    root = typeof exports !== \"undefined\" && exports !== null ? exports : this;\n    root.chroma = chroma;\n  }\n\n  chroma.version = '1.4.1';\n\n  _input = {};\n\n  _guess_formats = [];\n\n  _guess_formats_sorted = false;\n\n  Color = (function() {\n    function Color() {\n      var arg, args, chk, len, len1, me, mode, o, w;\n      me = this;\n      args = [];\n      for (o = 0, len = arguments.length; o < len; o++) {\n        arg = arguments[o];\n        if (arg != null) {\n          args.push(arg);\n        }\n      }\n      if (args.length > 1) {\n        mode = args[args.length - 1];\n      }\n      if (_input[mode] != null) {\n        me._rgb = clip_rgb(_input[mode](unpack(args.slice(0, -1))));\n      } else {\n        if (!_guess_formats_sorted) {\n          _guess_formats = _guess_formats.sort(function(a, b) {\n            return b.p - a.p;\n          });\n          _guess_formats_sorted = true;\n        }\n        for (w = 0, len1 = _guess_formats.length; w < len1; w++) {\n          chk = _guess_formats[w];\n          mode = chk.test.apply(chk, args);\n          if (mode) {\n            break;\n          }\n        }\n        if (mode) {\n          me._rgb = clip_rgb(_input[mode].apply(_input, args));\n        }\n      }\n      if (me._rgb == null) {\n        console.warn('unknown format: ' + args);\n      }\n      if (me._rgb == null) {\n        me._rgb = [0, 0, 0];\n      }\n      if (me._rgb.length === 3) {\n        me._rgb.push(1);\n      }\n    }\n\n    Color.prototype.toString = function() {\n      return this.hex();\n    };\n\n    return Color;\n\n  })();\n\n  chroma._input = _input;\n\n\n  /**\n  \tColorBrewer colors for chroma.js\n  \n  \tCopyright (c) 2002 Cynthia Brewer, Mark Harrower, and The \n  \tPennsylvania State University.\n  \n  \tLicensed under the Apache License, Version 2.0 (the \"License\"); \n  \tyou may not use this file except in compliance with the License.\n  \tYou may obtain a copy of the License at\t\n  \thttp://www.apache.org/licenses/LICENSE-2.0\n  \n  \tUnless required by applicable law or agreed to in writing, software distributed\n  \tunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n  \tCONDITIONS OF ANY KIND, either express or implied. See the License for the\n  \tspecific language governing permissions and limitations under the License.\n  \n      @preserve\n   */\n\n  chroma.brewer = brewer = {\n    OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n    PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n    BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n    Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n    BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n    YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n    YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n    Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n    RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n    Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n    YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n    Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n    GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n    Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n    YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n    PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n    Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n    PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n    Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n    Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n    RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n    RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n    PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n    PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n    RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n    BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n    RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n    PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n    Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n    Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n    Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n    Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n    Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n    Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n    Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n    Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2']\n  };\n\n  (function() {\n    var key, results;\n    results = [];\n    for (key in brewer) {\n      results.push(brewer[key.toLowerCase()] = brewer[key]);\n    }\n    return results;\n  })();\n\n\n  /**\n  \tX11 color names\n  \n  \thttp://www.w3.org/TR/css3-color/#svg-color\n   */\n\n  w3cx11 = {\n    aliceblue: '#f0f8ff',\n    antiquewhite: '#faebd7',\n    aqua: '#00ffff',\n    aquamarine: '#7fffd4',\n    azure: '#f0ffff',\n    beige: '#f5f5dc',\n    bisque: '#ffe4c4',\n    black: '#000000',\n    blanchedalmond: '#ffebcd',\n    blue: '#0000ff',\n    blueviolet: '#8a2be2',\n    brown: '#a52a2a',\n    burlywood: '#deb887',\n    cadetblue: '#5f9ea0',\n    chartreuse: '#7fff00',\n    chocolate: '#d2691e',\n    coral: '#ff7f50',\n    cornflower: '#6495ed',\n    cornflowerblue: '#6495ed',\n    cornsilk: '#fff8dc',\n    crimson: '#dc143c',\n    cyan: '#00ffff',\n    darkblue: '#00008b',\n    darkcyan: '#008b8b',\n    darkgoldenrod: '#b8860b',\n    darkgray: '#a9a9a9',\n    darkgreen: '#006400',\n    darkgrey: '#a9a9a9',\n    darkkhaki: '#bdb76b',\n    darkmagenta: '#8b008b',\n    darkolivegreen: '#556b2f',\n    darkorange: '#ff8c00',\n    darkorchid: '#9932cc',\n    darkred: '#8b0000',\n    darksalmon: '#e9967a',\n    darkseagreen: '#8fbc8f',\n    darkslateblue: '#483d8b',\n    darkslategray: '#2f4f4f',\n    darkslategrey: '#2f4f4f',\n    darkturquoise: '#00ced1',\n    darkviolet: '#9400d3',\n    deeppink: '#ff1493',\n    deepskyblue: '#00bfff',\n    dimgray: '#696969',\n    dimgrey: '#696969',\n    dodgerblue: '#1e90ff',\n    firebrick: '#b22222',\n    floralwhite: '#fffaf0',\n    forestgreen: '#228b22',\n    fuchsia: '#ff00ff',\n    gainsboro: '#dcdcdc',\n    ghostwhite: '#f8f8ff',\n    gold: '#ffd700',\n    goldenrod: '#daa520',\n    gray: '#808080',\n    green: '#008000',\n    greenyellow: '#adff2f',\n    grey: '#808080',\n    honeydew: '#f0fff0',\n    hotpink: '#ff69b4',\n    indianred: '#cd5c5c',\n    indigo: '#4b0082',\n    ivory: '#fffff0',\n    khaki: '#f0e68c',\n    laserlemon: '#ffff54',\n    lavender: '#e6e6fa',\n    lavenderblush: '#fff0f5',\n    lawngreen: '#7cfc00',\n    lemonchiffon: '#fffacd',\n    lightblue: '#add8e6',\n    lightcoral: '#f08080',\n    lightcyan: '#e0ffff',\n    lightgoldenrod: '#fafad2',\n    lightgoldenrodyellow: '#fafad2',\n    lightgray: '#d3d3d3',\n    lightgreen: '#90ee90',\n    lightgrey: '#d3d3d3',\n    lightpink: '#ffb6c1',\n    lightsalmon: '#ffa07a',\n    lightseagreen: '#20b2aa',\n    lightskyblue: '#87cefa',\n    lightslategray: '#778899',\n    lightslategrey: '#778899',\n    lightsteelblue: '#b0c4de',\n    lightyellow: '#ffffe0',\n    lime: '#00ff00',\n    limegreen: '#32cd32',\n    linen: '#faf0e6',\n    magenta: '#ff00ff',\n    maroon: '#800000',\n    maroon2: '#7f0000',\n    maroon3: '#b03060',\n    mediumaquamarine: '#66cdaa',\n    mediumblue: '#0000cd',\n    mediumorchid: '#ba55d3',\n    mediumpurple: '#9370db',\n    mediumseagreen: '#3cb371',\n    mediumslateblue: '#7b68ee',\n    mediumspringgreen: '#00fa9a',\n    mediumturquoise: '#48d1cc',\n    mediumvioletred: '#c71585',\n    midnightblue: '#191970',\n    mintcream: '#f5fffa',\n    mistyrose: '#ffe4e1',\n    moccasin: '#ffe4b5',\n    navajowhite: '#ffdead',\n    navy: '#000080',\n    oldlace: '#fdf5e6',\n    olive: '#808000',\n    olivedrab: '#6b8e23',\n    orange: '#ffa500',\n    orangered: '#ff4500',\n    orchid: '#da70d6',\n    palegoldenrod: '#eee8aa',\n    palegreen: '#98fb98',\n    paleturquoise: '#afeeee',\n    palevioletred: '#db7093',\n    papayawhip: '#ffefd5',\n    peachpuff: '#ffdab9',\n    peru: '#cd853f',\n    pink: '#ffc0cb',\n    plum: '#dda0dd',\n    powderblue: '#b0e0e6',\n    purple: '#800080',\n    purple2: '#7f007f',\n    purple3: '#a020f0',\n    rebeccapurple: '#663399',\n    red: '#ff0000',\n    rosybrown: '#bc8f8f',\n    royalblue: '#4169e1',\n    saddlebrown: '#8b4513',\n    salmon: '#fa8072',\n    sandybrown: '#f4a460',\n    seagreen: '#2e8b57',\n    seashell: '#fff5ee',\n    sienna: '#a0522d',\n    silver: '#c0c0c0',\n    skyblue: '#87ceeb',\n    slateblue: '#6a5acd',\n    slategray: '#708090',\n    slategrey: '#708090',\n    snow: '#fffafa',\n    springgreen: '#00ff7f',\n    steelblue: '#4682b4',\n    tan: '#d2b48c',\n    teal: '#008080',\n    thistle: '#d8bfd8',\n    tomato: '#ff6347',\n    turquoise: '#40e0d0',\n    violet: '#ee82ee',\n    wheat: '#f5deb3',\n    white: '#ffffff',\n    whitesmoke: '#f5f5f5',\n    yellow: '#ffff00',\n    yellowgreen: '#9acd32'\n  };\n\n  chroma.colors = colors = w3cx11;\n\n  lab2rgb = function() {\n    var a, args, b, g, l, r, x, y, z;\n    args = unpack(arguments);\n    l = args[0], a = args[1], b = args[2];\n    y = (l + 16) / 116;\n    x = isNaN(a) ? y : y + a / 500;\n    z = isNaN(b) ? y : y - b / 200;\n    y = LAB_CONSTANTS.Yn * lab_xyz(y);\n    x = LAB_CONSTANTS.Xn * lab_xyz(x);\n    z = LAB_CONSTANTS.Zn * lab_xyz(z);\n    r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z);\n    g = xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z);\n    b = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z);\n    return [r, g, b, args.length > 3 ? args[3] : 1];\n  };\n\n  xyz_rgb = function(r) {\n    return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow(r, 1 / 2.4) - 0.055);\n  };\n\n  lab_xyz = function(t) {\n    if (t > LAB_CONSTANTS.t1) {\n      return t * t * t;\n    } else {\n      return LAB_CONSTANTS.t2 * (t - LAB_CONSTANTS.t0);\n    }\n  };\n\n  LAB_CONSTANTS = {\n    Kn: 18,\n    Xn: 0.950470,\n    Yn: 1,\n    Zn: 1.088830,\n    t0: 0.137931034,\n    t1: 0.206896552,\n    t2: 0.12841855,\n    t3: 0.008856452\n  };\n\n  rgb2lab = function() {\n    var b, g, r, ref, ref1, x, y, z;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    ref1 = rgb2xyz(r, g, b), x = ref1[0], y = ref1[1], z = ref1[2];\n    return [116 * y - 16, 500 * (x - y), 200 * (y - z)];\n  };\n\n  rgb_xyz = function(r) {\n    if ((r /= 255) <= 0.04045) {\n      return r / 12.92;\n    } else {\n      return pow((r + 0.055) / 1.055, 2.4);\n    }\n  };\n\n  xyz_lab = function(t) {\n    if (t > LAB_CONSTANTS.t3) {\n      return pow(t, 1 / 3);\n    } else {\n      return t / LAB_CONSTANTS.t2 + LAB_CONSTANTS.t0;\n    }\n  };\n\n  rgb2xyz = function() {\n    var b, g, r, ref, x, y, z;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    r = rgb_xyz(r);\n    g = rgb_xyz(g);\n    b = rgb_xyz(b);\n    x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / LAB_CONSTANTS.Xn);\n    y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / LAB_CONSTANTS.Yn);\n    z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / LAB_CONSTANTS.Zn);\n    return [x, y, z];\n  };\n\n  chroma.lab = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['lab']), function(){});\n  };\n\n  _input.lab = lab2rgb;\n\n  Color.prototype.lab = function() {\n    return rgb2lab(this._rgb);\n  };\n\n  bezier = function(colors) {\n    var I, I0, I1, c, lab0, lab1, lab2, lab3, ref, ref1, ref2;\n    colors = (function() {\n      var len, o, results;\n      results = [];\n      for (o = 0, len = colors.length; o < len; o++) {\n        c = colors[o];\n        results.push(chroma(c));\n      }\n      return results;\n    })();\n    if (colors.length === 2) {\n      ref = (function() {\n        var len, o, results;\n        results = [];\n        for (o = 0, len = colors.length; o < len; o++) {\n          c = colors[o];\n          results.push(c.lab());\n        }\n        return results;\n      })(), lab0 = ref[0], lab1 = ref[1];\n      I = function(t) {\n        var i, lab;\n        lab = (function() {\n          var o, results;\n          results = [];\n          for (i = o = 0; o <= 2; i = ++o) {\n            results.push(lab0[i] + t * (lab1[i] - lab0[i]));\n          }\n          return results;\n        })();\n        return chroma.lab.apply(chroma, lab);\n      };\n    } else if (colors.length === 3) {\n      ref1 = (function() {\n        var len, o, results;\n        results = [];\n        for (o = 0, len = colors.length; o < len; o++) {\n          c = colors[o];\n          results.push(c.lab());\n        }\n        return results;\n      })(), lab0 = ref1[0], lab1 = ref1[1], lab2 = ref1[2];\n      I = function(t) {\n        var i, lab;\n        lab = (function() {\n          var o, results;\n          results = [];\n          for (i = o = 0; o <= 2; i = ++o) {\n            results.push((1 - t) * (1 - t) * lab0[i] + 2 * (1 - t) * t * lab1[i] + t * t * lab2[i]);\n          }\n          return results;\n        })();\n        return chroma.lab.apply(chroma, lab);\n      };\n    } else if (colors.length === 4) {\n      ref2 = (function() {\n        var len, o, results;\n        results = [];\n        for (o = 0, len = colors.length; o < len; o++) {\n          c = colors[o];\n          results.push(c.lab());\n        }\n        return results;\n      })(), lab0 = ref2[0], lab1 = ref2[1], lab2 = ref2[2], lab3 = ref2[3];\n      I = function(t) {\n        var i, lab;\n        lab = (function() {\n          var o, results;\n          results = [];\n          for (i = o = 0; o <= 2; i = ++o) {\n            results.push((1 - t) * (1 - t) * (1 - t) * lab0[i] + 3 * (1 - t) * (1 - t) * t * lab1[i] + 3 * (1 - t) * t * t * lab2[i] + t * t * t * lab3[i]);\n          }\n          return results;\n        })();\n        return chroma.lab.apply(chroma, lab);\n      };\n    } else if (colors.length === 5) {\n      I0 = bezier(colors.slice(0, 3));\n      I1 = bezier(colors.slice(2, 5));\n      I = function(t) {\n        if (t < 0.5) {\n          return I0(t * 2);\n        } else {\n          return I1((t - 0.5) * 2);\n        }\n      };\n    }\n    return I;\n  };\n\n  chroma.bezier = function(colors) {\n    var f;\n    f = bezier(colors);\n    f.scale = function() {\n      return chroma.scale(f);\n    };\n    return f;\n  };\n\n  chroma.cubehelix = function(start, rotations, hue, gamma, lightness) {\n    var dh, dl, f;\n    if (start == null) {\n      start = 300;\n    }\n    if (rotations == null) {\n      rotations = -1.5;\n    }\n    if (hue == null) {\n      hue = 1;\n    }\n    if (gamma == null) {\n      gamma = 1;\n    }\n    if (lightness == null) {\n      lightness = [0, 1];\n    }\n    dh = 0;\n    if (type(lightness) === 'array') {\n      dl = lightness[1] - lightness[0];\n    } else {\n      dl = 0;\n      lightness = [lightness, lightness];\n    }\n    f = function(fract) {\n      var a, amp, b, cos_a, g, h, l, r, sin_a;\n      a = TWOPI * ((start + 120) / 360 + rotations * fract);\n      l = pow(lightness[0] + dl * fract, gamma);\n      h = dh !== 0 ? hue[0] + fract * dh : hue;\n      amp = h * l * (1 - l) / 2;\n      cos_a = cos(a);\n      sin_a = sin(a);\n      r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a);\n      g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a);\n      b = l + amp * (+1.97294 * cos_a);\n      return chroma(clip_rgb([r * 255, g * 255, b * 255, 1]));\n    };\n    f.start = function(s) {\n      if (s == null) {\n        return start;\n      }\n      start = s;\n      return f;\n    };\n    f.rotations = function(r) {\n      if (r == null) {\n        return rotations;\n      }\n      rotations = r;\n      return f;\n    };\n    f.gamma = function(g) {\n      if (g == null) {\n        return gamma;\n      }\n      gamma = g;\n      return f;\n    };\n    f.hue = function(h) {\n      if (h == null) {\n        return hue;\n      }\n      hue = h;\n      if (type(hue) === 'array') {\n        dh = hue[1] - hue[0];\n        if (dh === 0) {\n          hue = hue[1];\n        }\n      } else {\n        dh = 0;\n      }\n      return f;\n    };\n    f.lightness = function(h) {\n      if (h == null) {\n        return lightness;\n      }\n      if (type(h) === 'array') {\n        lightness = h;\n        dl = h[1] - h[0];\n      } else {\n        lightness = [h, h];\n        dl = 0;\n      }\n      return f;\n    };\n    f.scale = function() {\n      return chroma.scale(f);\n    };\n    f.hue(hue);\n    return f;\n  };\n\n  chroma.random = function() {\n    var code, digits, i, o;\n    digits = '0123456789abcdef';\n    code = '#';\n    for (i = o = 0; o < 6; i = ++o) {\n      code += digits.charAt(floor(Math.random() * 16));\n    }\n    return new Color(code);\n  };\n\n  _interpolators = [];\n\n  interpolate = function(col1, col2, f, m) {\n    var interpol, len, o, res;\n    if (f == null) {\n      f = 0.5;\n    }\n    if (m == null) {\n      m = 'rgb';\n    }\n\n    /*\n    interpolates between colors\n    f = 0 --> me\n    f = 1 --> col\n     */\n    if (type(col1) !== 'object') {\n      col1 = chroma(col1);\n    }\n    if (type(col2) !== 'object') {\n      col2 = chroma(col2);\n    }\n    for (o = 0, len = _interpolators.length; o < len; o++) {\n      interpol = _interpolators[o];\n      if (m === interpol[0]) {\n        res = interpol[1](col1, col2, f, m);\n        break;\n      }\n    }\n    if (res == null) {\n      throw \"color mode \" + m + \" is not supported\";\n    }\n    return res.alpha(col1.alpha() + f * (col2.alpha() - col1.alpha()));\n  };\n\n  chroma.interpolate = interpolate;\n\n  Color.prototype.interpolate = function(col2, f, m) {\n    return interpolate(this, col2, f, m);\n  };\n\n  chroma.mix = interpolate;\n\n  Color.prototype.mix = Color.prototype.interpolate;\n\n  _input.rgb = function() {\n    var k, ref, results, v;\n    ref = unpack(arguments);\n    results = [];\n    for (k in ref) {\n      v = ref[k];\n      results.push(v);\n    }\n    return results;\n  };\n\n  chroma.rgb = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['rgb']), function(){});\n  };\n\n  Color.prototype.rgb = function(round) {\n    if (round == null) {\n      round = true;\n    }\n    if (round) {\n      return this._rgb.map(Math.round).slice(0, 3);\n    } else {\n      return this._rgb.slice(0, 3);\n    }\n  };\n\n  Color.prototype.rgba = function(round) {\n    if (round == null) {\n      round = true;\n    }\n    if (!round) {\n      return this._rgb.slice(0);\n    }\n    return [Math.round(this._rgb[0]), Math.round(this._rgb[1]), Math.round(this._rgb[2]), this._rgb[3]];\n  };\n\n  _guess_formats.push({\n    p: 3,\n    test: function(n) {\n      var a;\n      a = unpack(arguments);\n      if (type(a) === 'array' && a.length === 3) {\n        return 'rgb';\n      }\n      if (a.length === 4 && type(a[3]) === \"number\" && a[3] >= 0 && a[3] <= 1) {\n        return 'rgb';\n      }\n    }\n  });\n\n  _input.lrgb = _input.rgb;\n\n  interpolate_lrgb = function(col1, col2, f, m) {\n    var xyz0, xyz1;\n    xyz0 = col1._rgb;\n    xyz1 = col2._rgb;\n    return new Color(sqrt(pow(xyz0[0], 2) * (1 - f) + pow(xyz1[0], 2) * f), sqrt(pow(xyz0[1], 2) * (1 - f) + pow(xyz1[1], 2) * f), sqrt(pow(xyz0[2], 2) * (1 - f) + pow(xyz1[2], 2) * f), m);\n  };\n\n  _average_lrgb = function(colors) {\n    var col, f, len, o, rgb, xyz;\n    f = 1 / colors.length;\n    xyz = [0, 0, 0, 0];\n    for (o = 0, len = colors.length; o < len; o++) {\n      col = colors[o];\n      rgb = col._rgb;\n      xyz[0] += pow(rgb[0], 2) * f;\n      xyz[1] += pow(rgb[1], 2) * f;\n      xyz[2] += pow(rgb[2], 2) * f;\n      xyz[3] += rgb[3] * f;\n    }\n    xyz[0] = sqrt(xyz[0]);\n    xyz[1] = sqrt(xyz[1]);\n    xyz[2] = sqrt(xyz[2]);\n    if (xyz[3] > 1) {\n      xyz[3] = 1;\n    }\n    return new Color(clip_rgb(xyz));\n  };\n\n  _interpolators.push(['lrgb', interpolate_lrgb]);\n\n  chroma.average = function(colors, mode) {\n    var A, alpha, c, cnt, dx, dy, first, i, l, len, o, xyz, xyz2;\n    if (mode == null) {\n      mode = 'rgb';\n    }\n    l = colors.length;\n    colors = colors.map(function(c) {\n      return chroma(c);\n    });\n    first = colors.splice(0, 1)[0];\n    if (mode === 'lrgb') {\n      return _average_lrgb(colors);\n    }\n    xyz = first.get(mode);\n    cnt = [];\n    dx = 0;\n    dy = 0;\n    for (i in xyz) {\n      xyz[i] = xyz[i] || 0;\n      cnt.push(isNaN(xyz[i]) ? 0 : 1);\n      if (mode.charAt(i) === 'h' && !isNaN(xyz[i])) {\n        A = xyz[i] / 180 * PI;\n        dx += cos(A);\n        dy += sin(A);\n      }\n    }\n    alpha = first.alpha();\n    for (o = 0, len = colors.length; o < len; o++) {\n      c = colors[o];\n      xyz2 = c.get(mode);\n      alpha += c.alpha();\n      for (i in xyz) {\n        if (!isNaN(xyz2[i])) {\n          cnt[i] += 1;\n          if (mode.charAt(i) === 'h') {\n            A = xyz2[i] / 180 * PI;\n            dx += cos(A);\n            dy += sin(A);\n          } else {\n            xyz[i] += xyz2[i];\n          }\n        }\n      }\n    }\n    for (i in xyz) {\n      if (mode.charAt(i) === 'h') {\n        A = atan2(dy / cnt[i], dx / cnt[i]) / PI * 180;\n        while (A < 0) {\n          A += 360;\n        }\n        while (A >= 360) {\n          A -= 360;\n        }\n        xyz[i] = A;\n      } else {\n        xyz[i] = xyz[i] / cnt[i];\n      }\n    }\n    return chroma(xyz, mode).alpha(alpha / l);\n  };\n\n  hex2rgb = function(hex) {\n    var a, b, g, r, rgb, u;\n    if (hex.match(/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/)) {\n      if (hex.length === 4 || hex.length === 7) {\n        hex = hex.substr(1);\n      }\n      if (hex.length === 3) {\n        hex = hex.split(\"\");\n        hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n      }\n      u = parseInt(hex, 16);\n      r = u >> 16;\n      g = u >> 8 & 0xFF;\n      b = u & 0xFF;\n      return [r, g, b, 1];\n    }\n    if (hex.match(/^#?([A-Fa-f0-9]{8})$/)) {\n      if (hex.length === 9) {\n        hex = hex.substr(1);\n      }\n      u = parseInt(hex, 16);\n      r = u >> 24 & 0xFF;\n      g = u >> 16 & 0xFF;\n      b = u >> 8 & 0xFF;\n      a = round((u & 0xFF) / 0xFF * 100) / 100;\n      return [r, g, b, a];\n    }\n    if ((_input.css != null) && (rgb = _input.css(hex))) {\n      return rgb;\n    }\n    throw \"unknown color: \" + hex;\n  };\n\n  rgb2hex = function(channels, mode) {\n    var a, b, g, hxa, r, str, u;\n    if (mode == null) {\n      mode = 'auto';\n    }\n    r = channels[0], g = channels[1], b = channels[2], a = channels[3];\n    if (mode === 'auto') {\n      mode = a < 1 ? 'rgba' : 'rgb';\n    }\n    r = Math.round(r);\n    g = Math.round(g);\n    b = Math.round(b);\n    u = r << 16 | g << 8 | b;\n    str = \"000000\" + u.toString(16);\n    str = str.substr(str.length - 6);\n    hxa = '0' + round(a * 255).toString(16);\n    hxa = hxa.substr(hxa.length - 2);\n    return \"#\" + (function() {\n      switch (mode.toLowerCase()) {\n        case 'rgba':\n          return str + hxa;\n        case 'argb':\n          return hxa + str;\n        default:\n          return str;\n      }\n    })();\n  };\n\n  _input.hex = function(h) {\n    return hex2rgb(h);\n  };\n\n  chroma.hex = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['hex']), function(){});\n  };\n\n  Color.prototype.hex = function(mode) {\n    if (mode == null) {\n      mode = 'auto';\n    }\n    return rgb2hex(this._rgb, mode);\n  };\n\n  _guess_formats.push({\n    p: 4,\n    test: function(n) {\n      if (arguments.length === 1 && type(n) === \"string\") {\n        return 'hex';\n      }\n    }\n  });\n\n  hsl2rgb = function() {\n    var args, b, c, g, h, i, l, o, r, ref, s, t1, t2, t3;\n    args = unpack(arguments);\n    h = args[0], s = args[1], l = args[2];\n    if (s === 0) {\n      r = g = b = l * 255;\n    } else {\n      t3 = [0, 0, 0];\n      c = [0, 0, 0];\n      t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n      t1 = 2 * l - t2;\n      h /= 360;\n      t3[0] = h + 1 / 3;\n      t3[1] = h;\n      t3[2] = h - 1 / 3;\n      for (i = o = 0; o <= 2; i = ++o) {\n        if (t3[i] < 0) {\n          t3[i] += 1;\n        }\n        if (t3[i] > 1) {\n          t3[i] -= 1;\n        }\n        if (6 * t3[i] < 1) {\n          c[i] = t1 + (t2 - t1) * 6 * t3[i];\n        } else if (2 * t3[i] < 1) {\n          c[i] = t2;\n        } else if (3 * t3[i] < 2) {\n          c[i] = t1 + (t2 - t1) * ((2 / 3) - t3[i]) * 6;\n        } else {\n          c[i] = t1;\n        }\n      }\n      ref = [round(c[0] * 255), round(c[1] * 255), round(c[2] * 255)], r = ref[0], g = ref[1], b = ref[2];\n    }\n    if (args.length > 3) {\n      return [r, g, b, args[3]];\n    } else {\n      return [r, g, b];\n    }\n  };\n\n  rgb2hsl = function(r, g, b) {\n    var h, l, min, ref, s;\n    if (r !== void 0 && r.length >= 3) {\n      ref = r, r = ref[0], g = ref[1], b = ref[2];\n    }\n    r /= 255;\n    g /= 255;\n    b /= 255;\n    min = Math.min(r, g, b);\n    max = Math.max(r, g, b);\n    l = (max + min) / 2;\n    if (max === min) {\n      s = 0;\n      h = Number.NaN;\n    } else {\n      s = l < 0.5 ? (max - min) / (max + min) : (max - min) / (2 - max - min);\n    }\n    if (r === max) {\n      h = (g - b) / (max - min);\n    } else if (g === max) {\n      h = 2 + (b - r) / (max - min);\n    } else if (b === max) {\n      h = 4 + (r - g) / (max - min);\n    }\n    h *= 60;\n    if (h < 0) {\n      h += 360;\n    }\n    return [h, s, l];\n  };\n\n  chroma.hsl = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['hsl']), function(){});\n  };\n\n  _input.hsl = hsl2rgb;\n\n  Color.prototype.hsl = function() {\n    return rgb2hsl(this._rgb);\n  };\n\n  hsv2rgb = function() {\n    var args, b, f, g, h, i, p, q, r, ref, ref1, ref2, ref3, ref4, ref5, s, t, v;\n    args = unpack(arguments);\n    h = args[0], s = args[1], v = args[2];\n    v *= 255;\n    if (s === 0) {\n      r = g = b = v;\n    } else {\n      if (h === 360) {\n        h = 0;\n      }\n      if (h > 360) {\n        h -= 360;\n      }\n      if (h < 0) {\n        h += 360;\n      }\n      h /= 60;\n      i = floor(h);\n      f = h - i;\n      p = v * (1 - s);\n      q = v * (1 - s * f);\n      t = v * (1 - s * (1 - f));\n      switch (i) {\n        case 0:\n          ref = [v, t, p], r = ref[0], g = ref[1], b = ref[2];\n          break;\n        case 1:\n          ref1 = [q, v, p], r = ref1[0], g = ref1[1], b = ref1[2];\n          break;\n        case 2:\n          ref2 = [p, v, t], r = ref2[0], g = ref2[1], b = ref2[2];\n          break;\n        case 3:\n          ref3 = [p, q, v], r = ref3[0], g = ref3[1], b = ref3[2];\n          break;\n        case 4:\n          ref4 = [t, p, v], r = ref4[0], g = ref4[1], b = ref4[2];\n          break;\n        case 5:\n          ref5 = [v, p, q], r = ref5[0], g = ref5[1], b = ref5[2];\n      }\n    }\n    return [r, g, b, args.length > 3 ? args[3] : 1];\n  };\n\n  rgb2hsv = function() {\n    var b, delta, g, h, min, r, ref, s, v;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    min = Math.min(r, g, b);\n    max = Math.max(r, g, b);\n    delta = max - min;\n    v = max / 255.0;\n    if (max === 0) {\n      h = Number.NaN;\n      s = 0;\n    } else {\n      s = delta / max;\n      if (r === max) {\n        h = (g - b) / delta;\n      }\n      if (g === max) {\n        h = 2 + (b - r) / delta;\n      }\n      if (b === max) {\n        h = 4 + (r - g) / delta;\n      }\n      h *= 60;\n      if (h < 0) {\n        h += 360;\n      }\n    }\n    return [h, s, v];\n  };\n\n  chroma.hsv = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['hsv']), function(){});\n  };\n\n  _input.hsv = hsv2rgb;\n\n  Color.prototype.hsv = function() {\n    return rgb2hsv(this._rgb);\n  };\n\n  num2rgb = function(num) {\n    var b, g, r;\n    if (type(num) === \"number\" && num >= 0 && num <= 0xFFFFFF) {\n      r = num >> 16;\n      g = (num >> 8) & 0xFF;\n      b = num & 0xFF;\n      return [r, g, b, 1];\n    }\n    console.warn(\"unknown num color: \" + num);\n    return [0, 0, 0, 1];\n  };\n\n  rgb2num = function() {\n    var b, g, r, ref;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    return (r << 16) + (g << 8) + b;\n  };\n\n  chroma.num = function(num) {\n    return new Color(num, 'num');\n  };\n\n  Color.prototype.num = function(mode) {\n    if (mode == null) {\n      mode = 'rgb';\n    }\n    return rgb2num(this._rgb, mode);\n  };\n\n  _input.num = num2rgb;\n\n  _guess_formats.push({\n    p: 1,\n    test: function(n) {\n      if (arguments.length === 1 && type(n) === \"number\" && n >= 0 && n <= 0xFFFFFF) {\n        return 'num';\n      }\n    }\n  });\n\n  hcg2rgb = function() {\n    var _c, _g, args, b, c, f, g, h, i, p, q, r, ref, ref1, ref2, ref3, ref4, ref5, t, v;\n    args = unpack(arguments);\n    h = args[0], c = args[1], _g = args[2];\n    c = c / 100;\n    g = g / 100 * 255;\n    _c = c * 255;\n    if (c === 0) {\n      r = g = b = _g;\n    } else {\n      if (h === 360) {\n        h = 0;\n      }\n      if (h > 360) {\n        h -= 360;\n      }\n      if (h < 0) {\n        h += 360;\n      }\n      h /= 60;\n      i = floor(h);\n      f = h - i;\n      p = _g * (1 - c);\n      q = p + _c * (1 - f);\n      t = p + _c * f;\n      v = p + _c;\n      switch (i) {\n        case 0:\n          ref = [v, t, p], r = ref[0], g = ref[1], b = ref[2];\n          break;\n        case 1:\n          ref1 = [q, v, p], r = ref1[0], g = ref1[1], b = ref1[2];\n          break;\n        case 2:\n          ref2 = [p, v, t], r = ref2[0], g = ref2[1], b = ref2[2];\n          break;\n        case 3:\n          ref3 = [p, q, v], r = ref3[0], g = ref3[1], b = ref3[2];\n          break;\n        case 4:\n          ref4 = [t, p, v], r = ref4[0], g = ref4[1], b = ref4[2];\n          break;\n        case 5:\n          ref5 = [v, p, q], r = ref5[0], g = ref5[1], b = ref5[2];\n      }\n    }\n    return [r, g, b, args.length > 3 ? args[3] : 1];\n  };\n\n  rgb2hcg = function() {\n    var _g, b, c, delta, g, h, min, r, ref;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    min = Math.min(r, g, b);\n    max = Math.max(r, g, b);\n    delta = max - min;\n    c = delta * 100 / 255;\n    _g = min / (255 - delta) * 100;\n    if (delta === 0) {\n      h = Number.NaN;\n    } else {\n      if (r === max) {\n        h = (g - b) / delta;\n      }\n      if (g === max) {\n        h = 2 + (b - r) / delta;\n      }\n      if (b === max) {\n        h = 4 + (r - g) / delta;\n      }\n      h *= 60;\n      if (h < 0) {\n        h += 360;\n      }\n    }\n    return [h, c, _g];\n  };\n\n  chroma.hcg = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['hcg']), function(){});\n  };\n\n  _input.hcg = hcg2rgb;\n\n  Color.prototype.hcg = function() {\n    return rgb2hcg(this._rgb);\n  };\n\n  css2rgb = function(css) {\n    var aa, ab, hsl, i, m, o, rgb, w;\n    css = css.toLowerCase();\n    if ((chroma.colors != null) && chroma.colors[css]) {\n      return hex2rgb(chroma.colors[css]);\n    }\n    if (m = css.match(/rgb\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*\\)/)) {\n      rgb = m.slice(1, 4);\n      for (i = o = 0; o <= 2; i = ++o) {\n        rgb[i] = +rgb[i];\n      }\n      rgb[3] = 1;\n    } else if (m = css.match(/rgba\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)) {\n      rgb = m.slice(1, 5);\n      for (i = w = 0; w <= 3; i = ++w) {\n        rgb[i] = +rgb[i];\n      }\n    } else if (m = css.match(/rgb\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/)) {\n      rgb = m.slice(1, 4);\n      for (i = aa = 0; aa <= 2; i = ++aa) {\n        rgb[i] = round(rgb[i] * 2.55);\n      }\n      rgb[3] = 1;\n    } else if (m = css.match(/rgba\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)) {\n      rgb = m.slice(1, 5);\n      for (i = ab = 0; ab <= 2; i = ++ab) {\n        rgb[i] = round(rgb[i] * 2.55);\n      }\n      rgb[3] = +rgb[3];\n    } else if (m = css.match(/hsl\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/)) {\n      hsl = m.slice(1, 4);\n      hsl[1] *= 0.01;\n      hsl[2] *= 0.01;\n      rgb = hsl2rgb(hsl);\n      rgb[3] = 1;\n    } else if (m = css.match(/hsla\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)) {\n      hsl = m.slice(1, 4);\n      hsl[1] *= 0.01;\n      hsl[2] *= 0.01;\n      rgb = hsl2rgb(hsl);\n      rgb[3] = +m[4];\n    }\n    return rgb;\n  };\n\n  rgb2css = function(rgba) {\n    var mode;\n    mode = rgba[3] < 1 ? 'rgba' : 'rgb';\n    if (mode === 'rgb') {\n      return mode + '(' + rgba.slice(0, 3).map(round).join(',') + ')';\n    } else if (mode === 'rgba') {\n      return mode + '(' + rgba.slice(0, 3).map(round).join(',') + ',' + rgba[3] + ')';\n    } else {\n\n    }\n  };\n\n  rnd = function(a) {\n    return round(a * 100) / 100;\n  };\n\n  hsl2css = function(hsl, alpha) {\n    var mode;\n    mode = alpha < 1 ? 'hsla' : 'hsl';\n    hsl[0] = rnd(hsl[0] || 0);\n    hsl[1] = rnd(hsl[1] * 100) + '%';\n    hsl[2] = rnd(hsl[2] * 100) + '%';\n    if (mode === 'hsla') {\n      hsl[3] = alpha;\n    }\n    return mode + '(' + hsl.join(',') + ')';\n  };\n\n  _input.css = function(h) {\n    return css2rgb(h);\n  };\n\n  chroma.css = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['css']), function(){});\n  };\n\n  Color.prototype.css = function(mode) {\n    if (mode == null) {\n      mode = 'rgb';\n    }\n    if (mode.slice(0, 3) === 'rgb') {\n      return rgb2css(this._rgb);\n    } else if (mode.slice(0, 3) === 'hsl') {\n      return hsl2css(this.hsl(), this.alpha());\n    }\n  };\n\n  _input.named = function(name) {\n    return hex2rgb(w3cx11[name]);\n  };\n\n  _guess_formats.push({\n    p: 5,\n    test: function(n) {\n      if (arguments.length === 1 && (w3cx11[n] != null)) {\n        return 'named';\n      }\n    }\n  });\n\n  Color.prototype.name = function(n) {\n    var h, k;\n    if (arguments.length) {\n      if (w3cx11[n]) {\n        this._rgb = hex2rgb(w3cx11[n]);\n      }\n      this._rgb[3] = 1;\n      this;\n    }\n    h = this.hex('rgb');\n    for (k in w3cx11) {\n      if (h === w3cx11[k]) {\n        return k;\n      }\n    }\n    return h;\n  };\n\n  lch2lab = function() {\n\n    /*\n    Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n    These formulas were invented by David Dalrymple to obtain maximum contrast without going\n    out of gamut if the parameters are in the range 0-1.\n    \n    A saturation multiplier was added by Gregor Aisch\n     */\n    var c, h, l, ref;\n    ref = unpack(arguments), l = ref[0], c = ref[1], h = ref[2];\n    h = h * DEG2RAD;\n    return [l, cos(h) * c, sin(h) * c];\n  };\n\n  lch2rgb = function() {\n    var L, a, args, b, c, g, h, l, r, ref, ref1;\n    args = unpack(arguments);\n    l = args[0], c = args[1], h = args[2];\n    ref = lch2lab(l, c, h), L = ref[0], a = ref[1], b = ref[2];\n    ref1 = lab2rgb(L, a, b), r = ref1[0], g = ref1[1], b = ref1[2];\n    return [r, g, b, args.length > 3 ? args[3] : 1];\n  };\n\n  lab2lch = function() {\n    var a, b, c, h, l, ref;\n    ref = unpack(arguments), l = ref[0], a = ref[1], b = ref[2];\n    c = sqrt(a * a + b * b);\n    h = (atan2(b, a) * RAD2DEG + 360) % 360;\n    if (round(c * 10000) === 0) {\n      h = Number.NaN;\n    }\n    return [l, c, h];\n  };\n\n  rgb2lch = function() {\n    var a, b, g, l, r, ref, ref1;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    ref1 = rgb2lab(r, g, b), l = ref1[0], a = ref1[1], b = ref1[2];\n    return lab2lch(l, a, b);\n  };\n\n  chroma.lch = function() {\n    var args;\n    args = unpack(arguments);\n    return new Color(args, 'lch');\n  };\n\n  chroma.hcl = function() {\n    var args;\n    args = unpack(arguments);\n    return new Color(args, 'hcl');\n  };\n\n  _input.lch = lch2rgb;\n\n  _input.hcl = function() {\n    var c, h, l, ref;\n    ref = unpack(arguments), h = ref[0], c = ref[1], l = ref[2];\n    return lch2rgb([l, c, h]);\n  };\n\n  Color.prototype.lch = function() {\n    return rgb2lch(this._rgb);\n  };\n\n  Color.prototype.hcl = function() {\n    return rgb2lch(this._rgb).reverse();\n  };\n\n  rgb2cmyk = function(mode) {\n    var b, c, f, g, k, m, r, ref, y;\n    if (mode == null) {\n      mode = 'rgb';\n    }\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    r = r / 255;\n    g = g / 255;\n    b = b / 255;\n    k = 1 - Math.max(r, Math.max(g, b));\n    f = k < 1 ? 1 / (1 - k) : 0;\n    c = (1 - r - k) * f;\n    m = (1 - g - k) * f;\n    y = (1 - b - k) * f;\n    return [c, m, y, k];\n  };\n\n  cmyk2rgb = function() {\n    var alpha, args, b, c, g, k, m, r, y;\n    args = unpack(arguments);\n    c = args[0], m = args[1], y = args[2], k = args[3];\n    alpha = args.length > 4 ? args[4] : 1;\n    if (k === 1) {\n      return [0, 0, 0, alpha];\n    }\n    r = c >= 1 ? 0 : 255 * (1 - c) * (1 - k);\n    g = m >= 1 ? 0 : 255 * (1 - m) * (1 - k);\n    b = y >= 1 ? 0 : 255 * (1 - y) * (1 - k);\n    return [r, g, b, alpha];\n  };\n\n  _input.cmyk = function() {\n    return cmyk2rgb(unpack(arguments));\n  };\n\n  chroma.cmyk = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['cmyk']), function(){});\n  };\n\n  Color.prototype.cmyk = function() {\n    return rgb2cmyk(this._rgb);\n  };\n\n  _input.gl = function() {\n    var i, k, o, rgb, v;\n    rgb = (function() {\n      var ref, results;\n      ref = unpack(arguments);\n      results = [];\n      for (k in ref) {\n        v = ref[k];\n        results.push(v);\n      }\n      return results;\n    }).apply(this, arguments);\n    for (i = o = 0; o <= 2; i = ++o) {\n      rgb[i] *= 255;\n    }\n    return rgb;\n  };\n\n  chroma.gl = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['gl']), function(){});\n  };\n\n  Color.prototype.gl = function() {\n    var rgb;\n    rgb = this._rgb;\n    return [rgb[0] / 255, rgb[1] / 255, rgb[2] / 255, rgb[3]];\n  };\n\n  rgb2luminance = function(r, g, b) {\n    var ref;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    r = luminance_x(r);\n    g = luminance_x(g);\n    b = luminance_x(b);\n    return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n  };\n\n  luminance_x = function(x) {\n    x /= 255;\n    if (x <= 0.03928) {\n      return x / 12.92;\n    } else {\n      return pow((x + 0.055) / 1.055, 2.4);\n    }\n  };\n\n  interpolate_rgb = function(col1, col2, f, m) {\n    var xyz0, xyz1;\n    xyz0 = col1._rgb;\n    xyz1 = col2._rgb;\n    return new Color(xyz0[0] + f * (xyz1[0] - xyz0[0]), xyz0[1] + f * (xyz1[1] - xyz0[1]), xyz0[2] + f * (xyz1[2] - xyz0[2]), m);\n  };\n\n  _interpolators.push(['rgb', interpolate_rgb]);\n\n  Color.prototype.luminance = function(lum, mode) {\n    var cur_lum, eps, max_iter, rgba, test;\n    if (mode == null) {\n      mode = 'rgb';\n    }\n    if (!arguments.length) {\n      return rgb2luminance(this._rgb);\n    }\n    rgba = this._rgb;\n    if (lum === 0) {\n      rgba = [0, 0, 0, this._rgb[3]];\n    } else if (lum === 1) {\n      rgba = [255, 255, 255, this[3]];\n    } else {\n      cur_lum = rgb2luminance(this._rgb);\n      eps = 1e-7;\n      max_iter = 20;\n      test = function(l, h) {\n        var lm, m;\n        m = l.interpolate(h, 0.5, mode);\n        lm = m.luminance();\n        if (Math.abs(lum - lm) < eps || !max_iter--) {\n          return m;\n        }\n        if (lm > lum) {\n          return test(l, m);\n        }\n        return test(m, h);\n      };\n      if (cur_lum > lum) {\n        rgba = test(chroma('black'), this).rgba();\n      } else {\n        rgba = test(this, chroma('white')).rgba();\n      }\n    }\n    return chroma(rgba).alpha(this.alpha());\n  };\n\n  temperature2rgb = function(kelvin) {\n    var b, g, r, temp;\n    temp = kelvin / 100;\n    if (temp < 66) {\n      r = 255;\n      g = -155.25485562709179 - 0.44596950469579133 * (g = temp - 2) + 104.49216199393888 * log(g);\n      b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp - 10) + 115.67994401066147 * log(b);\n    } else {\n      r = 351.97690566805693 + 0.114206453784165 * (r = temp - 55) - 40.25366309332127 * log(r);\n      g = 325.4494125711974 + 0.07943456536662342 * (g = temp - 50) - 28.0852963507957 * log(g);\n      b = 255;\n    }\n    return [r, g, b];\n  };\n\n  rgb2temperature = function() {\n    var b, eps, g, maxTemp, minTemp, r, ref, rgb, temp;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    minTemp = 1000;\n    maxTemp = 40000;\n    eps = 0.4;\n    while (maxTemp - minTemp > eps) {\n      temp = (maxTemp + minTemp) * 0.5;\n      rgb = temperature2rgb(temp);\n      if ((rgb[2] / rgb[0]) >= (b / r)) {\n        maxTemp = temp;\n      } else {\n        minTemp = temp;\n      }\n    }\n    return round(temp);\n  };\n\n  chroma.temperature = chroma.kelvin = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['temperature']), function(){});\n  };\n\n  _input.temperature = _input.kelvin = _input.K = temperature2rgb;\n\n  Color.prototype.temperature = function() {\n    return rgb2temperature(this._rgb);\n  };\n\n  Color.prototype.kelvin = Color.prototype.temperature;\n\n  chroma.contrast = function(a, b) {\n    var l1, l2, ref, ref1;\n    if ((ref = type(a)) === 'string' || ref === 'number') {\n      a = new Color(a);\n    }\n    if ((ref1 = type(b)) === 'string' || ref1 === 'number') {\n      b = new Color(b);\n    }\n    l1 = a.luminance();\n    l2 = b.luminance();\n    if (l1 > l2) {\n      return (l1 + 0.05) / (l2 + 0.05);\n    } else {\n      return (l2 + 0.05) / (l1 + 0.05);\n    }\n  };\n\n  chroma.distance = function(a, b, mode) {\n    var d, i, l1, l2, ref, ref1, sum_sq;\n    if (mode == null) {\n      mode = 'lab';\n    }\n    if ((ref = type(a)) === 'string' || ref === 'number') {\n      a = new Color(a);\n    }\n    if ((ref1 = type(b)) === 'string' || ref1 === 'number') {\n      b = new Color(b);\n    }\n    l1 = a.get(mode);\n    l2 = b.get(mode);\n    sum_sq = 0;\n    for (i in l1) {\n      d = (l1[i] || 0) - (l2[i] || 0);\n      sum_sq += d * d;\n    }\n    return Math.sqrt(sum_sq);\n  };\n\n  chroma.deltaE = function(a, b, L, C) {\n    var L1, L2, a1, a2, b1, b2, c1, c2, c4, dH2, delA, delB, delC, delL, f, h1, ref, ref1, ref2, ref3, sc, sh, sl, t, v1, v2, v3;\n    if (L == null) {\n      L = 1;\n    }\n    if (C == null) {\n      C = 1;\n    }\n    if ((ref = type(a)) === 'string' || ref === 'number') {\n      a = new Color(a);\n    }\n    if ((ref1 = type(b)) === 'string' || ref1 === 'number') {\n      b = new Color(b);\n    }\n    ref2 = a.lab(), L1 = ref2[0], a1 = ref2[1], b1 = ref2[2];\n    ref3 = b.lab(), L2 = ref3[0], a2 = ref3[1], b2 = ref3[2];\n    c1 = sqrt(a1 * a1 + b1 * b1);\n    c2 = sqrt(a2 * a2 + b2 * b2);\n    sl = L1 < 16.0 ? 0.511 : (0.040975 * L1) / (1.0 + 0.01765 * L1);\n    sc = (0.0638 * c1) / (1.0 + 0.0131 * c1) + 0.638;\n    h1 = c1 < 0.000001 ? 0.0 : (atan2(b1, a1) * 180.0) / PI;\n    while (h1 < 0) {\n      h1 += 360;\n    }\n    while (h1 >= 360) {\n      h1 -= 360;\n    }\n    t = (h1 >= 164.0) && (h1 <= 345.0) ? 0.56 + abs(0.2 * cos((PI * (h1 + 168.0)) / 180.0)) : 0.36 + abs(0.4 * cos((PI * (h1 + 35.0)) / 180.0));\n    c4 = c1 * c1 * c1 * c1;\n    f = sqrt(c4 / (c4 + 1900.0));\n    sh = sc * (f * t + 1.0 - f);\n    delL = L1 - L2;\n    delC = c1 - c2;\n    delA = a1 - a2;\n    delB = b1 - b2;\n    dH2 = delA * delA + delB * delB - delC * delC;\n    v1 = delL / (L * sl);\n    v2 = delC / (C * sc);\n    v3 = sh;\n    return sqrt(v1 * v1 + v2 * v2 + (dH2 / (v3 * v3)));\n  };\n\n  Color.prototype.get = function(modechan) {\n    var channel, i, me, mode, ref, src;\n    me = this;\n    ref = modechan.split('.'), mode = ref[0], channel = ref[1];\n    src = me[mode]();\n    if (channel) {\n      i = mode.indexOf(channel);\n      if (i > -1) {\n        return src[i];\n      } else {\n        return console.warn('unknown channel ' + channel + ' in mode ' + mode);\n      }\n    } else {\n      return src;\n    }\n  };\n\n  Color.prototype.set = function(modechan, value) {\n    var channel, i, me, mode, ref, src;\n    me = this;\n    ref = modechan.split('.'), mode = ref[0], channel = ref[1];\n    if (channel) {\n      src = me[mode]();\n      i = mode.indexOf(channel);\n      if (i > -1) {\n        if (type(value) === 'string') {\n          switch (value.charAt(0)) {\n            case '+':\n              src[i] += +value;\n              break;\n            case '-':\n              src[i] += +value;\n              break;\n            case '*':\n              src[i] *= +(value.substr(1));\n              break;\n            case '/':\n              src[i] /= +(value.substr(1));\n              break;\n            default:\n              src[i] = +value;\n          }\n        } else {\n          src[i] = value;\n        }\n      } else {\n        console.warn('unknown channel ' + channel + ' in mode ' + mode);\n      }\n    } else {\n      src = value;\n    }\n    return chroma(src, mode).alpha(me.alpha());\n  };\n\n  Color.prototype.clipped = function() {\n    return this._rgb._clipped || false;\n  };\n\n  Color.prototype.alpha = function(a) {\n    if (arguments.length) {\n      return chroma.rgb([this._rgb[0], this._rgb[1], this._rgb[2], a]);\n    }\n    return this._rgb[3];\n  };\n\n  Color.prototype.darken = function(amount) {\n    var lab, me;\n    if (amount == null) {\n      amount = 1;\n    }\n    me = this;\n    lab = me.lab();\n    lab[0] -= LAB_CONSTANTS.Kn * amount;\n    return chroma.lab(lab).alpha(me.alpha());\n  };\n\n  Color.prototype.brighten = function(amount) {\n    if (amount == null) {\n      amount = 1;\n    }\n    return this.darken(-amount);\n  };\n\n  Color.prototype.darker = Color.prototype.darken;\n\n  Color.prototype.brighter = Color.prototype.brighten;\n\n  Color.prototype.saturate = function(amount) {\n    var lch, me;\n    if (amount == null) {\n      amount = 1;\n    }\n    me = this;\n    lch = me.lch();\n    lch[1] += amount * LAB_CONSTANTS.Kn;\n    if (lch[1] < 0) {\n      lch[1] = 0;\n    }\n    return chroma.lch(lch).alpha(me.alpha());\n  };\n\n  Color.prototype.desaturate = function(amount) {\n    if (amount == null) {\n      amount = 1;\n    }\n    return this.saturate(-amount);\n  };\n\n  Color.prototype.premultiply = function() {\n    var a, rgb;\n    rgb = this.rgb();\n    a = this.alpha();\n    return chroma(rgb[0] * a, rgb[1] * a, rgb[2] * a, a);\n  };\n\n  blend = function(bottom, top, mode) {\n    if (!blend[mode]) {\n      throw 'unknown blend mode ' + mode;\n    }\n    return blend[mode](bottom, top);\n  };\n\n  blend_f = function(f) {\n    return function(bottom, top) {\n      var c0, c1;\n      c0 = chroma(top).rgb();\n      c1 = chroma(bottom).rgb();\n      return chroma(f(c0, c1), 'rgb');\n    };\n  };\n\n  each = function(f) {\n    return function(c0, c1) {\n      var i, o, out;\n      out = [];\n      for (i = o = 0; o <= 3; i = ++o) {\n        out[i] = f(c0[i], c1[i]);\n      }\n      return out;\n    };\n  };\n\n  normal = function(a, b) {\n    return a;\n  };\n\n  multiply = function(a, b) {\n    return a * b / 255;\n  };\n\n  darken = function(a, b) {\n    if (a > b) {\n      return b;\n    } else {\n      return a;\n    }\n  };\n\n  lighten = function(a, b) {\n    if (a > b) {\n      return a;\n    } else {\n      return b;\n    }\n  };\n\n  screen = function(a, b) {\n    return 255 * (1 - (1 - a / 255) * (1 - b / 255));\n  };\n\n  overlay = function(a, b) {\n    if (b < 128) {\n      return 2 * a * b / 255;\n    } else {\n      return 255 * (1 - 2 * (1 - a / 255) * (1 - b / 255));\n    }\n  };\n\n  burn = function(a, b) {\n    return 255 * (1 - (1 - b / 255) / (a / 255));\n  };\n\n  dodge = function(a, b) {\n    if (a === 255) {\n      return 255;\n    }\n    a = 255 * (b / 255) / (1 - a / 255);\n    if (a > 255) {\n      return 255;\n    } else {\n      return a;\n    }\n  };\n\n  blend.normal = blend_f(each(normal));\n\n  blend.multiply = blend_f(each(multiply));\n\n  blend.screen = blend_f(each(screen));\n\n  blend.overlay = blend_f(each(overlay));\n\n  blend.darken = blend_f(each(darken));\n\n  blend.lighten = blend_f(each(lighten));\n\n  blend.dodge = blend_f(each(dodge));\n\n  blend.burn = blend_f(each(burn));\n\n  chroma.blend = blend;\n\n  chroma.analyze = function(data) {\n    var len, o, r, val;\n    r = {\n      min: Number.MAX_VALUE,\n      max: Number.MAX_VALUE * -1,\n      sum: 0,\n      values: [],\n      count: 0\n    };\n    for (o = 0, len = data.length; o < len; o++) {\n      val = data[o];\n      if ((val != null) && !isNaN(val)) {\n        r.values.push(val);\n        r.sum += val;\n        if (val < r.min) {\n          r.min = val;\n        }\n        if (val > r.max) {\n          r.max = val;\n        }\n        r.count += 1;\n      }\n    }\n    r.domain = [r.min, r.max];\n    r.limits = function(mode, num) {\n      return chroma.limits(r, mode, num);\n    };\n    return r;\n  };\n\n  chroma.scale = function(colors, positions) {\n    var _classes, _colorCache, _colors, _correctLightness, _domain, _fixed, _gamma, _max, _min, _mode, _nacol, _out, _padding, _pos, _spread, _useCache, classifyValue, f, getClass, getColor, resetCache, setColors, tmap;\n    _mode = 'rgb';\n    _nacol = chroma('#ccc');\n    _spread = 0;\n    _fixed = false;\n    _domain = [0, 1];\n    _pos = [];\n    _padding = [0, 0];\n    _classes = false;\n    _colors = [];\n    _out = false;\n    _min = 0;\n    _max = 1;\n    _correctLightness = false;\n    _colorCache = {};\n    _useCache = true;\n    _gamma = 1;\n    setColors = function(colors) {\n      var c, col, o, ref, ref1, w;\n      if (colors == null) {\n        colors = ['#fff', '#000'];\n      }\n      if ((colors != null) && type(colors) === 'string' && (chroma.brewer != null)) {\n        colors = chroma.brewer[colors] || chroma.brewer[colors.toLowerCase()] || colors;\n      }\n      if (type(colors) === 'array') {\n        if (colors.length === 1) {\n          colors = [colors[0], colors[0]];\n        }\n        colors = colors.slice(0);\n        for (c = o = 0, ref = colors.length - 1; 0 <= ref ? o <= ref : o >= ref; c = 0 <= ref ? ++o : --o) {\n          col = colors[c];\n          if (type(col) === \"string\") {\n            colors[c] = chroma(col);\n          }\n        }\n        _pos.length = 0;\n        for (c = w = 0, ref1 = colors.length - 1; 0 <= ref1 ? w <= ref1 : w >= ref1; c = 0 <= ref1 ? ++w : --w) {\n          _pos.push(c / (colors.length - 1));\n        }\n      }\n      resetCache();\n      return _colors = colors;\n    };\n    getClass = function(value) {\n      var i, n;\n      if (_classes != null) {\n        n = _classes.length - 1;\n        i = 0;\n        while (i < n && value >= _classes[i]) {\n          i++;\n        }\n        return i - 1;\n      }\n      return 0;\n    };\n    tmap = function(t) {\n      return t;\n    };\n    classifyValue = function(value) {\n      var i, maxc, minc, n, val;\n      val = value;\n      if (_classes.length > 2) {\n        n = _classes.length - 1;\n        i = getClass(value);\n        minc = _classes[0] + (_classes[1] - _classes[0]) * (0 + _spread * 0.5);\n        maxc = _classes[n - 1] + (_classes[n] - _classes[n - 1]) * (1 - _spread * 0.5);\n        val = _min + ((_classes[i] + (_classes[i + 1] - _classes[i]) * 0.5 - minc) / (maxc - minc)) * (_max - _min);\n      }\n      return val;\n    };\n    getColor = function(val, bypassMap) {\n      var c, col, i, k, o, p, ref, t;\n      if (bypassMap == null) {\n        bypassMap = false;\n      }\n      if (isNaN(val) || val === null) {\n        return _nacol;\n      }\n      if (!bypassMap) {\n        if (_classes && _classes.length > 2) {\n          c = getClass(val);\n          t = c / (_classes.length - 2);\n        } else if (_max !== _min) {\n          t = (val - _min) / (_max - _min);\n        } else {\n          t = 1;\n        }\n      } else {\n        t = val;\n      }\n      if (!bypassMap) {\n        t = tmap(t);\n      }\n      if (_gamma !== 1) {\n        t = pow(t, _gamma);\n      }\n      t = _padding[0] + (t * (1 - _padding[0] - _padding[1]));\n      t = Math.min(1, Math.max(0, t));\n      k = Math.floor(t * 10000);\n      if (_useCache && _colorCache[k]) {\n        col = _colorCache[k];\n      } else {\n        if (type(_colors) === 'array') {\n          for (i = o = 0, ref = _pos.length - 1; 0 <= ref ? o <= ref : o >= ref; i = 0 <= ref ? ++o : --o) {\n            p = _pos[i];\n            if (t <= p) {\n              col = _colors[i];\n              break;\n            }\n            if (t >= p && i === _pos.length - 1) {\n              col = _colors[i];\n              break;\n            }\n            if (t > p && t < _pos[i + 1]) {\n              t = (t - p) / (_pos[i + 1] - p);\n              col = chroma.interpolate(_colors[i], _colors[i + 1], t, _mode);\n              break;\n            }\n          }\n        } else if (type(_colors) === 'function') {\n          col = _colors(t);\n        }\n        if (_useCache) {\n          _colorCache[k] = col;\n        }\n      }\n      return col;\n    };\n    resetCache = function() {\n      return _colorCache = {};\n    };\n    setColors(colors);\n    f = function(v) {\n      var c;\n      c = chroma(getColor(v));\n      if (_out && c[_out]) {\n        return c[_out]();\n      } else {\n        return c;\n      }\n    };\n    f.classes = function(classes) {\n      var d;\n      if (classes != null) {\n        if (type(classes) === 'array') {\n          _classes = classes;\n          _domain = [classes[0], classes[classes.length - 1]];\n        } else {\n          d = chroma.analyze(_domain);\n          if (classes === 0) {\n            _classes = [d.min, d.max];\n          } else {\n            _classes = chroma.limits(d, 'e', classes);\n          }\n        }\n        return f;\n      }\n      return _classes;\n    };\n    f.domain = function(domain) {\n      var c, d, k, len, o, ref, w;\n      if (!arguments.length) {\n        return _domain;\n      }\n      _min = domain[0];\n      _max = domain[domain.length - 1];\n      _pos = [];\n      k = _colors.length;\n      if (domain.length === k && _min !== _max) {\n        for (o = 0, len = domain.length; o < len; o++) {\n          d = domain[o];\n          _pos.push((d - _min) / (_max - _min));\n        }\n      } else {\n        for (c = w = 0, ref = k - 1; 0 <= ref ? w <= ref : w >= ref; c = 0 <= ref ? ++w : --w) {\n          _pos.push(c / (k - 1));\n        }\n      }\n      _domain = [_min, _max];\n      return f;\n    };\n    f.mode = function(_m) {\n      if (!arguments.length) {\n        return _mode;\n      }\n      _mode = _m;\n      resetCache();\n      return f;\n    };\n    f.range = function(colors, _pos) {\n      setColors(colors, _pos);\n      return f;\n    };\n    f.out = function(_o) {\n      _out = _o;\n      return f;\n    };\n    f.spread = function(val) {\n      if (!arguments.length) {\n        return _spread;\n      }\n      _spread = val;\n      return f;\n    };\n    f.correctLightness = function(v) {\n      if (v == null) {\n        v = true;\n      }\n      _correctLightness = v;\n      resetCache();\n      if (_correctLightness) {\n        tmap = function(t) {\n          var L0, L1, L_actual, L_diff, L_ideal, max_iter, pol, t0, t1;\n          L0 = getColor(0, true).lab()[0];\n          L1 = getColor(1, true).lab()[0];\n          pol = L0 > L1;\n          L_actual = getColor(t, true).lab()[0];\n          L_ideal = L0 + (L1 - L0) * t;\n          L_diff = L_actual - L_ideal;\n          t0 = 0;\n          t1 = 1;\n          max_iter = 20;\n          while (Math.abs(L_diff) > 1e-2 && max_iter-- > 0) {\n            (function() {\n              if (pol) {\n                L_diff *= -1;\n              }\n              if (L_diff < 0) {\n                t0 = t;\n                t += (t1 - t) * 0.5;\n              } else {\n                t1 = t;\n                t += (t0 - t) * 0.5;\n              }\n              L_actual = getColor(t, true).lab()[0];\n              return L_diff = L_actual - L_ideal;\n            })();\n          }\n          return t;\n        };\n      } else {\n        tmap = function(t) {\n          return t;\n        };\n      }\n      return f;\n    };\n    f.padding = function(p) {\n      if (p != null) {\n        if (type(p) === 'number') {\n          p = [p, p];\n        }\n        _padding = p;\n        return f;\n      } else {\n        return _padding;\n      }\n    };\n    f.colors = function(numColors, out) {\n      var dd, dm, i, o, ref, result, results, samples, w;\n      if (arguments.length < 2) {\n        out = 'hex';\n      }\n      result = [];\n      if (arguments.length === 0) {\n        result = _colors.slice(0);\n      } else if (numColors === 1) {\n        result = [f(0.5)];\n      } else if (numColors > 1) {\n        dm = _domain[0];\n        dd = _domain[1] - dm;\n        result = (function() {\n          results = [];\n          for (var o = 0; 0 <= numColors ? o < numColors : o > numColors; 0 <= numColors ? o++ : o--){ results.push(o); }\n          return results;\n        }).apply(this).map(function(i) {\n          return f(dm + i / (numColors - 1) * dd);\n        });\n      } else {\n        colors = [];\n        samples = [];\n        if (_classes && _classes.length > 2) {\n          for (i = w = 1, ref = _classes.length; 1 <= ref ? w < ref : w > ref; i = 1 <= ref ? ++w : --w) {\n            samples.push((_classes[i - 1] + _classes[i]) * 0.5);\n          }\n        } else {\n          samples = _domain;\n        }\n        result = samples.map(function(v) {\n          return f(v);\n        });\n      }\n      if (chroma[out]) {\n        result = result.map(function(c) {\n          return c[out]();\n        });\n      }\n      return result;\n    };\n    f.cache = function(c) {\n      if (c != null) {\n        _useCache = c;\n        return f;\n      } else {\n        return _useCache;\n      }\n    };\n    f.gamma = function(g) {\n      if (g != null) {\n        _gamma = g;\n        return f;\n      } else {\n        return _gamma;\n      }\n    };\n    f.nodata = function(d) {\n      if (d != null) {\n        _nacol = chroma(d);\n        return f;\n      } else {\n        return _nacol;\n      }\n    };\n    return f;\n  };\n\n  if (chroma.scales == null) {\n    chroma.scales = {};\n  }\n\n  chroma.scales.cool = function() {\n    return chroma.scale([chroma.hsl(180, 1, .9), chroma.hsl(250, .7, .4)]);\n  };\n\n  chroma.scales.hot = function() {\n    return chroma.scale(['#000', '#f00', '#ff0', '#fff'], [0, .25, .75, 1]).mode('rgb');\n  };\n\n  chroma.analyze = function(data, key, filter) {\n    var add, k, len, o, r, val, visit;\n    r = {\n      min: Number.MAX_VALUE,\n      max: Number.MAX_VALUE * -1,\n      sum: 0,\n      values: [],\n      count: 0\n    };\n    if (filter == null) {\n      filter = function() {\n        return true;\n      };\n    }\n    add = function(val) {\n      if ((val != null) && !isNaN(val)) {\n        r.values.push(val);\n        r.sum += val;\n        if (val < r.min) {\n          r.min = val;\n        }\n        if (val > r.max) {\n          r.max = val;\n        }\n        r.count += 1;\n      }\n    };\n    visit = function(val, k) {\n      if (filter(val, k)) {\n        if ((key != null) && type(key) === 'function') {\n          return add(key(val));\n        } else if ((key != null) && type(key) === 'string' || type(key) === 'number') {\n          return add(val[key]);\n        } else {\n          return add(val);\n        }\n      }\n    };\n    if (type(data) === 'array') {\n      for (o = 0, len = data.length; o < len; o++) {\n        val = data[o];\n        visit(val);\n      }\n    } else {\n      for (k in data) {\n        val = data[k];\n        visit(val, k);\n      }\n    }\n    r.domain = [r.min, r.max];\n    r.limits = function(mode, num) {\n      return chroma.limits(r, mode, num);\n    };\n    return r;\n  };\n\n  chroma.limits = function(data, mode, num) {\n    var aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, assignments, best, centroids, cluster, clusterSizes, dist, i, j, kClusters, limits, max_log, min, min_log, mindist, n, nb_iters, newCentroids, o, p, pb, pr, ref, ref1, ref10, ref11, ref12, ref13, ref14, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, repeat, sum, tmpKMeansBreaks, v, value, values, w;\n    if (mode == null) {\n      mode = 'equal';\n    }\n    if (num == null) {\n      num = 7;\n    }\n    if (type(data) === 'array') {\n      data = chroma.analyze(data);\n    }\n    min = data.min;\n    max = data.max;\n    sum = data.sum;\n    values = data.values.sort(function(a, b) {\n      return a - b;\n    });\n    if (num === 1) {\n      return [min, max];\n    }\n    limits = [];\n    if (mode.substr(0, 1) === 'c') {\n      limits.push(min);\n      limits.push(max);\n    }\n    if (mode.substr(0, 1) === 'e') {\n      limits.push(min);\n      for (i = o = 1, ref = num - 1; 1 <= ref ? o <= ref : o >= ref; i = 1 <= ref ? ++o : --o) {\n        limits.push(min + (i / num) * (max - min));\n      }\n      limits.push(max);\n    } else if (mode.substr(0, 1) === 'l') {\n      if (min <= 0) {\n        throw 'Logarithmic scales are only possible for values > 0';\n      }\n      min_log = Math.LOG10E * log(min);\n      max_log = Math.LOG10E * log(max);\n      limits.push(min);\n      for (i = w = 1, ref1 = num - 1; 1 <= ref1 ? w <= ref1 : w >= ref1; i = 1 <= ref1 ? ++w : --w) {\n        limits.push(pow(10, min_log + (i / num) * (max_log - min_log)));\n      }\n      limits.push(max);\n    } else if (mode.substr(0, 1) === 'q') {\n      limits.push(min);\n      for (i = aa = 1, ref2 = num - 1; 1 <= ref2 ? aa <= ref2 : aa >= ref2; i = 1 <= ref2 ? ++aa : --aa) {\n        p = (values.length - 1) * i / num;\n        pb = floor(p);\n        if (pb === p) {\n          limits.push(values[pb]);\n        } else {\n          pr = p - pb;\n          limits.push(values[pb] * (1 - pr) + values[pb + 1] * pr);\n        }\n      }\n      limits.push(max);\n    } else if (mode.substr(0, 1) === 'k') {\n\n      /*\n      implementation based on\n      http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n      simplified for 1-d input values\n       */\n      n = values.length;\n      assignments = new Array(n);\n      clusterSizes = new Array(num);\n      repeat = true;\n      nb_iters = 0;\n      centroids = null;\n      centroids = [];\n      centroids.push(min);\n      for (i = ab = 1, ref3 = num - 1; 1 <= ref3 ? ab <= ref3 : ab >= ref3; i = 1 <= ref3 ? ++ab : --ab) {\n        centroids.push(min + (i / num) * (max - min));\n      }\n      centroids.push(max);\n      while (repeat) {\n        for (j = ac = 0, ref4 = num - 1; 0 <= ref4 ? ac <= ref4 : ac >= ref4; j = 0 <= ref4 ? ++ac : --ac) {\n          clusterSizes[j] = 0;\n        }\n        for (i = ad = 0, ref5 = n - 1; 0 <= ref5 ? ad <= ref5 : ad >= ref5; i = 0 <= ref5 ? ++ad : --ad) {\n          value = values[i];\n          mindist = Number.MAX_VALUE;\n          for (j = ae = 0, ref6 = num - 1; 0 <= ref6 ? ae <= ref6 : ae >= ref6; j = 0 <= ref6 ? ++ae : --ae) {\n            dist = abs(centroids[j] - value);\n            if (dist < mindist) {\n              mindist = dist;\n              best = j;\n            }\n          }\n          clusterSizes[best]++;\n          assignments[i] = best;\n        }\n        newCentroids = new Array(num);\n        for (j = af = 0, ref7 = num - 1; 0 <= ref7 ? af <= ref7 : af >= ref7; j = 0 <= ref7 ? ++af : --af) {\n          newCentroids[j] = null;\n        }\n        for (i = ag = 0, ref8 = n - 1; 0 <= ref8 ? ag <= ref8 : ag >= ref8; i = 0 <= ref8 ? ++ag : --ag) {\n          cluster = assignments[i];\n          if (newCentroids[cluster] === null) {\n            newCentroids[cluster] = values[i];\n          } else {\n            newCentroids[cluster] += values[i];\n          }\n        }\n        for (j = ah = 0, ref9 = num - 1; 0 <= ref9 ? ah <= ref9 : ah >= ref9; j = 0 <= ref9 ? ++ah : --ah) {\n          newCentroids[j] *= 1 / clusterSizes[j];\n        }\n        repeat = false;\n        for (j = ai = 0, ref10 = num - 1; 0 <= ref10 ? ai <= ref10 : ai >= ref10; j = 0 <= ref10 ? ++ai : --ai) {\n          if (newCentroids[j] !== centroids[i]) {\n            repeat = true;\n            break;\n          }\n        }\n        centroids = newCentroids;\n        nb_iters++;\n        if (nb_iters > 200) {\n          repeat = false;\n        }\n      }\n      kClusters = {};\n      for (j = aj = 0, ref11 = num - 1; 0 <= ref11 ? aj <= ref11 : aj >= ref11; j = 0 <= ref11 ? ++aj : --aj) {\n        kClusters[j] = [];\n      }\n      for (i = ak = 0, ref12 = n - 1; 0 <= ref12 ? ak <= ref12 : ak >= ref12; i = 0 <= ref12 ? ++ak : --ak) {\n        cluster = assignments[i];\n        kClusters[cluster].push(values[i]);\n      }\n      tmpKMeansBreaks = [];\n      for (j = al = 0, ref13 = num - 1; 0 <= ref13 ? al <= ref13 : al >= ref13; j = 0 <= ref13 ? ++al : --al) {\n        tmpKMeansBreaks.push(kClusters[j][0]);\n        tmpKMeansBreaks.push(kClusters[j][kClusters[j].length - 1]);\n      }\n      tmpKMeansBreaks = tmpKMeansBreaks.sort(function(a, b) {\n        return a - b;\n      });\n      limits.push(tmpKMeansBreaks[0]);\n      for (i = am = 1, ref14 = tmpKMeansBreaks.length - 1; am <= ref14; i = am += 2) {\n        v = tmpKMeansBreaks[i];\n        if (!isNaN(v) && limits.indexOf(v) === -1) {\n          limits.push(v);\n        }\n      }\n    }\n    return limits;\n  };\n\n  hsi2rgb = function(h, s, i) {\n\n    /*\n    borrowed from here:\n    http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n     */\n    var args, b, g, r;\n    args = unpack(arguments);\n    h = args[0], s = args[1], i = args[2];\n    if (isNaN(h)) {\n      h = 0;\n    }\n    h /= 360;\n    if (h < 1 / 3) {\n      b = (1 - s) / 3;\n      r = (1 + s * cos(TWOPI * h) / cos(PITHIRD - TWOPI * h)) / 3;\n      g = 1 - (b + r);\n    } else if (h < 2 / 3) {\n      h -= 1 / 3;\n      r = (1 - s) / 3;\n      g = (1 + s * cos(TWOPI * h) / cos(PITHIRD - TWOPI * h)) / 3;\n      b = 1 - (r + g);\n    } else {\n      h -= 2 / 3;\n      g = (1 - s) / 3;\n      b = (1 + s * cos(TWOPI * h) / cos(PITHIRD - TWOPI * h)) / 3;\n      r = 1 - (g + b);\n    }\n    r = limit(i * r * 3);\n    g = limit(i * g * 3);\n    b = limit(i * b * 3);\n    return [r * 255, g * 255, b * 255, args.length > 3 ? args[3] : 1];\n  };\n\n  rgb2hsi = function() {\n\n    /*\n    borrowed from here:\n    http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n     */\n    var b, g, h, i, min, r, ref, s;\n    ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n    TWOPI = Math.PI * 2;\n    r /= 255;\n    g /= 255;\n    b /= 255;\n    min = Math.min(r, g, b);\n    i = (r + g + b) / 3;\n    s = 1 - min / i;\n    if (s === 0) {\n      h = 0;\n    } else {\n      h = ((r - g) + (r - b)) / 2;\n      h /= Math.sqrt((r - g) * (r - g) + (r - b) * (g - b));\n      h = Math.acos(h);\n      if (b > g) {\n        h = TWOPI - h;\n      }\n      h /= TWOPI;\n    }\n    return [h * 360, s, i];\n  };\n\n  chroma.hsi = function() {\n    return (function(func, args, ctor) {\n      ctor.prototype = func.prototype;\n      var child = new ctor, result = func.apply(child, args);\n      return Object(result) === result ? result : child;\n    })(Color, slice.call(arguments).concat(['hsi']), function(){});\n  };\n\n  _input.hsi = hsi2rgb;\n\n  Color.prototype.hsi = function() {\n    return rgb2hsi(this._rgb);\n  };\n\n  interpolate_hsx = function(col1, col2, f, m) {\n    var dh, hue, hue0, hue1, lbv, lbv0, lbv1, res, sat, sat0, sat1, xyz0, xyz1;\n    if (m === 'hsl') {\n      xyz0 = col1.hsl();\n      xyz1 = col2.hsl();\n    } else if (m === 'hsv') {\n      xyz0 = col1.hsv();\n      xyz1 = col2.hsv();\n    } else if (m === 'hcg') {\n      xyz0 = col1.hcg();\n      xyz1 = col2.hcg();\n    } else if (m === 'hsi') {\n      xyz0 = col1.hsi();\n      xyz1 = col2.hsi();\n    } else if (m === 'lch' || m === 'hcl') {\n      m = 'hcl';\n      xyz0 = col1.hcl();\n      xyz1 = col2.hcl();\n    }\n    if (m.substr(0, 1) === 'h') {\n      hue0 = xyz0[0], sat0 = xyz0[1], lbv0 = xyz0[2];\n      hue1 = xyz1[0], sat1 = xyz1[1], lbv1 = xyz1[2];\n    }\n    if (!isNaN(hue0) && !isNaN(hue1)) {\n      if (hue1 > hue0 && hue1 - hue0 > 180) {\n        dh = hue1 - (hue0 + 360);\n      } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n        dh = hue1 + 360 - hue0;\n      } else {\n        dh = hue1 - hue0;\n      }\n      hue = hue0 + f * dh;\n    } else if (!isNaN(hue0)) {\n      hue = hue0;\n      if ((lbv1 === 1 || lbv1 === 0) && m !== 'hsv') {\n        sat = sat0;\n      }\n    } else if (!isNaN(hue1)) {\n      hue = hue1;\n      if ((lbv0 === 1 || lbv0 === 0) && m !== 'hsv') {\n        sat = sat1;\n      }\n    } else {\n      hue = Number.NaN;\n    }\n    if (sat == null) {\n      sat = sat0 + f * (sat1 - sat0);\n    }\n    lbv = lbv0 + f * (lbv1 - lbv0);\n    return res = chroma[m](hue, sat, lbv);\n  };\n\n  _interpolators = _interpolators.concat((function() {\n    var len, o, ref, results;\n    ref = ['hsv', 'hsl', 'hsi', 'hcl', 'lch', 'hcg'];\n    results = [];\n    for (o = 0, len = ref.length; o < len; o++) {\n      m = ref[o];\n      results.push([m, interpolate_hsx]);\n    }\n    return results;\n  })());\n\n  interpolate_num = function(col1, col2, f, m) {\n    var n1, n2;\n    n1 = col1.num();\n    n2 = col2.num();\n    return chroma.num(n1 + (n2 - n1) * f, 'num');\n  };\n\n  _interpolators.push(['num', interpolate_num]);\n\n  interpolate_lab = function(col1, col2, f, m) {\n    var res, xyz0, xyz1;\n    xyz0 = col1.lab();\n    xyz1 = col2.lab();\n    return res = new Color(xyz0[0] + f * (xyz1[0] - xyz0[0]), xyz0[1] + f * (xyz1[1] - xyz0[1]), xyz0[2] + f * (xyz1[2] - xyz0[2]), m);\n  };\n\n  _interpolators.push(['lab', interpolate_lab]);\n\n}).call(this);\n", "\"use strict\";\n\nmodule.exports = function () {\n\tvar weakMap, obj;\n\n\tif (typeof WeakMap !== \"function\") return false;\n\ttry {\n\t\t// WebKit doesn't support arguments and crashes\n\t\tweakMap = new WeakMap([[obj = {}, \"one\"], [{}, \"two\"], [{}, \"three\"]]);\n\t} catch (e) {\n\t\treturn false;\n\t}\n\tif (String(weakMap) !== \"[object WeakMap]\") return false;\n\tif (typeof weakMap.set !== \"function\") return false;\n\tif (weakMap.set({}, 1) !== weakMap) return false;\n\tif (typeof weakMap.delete !== \"function\") return false;\n\tif (typeof weakMap.has !== \"function\") return false;\n\tif (weakMap.get(obj) !== \"one\") return false;\n\n\treturn true;\n};\n", "\"use strict\";\n\n// eslint-disable-next-line no-empty-function\nmodule.exports = function () {};\n", "\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n", "\"use strict\";\n\nvar create = Object.create, getPrototypeOf = Object.getPrototypeOf, plainObject = {};\n\nmodule.exports = function (/* CustomCreate*/) {\n\tvar setPrototypeOf = Object.setPrototypeOf, customCreate = arguments[0] || create;\n\tif (typeof setPrototypeOf !== \"function\") return false;\n\treturn getPrototypeOf(setPrototypeOf(customCreate(null), plainObject)) === plainObject;\n};\n", "\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n", "\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n", "// Workaround for http://code.google.com/p/v8/issues/detail?id=2804\n\n\"use strict\";\n\nvar create = Object.create, shim;\n\nif (!require(\"./set-prototype-of/is-implemented\")()) {\n\tshim = require(\"./set-prototype-of/shim\");\n}\n\nmodule.exports = (function () {\n\tvar nullObject, polyProps, desc;\n\tif (!shim) return create;\n\tif (shim.level !== 1) return create;\n\n\tnullObject = {};\n\tpolyProps = {};\n\tdesc = { configurable: false, enumerable: false, writable: true, value: undefined };\n\tObject.getOwnPropertyNames(Object.prototype).forEach(function (name) {\n\t\tif (name === \"__proto__\") {\n\t\t\tpolyProps[name] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: undefined\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\tpolyProps[name] = desc;\n\t});\n\tObject.defineProperties(nullObject, polyProps);\n\n\tObject.defineProperty(shim, \"nullPolyfill\", {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\twritable: false,\n\t\tvalue: nullObject\n\t});\n\n\treturn function (prototype, props) {\n\t\treturn create(prototype === null ? nullObject : prototype, props);\n\t};\n})();\n", "/* eslint no-proto: \"off\" */\n\n// Big thanks to @WebReflection for sorting this out\n// https://gist.github.com/WebReflection/5593554\n\n\"use strict\";\n\nvar isObject         = require(\"../is-object\")\n  , value            = require(\"../valid-value\")\n  , objIsPrototypeOf = Object.prototype.isPrototypeOf\n  , defineProperty   = Object.defineProperty\n  , nullDesc         = { configurable: true, enumerable: false, writable: true, value: undefined }\n  , validate;\n\nvalidate = function (obj, prototype) {\n\tvalue(obj);\n\tif (prototype === null || isObject(prototype)) return obj;\n\tthrow new TypeError(\"Prototype must be null or an object\");\n};\n\nmodule.exports = (function (status) {\n\tvar fn, set;\n\tif (!status) return null;\n\tif (status.level === 2) {\n\t\tif (status.set) {\n\t\t\tset = status.set;\n\t\t\tfn = function (obj, prototype) {\n\t\t\t\tset.call(validate(obj, prototype), prototype);\n\t\t\t\treturn obj;\n\t\t\t};\n\t\t} else {\n\t\t\tfn = function (obj, prototype) {\n\t\t\t\tvalidate(obj, prototype).__proto__ = prototype;\n\t\t\t\treturn obj;\n\t\t\t};\n\t\t}\n\t} else {\n\t\tfn = function self(obj, prototype) {\n\t\t\tvar isNullBase;\n\t\t\tvalidate(obj, prototype);\n\t\t\tisNullBase = objIsPrototypeOf.call(self.nullPolyfill, obj);\n\t\t\tif (isNullBase) delete self.nullPolyfill.__proto__;\n\t\t\tif (prototype === null) prototype = self.nullPolyfill;\n\t\t\tobj.__proto__ = prototype;\n\t\t\tif (isNullBase) defineProperty(self.nullPolyfill, \"__proto__\", nullDesc);\n\t\t\treturn obj;\n\t\t};\n\t}\n\treturn Object.defineProperty(fn, \"level\", {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\twritable: false,\n\t\tvalue: status.level\n\t});\n})(\n\t(function () {\n\t\tvar tmpObj1 = Object.create(null)\n\t\t  , tmpObj2 = {}\n\t\t  , set\n\t\t  , desc = Object.getOwnPropertyDescriptor(Object.prototype, \"__proto__\");\n\n\t\tif (desc) {\n\t\t\ttry {\n\t\t\t\tset = desc.set; // Opera crashes at this point\n\t\t\t\tset.call(tmpObj1, tmpObj2);\n\t\t\t} catch (ignore) {}\n\t\t\tif (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { set: set, level: 2 };\n\t\t}\n\n\t\ttmpObj1.__proto__ = tmpObj2;\n\t\tif (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 2 };\n\n\t\ttmpObj1 = {};\n\t\ttmpObj1.__proto__ = tmpObj2;\n\t\tif (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 1 };\n\n\t\treturn false;\n\t})()\n);\n\nrequire(\"../create\");\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.setPrototypeOf : require(\"./shim\");\n", "\"use strict\";\n\nvar isObject = require(\"./is-object\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n", "\"use strict\";\n\nvar generated = Object.create(null), random = Math.random;\n\nmodule.exports = function () {\n\tvar str;\n\tdo {\n\t\tstr = random().toString(36).slice(2);\n\t} while (generated[str]);\n\treturn str;\n};\n", "\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n", "\"use strict\";\n\nvar isValue = require(\"../value/is\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n", "\"use strict\";\n\nvar isObject = require(\"../object/is\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) return false;\n\ttry {\n\t\tif (!value.constructor) return false;\n\t\treturn value.constructor.prototype === value;\n\t} catch (error) {\n\t\treturn false;\n\t}\n};\n", "\"use strict\";\n\nvar isPrototype = require(\"../prototype/is\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n", "\"use strict\";\n\nvar isFunction = require(\"../function/is\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n", "\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n", "\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n", "\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n", "\"use strict\";\n\nvar keys  = require(\"../keys\")\n  , value = require(\"../valid-value\")\n  , max   = Math.max;\n\nmodule.exports = function (dest, src /*, \u2026srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n", "\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function (opts1 /*, \u2026options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (!isValue(options)) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n", "\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n", "\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString /*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? String.prototype.contains : require(\"./shim\");\n", "\"use strict\";\n\nvar isValue         = require(\"type/value/is\")\n  , isPlainFunction = require(\"type/plain-function/is\")\n  , assign          = require(\"es5-ext/object/assign\")\n  , normalizeOpts   = require(\"es5-ext/object/normalize-options\")\n  , contains        = require(\"es5-ext/string/#/contains\");\n\nvar d = (module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif (arguments.length < 2 || typeof dscr !== \"string\") {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t\tw = contains.call(dscr, \"w\");\n\t} else {\n\t\tc = w = true;\n\t\te = false;\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n});\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== \"string\") {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (!isValue(get)) {\n\t\tget = undefined;\n\t} else if (!isPlainFunction(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (!isValue(set)) {\n\t\tset = undefined;\n\t} else if (!isPlainFunction(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t} else {\n\t\tc = true;\n\t\te = false;\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n", "\"use strict\";\n\nvar objToString = Object.prototype.toString\n  , id = objToString.call((function () { return arguments; })());\n\nmodule.exports = function (value) { return objToString.call(value) === id; };\n", "\"use strict\";\n\nvar objToString = Object.prototype.toString, id = objToString.call(\"\");\n\nmodule.exports = function (value) {\n\treturn (\n\t\ttypeof value === \"string\" ||\n\t\t(value &&\n\t\t\ttypeof value === \"object\" &&\n\t\t\t(value instanceof String || objToString.call(value) === id)) ||\n\t\tfalse\n\t);\n};\n", "\"use strict\";\n\nmodule.exports = function () {\n\tif (typeof globalThis !== \"object\") return false;\n\tif (!globalThis) return false;\n\treturn globalThis.Array === Array;\n};\n", "var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of Object.prototype being sealed (via preventExtensions, seal or freeze)\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ is resolved with global context, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? globalThis : require(\"./implementation\");\n", "\"use strict\";\n\nvar global     = require(\"ext/global-this\")\n  , validTypes = { object: true, symbol: true };\n\nmodule.exports = function () {\n\tvar Symbol = global.Symbol;\n\tvar symbol;\n\tif (typeof Symbol !== \"function\") return false;\n\tsymbol = Symbol(\"test symbol\");\n\ttry { String(symbol); }\n\tcatch (e) { return false; }\n\n\t// Return 'true' also for polyfills\n\tif (!validTypes[typeof Symbol.iterator]) return false;\n\tif (!validTypes[typeof Symbol.toPrimitive]) return false;\n\tif (!validTypes[typeof Symbol.toStringTag]) return false;\n\n\treturn true;\n};\n", "\"use strict\";\n\nmodule.exports = function (value) {\n\tif (!value) return false;\n\tif (typeof value === \"symbol\") return true;\n\tif (!value.constructor) return false;\n\tif (value.constructor.name !== \"Symbol\") return false;\n\treturn value[value.constructor.toStringTag] === \"Symbol\";\n};\n", "\"use strict\";\n\nvar isSymbol = require(\"./is-symbol\");\n\nmodule.exports = function (value) {\n\tif (!isSymbol(value)) throw new TypeError(value + \" is not a symbol\");\n\treturn value;\n};\n", "\"use strict\";\n\nvar d = require(\"d\");\n\nvar create = Object.create, defineProperty = Object.defineProperty, objPrototype = Object.prototype;\n\nvar created = create(null);\nmodule.exports = function (desc) {\n\tvar postfix = 0, name, ie11BugWorkaround;\n\twhile (created[desc + (postfix || \"\")]) ++postfix;\n\tdesc += postfix || \"\";\n\tcreated[desc] = true;\n\tname = \"@@\" + desc;\n\tdefineProperty(\n\t\tobjPrototype, name,\n\t\td.gs(null, function (value) {\n\t\t\t// For IE11 issue see:\n\t\t\t// https://connect.microsoft.com/IE/feedbackdetail/view/1928508/\n\t\t\t//    ie11-broken-getters-on-dom-objects\n\t\t\t// https://github.com/medikoo/es6-symbol/issues/12\n\t\t\tif (ie11BugWorkaround) return;\n\t\t\tie11BugWorkaround = true;\n\t\t\tdefineProperty(this, name, d(value));\n\t\t\tie11BugWorkaround = false;\n\t\t})\n\t);\n\treturn name;\n};\n", "\"use strict\";\n\nvar d            = require(\"d\")\n  , NativeSymbol = require(\"ext/global-this\").Symbol;\n\nmodule.exports = function (SymbolPolyfill) {\n\treturn Object.defineProperties(SymbolPolyfill, {\n\t\t// To ensure proper interoperability with other native functions (e.g. Array.from)\n\t\t// fallback to eventual native implementation of given symbol\n\t\thasInstance: d(\n\t\t\t\"\", (NativeSymbol && NativeSymbol.hasInstance) || SymbolPolyfill(\"hasInstance\")\n\t\t),\n\t\tisConcatSpreadable: d(\n\t\t\t\"\",\n\t\t\t(NativeSymbol && NativeSymbol.isConcatSpreadable) ||\n\t\t\t\tSymbolPolyfill(\"isConcatSpreadable\")\n\t\t),\n\t\titerator: d(\"\", (NativeSymbol && NativeSymbol.iterator) || SymbolPolyfill(\"iterator\")),\n\t\tmatch: d(\"\", (NativeSymbol && NativeSymbol.match) || SymbolPolyfill(\"match\")),\n\t\treplace: d(\"\", (NativeSymbol && NativeSymbol.replace) || SymbolPolyfill(\"replace\")),\n\t\tsearch: d(\"\", (NativeSymbol && NativeSymbol.search) || SymbolPolyfill(\"search\")),\n\t\tspecies: d(\"\", (NativeSymbol && NativeSymbol.species) || SymbolPolyfill(\"species\")),\n\t\tsplit: d(\"\", (NativeSymbol && NativeSymbol.split) || SymbolPolyfill(\"split\")),\n\t\ttoPrimitive: d(\n\t\t\t\"\", (NativeSymbol && NativeSymbol.toPrimitive) || SymbolPolyfill(\"toPrimitive\")\n\t\t),\n\t\ttoStringTag: d(\n\t\t\t\"\", (NativeSymbol && NativeSymbol.toStringTag) || SymbolPolyfill(\"toStringTag\")\n\t\t),\n\t\tunscopables: d(\n\t\t\t\"\", (NativeSymbol && NativeSymbol.unscopables) || SymbolPolyfill(\"unscopables\")\n\t\t)\n\t});\n};\n", "\"use strict\";\n\nvar d              = require(\"d\")\n  , validateSymbol = require(\"../../../validate-symbol\");\n\nvar registry = Object.create(null);\n\nmodule.exports = function (SymbolPolyfill) {\n\treturn Object.defineProperties(SymbolPolyfill, {\n\t\tfor: d(function (key) {\n\t\t\tif (registry[key]) return registry[key];\n\t\t\treturn (registry[key] = SymbolPolyfill(String(key)));\n\t\t}),\n\t\tkeyFor: d(function (symbol) {\n\t\t\tvar key;\n\t\t\tvalidateSymbol(symbol);\n\t\t\tfor (key in registry) {\n\t\t\t\tif (registry[key] === symbol) return key;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t})\n\t});\n};\n", "// ES2015 Symbol polyfill for environments that do not (or partially) support it\n\n\"use strict\";\n\nvar d                    = require(\"d\")\n  , validateSymbol       = require(\"./validate-symbol\")\n  , NativeSymbol         = require(\"ext/global-this\").Symbol\n  , generateName         = require(\"./lib/private/generate-name\")\n  , setupStandardSymbols = require(\"./lib/private/setup/standard-symbols\")\n  , setupSymbolRegistry  = require(\"./lib/private/setup/symbol-registry\");\n\nvar create = Object.create\n  , defineProperties = Object.defineProperties\n  , defineProperty = Object.defineProperty;\n\nvar SymbolPolyfill, HiddenSymbol, isNativeSafe;\n\nif (typeof NativeSymbol === \"function\") {\n\ttry {\n\t\tString(NativeSymbol());\n\t\tisNativeSafe = true;\n\t} catch (ignore) {}\n} else {\n\tNativeSymbol = null;\n}\n\n// Internal constructor (not one exposed) for creating Symbol instances.\n// This one is used to ensure that `someSymbol instanceof Symbol` always return false\nHiddenSymbol = function Symbol(description) {\n\tif (this instanceof HiddenSymbol) throw new TypeError(\"Symbol is not a constructor\");\n\treturn SymbolPolyfill(description);\n};\n\n// Exposed `Symbol` constructor\n// (returns instances of HiddenSymbol)\nmodule.exports = SymbolPolyfill = function Symbol(description) {\n\tvar symbol;\n\tif (this instanceof Symbol) throw new TypeError(\"Symbol is not a constructor\");\n\tif (isNativeSafe) return NativeSymbol(description);\n\tsymbol = create(HiddenSymbol.prototype);\n\tdescription = description === undefined ? \"\" : String(description);\n\treturn defineProperties(symbol, {\n\t\t__description__: d(\"\", description),\n\t\t__name__: d(\"\", generateName(description))\n\t});\n};\n\nsetupStandardSymbols(SymbolPolyfill);\nsetupSymbolRegistry(SymbolPolyfill);\n\n// Internal tweaks for real symbol producer\ndefineProperties(HiddenSymbol.prototype, {\n\tconstructor: d(SymbolPolyfill),\n\ttoString: d(\"\", function () { return this.__name__; })\n});\n\n// Proper implementation of methods exposed on Symbol.prototype\n// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype\ndefineProperties(SymbolPolyfill.prototype, {\n\ttoString: d(function () { return \"Symbol (\" + validateSymbol(this).__description__ + \")\"; }),\n\tvalueOf: d(function () { return validateSymbol(this); })\n});\ndefineProperty(\n\tSymbolPolyfill.prototype, SymbolPolyfill.toPrimitive,\n\td(\"\", function () {\n\t\tvar symbol = validateSymbol(this);\n\t\tif (typeof symbol === \"symbol\") return symbol;\n\t\treturn symbol.toString();\n\t})\n);\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d(\"c\", \"Symbol\"));\n\n// Proper implementaton of toPrimitive and toStringTag for returned symbol instances\ndefineProperty(\n\tHiddenSymbol.prototype, SymbolPolyfill.toStringTag,\n\td(\"c\", SymbolPolyfill.prototype[SymbolPolyfill.toStringTag])\n);\n\n// Note: It's important to define `toPrimitive` as last one, as some implementations\n// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)\n// And that may invoke error in definition flow:\n// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149\ndefineProperty(\n\tHiddenSymbol.prototype, SymbolPolyfill.toPrimitive,\n\td(\"c\", SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive])\n);\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")()\n\t? require(\"ext/global-this\").Symbol\n\t: require(\"./polyfill\");\n", "// Inspired by Google Closure:\n// http://closure-library.googlecode.com/svn/docs/\n// closure_goog_array_array.js.html#goog.array.clear\n\n\"use strict\";\n\nvar value = require(\"../../object/valid-value\");\n\nmodule.exports = function () {\n\tvalue(this).length = 0;\n\treturn this;\n};\n", "\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n", "\"use strict\";\n\nvar isValue  = require(\"../value/is\")\n  , isObject = require(\"../object/is\");\n\nvar objectToString = Object.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return null;\n\tif (isObject(value)) {\n\t\t// Reject Object.prototype.toString coercion\n\t\tvar valueToString = value.toString;\n\t\tif (typeof valueToString !== \"function\") return null;\n\t\tif (valueToString === objectToString) return null;\n\t\t// Note: It can be object coming from other realm, still as there's no ES3 and CSP compliant\n\t\t// way to resolve its realm's Object.prototype.toString it's left as not addressed edge case\n\t}\n\ttry {\n\t\treturn \"\" + value; // Ensure implicit coercion\n\t} catch (error) {\n\t\treturn null;\n\t}\n};\n", "\"use strict\";\n\nmodule.exports = function (value) {\n\ttry {\n\t\treturn value.toString();\n\t} catch (error) {\n\t\ttry { return String(value); }\n\t\tcatch (error2) { return null; }\n\t}\n};\n", "\"use strict\";\n\nvar safeToString = require(\"./safe-to-string\");\n\nvar reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n\nmodule.exports = function (value) {\n\tvar string = safeToString(value);\n\tif (string === null) return \"<Non-coercible to string value>\";\n\t// Trim if too long\n\tif (string.length > 100) string = string.slice(0, 99) + \"\u2026\";\n\t// Replace eventual new lines\n\tstring = string.replace(reNewLine, function (char) {\n\t\tswitch (char) {\n\t\t\tcase \"\\n\":\n\t\t\t\treturn \"\\\\n\";\n\t\t\tcase \"\\r\":\n\t\t\t\treturn \"\\\\r\";\n\t\t\tcase \"\\u2028\":\n\t\t\t\treturn \"\\\\u2028\";\n\t\t\tcase \"\\u2029\":\n\t\t\t\treturn \"\\\\u2029\";\n\t\t\t/* istanbul ignore next */\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Unexpected character\");\n\t\t}\n\t});\n\treturn string;\n};\n", "\"use strict\";\n\nvar stringCoerce  = require(\"../string/coerce\")\n  , toShortString = require(\"./to-short-string\");\n\nmodule.exports = function (errorMessage, value, inputOptions) {\n\tif (inputOptions && inputOptions.errorMessage) {\n\t\terrorMessage = stringCoerce(inputOptions.errorMessage);\n\t}\n\n\tvar valueInsertIndex = errorMessage.indexOf(\"%v\");\n\tvar valueToken = valueInsertIndex > -1 ? toShortString(value) : null;\n\tif (inputOptions && inputOptions.name) {\n\t\tvar nameInsertIndex = errorMessage.indexOf(\"%n\");\n\t\tif (nameInsertIndex > -1) {\n\t\t\tif (valueInsertIndex > -1) {\n\t\t\t\tvar firstToken, secondToken, firstInsertIndex, secondInsertIndex;\n\t\t\t\tif (nameInsertIndex > valueInsertIndex) {\n\t\t\t\t\tfirstToken = valueToken;\n\t\t\t\t\tfirstInsertIndex = valueInsertIndex;\n\t\t\t\t\tsecondToken = inputOptions.name;\n\t\t\t\t\tsecondInsertIndex = nameInsertIndex;\n\t\t\t\t} else {\n\t\t\t\t\tfirstToken = inputOptions.name;\n\t\t\t\t\tfirstInsertIndex = nameInsertIndex;\n\t\t\t\t\tsecondToken = valueToken;\n\t\t\t\t\tsecondInsertIndex = valueInsertIndex;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\terrorMessage.slice(0, firstInsertIndex) +\n\t\t\t\t\tfirstToken +\n\t\t\t\t\terrorMessage.slice(firstInsertIndex + 2, secondInsertIndex) +\n\t\t\t\t\tsecondToken +\n\t\t\t\t\terrorMessage.slice(secondInsertIndex + 2)\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn (\n\t\t\t\terrorMessage.slice(0, nameInsertIndex) +\n\t\t\t\tinputOptions.name +\n\t\t\t\terrorMessage.slice(nameInsertIndex + 2)\n\t\t\t);\n\t\t}\n\t}\n\tif (valueInsertIndex > -1) {\n\t\treturn (\n\t\t\terrorMessage.slice(0, valueInsertIndex) +\n\t\t\tvalueToken +\n\t\t\terrorMessage.slice(valueInsertIndex + 2)\n\t\t);\n\t}\n\treturn errorMessage;\n};\n", "\"use strict\";\n\nvar isValue             = require(\"../value/is\")\n  , resolveErrorMessage = require(\"./resolve-error-message\");\n\nmodule.exports = function (value, defaultMessage, inputOptions) {\n\tif (inputOptions && !isValue(value)) {\n\t\tif (\"default\" in inputOptions) return inputOptions[\"default\"];\n\t\tif (inputOptions.isOptional) return null;\n\t}\n\tvar ErrorConstructor = (inputOptions && inputOptions.Error) || TypeError;\n\tvar error = new ErrorConstructor(resolveErrorMessage(defaultMessage, value, inputOptions));\n\tif (inputOptions && inputOptions.errorCode) error.code = inputOptions.errorCode;\n\tthrow error;\n};\n", "\"use strict\";\n\nvar resolveException = require(\"../lib/resolve-exception\")\n  , is               = require(\"./is\");\n\nmodule.exports = function (value/*, options*/) {\n\tif (is(value)) return value;\n\tvar options = arguments[1];\n\tvar errorMessage =\n\t\toptions && options.name ? \"Expected a value for %n, received %v\" : \"Cannot use %v\";\n\treturn resolveException(value, errorMessage, options);\n};\n", "\"use strict\";\n\nvar resolveException = require(\"../lib/resolve-exception\")\n  , is               = require(\"./is\");\n\nmodule.exports = function (value/*, options*/) {\n\tif (is(value)) return value;\n\tvar options = arguments[1];\n\tvar errorMessage =\n\t\toptions && options.name\n\t\t\t? \"Expected a plain function for %n, received %v\"\n\t\t\t: \"%v is not a plain function\";\n\treturn resolveException(value, errorMessage, options);\n};\n", "\"use strict\";\n\nmodule.exports = function () {\n\tvar from = Array.from, arr, result;\n\tif (typeof from !== \"function\") return false;\n\tarr = [\"raz\", \"dwa\"];\n\tresult = from(arr);\n\treturn Boolean(result && result !== arr && result[1] === \"dwa\");\n};\n", "\"use strict\";\n\nvar objToString = Object.prototype.toString\n  , isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n\nmodule.exports = function (value) {\n\treturn typeof value === \"function\" && isFunctionStringTag(objToString.call(value));\n};\n", "\"use strict\";\n\nmodule.exports = function () {\n\tvar sign = Math.sign;\n\tif (typeof sign !== \"function\") return false;\n\treturn sign(10) === 1 && sign(-20) === -1;\n};\n", "\"use strict\";\n\nmodule.exports = function (value) {\n\tvalue = Number(value);\n\tif (isNaN(value) || value === 0) return value;\n\treturn value > 0 ? 1 : -1;\n};\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Math.sign : require(\"./shim\");\n", "\"use strict\";\n\nvar sign  = require(\"../math/sign\")\n  , abs   = Math.abs\n  , floor = Math.floor;\n\nmodule.exports = function (value) {\n\tif (isNaN(value)) return 0;\n\tvalue = Number(value);\n\tif (value === 0 || !isFinite(value)) return value;\n\treturn sign(value) * floor(abs(value));\n};\n", "\"use strict\";\n\nvar toInteger = require(\"./to-integer\")\n  , max       = Math.max;\n\nmodule.exports = function (value) { return max(0, toInteger(value)); };\n", "\"use strict\";\n\nvar iteratorSymbol = require(\"es6-symbol\").iterator\n  , isArguments    = require(\"../../function/is-arguments\")\n  , isFunction     = require(\"../../function/is-function\")\n  , toPosInt       = require(\"../../number/to-pos-integer\")\n  , callable       = require(\"../../object/valid-callable\")\n  , validValue     = require(\"../../object/valid-value\")\n  , isValue        = require(\"../../object/is-value\")\n  , isString       = require(\"../../string/is-string\")\n  , isArray        = Array.isArray\n  , call           = Function.prototype.call\n  , desc           = { configurable: true, enumerable: true, writable: true, value: null }\n  , defineProperty = Object.defineProperty;\n\n// eslint-disable-next-line complexity, max-lines-per-function\nmodule.exports = function (arrayLike /*, mapFn, thisArg*/) {\n\tvar mapFn = arguments[1]\n\t  , thisArg = arguments[2]\n\t  , Context\n\t  , i\n\t  , j\n\t  , arr\n\t  , length\n\t  , code\n\t  , iterator\n\t  , result\n\t  , getIterator\n\t  , value;\n\n\tarrayLike = Object(validValue(arrayLike));\n\n\tif (isValue(mapFn)) callable(mapFn);\n\tif (!this || this === Array || !isFunction(this)) {\n\t\t// Result: Plain array\n\t\tif (!mapFn) {\n\t\t\tif (isArguments(arrayLike)) {\n\t\t\t\t// Source: Arguments\n\t\t\t\tlength = arrayLike.length;\n\t\t\t\tif (length !== 1) return Array.apply(null, arrayLike);\n\t\t\t\tarr = new Array(1);\n\t\t\t\tarr[0] = arrayLike[0];\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\tif (isArray(arrayLike)) {\n\t\t\t\t// Source: Array\n\t\t\t\tarr = new Array((length = arrayLike.length));\n\t\t\t\tfor (i = 0; i < length; ++i) arr[i] = arrayLike[i];\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t}\n\t\tarr = [];\n\t} else {\n\t\t// Result: Non plain array\n\t\tContext = this;\n\t}\n\n\tif (!isArray(arrayLike)) {\n\t\tif ((getIterator = arrayLike[iteratorSymbol]) !== undefined) {\n\t\t\t// Source: Iterator\n\t\t\titerator = callable(getIterator).call(arrayLike);\n\t\t\tif (Context) arr = new Context();\n\t\t\tresult = iterator.next();\n\t\t\ti = 0;\n\t\t\twhile (!result.done) {\n\t\t\t\tvalue = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;\n\t\t\t\tif (Context) {\n\t\t\t\t\tdesc.value = value;\n\t\t\t\t\tdefineProperty(arr, i, desc);\n\t\t\t\t} else {\n\t\t\t\t\tarr[i] = value;\n\t\t\t\t}\n\t\t\t\tresult = iterator.next();\n\t\t\t\t++i;\n\t\t\t}\n\t\t\tlength = i;\n\t\t} else if (isString(arrayLike)) {\n\t\t\t// Source: String\n\t\t\tlength = arrayLike.length;\n\t\t\tif (Context) arr = new Context();\n\t\t\tfor (i = 0, j = 0; i < length; ++i) {\n\t\t\t\tvalue = arrayLike[i];\n\t\t\t\tif (i + 1 < length) {\n\t\t\t\t\tcode = value.charCodeAt(0);\n\t\t\t\t\t// eslint-disable-next-line max-depth\n\t\t\t\t\tif (code >= 0xd800 && code <= 0xdbff) value += arrayLike[++i];\n\t\t\t\t}\n\t\t\t\tvalue = mapFn ? call.call(mapFn, thisArg, value, j) : value;\n\t\t\t\tif (Context) {\n\t\t\t\t\tdesc.value = value;\n\t\t\t\t\tdefineProperty(arr, j, desc);\n\t\t\t\t} else {\n\t\t\t\t\tarr[j] = value;\n\t\t\t\t}\n\t\t\t\t++j;\n\t\t\t}\n\t\t\tlength = j;\n\t\t}\n\t}\n\tif (length === undefined) {\n\t\t// Source: array or array-like\n\t\tlength = toPosInt(arrayLike.length);\n\t\tif (Context) arr = new Context(length);\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\tvalue = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];\n\t\t\tif (Context) {\n\t\t\t\tdesc.value = value;\n\t\t\t\tdefineProperty(arr, i, desc);\n\t\t\t} else {\n\t\t\t\tarr[i] = value;\n\t\t\t}\n\t\t}\n\t}\n\tif (Context) {\n\t\tdesc.value = null;\n\t\tarr.length = length;\n\t}\n\treturn arr;\n};\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Array.from : require(\"./shim\");\n", "\"use strict\";\n\nvar aFrom  = require(\"../array/from\")\n  , assign = require(\"./assign\")\n  , value  = require(\"./valid-value\");\n\nmodule.exports = function (obj /*, propertyNames, options*/) {\n\tvar copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]);\n\tif (copy !== obj && !propertyNames) return copy;\n\tvar result = {};\n\tif (propertyNames) {\n\t\taFrom(propertyNames, function (propertyName) {\n\t\t\tif (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName];\n\t\t});\n\t} else {\n\t\tassign(result, obj);\n\t}\n\treturn result;\n};\n", "// Internal method, used by iteration functions.\n// Calls a function for each key-value pair found in object\n// Optionally takes compareFn to iterate object in specific order\n\n\"use strict\";\n\nvar callable                = require(\"./valid-callable\")\n  , value                   = require(\"./valid-value\")\n  , bind                    = Function.prototype.bind\n  , call                    = Function.prototype.call\n  , keys                    = Object.keys\n  , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nmodule.exports = function (method, defVal) {\n\treturn function (obj, cb /*, thisArg, compareFn*/) {\n\t\tvar list, thisArg = arguments[2], compareFn = arguments[3];\n\t\tobj = Object(value(obj));\n\t\tcallable(cb);\n\n\t\tlist = keys(obj);\n\t\tif (compareFn) {\n\t\t\tlist.sort(typeof compareFn === \"function\" ? bind.call(compareFn, obj) : undefined);\n\t\t}\n\t\tif (typeof method !== \"function\") method = list[method];\n\t\treturn call.call(method, list, function (key, index) {\n\t\t\tif (!objPropertyIsEnumerable.call(obj, key)) return defVal;\n\t\t\treturn call.call(cb, thisArg, obj[key], key, obj, index);\n\t\t});\n\t};\n};\n", "\"use strict\";\n\nmodule.exports = require(\"./_iterate\")(\"forEach\");\n", "\"use strict\";\n\nvar callable = require(\"./valid-callable\")\n  , forEach  = require(\"./for-each\")\n  , call     = Function.prototype.call;\n\nmodule.exports = function (obj, cb /*, thisArg*/) {\n\tvar result = {}, thisArg = arguments[2];\n\tcallable(cb);\n\tforEach(obj, function (value, key, targetObj, index) {\n\t\tresult[key] = call.call(cb, thisArg, value, key, targetObj, index);\n\t});\n\treturn result;\n};\n", "\"use strict\";\n\nvar isValue             = require(\"type/value/is\")\n  , ensureValue         = require(\"type/value/ensure\")\n  , ensurePlainFunction = require(\"type/plain-function/ensure\")\n  , copy                = require(\"es5-ext/object/copy\")\n  , normalizeOptions    = require(\"es5-ext/object/normalize-options\")\n  , map                 = require(\"es5-ext/object/map\");\n\nvar bind = Function.prototype.bind\n  , defineProperty = Object.defineProperty\n  , hasOwnProperty = Object.prototype.hasOwnProperty\n  , define;\n\ndefine = function (name, desc, options) {\n\tvar value = ensureValue(desc) && ensurePlainFunction(desc.value), dgs;\n\tdgs = copy(desc);\n\tdelete dgs.writable;\n\tdelete dgs.value;\n\tdgs.get = function () {\n\t\tif (!options.overwriteDefinition && hasOwnProperty.call(this, name)) return value;\n\t\tdesc.value = bind.call(value, options.resolveContext ? options.resolveContext(this) : this);\n\t\tdefineProperty(this, name, desc);\n\t\treturn this[name];\n\t};\n\treturn dgs;\n};\n\nmodule.exports = function (props/*, options*/) {\n\tvar options = normalizeOptions(arguments[1]);\n\tif (isValue(options.resolveContext)) ensurePlainFunction(options.resolveContext);\n\treturn map(props, function (desc, name) { return define(name, desc, options); });\n};\n", "\"use strict\";\n\nvar clear    = require(\"es5-ext/array/#/clear\")\n  , assign   = require(\"es5-ext/object/assign\")\n  , callable = require(\"es5-ext/object/valid-callable\")\n  , value    = require(\"es5-ext/object/valid-value\")\n  , d        = require(\"d\")\n  , autoBind = require(\"d/auto-bind\")\n  , Symbol   = require(\"es6-symbol\");\n\nvar defineProperty = Object.defineProperty, defineProperties = Object.defineProperties, Iterator;\n\nmodule.exports = Iterator = function (list, context) {\n\tif (!(this instanceof Iterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tdefineProperties(this, {\n\t\t__list__: d(\"w\", value(list)),\n\t\t__context__: d(\"w\", context),\n\t\t__nextIndex__: d(\"w\", 0)\n\t});\n\tif (!context) return;\n\tcallable(context.on);\n\tcontext.on(\"_add\", this._onAdd);\n\tcontext.on(\"_delete\", this._onDelete);\n\tcontext.on(\"_clear\", this._onClear);\n};\n\n// Internal %IteratorPrototype% doesn't expose its constructor\ndelete Iterator.prototype.constructor;\n\ndefineProperties(\n\tIterator.prototype,\n\tassign(\n\t\t{\n\t\t\t_next: d(function () {\n\t\t\t\tvar i;\n\t\t\t\tif (!this.__list__) return undefined;\n\t\t\t\tif (this.__redo__) {\n\t\t\t\t\ti = this.__redo__.shift();\n\t\t\t\t\tif (i !== undefined) return i;\n\t\t\t\t}\n\t\t\t\tif (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;\n\t\t\t\tthis._unBind();\n\t\t\t\treturn undefined;\n\t\t\t}),\n\t\t\tnext: d(function () {\n\t\t\t\treturn this._createResult(this._next());\n\t\t\t}),\n\t\t\t_createResult: d(function (i) {\n\t\t\t\tif (i === undefined) return { done: true, value: undefined };\n\t\t\t\treturn { done: false, value: this._resolve(i) };\n\t\t\t}),\n\t\t\t_resolve: d(function (i) {\n\t\t\t\treturn this.__list__[i];\n\t\t\t}),\n\t\t\t_unBind: d(function () {\n\t\t\t\tthis.__list__ = null;\n\t\t\t\tdelete this.__redo__;\n\t\t\t\tif (!this.__context__) return;\n\t\t\t\tthis.__context__.off(\"_add\", this._onAdd);\n\t\t\t\tthis.__context__.off(\"_delete\", this._onDelete);\n\t\t\t\tthis.__context__.off(\"_clear\", this._onClear);\n\t\t\t\tthis.__context__ = null;\n\t\t\t}),\n\t\t\ttoString: d(function () {\n\t\t\t\treturn \"[object \" + (this[Symbol.toStringTag] || \"Object\") + \"]\";\n\t\t\t})\n\t\t},\n\t\tautoBind({\n\t\t\t_onAdd: d(function (index) {\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t++this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) {\n\t\t\t\t\tdefineProperty(this, \"__redo__\", d(\"c\", [index]));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.__redo__.forEach(function (redo, i) {\n\t\t\t\t\tif (redo >= index) this.__redo__[i] = ++redo;\n\t\t\t\t}, this);\n\t\t\t\tthis.__redo__.push(index);\n\t\t\t}),\n\t\t\t_onDelete: d(function (index) {\n\t\t\t\tvar i;\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t--this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) return;\n\t\t\t\ti = this.__redo__.indexOf(index);\n\t\t\t\tif (i !== -1) this.__redo__.splice(i, 1);\n\t\t\t\tthis.__redo__.forEach(function (redo, j) {\n\t\t\t\t\tif (redo > index) this.__redo__[j] = --redo;\n\t\t\t\t}, this);\n\t\t\t}),\n\t\t\t_onClear: d(function () {\n\t\t\t\tif (this.__redo__) clear.call(this.__redo__);\n\t\t\t\tthis.__nextIndex__ = 0;\n\t\t\t})\n\t\t})\n\t)\n);\n\ndefineProperty(\n\tIterator.prototype,\n\tSymbol.iterator,\n\td(function () {\n\t\treturn this;\n\t})\n);\n", "\"use strict\";\n\nvar setPrototypeOf = require(\"es5-ext/object/set-prototype-of\")\n  , contains       = require(\"es5-ext/string/#/contains\")\n  , d              = require(\"d\")\n  , Symbol         = require(\"es6-symbol\")\n  , Iterator       = require(\"./\");\n\nvar defineProperty = Object.defineProperty, ArrayIterator;\n\nArrayIterator = module.exports = function (arr, kind) {\n\tif (!(this instanceof ArrayIterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tIterator.call(this, arr);\n\tif (!kind) kind = \"value\";\n\telse if (contains.call(kind, \"key+value\")) kind = \"key+value\";\n\telse if (contains.call(kind, \"key\")) kind = \"key\";\n\telse kind = \"value\";\n\tdefineProperty(this, \"__kind__\", d(\"\", kind));\n};\nif (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);\n\n// Internal %ArrayIteratorPrototype% doesn't expose its constructor\ndelete ArrayIterator.prototype.constructor;\n\nArrayIterator.prototype = Object.create(Iterator.prototype, {\n\t_resolve: d(function (i) {\n\t\tif (this.__kind__ === \"value\") return this.__list__[i];\n\t\tif (this.__kind__ === \"key+value\") return [i, this.__list__[i]];\n\t\treturn i;\n\t})\n});\ndefineProperty(ArrayIterator.prototype, Symbol.toStringTag, d(\"c\", \"Array Iterator\"));\n", "// Thanks @mathiasbynens\n// http://mathiasbynens.be/notes/javascript-unicode#iterating-over-symbols\n\n\"use strict\";\n\nvar setPrototypeOf = require(\"es5-ext/object/set-prototype-of\")\n  , d              = require(\"d\")\n  , Symbol         = require(\"es6-symbol\")\n  , Iterator       = require(\"./\");\n\nvar defineProperty = Object.defineProperty, StringIterator;\n\nStringIterator = module.exports = function (str) {\n\tif (!(this instanceof StringIterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tstr = String(str);\n\tIterator.call(this, str);\n\tdefineProperty(this, \"__length__\", d(\"\", str.length));\n};\nif (setPrototypeOf) setPrototypeOf(StringIterator, Iterator);\n\n// Internal %ArrayIteratorPrototype% doesn't expose its constructor\ndelete StringIterator.prototype.constructor;\n\nStringIterator.prototype = Object.create(Iterator.prototype, {\n\t_next: d(function () {\n\t\tif (!this.__list__) return undefined;\n\t\tif (this.__nextIndex__ < this.__length__) return this.__nextIndex__++;\n\t\tthis._unBind();\n\t\treturn undefined;\n\t}),\n\t_resolve: d(function (i) {\n\t\tvar char = this.__list__[i], code;\n\t\tif (this.__nextIndex__ === this.__length__) return char;\n\t\tcode = char.charCodeAt(0);\n\t\tif (code >= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++];\n\t\treturn char;\n\t})\n});\ndefineProperty(StringIterator.prototype, Symbol.toStringTag, d(\"c\", \"String Iterator\"));\n", "\"use strict\";\n\nvar isArguments = require(\"es5-ext/function/is-arguments\")\n  , isValue     = require(\"es5-ext/object/is-value\")\n  , isString    = require(\"es5-ext/string/is-string\");\n\nvar iteratorSymbol = require(\"es6-symbol\").iterator\n  , isArray        = Array.isArray;\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\tif (isArray(value)) return true;\n\tif (isString(value)) return true;\n\tif (isArguments(value)) return true;\n\treturn typeof value[iteratorSymbol] === \"function\";\n};\n", "\"use strict\";\n\nvar isIterable = require(\"./is-iterable\");\n\nmodule.exports = function (value) {\n\tif (!isIterable(value)) throw new TypeError(value + \" is not iterable\");\n\treturn value;\n};\n", "\"use strict\";\n\nvar isArguments    = require(\"es5-ext/function/is-arguments\")\n  , isString       = require(\"es5-ext/string/is-string\")\n  , ArrayIterator  = require(\"./array\")\n  , StringIterator = require(\"./string\")\n  , iterable       = require(\"./valid-iterable\")\n  , iteratorSymbol = require(\"es6-symbol\").iterator;\n\nmodule.exports = function (obj) {\n\tif (typeof iterable(obj)[iteratorSymbol] === \"function\") return obj[iteratorSymbol]();\n\tif (isArguments(obj)) return new ArrayIterator(obj);\n\tif (isString(obj)) return new StringIterator(obj);\n\treturn new ArrayIterator(obj);\n};\n", "\"use strict\";\n\nvar isArguments = require(\"es5-ext/function/is-arguments\")\n  , callable    = require(\"es5-ext/object/valid-callable\")\n  , isString    = require(\"es5-ext/string/is-string\")\n  , get         = require(\"./get\");\n\nvar isArray = Array.isArray, call = Function.prototype.call, some = Array.prototype.some;\n\nmodule.exports = function (iterable, cb /*, thisArg*/) {\n\tvar mode, thisArg = arguments[2], result, doBreak, broken, i, length, char, code;\n\tif (isArray(iterable) || isArguments(iterable)) mode = \"array\";\n\telse if (isString(iterable)) mode = \"string\";\n\telse iterable = get(iterable);\n\n\tcallable(cb);\n\tdoBreak = function () {\n\t\tbroken = true;\n\t};\n\tif (mode === \"array\") {\n\t\tsome.call(iterable, function (value) {\n\t\t\tcall.call(cb, thisArg, value, doBreak);\n\t\t\treturn broken;\n\t\t});\n\t\treturn;\n\t}\n\tif (mode === \"string\") {\n\t\tlength = iterable.length;\n\t\tfor (i = 0; i < length; ++i) {\n\t\t\tchar = iterable[i];\n\t\t\tif (i + 1 < length) {\n\t\t\t\tcode = char.charCodeAt(0);\n\t\t\t\tif (code >= 0xd800 && code <= 0xdbff) char += iterable[++i];\n\t\t\t}\n\t\t\tcall.call(cb, thisArg, char, doBreak);\n\t\t\tif (broken) break;\n\t\t}\n\t\treturn;\n\t}\n\tresult = iterable.next();\n\n\twhile (!result.done) {\n\t\tcall.call(cb, thisArg, result.value, doBreak);\n\t\tif (broken) return;\n\t\tresult = iterable.next();\n\t}\n};\n", "// Exports true if environment provides native `WeakMap` implementation, whatever that is.\n\n\"use strict\";\n\nmodule.exports = (function () {\n\tif (typeof WeakMap !== \"function\") return false;\n\treturn Object.prototype.toString.call(new WeakMap()) === \"[object WeakMap]\";\n}());\n", "\"use strict\";\n\nvar isValue           = require(\"es5-ext/object/is-value\")\n  , setPrototypeOf    = require(\"es5-ext/object/set-prototype-of\")\n  , object            = require(\"es5-ext/object/valid-object\")\n  , ensureValue       = require(\"es5-ext/object/valid-value\")\n  , randomUniq        = require(\"es5-ext/string/random-uniq\")\n  , d                 = require(\"d\")\n  , getIterator       = require(\"es6-iterator/get\")\n  , forOf             = require(\"es6-iterator/for-of\")\n  , toStringTagSymbol = require(\"es6-symbol\").toStringTag\n  , isNative          = require(\"./is-native-implemented\")\n\n  , isArray = Array.isArray, defineProperty = Object.defineProperty\n  , objHasOwnProperty = Object.prototype.hasOwnProperty, getPrototypeOf = Object.getPrototypeOf\n  , WeakMapPoly;\n\nmodule.exports = WeakMapPoly = function (/* Iterable*/) {\n\tvar iterable = arguments[0], self;\n\n\tif (!(this instanceof WeakMapPoly)) throw new TypeError(\"Constructor requires 'new'\");\n\tself = isNative && setPrototypeOf && (WeakMap !== WeakMapPoly)\n\t\t? setPrototypeOf(new WeakMap(), getPrototypeOf(this)) : this;\n\n\tif (isValue(iterable)) {\n\t\tif (!isArray(iterable)) iterable = getIterator(iterable);\n\t}\n\tdefineProperty(self, \"__weakMapData__\", d(\"c\", \"$weakMap$\" + randomUniq()));\n\tif (!iterable) return self;\n\tforOf(iterable, function (val) {\n\t\tensureValue(val);\n\t\tself.set(val[0], val[1]);\n\t});\n\treturn self;\n};\n\nif (isNative) {\n\tif (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);\n\tWeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) });\n}\n\nObject.defineProperties(WeakMapPoly.prototype, {\n\tdelete: d(function (key) {\n\t\tif (objHasOwnProperty.call(object(key), this.__weakMapData__)) {\n\t\t\tdelete key[this.__weakMapData__];\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}),\n\tget: d(function (key) {\n\t\tif (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return undefined;\n\t\treturn key[this.__weakMapData__];\n\t}),\n\thas: d(function (key) {\n\t\treturn objHasOwnProperty.call(object(key), this.__weakMapData__);\n\t}),\n\tset: d(function (key, value) {\n\t\tdefineProperty(object(key), this.__weakMapData__, d(\"c\", value));\n\t\treturn this;\n\t}),\n\ttoString: d(function () {\n\t\treturn \"[object WeakMap]\";\n\t})\n});\ndefineProperty(WeakMapPoly.prototype, toStringTagSymbol, d(\"c\", \"WeakMap\"));\n", "\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? WeakMap : require(\"./polyfill\");\n", "module.exports = [\n  { name: 'black', hex: '#000000' },\n  { name: 'blue', hex: '#0000FF' },\n  { name: 'cyan', hex: '#00FFFF' },\n  { name: 'green', hex: '#008000' },\n  { name: 'teal', hex: '#008080' },\n  { name: 'turquoise', hex: '#40E0D0' },\n  { name: 'indigo', hex: '#4B0082' },\n  { name: 'gray', hex: '#808080' },\n  { name: 'purple', hex: '#800080' },\n  { name: 'brown', hex: '#A52A2A' },\n  { name: 'tan', hex: '#D2B48C' },\n  { name: 'violet', hex: '#EE82EE' },\n  { name: 'beige', hex: '#F5F5DC' },\n  { name: 'fuchsia', hex: '#FF00FF' },\n  { name: 'gold', hex: '#FFD700' },\n  { name: 'magenta', hex: '#FF00FF' },\n  { name: 'orange', hex: '#FFA500' },\n  { name: 'pink', hex: '#FFC0CB' },\n  { name: 'red', hex: '#FF0000' },\n  { name: 'white', hex: '#FFFFFF' },\n  { name: 'yellow', hex: '#FFFF00' }\n]\n", "module.exports = [\n  { name: 'aqua', hex: '#00FFFF' },\n  { name: 'aliceblue', hex: '#F0F8FF' },\n  { name: 'antiquewhite', hex: '#FAEBD7' },\n  { name: 'black', hex: '#000000' },\n  { name: 'blue', hex: '#0000FF' },\n  { name: 'cyan', hex: '#00FFFF' },\n  { name: 'darkblue', hex: '#00008B' },\n  { name: 'darkcyan', hex: '#008B8B' },\n  { name: 'darkgreen', hex: '#006400' },\n  { name: 'darkturquoise', hex: '#00CED1' },\n  { name: 'deepskyblue', hex: '#00BFFF' },\n  { name: 'green', hex: '#008000' },\n  { name: 'lime', hex: '#00FF00' },\n  { name: 'mediumblue', hex: '#0000CD' },\n  { name: 'mediumspringgreen', hex: '#00FA9A' },\n  { name: 'navy', hex: '#000080' },\n  { name: 'springgreen', hex: '#00FF7F' },\n  { name: 'teal', hex: '#008080' },\n  { name: 'midnightblue', hex: '#191970' },\n  { name: 'dodgerblue', hex: '#1E90FF' },\n  { name: 'lightseagreen', hex: '#20B2AA' },\n  { name: 'forestgreen', hex: '#228B22' },\n  { name: 'seagreen', hex: '#2E8B57' },\n  { name: 'darkslategray', hex: '#2F4F4F' },\n  { name: 'darkslategrey', hex: '#2F4F4F' },\n  { name: 'limegreen', hex: '#32CD32' },\n  { name: 'mediumseagreen', hex: '#3CB371' },\n  { name: 'turquoise', hex: '#40E0D0' },\n  { name: 'royalblue', hex: '#4169E1' },\n  { name: 'steelblue', hex: '#4682B4' },\n  { name: 'darkslateblue', hex: '#483D8B' },\n  { name: 'mediumturquoise', hex: '#48D1CC' },\n  { name: 'indigo', hex: '#4B0082' },\n  { name: 'darkolivegreen', hex: '#556B2F' },\n  { name: 'cadetblue', hex: '#5F9EA0' },\n  { name: 'cornflowerblue', hex: '#6495ED' },\n  { name: 'mediumaquamarine', hex: '#66CDAA' },\n  { name: 'dimgray', hex: '#696969' },\n  { name: 'dimgrey', hex: '#696969' },\n  { name: 'slateblue', hex: '#6A5ACD' },\n  { name: 'olivedrab', hex: '#6B8E23' },\n  { name: 'slategray', hex: '#708090' },\n  { name: 'slategrey', hex: '#708090' },\n  { name: 'lightslategray', hex: '#778899' },\n  { name: 'lightslategrey', hex: '#778899' },\n  { name: 'mediumslateblue', hex: '#7B68EE' },\n  { name: 'lawngreen', hex: '#7CFC00' },\n  { name: 'aquamarine', hex: '#7FFFD4' },\n  { name: 'chartreuse', hex: '#7FFF00' },\n  { name: 'gray', hex: '#808080' },\n  { name: 'grey', hex: '#808080' },\n  { name: 'maroon', hex: '#800000' },\n  { name: 'olive', hex: '#808000' },\n  { name: 'purple', hex: '#800080' },\n  { name: 'lightskyblue', hex: '#87CEFA' },\n  { name: 'skyblue', hex: '#87CEEB' },\n  { name: 'blueviolet', hex: '#8A2BE2' },\n  { name: 'darkmagenta', hex: '#8B008B' },\n  { name: 'darkred', hex: '#8B0000' },\n  { name: 'saddlebrown', hex: '#8B4513' },\n  { name: 'darkseagreen', hex: '#8FBC8F' },\n  { name: 'lightgreen', hex: '#90EE90' },\n  { name: 'mediumpurple', hex: '#9370DB' },\n  { name: 'darkviolet', hex: '#9400D3' },\n  { name: 'palegreen', hex: '#98FB98' },\n  { name: 'darkorchid', hex: '#9932CC' },\n  { name: 'yellowgreen', hex: '#9ACD32' },\n  { name: 'sienna', hex: '#A0522D' },\n  { name: 'brown', hex: '#A52A2A' },\n  { name: 'darkgray', hex: '#A9A9A9' },\n  { name: 'darkgrey', hex: '#A9A9A9' },\n  { name: 'greenyellow', hex: '#ADFF2F' },\n  { name: 'lightblue', hex: '#ADD8E6' },\n  { name: 'paleturquoise', hex: '#AFEEEE' },\n  { name: 'lightsteelblue', hex: '#B0C4DE' },\n  { name: 'powderblue', hex: '#B0E0E6' },\n  { name: 'firebrick', hex: '#B22222' },\n  { name: 'darkgoldenrod', hex: '#B8860B' },\n  { name: 'mediumorchid', hex: '#BA55D3' },\n  { name: 'rosybrown', hex: '#BC8F8F' },\n  { name: 'darkkhaki', hex: '#BDB76B' },\n  { name: 'silver', hex: '#C0C0C0' },\n  { name: 'mediumvioletred', hex: '#C71585' },\n  { name: 'indianred', hex: '#CD5C5C' },\n  { name: 'peru', hex: '#CD853F' },\n  { name: 'chocolate', hex: '#D2691E' },\n  { name: 'tan', hex: '#D2B48C' },\n  { name: 'lightgray', hex: '#D3D3D3' },\n  { name: 'lightgrey', hex: '#D3D3D3' },\n  { name: 'thistle', hex: '#D8BFD8' },\n  { name: 'goldenrod', hex: '#DAA520' },\n  { name: 'orchid', hex: '#DA70D6' },\n  { name: 'palevioletred', hex: '#DB7093' },\n  { name: 'crimson', hex: '#DC143C' },\n  { name: 'gainsboro', hex: '#DCDCDC' },\n  { name: 'plum', hex: '#DDA0DD' },\n  { name: 'burlywood', hex: '#DEB887' },\n  { name: 'lightcyan', hex: '#E0FFFF' },\n  { name: 'lavender', hex: '#E6E6FA' },\n  { name: 'darksalmon', hex: '#E9967A' },\n  { name: 'palegoldenrod', hex: '#EEE8AA' },\n  { name: 'violet', hex: '#EE82EE' },\n  { name: 'azure', hex: '#F0FFFF' },\n  { name: 'honeydew', hex: '#F0FFF0' },\n  { name: 'khaki', hex: '#F0E68C' },\n  { name: 'lightcoral', hex: '#F08080' },\n  { name: 'sandybrown', hex: '#F4A460' },\n  { name: 'beige', hex: '#F5F5DC' },\n  { name: 'mintcream', hex: '#F5FFFA' },\n  { name: 'wheat', hex: '#F5DEB3' },\n  { name: 'whitesmoke', hex: '#F5F5F5' },\n  { name: 'ghostwhite', hex: '#F8F8FF' },\n  { name: 'lightgoldenrodyellow',\n    hex: '#FAFAD2' },\n  { name: 'linen', hex: '#FAF0E6' },\n  { name: 'salmon', hex: '#FA8072' },\n  { name: 'oldlace', hex: '#FDF5E6' },\n  { name: 'bisque', hex: '#FFE4C4' },\n  { name: 'blanchedalmond', hex: '#FFEBCD' },\n  { name: 'coral', hex: '#FF7F50' },\n  { name: 'cornsilk', hex: '#FFF8DC' },\n  { name: 'darkorange', hex: '#FF8C00' },\n  { name: 'deeppink', hex: '#FF1493' },\n  { name: 'floralwhite', hex: '#FFFAF0' },\n  { name: 'fuchsia', hex: '#FF00FF' },\n  { name: 'gold', hex: '#FFD700' },\n  { name: 'hotpink', hex: '#FF69B4' },\n  { name: 'ivory', hex: '#FFFFF0' },\n  { name: 'lavenderblush', hex: '#FFF0F5' },\n  { name: 'lemonchiffon', hex: '#FFFACD' },\n  { name: 'lightpink', hex: '#FFB6C1' },\n  { name: 'lightsalmon', hex: '#FFA07A' },\n  { name: 'lightyellow', hex: '#FFFFE0' },\n  { name: 'magenta', hex: '#FF00FF' },\n  { name: 'mistyrose', hex: '#FFE4E1' },\n  { name: 'moccasin', hex: '#FFE4B5' },\n  { name: 'navajowhite', hex: '#FFDEAD' },\n  { name: 'orange', hex: '#FFA500' },\n  { name: 'orangered', hex: '#FF4500' },\n  { name: 'papayawhip', hex: '#FFEFD5' },\n  { name: 'peachpuff', hex: '#FFDAB9' },\n  { name: 'pink', hex: '#FFC0CB' },\n  { name: 'red', hex: '#FF0000' },\n  { name: 'seashell', hex: '#FFF5EE' },\n  { name: 'snow', hex: '#FFFAFA' },\n  { name: 'tomato', hex: '#FF6347' },\n  { name: 'white', hex: '#FFFFFF' },\n  { name: 'yellow', hex: '#FFFF00' }\n]\n", "module.exports = [\n  {\n    \"name\": \"Black\",\n    \"hex\": \"000000\"\n  },\n  {\n    \"name\": \"Navy Blue\",\n    \"hex\": \"000080\"\n  },\n  {\n    \"name\": \"Dark Blue\",\n    \"hex\": \"0000C8\"\n  },\n  {\n    \"name\": \"Blue\",\n    \"hex\": \"0000FF\"\n  },\n  {\n    \"name\": \"Stratos\",\n    \"hex\": \"000741\"\n  },\n  {\n    \"name\": \"Swamp\",\n    \"hex\": \"001B1C\"\n  },\n  {\n    \"name\": \"Resolution Blue\",\n    \"hex\": \"002387\"\n  },\n  {\n    \"name\": \"Deep Fir\",\n    \"hex\": \"002900\"\n  },\n  {\n    \"name\": \"Burnham\",\n    \"hex\": \"002E20\"\n  },\n  {\n    \"name\": \"International Klein Blue\",\n    \"hex\": \"002FA7\"\n  },\n  {\n    \"name\": \"Prussian Blue\",\n    \"hex\": \"003153\"\n  },\n  {\n    \"name\": \"Midnight Blue\",\n    \"hex\": \"003366\"\n  },\n  {\n    \"name\": \"Smalt\",\n    \"hex\": \"003399\"\n  },\n  {\n    \"name\": \"Deep Teal\",\n    \"hex\": \"003532\"\n  },\n  {\n    \"name\": \"Cyprus\",\n    \"hex\": \"003E40\"\n  },\n  {\n    \"name\": \"Kaitoke Green\",\n    \"hex\": \"004620\"\n  },\n  {\n    \"name\": \"Cobalt\",\n    \"hex\": \"0047AB\"\n  },\n  {\n    \"name\": \"Crusoe\",\n    \"hex\": \"004816\"\n  },\n  {\n    \"name\": \"Sherpa Blue\",\n    \"hex\": \"004950\"\n  },\n  {\n    \"name\": \"Endeavour\",\n    \"hex\": \"0056A7\"\n  },\n  {\n    \"name\": \"Camarone\",\n    \"hex\": \"00581A\"\n  },\n  {\n    \"name\": \"Science Blue\",\n    \"hex\": \"0066CC\"\n  },\n  {\n    \"name\": \"Blue Ribbon\",\n    \"hex\": \"0066FF\"\n  },\n  {\n    \"name\": \"Tropical Rain Forest\",\n    \"hex\": \"00755E\"\n  },\n  {\n    \"name\": \"Allports\",\n    \"hex\": \"0076A3\"\n  },\n  {\n    \"name\": \"Deep Cerulean\",\n    \"hex\": \"007BA7\"\n  },\n  {\n    \"name\": \"Lochmara\",\n    \"hex\": \"007EC7\"\n  },\n  {\n    \"name\": \"Azure Radiance\",\n    \"hex\": \"007FFF\"\n  },\n  {\n    \"name\": \"Teal\",\n    \"hex\": \"008080\"\n  },\n  {\n    \"name\": \"Bondi Blue\",\n    \"hex\": \"0095B6\"\n  },\n  {\n    \"name\": \"Pacific Blue\",\n    \"hex\": \"009DC4\"\n  },\n  {\n    \"name\": \"Persian Green\",\n    \"hex\": \"00A693\"\n  },\n  {\n    \"name\": \"Jade\",\n    \"hex\": \"00A86B\"\n  },\n  {\n    \"name\": \"Caribbean Green\",\n    \"hex\": \"00CC99\"\n  },\n  {\n    \"name\": \"Robin's Egg Blue\",\n    \"hex\": \"00CCCC\"\n  },\n  {\n    \"name\": \"Green\",\n    \"hex\": \"00FF00\"\n  },\n  {\n    \"name\": \"Spring Green\",\n    \"hex\": \"00FF7F\"\n  },\n  {\n    \"name\": \"Cyan / Aqua\",\n    \"hex\": \"00FFFF\"\n  },\n  {\n    \"name\": \"Blue Charcoal\",\n    \"hex\": \"010D1A\"\n  },\n  {\n    \"name\": \"Midnight\",\n    \"hex\": \"011635\"\n  },\n  {\n    \"name\": \"Holly\",\n    \"hex\": \"011D13\"\n  },\n  {\n    \"name\": \"Daintree\",\n    \"hex\": \"012731\"\n  },\n  {\n    \"name\": \"Cardin Green\",\n    \"hex\": \"01361C\"\n  },\n  {\n    \"name\": \"County Green\",\n    \"hex\": \"01371A\"\n  },\n  {\n    \"name\": \"Astronaut Blue\",\n    \"hex\": \"013E62\"\n  },\n  {\n    \"name\": \"Regal Blue\",\n    \"hex\": \"013F6A\"\n  },\n  {\n    \"name\": \"Aqua Deep\",\n    \"hex\": \"014B43\"\n  },\n  {\n    \"name\": \"Orient\",\n    \"hex\": \"015E85\"\n  },\n  {\n    \"name\": \"Blue Stone\",\n    \"hex\": \"016162\"\n  },\n  {\n    \"name\": \"Fun Green\",\n    \"hex\": \"016D39\"\n  },\n  {\n    \"name\": \"Pine Green\",\n    \"hex\": \"01796F\"\n  },\n  {\n    \"name\": \"Blue Lagoon\",\n    \"hex\": \"017987\"\n  },\n  {\n    \"name\": \"Deep Sea\",\n    \"hex\": \"01826B\"\n  },\n  {\n    \"name\": \"Green Haze\",\n    \"hex\": \"01A368\"\n  },\n  {\n    \"name\": \"English Holly\",\n    \"hex\": \"022D15\"\n  },\n  {\n    \"name\": \"Sherwood Green\",\n    \"hex\": \"02402C\"\n  },\n  {\n    \"name\": \"Congress Blue\",\n    \"hex\": \"02478E\"\n  },\n  {\n    \"name\": \"Evening Sea\",\n    \"hex\": \"024E46\"\n  },\n  {\n    \"name\": \"Bahama Blue\",\n    \"hex\": \"026395\"\n  },\n  {\n    \"name\": \"Observatory\",\n    \"hex\": \"02866F\"\n  },\n  {\n    \"name\": \"Cerulean\",\n    \"hex\": \"02A4D3\"\n  },\n  {\n    \"name\": \"Tangaroa\",\n    \"hex\": \"03163C\"\n  },\n  {\n    \"name\": \"Green Vogue\",\n    \"hex\": \"032B52\"\n  },\n  {\n    \"name\": \"Mosque\",\n    \"hex\": \"036A6E\"\n  },\n  {\n    \"name\": \"Midnight Moss\",\n    \"hex\": \"041004\"\n  },\n  {\n    \"name\": \"Black Pearl\",\n    \"hex\": \"041322\"\n  },\n  {\n    \"name\": \"Blue Whale\",\n    \"hex\": \"042E4C\"\n  },\n  {\n    \"name\": \"Zuccini\",\n    \"hex\": \"044022\"\n  },\n  {\n    \"name\": \"Teal Blue\",\n    \"hex\": \"044259\"\n  },\n  {\n    \"name\": \"Deep Cove\",\n    \"hex\": \"051040\"\n  },\n  {\n    \"name\": \"Gulf Blue\",\n    \"hex\": \"051657\"\n  },\n  {\n    \"name\": \"Venice Blue\",\n    \"hex\": \"055989\"\n  },\n  {\n    \"name\": \"Watercourse\",\n    \"hex\": \"056F57\"\n  },\n  {\n    \"name\": \"Catalina Blue\",\n    \"hex\": \"062A78\"\n  },\n  {\n    \"name\": \"Tiber\",\n    \"hex\": \"063537\"\n  },\n  {\n    \"name\": \"Gossamer\",\n    \"hex\": \"069B81\"\n  },\n  {\n    \"name\": \"Niagara\",\n    \"hex\": \"06A189\"\n  },\n  {\n    \"name\": \"Tarawera\",\n    \"hex\": \"073A50\"\n  },\n  {\n    \"name\": \"Jaguar\",\n    \"hex\": \"080110\"\n  },\n  {\n    \"name\": \"Black Bean\",\n    \"hex\": \"081910\"\n  },\n  {\n    \"name\": \"Deep Sapphire\",\n    \"hex\": \"082567\"\n  },\n  {\n    \"name\": \"Elf Green\",\n    \"hex\": \"088370\"\n  },\n  {\n    \"name\": \"Bright Turquoise\",\n    \"hex\": \"08E8DE\"\n  },\n  {\n    \"name\": \"Downriver\",\n    \"hex\": \"092256\"\n  },\n  {\n    \"name\": \"Palm Green\",\n    \"hex\": \"09230F\"\n  },\n  {\n    \"name\": \"Madison\",\n    \"hex\": \"09255D\"\n  },\n  {\n    \"name\": \"Bottle Green\",\n    \"hex\": \"093624\"\n  },\n  {\n    \"name\": \"Deep Sea Green\",\n    \"hex\": \"095859\"\n  },\n  {\n    \"name\": \"Salem\",\n    \"hex\": \"097F4B\"\n  },\n  {\n    \"name\": \"Black Russian\",\n    \"hex\": \"0A001C\"\n  },\n  {\n    \"name\": \"Dark Fern\",\n    \"hex\": \"0A480D\"\n  },\n  {\n    \"name\": \"Japanese Laurel\",\n    \"hex\": \"0A6906\"\n  },\n  {\n    \"name\": \"Atoll\",\n    \"hex\": \"0A6F75\"\n  },\n  {\n    \"name\": \"Cod Gray\",\n    \"hex\": \"0B0B0B\"\n  },\n  {\n    \"name\": \"Marshland\",\n    \"hex\": \"0B0F08\"\n  },\n  {\n    \"name\": \"Gordons Green\",\n    \"hex\": \"0B1107\"\n  },\n  {\n    \"name\": \"Black Forest\",\n    \"hex\": \"0B1304\"\n  },\n  {\n    \"name\": \"San Felix\",\n    \"hex\": \"0B6207\"\n  },\n  {\n    \"name\": \"Malachite\",\n    \"hex\": \"0BDA51\"\n  },\n  {\n    \"name\": \"Ebony\",\n    \"hex\": \"0C0B1D\"\n  },\n  {\n    \"name\": \"Woodsmoke\",\n    \"hex\": \"0C0D0F\"\n  },\n  {\n    \"name\": \"Racing Green\",\n    \"hex\": \"0C1911\"\n  },\n  {\n    \"name\": \"Surfie Green\",\n    \"hex\": \"0C7A79\"\n  },\n  {\n    \"name\": \"Blue Chill\",\n    \"hex\": \"0C8990\"\n  },\n  {\n    \"name\": \"Black Rock\",\n    \"hex\": \"0D0332\"\n  },\n  {\n    \"name\": \"Bunker\",\n    \"hex\": \"0D1117\"\n  },\n  {\n    \"name\": \"Aztec\",\n    \"hex\": \"0D1C19\"\n  },\n  {\n    \"name\": \"Bush\",\n    \"hex\": \"0D2E1C\"\n  },\n  {\n    \"name\": \"Cinder\",\n    \"hex\": \"0E0E18\"\n  },\n  {\n    \"name\": \"Firefly\",\n    \"hex\": \"0E2A30\"\n  },\n  {\n    \"name\": \"Torea Bay\",\n    \"hex\": \"0F2D9E\"\n  },\n  {\n    \"name\": \"Vulcan\",\n    \"hex\": \"10121D\"\n  },\n  {\n    \"name\": \"Green Waterloo\",\n    \"hex\": \"101405\"\n  },\n  {\n    \"name\": \"Eden\",\n    \"hex\": \"105852\"\n  },\n  {\n    \"name\": \"Arapawa\",\n    \"hex\": \"110C6C\"\n  },\n  {\n    \"name\": \"Ultramarine\",\n    \"hex\": \"120A8F\"\n  },\n  {\n    \"name\": \"Elephant\",\n    \"hex\": \"123447\"\n  },\n  {\n    \"name\": \"Jewel\",\n    \"hex\": \"126B40\"\n  },\n  {\n    \"name\": \"Diesel\",\n    \"hex\": \"130000\"\n  },\n  {\n    \"name\": \"Asphalt\",\n    \"hex\": \"130A06\"\n  },\n  {\n    \"name\": \"Blue Zodiac\",\n    \"hex\": \"13264D\"\n  },\n  {\n    \"name\": \"Parsley\",\n    \"hex\": \"134F19\"\n  },\n  {\n    \"name\": \"Nero\",\n    \"hex\": \"140600\"\n  },\n  {\n    \"name\": \"Tory Blue\",\n    \"hex\": \"1450AA\"\n  },\n  {\n    \"name\": \"Bunting\",\n    \"hex\": \"151F4C\"\n  },\n  {\n    \"name\": \"Denim\",\n    \"hex\": \"1560BD\"\n  },\n  {\n    \"name\": \"Genoa\",\n    \"hex\": \"15736B\"\n  },\n  {\n    \"name\": \"Mirage\",\n    \"hex\": \"161928\"\n  },\n  {\n    \"name\": \"Hunter Green\",\n    \"hex\": \"161D10\"\n  },\n  {\n    \"name\": \"Big Stone\",\n    \"hex\": \"162A40\"\n  },\n  {\n    \"name\": \"Celtic\",\n    \"hex\": \"163222\"\n  },\n  {\n    \"name\": \"Timber Green\",\n    \"hex\": \"16322C\"\n  },\n  {\n    \"name\": \"Gable Green\",\n    \"hex\": \"163531\"\n  },\n  {\n    \"name\": \"Pine Tree\",\n    \"hex\": \"171F04\"\n  },\n  {\n    \"name\": \"Chathams Blue\",\n    \"hex\": \"175579\"\n  },\n  {\n    \"name\": \"Deep Forest Green\",\n    \"hex\": \"182D09\"\n  },\n  {\n    \"name\": \"Blumine\",\n    \"hex\": \"18587A\"\n  },\n  {\n    \"name\": \"Palm Leaf\",\n    \"hex\": \"19330E\"\n  },\n  {\n    \"name\": \"Nile Blue\",\n    \"hex\": \"193751\"\n  },\n  {\n    \"name\": \"Fun Blue\",\n    \"hex\": \"1959A8\"\n  },\n  {\n    \"name\": \"Lucky Point\",\n    \"hex\": \"1A1A68\"\n  },\n  {\n    \"name\": \"Mountain Meadow\",\n    \"hex\": \"1AB385\"\n  },\n  {\n    \"name\": \"Tolopea\",\n    \"hex\": \"1B0245\"\n  },\n  {\n    \"name\": \"Haiti\",\n    \"hex\": \"1B1035\"\n  },\n  {\n    \"name\": \"Deep Koamaru\",\n    \"hex\": \"1B127B\"\n  },\n  {\n    \"name\": \"Acadia\",\n    \"hex\": \"1B1404\"\n  },\n  {\n    \"name\": \"Seaweed\",\n    \"hex\": \"1B2F11\"\n  },\n  {\n    \"name\": \"Biscay\",\n    \"hex\": \"1B3162\"\n  },\n  {\n    \"name\": \"Matisse\",\n    \"hex\": \"1B659D\"\n  },\n  {\n    \"name\": \"Crowshead\",\n    \"hex\": \"1C1208\"\n  },\n  {\n    \"name\": \"Rangoon Green\",\n    \"hex\": \"1C1E13\"\n  },\n  {\n    \"name\": \"Persian Blue\",\n    \"hex\": \"1C39BB\"\n  },\n  {\n    \"name\": \"Everglade\",\n    \"hex\": \"1C402E\"\n  },\n  {\n    \"name\": \"Elm\",\n    \"hex\": \"1C7C7D\"\n  },\n  {\n    \"name\": \"Green Pea\",\n    \"hex\": \"1D6142\"\n  },\n  {\n    \"name\": \"Creole\",\n    \"hex\": \"1E0F04\"\n  },\n  {\n    \"name\": \"Karaka\",\n    \"hex\": \"1E1609\"\n  },\n  {\n    \"name\": \"El Paso\",\n    \"hex\": \"1E1708\"\n  },\n  {\n    \"name\": \"Cello\",\n    \"hex\": \"1E385B\"\n  },\n  {\n    \"name\": \"Te Papa Green\",\n    \"hex\": \"1E433C\"\n  },\n  {\n    \"name\": \"Dodger Blue\",\n    \"hex\": \"1E90FF\"\n  },\n  {\n    \"name\": \"Eastern Blue\",\n    \"hex\": \"1E9AB0\"\n  },\n  {\n    \"name\": \"Night Rider\",\n    \"hex\": \"1F120F\"\n  },\n  {\n    \"name\": \"Java\",\n    \"hex\": \"1FC2C2\"\n  },\n  {\n    \"name\": \"Jacksons Purple\",\n    \"hex\": \"20208D\"\n  },\n  {\n    \"name\": \"Cloud Burst\",\n    \"hex\": \"202E54\"\n  },\n  {\n    \"name\": \"Blue Dianne\",\n    \"hex\": \"204852\"\n  },\n  {\n    \"name\": \"Eternity\",\n    \"hex\": \"211A0E\"\n  },\n  {\n    \"name\": \"Deep Blue\",\n    \"hex\": \"220878\"\n  },\n  {\n    \"name\": \"Forest Green\",\n    \"hex\": \"228B22\"\n  },\n  {\n    \"name\": \"Mallard\",\n    \"hex\": \"233418\"\n  },\n  {\n    \"name\": \"Violet\",\n    \"hex\": \"240A40\"\n  },\n  {\n    \"name\": \"Kilamanjaro\",\n    \"hex\": \"240C02\"\n  },\n  {\n    \"name\": \"Log Cabin\",\n    \"hex\": \"242A1D\"\n  },\n  {\n    \"name\": \"Black Olive\",\n    \"hex\": \"242E16\"\n  },\n  {\n    \"name\": \"Green House\",\n    \"hex\": \"24500F\"\n  },\n  {\n    \"name\": \"Graphite\",\n    \"hex\": \"251607\"\n  },\n  {\n    \"name\": \"Cannon Black\",\n    \"hex\": \"251706\"\n  },\n  {\n    \"name\": \"Port Gore\",\n    \"hex\": \"251F4F\"\n  },\n  {\n    \"name\": \"Shark\",\n    \"hex\": \"25272C\"\n  },\n  {\n    \"name\": \"Green Kelp\",\n    \"hex\": \"25311C\"\n  },\n  {\n    \"name\": \"Curious Blue\",\n    \"hex\": \"2596D1\"\n  },\n  {\n    \"name\": \"Paua\",\n    \"hex\": \"260368\"\n  },\n  {\n    \"name\": \"Paris M\",\n    \"hex\": \"26056A\"\n  },\n  {\n    \"name\": \"Wood Bark\",\n    \"hex\": \"261105\"\n  },\n  {\n    \"name\": \"Gondola\",\n    \"hex\": \"261414\"\n  },\n  {\n    \"name\": \"Steel Gray\",\n    \"hex\": \"262335\"\n  },\n  {\n    \"name\": \"Ebony Clay\",\n    \"hex\": \"26283B\"\n  },\n  {\n    \"name\": \"Bay of Many\",\n    \"hex\": \"273A81\"\n  },\n  {\n    \"name\": \"Plantation\",\n    \"hex\": \"27504B\"\n  },\n  {\n    \"name\": \"Eucalyptus\",\n    \"hex\": \"278A5B\"\n  },\n  {\n    \"name\": \"Oil\",\n    \"hex\": \"281E15\"\n  },\n  {\n    \"name\": \"Astronaut\",\n    \"hex\": \"283A77\"\n  },\n  {\n    \"name\": \"Mariner\",\n    \"hex\": \"286ACD\"\n  },\n  {\n    \"name\": \"Violent Violet\",\n    \"hex\": \"290C5E\"\n  },\n  {\n    \"name\": \"Bastille\",\n    \"hex\": \"292130\"\n  },\n  {\n    \"name\": \"Zeus\",\n    \"hex\": \"292319\"\n  },\n  {\n    \"name\": \"Charade\",\n    \"hex\": \"292937\"\n  },\n  {\n    \"name\": \"Jelly Bean\",\n    \"hex\": \"297B9A\"\n  },\n  {\n    \"name\": \"Jungle Green\",\n    \"hex\": \"29AB87\"\n  },\n  {\n    \"name\": \"Cherry Pie\",\n    \"hex\": \"2A0359\"\n  },\n  {\n    \"name\": \"Coffee Bean\",\n    \"hex\": \"2A140E\"\n  },\n  {\n    \"name\": \"Baltic Sea\",\n    \"hex\": \"2A2630\"\n  },\n  {\n    \"name\": \"Turtle Green\",\n    \"hex\": \"2A380B\"\n  },\n  {\n    \"name\": \"Cerulean Blue\",\n    \"hex\": \"2A52BE\"\n  },\n  {\n    \"name\": \"Sepia Black\",\n    \"hex\": \"2B0202\"\n  },\n  {\n    \"name\": \"Valhalla\",\n    \"hex\": \"2B194F\"\n  },\n  {\n    \"name\": \"Heavy Metal\",\n    \"hex\": \"2B3228\"\n  },\n  {\n    \"name\": \"Blue Gem\",\n    \"hex\": \"2C0E8C\"\n  },\n  {\n    \"name\": \"Revolver\",\n    \"hex\": \"2C1632\"\n  },\n  {\n    \"name\": \"Bleached Cedar\",\n    \"hex\": \"2C2133\"\n  },\n  {\n    \"name\": \"Lochinvar\",\n    \"hex\": \"2C8C84\"\n  },\n  {\n    \"name\": \"Mikado\",\n    \"hex\": \"2D2510\"\n  },\n  {\n    \"name\": \"Outer Space\",\n    \"hex\": \"2D383A\"\n  },\n  {\n    \"name\": \"St Tropaz\",\n    \"hex\": \"2D569B\"\n  },\n  {\n    \"name\": \"Jacaranda\",\n    \"hex\": \"2E0329\"\n  },\n  {\n    \"name\": \"Jacko Bean\",\n    \"hex\": \"2E1905\"\n  },\n  {\n    \"name\": \"Rangitoto\",\n    \"hex\": \"2E3222\"\n  },\n  {\n    \"name\": \"Rhino\",\n    \"hex\": \"2E3F62\"\n  },\n  {\n    \"name\": \"Sea Green\",\n    \"hex\": \"2E8B57\"\n  },\n  {\n    \"name\": \"Scooter\",\n    \"hex\": \"2EBFD4\"\n  },\n  {\n    \"name\": \"Onion\",\n    \"hex\": \"2F270E\"\n  },\n  {\n    \"name\": \"Governor Bay\",\n    \"hex\": \"2F3CB3\"\n  },\n  {\n    \"name\": \"Sapphire\",\n    \"hex\": \"2F519E\"\n  },\n  {\n    \"name\": \"Spectra\",\n    \"hex\": \"2F5A57\"\n  },\n  {\n    \"name\": \"Casal\",\n    \"hex\": \"2F6168\"\n  },\n  {\n    \"name\": \"Melanzane\",\n    \"hex\": \"300529\"\n  },\n  {\n    \"name\": \"Cocoa Brown\",\n    \"hex\": \"301F1E\"\n  },\n  {\n    \"name\": \"Woodrush\",\n    \"hex\": \"302A0F\"\n  },\n  {\n    \"name\": \"San Juan\",\n    \"hex\": \"304B6A\"\n  },\n  {\n    \"name\": \"Turquoise\",\n    \"hex\": \"30D5C8\"\n  },\n  {\n    \"name\": \"Eclipse\",\n    \"hex\": \"311C17\"\n  },\n  {\n    \"name\": \"Pickled Bluewood\",\n    \"hex\": \"314459\"\n  },\n  {\n    \"name\": \"Azure\",\n    \"hex\": \"315BA1\"\n  },\n  {\n    \"name\": \"Calypso\",\n    \"hex\": \"31728D\"\n  },\n  {\n    \"name\": \"Paradiso\",\n    \"hex\": \"317D82\"\n  },\n  {\n    \"name\": \"Persian Indigo\",\n    \"hex\": \"32127A\"\n  },\n  {\n    \"name\": \"Blackcurrant\",\n    \"hex\": \"32293A\"\n  },\n  {\n    \"name\": \"Mine Shaft\",\n    \"hex\": \"323232\"\n  },\n  {\n    \"name\": \"Stromboli\",\n    \"hex\": \"325D52\"\n  },\n  {\n    \"name\": \"Bilbao\",\n    \"hex\": \"327C14\"\n  },\n  {\n    \"name\": \"Astral\",\n    \"hex\": \"327DA0\"\n  },\n  {\n    \"name\": \"Christalle\",\n    \"hex\": \"33036B\"\n  },\n  {\n    \"name\": \"Thunder\",\n    \"hex\": \"33292F\"\n  },\n  {\n    \"name\": \"Shamrock\",\n    \"hex\": \"33CC99\"\n  },\n  {\n    \"name\": \"Tamarind\",\n    \"hex\": \"341515\"\n  },\n  {\n    \"name\": \"Mardi Gras\",\n    \"hex\": \"350036\"\n  },\n  {\n    \"name\": \"Valentino\",\n    \"hex\": \"350E42\"\n  },\n  {\n    \"name\": \"Jagger\",\n    \"hex\": \"350E57\"\n  },\n  {\n    \"name\": \"Tuna\",\n    \"hex\": \"353542\"\n  },\n  {\n    \"name\": \"Chambray\",\n    \"hex\": \"354E8C\"\n  },\n  {\n    \"name\": \"Martinique\",\n    \"hex\": \"363050\"\n  },\n  {\n    \"name\": \"Tuatara\",\n    \"hex\": \"363534\"\n  },\n  {\n    \"name\": \"Waiouru\",\n    \"hex\": \"363C0D\"\n  },\n  {\n    \"name\": \"Ming\",\n    \"hex\": \"36747D\"\n  },\n  {\n    \"name\": \"La Palma\",\n    \"hex\": \"368716\"\n  },\n  {\n    \"name\": \"Chocolate\",\n    \"hex\": \"370202\"\n  },\n  {\n    \"name\": \"Clinker\",\n    \"hex\": \"371D09\"\n  },\n  {\n    \"name\": \"Brown Tumbleweed\",\n    \"hex\": \"37290E\"\n  },\n  {\n    \"name\": \"Birch\",\n    \"hex\": \"373021\"\n  },\n  {\n    \"name\": \"Oracle\",\n    \"hex\": \"377475\"\n  },\n  {\n    \"name\": \"Blue Diamond\",\n    \"hex\": \"380474\"\n  },\n  {\n    \"name\": \"Grape\",\n    \"hex\": \"381A51\"\n  },\n  {\n    \"name\": \"Dune\",\n    \"hex\": \"383533\"\n  },\n  {\n    \"name\": \"Oxford Blue\",\n    \"hex\": \"384555\"\n  },\n  {\n    \"name\": \"Clover\",\n    \"hex\": \"384910\"\n  },\n  {\n    \"name\": \"Limed Spruce\",\n    \"hex\": \"394851\"\n  },\n  {\n    \"name\": \"Dell\",\n    \"hex\": \"396413\"\n  },\n  {\n    \"name\": \"Toledo\",\n    \"hex\": \"3A0020\"\n  },\n  {\n    \"name\": \"Sambuca\",\n    \"hex\": \"3A2010\"\n  },\n  {\n    \"name\": \"Jacarta\",\n    \"hex\": \"3A2A6A\"\n  },\n  {\n    \"name\": \"William\",\n    \"hex\": \"3A686C\"\n  },\n  {\n    \"name\": \"Killarney\",\n    \"hex\": \"3A6A47\"\n  },\n  {\n    \"name\": \"Keppel\",\n    \"hex\": \"3AB09E\"\n  },\n  {\n    \"name\": \"Temptress\",\n    \"hex\": \"3B000B\"\n  },\n  {\n    \"name\": \"Aubergine\",\n    \"hex\": \"3B0910\"\n  },\n  {\n    \"name\": \"Jon\",\n    \"hex\": \"3B1F1F\"\n  },\n  {\n    \"name\": \"Treehouse\",\n    \"hex\": \"3B2820\"\n  },\n  {\n    \"name\": \"Amazon\",\n    \"hex\": \"3B7A57\"\n  },\n  {\n    \"name\": \"Boston Blue\",\n    \"hex\": \"3B91B4\"\n  },\n  {\n    \"name\": \"Windsor\",\n    \"hex\": \"3C0878\"\n  },\n  {\n    \"name\": \"Rebel\",\n    \"hex\": \"3C1206\"\n  },\n  {\n    \"name\": \"Meteorite\",\n    \"hex\": \"3C1F76\"\n  },\n  {\n    \"name\": \"Dark Ebony\",\n    \"hex\": \"3C2005\"\n  },\n  {\n    \"name\": \"Camouflage\",\n    \"hex\": \"3C3910\"\n  },\n  {\n    \"name\": \"Bright Gray\",\n    \"hex\": \"3C4151\"\n  },\n  {\n    \"name\": \"Cape Cod\",\n    \"hex\": \"3C4443\"\n  },\n  {\n    \"name\": \"Lunar Green\",\n    \"hex\": \"3C493A\"\n  },\n  {\n    \"name\": \"Bean  \",\n    \"hex\": \"3D0C02\"\n  },\n  {\n    \"name\": \"Bistre\",\n    \"hex\": \"3D2B1F\"\n  },\n  {\n    \"name\": \"Goblin\",\n    \"hex\": \"3D7D52\"\n  },\n  {\n    \"name\": \"Kingfisher Daisy\",\n    \"hex\": \"3E0480\"\n  },\n  {\n    \"name\": \"Cedar\",\n    \"hex\": \"3E1C14\"\n  },\n  {\n    \"name\": \"English Walnut\",\n    \"hex\": \"3E2B23\"\n  },\n  {\n    \"name\": \"Black Marlin\",\n    \"hex\": \"3E2C1C\"\n  },\n  {\n    \"name\": \"Ship Gray\",\n    \"hex\": \"3E3A44\"\n  },\n  {\n    \"name\": \"Pelorous\",\n    \"hex\": \"3EABBF\"\n  },\n  {\n    \"name\": \"Bronze\",\n    \"hex\": \"3F2109\"\n  },\n  {\n    \"name\": \"Cola\",\n    \"hex\": \"3F2500\"\n  },\n  {\n    \"name\": \"Madras\",\n    \"hex\": \"3F3002\"\n  },\n  {\n    \"name\": \"Minsk\",\n    \"hex\": \"3F307F\"\n  },\n  {\n    \"name\": \"Cabbage Pont\",\n    \"hex\": \"3F4C3A\"\n  },\n  {\n    \"name\": \"Tom Thumb\",\n    \"hex\": \"3F583B\"\n  },\n  {\n    \"name\": \"Mineral Green\",\n    \"hex\": \"3F5D53\"\n  },\n  {\n    \"name\": \"Puerto Rico\",\n    \"hex\": \"3FC1AA\"\n  },\n  {\n    \"name\": \"Harlequin\",\n    \"hex\": \"3FFF00\"\n  },\n  {\n    \"name\": \"Brown Pod\",\n    \"hex\": \"401801\"\n  },\n  {\n    \"name\": \"Cork\",\n    \"hex\": \"40291D\"\n  },\n  {\n    \"name\": \"Masala\",\n    \"hex\": \"403B38\"\n  },\n  {\n    \"name\": \"Thatch Green\",\n    \"hex\": \"403D19\"\n  },\n  {\n    \"name\": \"Fiord\",\n    \"hex\": \"405169\"\n  },\n  {\n    \"name\": \"Viridian\",\n    \"hex\": \"40826D\"\n  },\n  {\n    \"name\": \"Chateau Green\",\n    \"hex\": \"40A860\"\n  },\n  {\n    \"name\": \"Ripe Plum\",\n    \"hex\": \"410056\"\n  },\n  {\n    \"name\": \"Paco\",\n    \"hex\": \"411F10\"\n  },\n  {\n    \"name\": \"Deep Oak\",\n    \"hex\": \"412010\"\n  },\n  {\n    \"name\": \"Merlin\",\n    \"hex\": \"413C37\"\n  },\n  {\n    \"name\": \"Gun Powder\",\n    \"hex\": \"414257\"\n  },\n  {\n    \"name\": \"East Bay\",\n    \"hex\": \"414C7D\"\n  },\n  {\n    \"name\": \"Royal Blue\",\n    \"hex\": \"4169E1\"\n  },\n  {\n    \"name\": \"Ocean Green\",\n    \"hex\": \"41AA78\"\n  },\n  {\n    \"name\": \"Burnt Maroon\",\n    \"hex\": \"420303\"\n  },\n  {\n    \"name\": \"Lisbon Brown\",\n    \"hex\": \"423921\"\n  },\n  {\n    \"name\": \"Faded Jade\",\n    \"hex\": \"427977\"\n  },\n  {\n    \"name\": \"Scarlet Gum\",\n    \"hex\": \"431560\"\n  },\n  {\n    \"name\": \"Iroko\",\n    \"hex\": \"433120\"\n  },\n  {\n    \"name\": \"Armadillo\",\n    \"hex\": \"433E37\"\n  },\n  {\n    \"name\": \"River Bed\",\n    \"hex\": \"434C59\"\n  },\n  {\n    \"name\": \"Green Leaf\",\n    \"hex\": \"436A0D\"\n  },\n  {\n    \"name\": \"Barossa\",\n    \"hex\": \"44012D\"\n  },\n  {\n    \"name\": \"Morocco Brown\",\n    \"hex\": \"441D00\"\n  },\n  {\n    \"name\": \"Mako\",\n    \"hex\": \"444954\"\n  },\n  {\n    \"name\": \"Kelp\",\n    \"hex\": \"454936\"\n  },\n  {\n    \"name\": \"San Marino\",\n    \"hex\": \"456CAC\"\n  },\n  {\n    \"name\": \"Picton Blue\",\n    \"hex\": \"45B1E8\"\n  },\n  {\n    \"name\": \"Loulou\",\n    \"hex\": \"460B41\"\n  },\n  {\n    \"name\": \"Crater Brown\",\n    \"hex\": \"462425\"\n  },\n  {\n    \"name\": \"Gray Asparagus\",\n    \"hex\": \"465945\"\n  },\n  {\n    \"name\": \"Steel Blue\",\n    \"hex\": \"4682B4\"\n  },\n  {\n    \"name\": \"Rustic Red\",\n    \"hex\": \"480404\"\n  },\n  {\n    \"name\": \"Bulgarian Rose\",\n    \"hex\": \"480607\"\n  },\n  {\n    \"name\": \"Clairvoyant\",\n    \"hex\": \"480656\"\n  },\n  {\n    \"name\": \"Cocoa Bean\",\n    \"hex\": \"481C1C\"\n  },\n  {\n    \"name\": \"Woody Brown\",\n    \"hex\": \"483131\"\n  },\n  {\n    \"name\": \"Taupe\",\n    \"hex\": \"483C32\"\n  },\n  {\n    \"name\": \"Van Cleef\",\n    \"hex\": \"49170C\"\n  },\n  {\n    \"name\": \"Brown Derby\",\n    \"hex\": \"492615\"\n  },\n  {\n    \"name\": \"Metallic Bronze\",\n    \"hex\": \"49371B\"\n  },\n  {\n    \"name\": \"Verdun Green\",\n    \"hex\": \"495400\"\n  },\n  {\n    \"name\": \"Blue Bayoux\",\n    \"hex\": \"496679\"\n  },\n  {\n    \"name\": \"Bismark\",\n    \"hex\": \"497183\"\n  },\n  {\n    \"name\": \"Bracken\",\n    \"hex\": \"4A2A04\"\n  },\n  {\n    \"name\": \"Deep Bronze\",\n    \"hex\": \"4A3004\"\n  },\n  {\n    \"name\": \"Mondo\",\n    \"hex\": \"4A3C30\"\n  },\n  {\n    \"name\": \"Tundora\",\n    \"hex\": \"4A4244\"\n  },\n  {\n    \"name\": \"Gravel\",\n    \"hex\": \"4A444B\"\n  },\n  {\n    \"name\": \"Trout\",\n    \"hex\": \"4A4E5A\"\n  },\n  {\n    \"name\": \"Pigment Indigo\",\n    \"hex\": \"4B0082\"\n  },\n  {\n    \"name\": \"Nandor\",\n    \"hex\": \"4B5D52\"\n  },\n  {\n    \"name\": \"Saddle\",\n    \"hex\": \"4C3024\"\n  },\n  {\n    \"name\": \"Abbey\",\n    \"hex\": \"4C4F56\"\n  },\n  {\n    \"name\": \"Blackberry\",\n    \"hex\": \"4D0135\"\n  },\n  {\n    \"name\": \"Cab Sav\",\n    \"hex\": \"4D0A18\"\n  },\n  {\n    \"name\": \"Indian Tan\",\n    \"hex\": \"4D1E01\"\n  },\n  {\n    \"name\": \"Cowboy\",\n    \"hex\": \"4D282D\"\n  },\n  {\n    \"name\": \"Livid Brown\",\n    \"hex\": \"4D282E\"\n  },\n  {\n    \"name\": \"Rock\",\n    \"hex\": \"4D3833\"\n  },\n  {\n    \"name\": \"Punga\",\n    \"hex\": \"4D3D14\"\n  },\n  {\n    \"name\": \"Bronzetone\",\n    \"hex\": \"4D400F\"\n  },\n  {\n    \"name\": \"Woodland\",\n    \"hex\": \"4D5328\"\n  },\n  {\n    \"name\": \"Mahogany\",\n    \"hex\": \"4E0606\"\n  },\n  {\n    \"name\": \"Bossanova\",\n    \"hex\": \"4E2A5A\"\n  },\n  {\n    \"name\": \"Matterhorn\",\n    \"hex\": \"4E3B41\"\n  },\n  {\n    \"name\": \"Bronze Olive\",\n    \"hex\": \"4E420C\"\n  },\n  {\n    \"name\": \"Mulled Wine\",\n    \"hex\": \"4E4562\"\n  },\n  {\n    \"name\": \"Axolotl\",\n    \"hex\": \"4E6649\"\n  },\n  {\n    \"name\": \"Wedgewood\",\n    \"hex\": \"4E7F9E\"\n  },\n  {\n    \"name\": \"Shakespeare\",\n    \"hex\": \"4EABD1\"\n  },\n  {\n    \"name\": \"Honey Flower\",\n    \"hex\": \"4F1C70\"\n  },\n  {\n    \"name\": \"Daisy Bush\",\n    \"hex\": \"4F2398\"\n  },\n  {\n    \"name\": \"Indigo\",\n    \"hex\": \"4F69C6\"\n  },\n  {\n    \"name\": \"Fern Green\",\n    \"hex\": \"4F7942\"\n  },\n  {\n    \"name\": \"Fruit Salad\",\n    \"hex\": \"4F9D5D\"\n  },\n  {\n    \"name\": \"Apple\",\n    \"hex\": \"4FA83D\"\n  },\n  {\n    \"name\": \"Mortar\",\n    \"hex\": \"504351\"\n  },\n  {\n    \"name\": \"Kashmir Blue\",\n    \"hex\": \"507096\"\n  },\n  {\n    \"name\": \"Cutty Sark\",\n    \"hex\": \"507672\"\n  },\n  {\n    \"name\": \"Emerald\",\n    \"hex\": \"50C878\"\n  },\n  {\n    \"name\": \"Emperor\",\n    \"hex\": \"514649\"\n  },\n  {\n    \"name\": \"Chalet Green\",\n    \"hex\": \"516E3D\"\n  },\n  {\n    \"name\": \"Como\",\n    \"hex\": \"517C66\"\n  },\n  {\n    \"name\": \"Smalt Blue\",\n    \"hex\": \"51808F\"\n  },\n  {\n    \"name\": \"Castro\",\n    \"hex\": \"52001F\"\n  },\n  {\n    \"name\": \"Maroon Oak\",\n    \"hex\": \"520C17\"\n  },\n  {\n    \"name\": \"Gigas\",\n    \"hex\": \"523C94\"\n  },\n  {\n    \"name\": \"Voodoo\",\n    \"hex\": \"533455\"\n  },\n  {\n    \"name\": \"Victoria\",\n    \"hex\": \"534491\"\n  },\n  {\n    \"name\": \"Hippie Green\",\n    \"hex\": \"53824B\"\n  },\n  {\n    \"name\": \"Heath\",\n    \"hex\": \"541012\"\n  },\n  {\n    \"name\": \"Judge Gray\",\n    \"hex\": \"544333\"\n  },\n  {\n    \"name\": \"Fuscous Gray\",\n    \"hex\": \"54534D\"\n  },\n  {\n    \"name\": \"Vida Loca\",\n    \"hex\": \"549019\"\n  },\n  {\n    \"name\": \"Cioccolato\",\n    \"hex\": \"55280C\"\n  },\n  {\n    \"name\": \"Saratoga\",\n    \"hex\": \"555B10\"\n  },\n  {\n    \"name\": \"Finlandia\",\n    \"hex\": \"556D56\"\n  },\n  {\n    \"name\": \"Havelock Blue\",\n    \"hex\": \"5590D9\"\n  },\n  {\n    \"name\": \"Fountain Blue\",\n    \"hex\": \"56B4BE\"\n  },\n  {\n    \"name\": \"Spring Leaves\",\n    \"hex\": \"578363\"\n  },\n  {\n    \"name\": \"Saddle Brown\",\n    \"hex\": \"583401\"\n  },\n  {\n    \"name\": \"Scarpa Flow\",\n    \"hex\": \"585562\"\n  },\n  {\n    \"name\": \"Cactus\",\n    \"hex\": \"587156\"\n  },\n  {\n    \"name\": \"Hippie Blue\",\n    \"hex\": \"589AAF\"\n  },\n  {\n    \"name\": \"Wine Berry\",\n    \"hex\": \"591D35\"\n  },\n  {\n    \"name\": \"Brown Bramble\",\n    \"hex\": \"592804\"\n  },\n  {\n    \"name\": \"Congo Brown\",\n    \"hex\": \"593737\"\n  },\n  {\n    \"name\": \"Millbrook\",\n    \"hex\": \"594433\"\n  },\n  {\n    \"name\": \"Waikawa Gray\",\n    \"hex\": \"5A6E9C\"\n  },\n  {\n    \"name\": \"Horizon\",\n    \"hex\": \"5A87A0\"\n  },\n  {\n    \"name\": \"Jambalaya\",\n    \"hex\": \"5B3013\"\n  },\n  {\n    \"name\": \"Bordeaux\",\n    \"hex\": \"5C0120\"\n  },\n  {\n    \"name\": \"Mulberry Wood\",\n    \"hex\": \"5C0536\"\n  },\n  {\n    \"name\": \"Carnaby Tan\",\n    \"hex\": \"5C2E01\"\n  },\n  {\n    \"name\": \"Comet\",\n    \"hex\": \"5C5D75\"\n  },\n  {\n    \"name\": \"Redwood\",\n    \"hex\": \"5D1E0F\"\n  },\n  {\n    \"name\": \"Don Juan\",\n    \"hex\": \"5D4C51\"\n  },\n  {\n    \"name\": \"Chicago\",\n    \"hex\": \"5D5C58\"\n  },\n  {\n    \"name\": \"Verdigris\",\n    \"hex\": \"5D5E37\"\n  },\n  {\n    \"name\": \"Dingley\",\n    \"hex\": \"5D7747\"\n  },\n  {\n    \"name\": \"Breaker Bay\",\n    \"hex\": \"5DA19F\"\n  },\n  {\n    \"name\": \"Kabul\",\n    \"hex\": \"5E483E\"\n  },\n  {\n    \"name\": \"Hemlock\",\n    \"hex\": \"5E5D3B\"\n  },\n  {\n    \"name\": \"Irish Coffee\",\n    \"hex\": \"5F3D26\"\n  },\n  {\n    \"name\": \"Mid Gray\",\n    \"hex\": \"5F5F6E\"\n  },\n  {\n    \"name\": \"Shuttle Gray\",\n    \"hex\": \"5F6672\"\n  },\n  {\n    \"name\": \"Aqua Forest\",\n    \"hex\": \"5FA777\"\n  },\n  {\n    \"name\": \"Tradewind\",\n    \"hex\": \"5FB3AC\"\n  },\n  {\n    \"name\": \"Horses Neck\",\n    \"hex\": \"604913\"\n  },\n  {\n    \"name\": \"Smoky\",\n    \"hex\": \"605B73\"\n  },\n  {\n    \"name\": \"Corduroy\",\n    \"hex\": \"606E68\"\n  },\n  {\n    \"name\": \"Danube\",\n    \"hex\": \"6093D1\"\n  },\n  {\n    \"name\": \"Espresso\",\n    \"hex\": \"612718\"\n  },\n  {\n    \"name\": \"Eggplant\",\n    \"hex\": \"614051\"\n  },\n  {\n    \"name\": \"Costa Del Sol\",\n    \"hex\": \"615D30\"\n  },\n  {\n    \"name\": \"Glade Green\",\n    \"hex\": \"61845F\"\n  },\n  {\n    \"name\": \"Buccaneer\",\n    \"hex\": \"622F30\"\n  },\n  {\n    \"name\": \"Quincy\",\n    \"hex\": \"623F2D\"\n  },\n  {\n    \"name\": \"Butterfly Bush\",\n    \"hex\": \"624E9A\"\n  },\n  {\n    \"name\": \"West Coast\",\n    \"hex\": \"625119\"\n  },\n  {\n    \"name\": \"Finch\",\n    \"hex\": \"626649\"\n  },\n  {\n    \"name\": \"Patina\",\n    \"hex\": \"639A8F\"\n  },\n  {\n    \"name\": \"Fern\",\n    \"hex\": \"63B76C\"\n  },\n  {\n    \"name\": \"Blue Violet\",\n    \"hex\": \"6456B7\"\n  },\n  {\n    \"name\": \"Dolphin\",\n    \"hex\": \"646077\"\n  },\n  {\n    \"name\": \"Storm Dust\",\n    \"hex\": \"646463\"\n  },\n  {\n    \"name\": \"Siam\",\n    \"hex\": \"646A54\"\n  },\n  {\n    \"name\": \"Nevada\",\n    \"hex\": \"646E75\"\n  },\n  {\n    \"name\": \"Cornflower Blue\",\n    \"hex\": \"6495ED\"\n  },\n  {\n    \"name\": \"Viking\",\n    \"hex\": \"64CCDB\"\n  },\n  {\n    \"name\": \"Rosewood\",\n    \"hex\": \"65000B\"\n  },\n  {\n    \"name\": \"Cherrywood\",\n    \"hex\": \"651A14\"\n  },\n  {\n    \"name\": \"Purple Heart\",\n    \"hex\": \"652DC1\"\n  },\n  {\n    \"name\": \"Fern Frond\",\n    \"hex\": \"657220\"\n  },\n  {\n    \"name\": \"Willow Grove\",\n    \"hex\": \"65745D\"\n  },\n  {\n    \"name\": \"Hoki\",\n    \"hex\": \"65869F\"\n  },\n  {\n    \"name\": \"Pompadour\",\n    \"hex\": \"660045\"\n  },\n  {\n    \"name\": \"Purple\",\n    \"hex\": \"660099\"\n  },\n  {\n    \"name\": \"Tyrian Purple\",\n    \"hex\": \"66023C\"\n  },\n  {\n    \"name\": \"Dark Tan\",\n    \"hex\": \"661010\"\n  },\n  {\n    \"name\": \"Silver Tree\",\n    \"hex\": \"66B58F\"\n  },\n  {\n    \"name\": \"Bright Green\",\n    \"hex\": \"66FF00\"\n  },\n  {\n    \"name\": \"Screamin' Green\",\n    \"hex\": \"66FF66\"\n  },\n  {\n    \"name\": \"Black Rose\",\n    \"hex\": \"67032D\"\n  },\n  {\n    \"name\": \"Scampi\",\n    \"hex\": \"675FA6\"\n  },\n  {\n    \"name\": \"Ironside Gray\",\n    \"hex\": \"676662\"\n  },\n  {\n    \"name\": \"Viridian Green\",\n    \"hex\": \"678975\"\n  },\n  {\n    \"name\": \"Christi\",\n    \"hex\": \"67A712\"\n  },\n  {\n    \"name\": \"Nutmeg Wood Finish\",\n    \"hex\": \"683600\"\n  },\n  {\n    \"name\": \"Zambezi\",\n    \"hex\": \"685558\"\n  },\n  {\n    \"name\": \"Salt Box\",\n    \"hex\": \"685E6E\"\n  },\n  {\n    \"name\": \"Tawny Port\",\n    \"hex\": \"692545\"\n  },\n  {\n    \"name\": \"Finn\",\n    \"hex\": \"692D54\"\n  },\n  {\n    \"name\": \"Scorpion\",\n    \"hex\": \"695F62\"\n  },\n  {\n    \"name\": \"Lynch\",\n    \"hex\": \"697E9A\"\n  },\n  {\n    \"name\": \"Spice\",\n    \"hex\": \"6A442E\"\n  },\n  {\n    \"name\": \"Himalaya\",\n    \"hex\": \"6A5D1B\"\n  },\n  {\n    \"name\": \"Soya Bean\",\n    \"hex\": \"6A6051\"\n  },\n  {\n    \"name\": \"Hairy Heath\",\n    \"hex\": \"6B2A14\"\n  },\n  {\n    \"name\": \"Royal Purple\",\n    \"hex\": \"6B3FA0\"\n  },\n  {\n    \"name\": \"Shingle Fawn\",\n    \"hex\": \"6B4E31\"\n  },\n  {\n    \"name\": \"Dorado\",\n    \"hex\": \"6B5755\"\n  },\n  {\n    \"name\": \"Bermuda Gray\",\n    \"hex\": \"6B8BA2\"\n  },\n  {\n    \"name\": \"Olive Drab\",\n    \"hex\": \"6B8E23\"\n  },\n  {\n    \"name\": \"Eminence\",\n    \"hex\": \"6C3082\"\n  },\n  {\n    \"name\": \"Turquoise Blue\",\n    \"hex\": \"6CDAE7\"\n  },\n  {\n    \"name\": \"Lonestar\",\n    \"hex\": \"6D0101\"\n  },\n  {\n    \"name\": \"Pine Cone\",\n    \"hex\": \"6D5E54\"\n  },\n  {\n    \"name\": \"Dove Gray\",\n    \"hex\": \"6D6C6C\"\n  },\n  {\n    \"name\": \"Juniper\",\n    \"hex\": \"6D9292\"\n  },\n  {\n    \"name\": \"Gothic\",\n    \"hex\": \"6D92A1\"\n  },\n  {\n    \"name\": \"Red Oxide\",\n    \"hex\": \"6E0902\"\n  },\n  {\n    \"name\": \"Moccaccino\",\n    \"hex\": \"6E1D14\"\n  },\n  {\n    \"name\": \"Pickled Bean\",\n    \"hex\": \"6E4826\"\n  },\n  {\n    \"name\": \"Dallas\",\n    \"hex\": \"6E4B26\"\n  },\n  {\n    \"name\": \"Kokoda\",\n    \"hex\": \"6E6D57\"\n  },\n  {\n    \"name\": \"Pale Sky\",\n    \"hex\": \"6E7783\"\n  },\n  {\n    \"name\": \"Cafe Royale\",\n    \"hex\": \"6F440C\"\n  },\n  {\n    \"name\": \"Flint\",\n    \"hex\": \"6F6A61\"\n  },\n  {\n    \"name\": \"Highland\",\n    \"hex\": \"6F8E63\"\n  },\n  {\n    \"name\": \"Limeade\",\n    \"hex\": \"6F9D02\"\n  },\n  {\n    \"name\": \"Downy\",\n    \"hex\": \"6FD0C5\"\n  },\n  {\n    \"name\": \"Persian Plum\",\n    \"hex\": \"701C1C\"\n  },\n  {\n    \"name\": \"Sepia\",\n    \"hex\": \"704214\"\n  },\n  {\n    \"name\": \"Antique Bronze\",\n    \"hex\": \"704A07\"\n  },\n  {\n    \"name\": \"Ferra\",\n    \"hex\": \"704F50\"\n  },\n  {\n    \"name\": \"Coffee\",\n    \"hex\": \"706555\"\n  },\n  {\n    \"name\": \"Slate Gray\",\n    \"hex\": \"708090\"\n  },\n  {\n    \"name\": \"Cedar Wood Finish\",\n    \"hex\": \"711A00\"\n  },\n  {\n    \"name\": \"Metallic Copper\",\n    \"hex\": \"71291D\"\n  },\n  {\n    \"name\": \"Affair\",\n    \"hex\": \"714693\"\n  },\n  {\n    \"name\": \"Studio\",\n    \"hex\": \"714AB2\"\n  },\n  {\n    \"name\": \"Tobacco Brown\",\n    \"hex\": \"715D47\"\n  },\n  {\n    \"name\": \"Yellow Metal\",\n    \"hex\": \"716338\"\n  },\n  {\n    \"name\": \"Peat\",\n    \"hex\": \"716B56\"\n  },\n  {\n    \"name\": \"Olivetone\",\n    \"hex\": \"716E10\"\n  },\n  {\n    \"name\": \"Storm Gray\",\n    \"hex\": \"717486\"\n  },\n  {\n    \"name\": \"Sirocco\",\n    \"hex\": \"718080\"\n  },\n  {\n    \"name\": \"Aquamarine Blue\",\n    \"hex\": \"71D9E2\"\n  },\n  {\n    \"name\": \"Venetian Red\",\n    \"hex\": \"72010F\"\n  },\n  {\n    \"name\": \"Old Copper\",\n    \"hex\": \"724A2F\"\n  },\n  {\n    \"name\": \"Go Ben\",\n    \"hex\": \"726D4E\"\n  },\n  {\n    \"name\": \"Raven\",\n    \"hex\": \"727B89\"\n  },\n  {\n    \"name\": \"Seance\",\n    \"hex\": \"731E8F\"\n  },\n  {\n    \"name\": \"Raw Umber\",\n    \"hex\": \"734A12\"\n  },\n  {\n    \"name\": \"Kimberly\",\n    \"hex\": \"736C9F\"\n  },\n  {\n    \"name\": \"Crocodile\",\n    \"hex\": \"736D58\"\n  },\n  {\n    \"name\": \"Crete\",\n    \"hex\": \"737829\"\n  },\n  {\n    \"name\": \"Xanadu\",\n    \"hex\": \"738678\"\n  },\n  {\n    \"name\": \"Spicy Mustard\",\n    \"hex\": \"74640D\"\n  },\n  {\n    \"name\": \"Limed Ash\",\n    \"hex\": \"747D63\"\n  },\n  {\n    \"name\": \"Rolling Stone\",\n    \"hex\": \"747D83\"\n  },\n  {\n    \"name\": \"Blue Smoke\",\n    \"hex\": \"748881\"\n  },\n  {\n    \"name\": \"Laurel\",\n    \"hex\": \"749378\"\n  },\n  {\n    \"name\": \"Mantis\",\n    \"hex\": \"74C365\"\n  },\n  {\n    \"name\": \"Russett\",\n    \"hex\": \"755A57\"\n  },\n  {\n    \"name\": \"Deluge\",\n    \"hex\": \"7563A8\"\n  },\n  {\n    \"name\": \"Cosmic\",\n    \"hex\": \"76395D\"\n  },\n  {\n    \"name\": \"Blue Marguerite\",\n    \"hex\": \"7666C6\"\n  },\n  {\n    \"name\": \"Lima\",\n    \"hex\": \"76BD17\"\n  },\n  {\n    \"name\": \"Sky Blue\",\n    \"hex\": \"76D7EA\"\n  },\n  {\n    \"name\": \"Dark Burgundy\",\n    \"hex\": \"770F05\"\n  },\n  {\n    \"name\": \"Crown of Thorns\",\n    \"hex\": \"771F1F\"\n  },\n  {\n    \"name\": \"Walnut\",\n    \"hex\": \"773F1A\"\n  },\n  {\n    \"name\": \"Pablo\",\n    \"hex\": \"776F61\"\n  },\n  {\n    \"name\": \"Pacifika\",\n    \"hex\": \"778120\"\n  },\n  {\n    \"name\": \"Oxley\",\n    \"hex\": \"779E86\"\n  },\n  {\n    \"name\": \"Pastel Green\",\n    \"hex\": \"77DD77\"\n  },\n  {\n    \"name\": \"Japanese Maple\",\n    \"hex\": \"780109\"\n  },\n  {\n    \"name\": \"Mocha\",\n    \"hex\": \"782D19\"\n  },\n  {\n    \"name\": \"Peanut\",\n    \"hex\": \"782F16\"\n  },\n  {\n    \"name\": \"Camouflage Green\",\n    \"hex\": \"78866B\"\n  },\n  {\n    \"name\": \"Wasabi\",\n    \"hex\": \"788A25\"\n  },\n  {\n    \"name\": \"Ship Cove\",\n    \"hex\": \"788BBA\"\n  },\n  {\n    \"name\": \"Sea Nymph\",\n    \"hex\": \"78A39C\"\n  },\n  {\n    \"name\": \"Roman Coffee\",\n    \"hex\": \"795D4C\"\n  },\n  {\n    \"name\": \"Old Lavender\",\n    \"hex\": \"796878\"\n  },\n  {\n    \"name\": \"Rum\",\n    \"hex\": \"796989\"\n  },\n  {\n    \"name\": \"Fedora\",\n    \"hex\": \"796A78\"\n  },\n  {\n    \"name\": \"Sandstone\",\n    \"hex\": \"796D62\"\n  },\n  {\n    \"name\": \"Spray\",\n    \"hex\": \"79DEEC\"\n  },\n  {\n    \"name\": \"Siren\",\n    \"hex\": \"7A013A\"\n  },\n  {\n    \"name\": \"Fuchsia Blue\",\n    \"hex\": \"7A58C1\"\n  },\n  {\n    \"name\": \"Boulder\",\n    \"hex\": \"7A7A7A\"\n  },\n  {\n    \"name\": \"Wild Blue Yonder\",\n    \"hex\": \"7A89B8\"\n  },\n  {\n    \"name\": \"De York\",\n    \"hex\": \"7AC488\"\n  },\n  {\n    \"name\": \"Red Beech\",\n    \"hex\": \"7B3801\"\n  },\n  {\n    \"name\": \"Cinnamon\",\n    \"hex\": \"7B3F00\"\n  },\n  {\n    \"name\": \"Yukon Gold\",\n    \"hex\": \"7B6608\"\n  },\n  {\n    \"name\": \"Tapa\",\n    \"hex\": \"7B7874\"\n  },\n  {\n    \"name\": \"Waterloo \",\n    \"hex\": \"7B7C94\"\n  },\n  {\n    \"name\": \"Flax Smoke\",\n    \"hex\": \"7B8265\"\n  },\n  {\n    \"name\": \"Amulet\",\n    \"hex\": \"7B9F80\"\n  },\n  {\n    \"name\": \"Asparagus\",\n    \"hex\": \"7BA05B\"\n  },\n  {\n    \"name\": \"Kenyan Copper\",\n    \"hex\": \"7C1C05\"\n  },\n  {\n    \"name\": \"Pesto\",\n    \"hex\": \"7C7631\"\n  },\n  {\n    \"name\": \"Topaz\",\n    \"hex\": \"7C778A\"\n  },\n  {\n    \"name\": \"Concord\",\n    \"hex\": \"7C7B7A\"\n  },\n  {\n    \"name\": \"Jumbo\",\n    \"hex\": \"7C7B82\"\n  },\n  {\n    \"name\": \"Trendy Green\",\n    \"hex\": \"7C881A\"\n  },\n  {\n    \"name\": \"Gumbo\",\n    \"hex\": \"7CA1A6\"\n  },\n  {\n    \"name\": \"Acapulco\",\n    \"hex\": \"7CB0A1\"\n  },\n  {\n    \"name\": \"Neptune\",\n    \"hex\": \"7CB7BB\"\n  },\n  {\n    \"name\": \"Pueblo\",\n    \"hex\": \"7D2C14\"\n  },\n  {\n    \"name\": \"Bay Leaf\",\n    \"hex\": \"7DA98D\"\n  },\n  {\n    \"name\": \"Malibu\",\n    \"hex\": \"7DC8F7\"\n  },\n  {\n    \"name\": \"Bermuda\",\n    \"hex\": \"7DD8C6\"\n  },\n  {\n    \"name\": \"Copper Canyon\",\n    \"hex\": \"7E3A15\"\n  },\n  {\n    \"name\": \"Claret\",\n    \"hex\": \"7F1734\"\n  },\n  {\n    \"name\": \"Peru Tan\",\n    \"hex\": \"7F3A02\"\n  },\n  {\n    \"name\": \"Falcon\",\n    \"hex\": \"7F626D\"\n  },\n  {\n    \"name\": \"Mobster\",\n    \"hex\": \"7F7589\"\n  },\n  {\n    \"name\": \"Moody Blue\",\n    \"hex\": \"7F76D3\"\n  },\n  {\n    \"name\": \"Chartreuse\",\n    \"hex\": \"7FFF00\"\n  },\n  {\n    \"name\": \"Aquamarine\",\n    \"hex\": \"7FFFD4\"\n  },\n  {\n    \"name\": \"Maroon\",\n    \"hex\": \"800000\"\n  },\n  {\n    \"name\": \"Rose Bud Cherry\",\n    \"hex\": \"800B47\"\n  },\n  {\n    \"name\": \"Falu Red\",\n    \"hex\": \"801818\"\n  },\n  {\n    \"name\": \"Red Robin\",\n    \"hex\": \"80341F\"\n  },\n  {\n    \"name\": \"Vivid Violet\",\n    \"hex\": \"803790\"\n  },\n  {\n    \"name\": \"Russet\",\n    \"hex\": \"80461B\"\n  },\n  {\n    \"name\": \"Friar Gray\",\n    \"hex\": \"807E79\"\n  },\n  {\n    \"name\": \"Olive\",\n    \"hex\": \"808000\"\n  },\n  {\n    \"name\": \"Gray\",\n    \"hex\": \"808080\"\n  },\n  {\n    \"name\": \"Gulf Stream\",\n    \"hex\": \"80B3AE\"\n  },\n  {\n    \"name\": \"Glacier\",\n    \"hex\": \"80B3C4\"\n  },\n  {\n    \"name\": \"Seagull\",\n    \"hex\": \"80CCEA\"\n  },\n  {\n    \"name\": \"Nutmeg\",\n    \"hex\": \"81422C\"\n  },\n  {\n    \"name\": \"Spicy Pink\",\n    \"hex\": \"816E71\"\n  },\n  {\n    \"name\": \"Empress\",\n    \"hex\": \"817377\"\n  },\n  {\n    \"name\": \"Spanish Green\",\n    \"hex\": \"819885\"\n  },\n  {\n    \"name\": \"Sand Dune\",\n    \"hex\": \"826F65\"\n  },\n  {\n    \"name\": \"Gunsmoke\",\n    \"hex\": \"828685\"\n  },\n  {\n    \"name\": \"Battleship Gray\",\n    \"hex\": \"828F72\"\n  },\n  {\n    \"name\": \"Merlot\",\n    \"hex\": \"831923\"\n  },\n  {\n    \"name\": \"Shadow\",\n    \"hex\": \"837050\"\n  },\n  {\n    \"name\": \"Chelsea Cucumber\",\n    \"hex\": \"83AA5D\"\n  },\n  {\n    \"name\": \"Monte Carlo\",\n    \"hex\": \"83D0C6\"\n  },\n  {\n    \"name\": \"Plum\",\n    \"hex\": \"843179\"\n  },\n  {\n    \"name\": \"Granny Smith\",\n    \"hex\": \"84A0A0\"\n  },\n  {\n    \"name\": \"Chetwode Blue\",\n    \"hex\": \"8581D9\"\n  },\n  {\n    \"name\": \"Bandicoot\",\n    \"hex\": \"858470\"\n  },\n  {\n    \"name\": \"Bali Hai\",\n    \"hex\": \"859FAF\"\n  },\n  {\n    \"name\": \"Half Baked\",\n    \"hex\": \"85C4CC\"\n  },\n  {\n    \"name\": \"Red Devil\",\n    \"hex\": \"860111\"\n  },\n  {\n    \"name\": \"Lotus\",\n    \"hex\": \"863C3C\"\n  },\n  {\n    \"name\": \"Ironstone\",\n    \"hex\": \"86483C\"\n  },\n  {\n    \"name\": \"Bull Shot\",\n    \"hex\": \"864D1E\"\n  },\n  {\n    \"name\": \"Rusty Nail\",\n    \"hex\": \"86560A\"\n  },\n  {\n    \"name\": \"Bitter\",\n    \"hex\": \"868974\"\n  },\n  {\n    \"name\": \"Regent Gray\",\n    \"hex\": \"86949F\"\n  },\n  {\n    \"name\": \"Disco\",\n    \"hex\": \"871550\"\n  },\n  {\n    \"name\": \"Americano\",\n    \"hex\": \"87756E\"\n  },\n  {\n    \"name\": \"Hurricane\",\n    \"hex\": \"877C7B\"\n  },\n  {\n    \"name\": \"Oslo Gray\",\n    \"hex\": \"878D91\"\n  },\n  {\n    \"name\": \"Sushi\",\n    \"hex\": \"87AB39\"\n  },\n  {\n    \"name\": \"Spicy Mix\",\n    \"hex\": \"885342\"\n  },\n  {\n    \"name\": \"Kumera\",\n    \"hex\": \"886221\"\n  },\n  {\n    \"name\": \"Suva Gray\",\n    \"hex\": \"888387\"\n  },\n  {\n    \"name\": \"Avocado\",\n    \"hex\": \"888D65\"\n  },\n  {\n    \"name\": \"Camelot\",\n    \"hex\": \"893456\"\n  },\n  {\n    \"name\": \"Solid Pink\",\n    \"hex\": \"893843\"\n  },\n  {\n    \"name\": \"Cannon Pink\",\n    \"hex\": \"894367\"\n  },\n  {\n    \"name\": \"Makara\",\n    \"hex\": \"897D6D\"\n  },\n  {\n    \"name\": \"Burnt Umber\",\n    \"hex\": \"8A3324\"\n  },\n  {\n    \"name\": \"True V\",\n    \"hex\": \"8A73D6\"\n  },\n  {\n    \"name\": \"Clay Creek\",\n    \"hex\": \"8A8360\"\n  },\n  {\n    \"name\": \"Monsoon\",\n    \"hex\": \"8A8389\"\n  },\n  {\n    \"name\": \"Stack\",\n    \"hex\": \"8A8F8A\"\n  },\n  {\n    \"name\": \"Jordy Blue\",\n    \"hex\": \"8AB9F1\"\n  },\n  {\n    \"name\": \"Electric Violet\",\n    \"hex\": \"8B00FF\"\n  },\n  {\n    \"name\": \"Monarch\",\n    \"hex\": \"8B0723\"\n  },\n  {\n    \"name\": \"Corn Harvest\",\n    \"hex\": \"8B6B0B\"\n  },\n  {\n    \"name\": \"Olive Haze\",\n    \"hex\": \"8B8470\"\n  },\n  {\n    \"name\": \"Schooner\",\n    \"hex\": \"8B847E\"\n  },\n  {\n    \"name\": \"Natural Gray\",\n    \"hex\": \"8B8680\"\n  },\n  {\n    \"name\": \"Mantle\",\n    \"hex\": \"8B9C90\"\n  },\n  {\n    \"name\": \"Portage\",\n    \"hex\": \"8B9FEE\"\n  },\n  {\n    \"name\": \"Envy\",\n    \"hex\": \"8BA690\"\n  },\n  {\n    \"name\": \"Cascade\",\n    \"hex\": \"8BA9A5\"\n  },\n  {\n    \"name\": \"Riptide\",\n    \"hex\": \"8BE6D8\"\n  },\n  {\n    \"name\": \"Cardinal Pink\",\n    \"hex\": \"8C055E\"\n  },\n  {\n    \"name\": \"Mule Fawn\",\n    \"hex\": \"8C472F\"\n  },\n  {\n    \"name\": \"Potters Clay\",\n    \"hex\": \"8C5738\"\n  },\n  {\n    \"name\": \"Trendy Pink\",\n    \"hex\": \"8C6495\"\n  },\n  {\n    \"name\": \"Paprika\",\n    \"hex\": \"8D0226\"\n  },\n  {\n    \"name\": \"Sanguine Brown\",\n    \"hex\": \"8D3D38\"\n  },\n  {\n    \"name\": \"Tosca\",\n    \"hex\": \"8D3F3F\"\n  },\n  {\n    \"name\": \"Cement\",\n    \"hex\": \"8D7662\"\n  },\n  {\n    \"name\": \"Granite Green\",\n    \"hex\": \"8D8974\"\n  },\n  {\n    \"name\": \"Manatee\",\n    \"hex\": \"8D90A1\"\n  },\n  {\n    \"name\": \"Polo Blue\",\n    \"hex\": \"8DA8CC\"\n  },\n  {\n    \"name\": \"Red Berry\",\n    \"hex\": \"8E0000\"\n  },\n  {\n    \"name\": \"Rope\",\n    \"hex\": \"8E4D1E\"\n  },\n  {\n    \"name\": \"Opium\",\n    \"hex\": \"8E6F70\"\n  },\n  {\n    \"name\": \"Domino\",\n    \"hex\": \"8E775E\"\n  },\n  {\n    \"name\": \"Mamba\",\n    \"hex\": \"8E8190\"\n  },\n  {\n    \"name\": \"Nepal\",\n    \"hex\": \"8EABC1\"\n  },\n  {\n    \"name\": \"Pohutukawa\",\n    \"hex\": \"8F021C\"\n  },\n  {\n    \"name\": \"El Salva\",\n    \"hex\": \"8F3E33\"\n  },\n  {\n    \"name\": \"Korma\",\n    \"hex\": \"8F4B0E\"\n  },\n  {\n    \"name\": \"Squirrel\",\n    \"hex\": \"8F8176\"\n  },\n  {\n    \"name\": \"Vista Blue\",\n    \"hex\": \"8FD6B4\"\n  },\n  {\n    \"name\": \"Burgundy\",\n    \"hex\": \"900020\"\n  },\n  {\n    \"name\": \"Old Brick\",\n    \"hex\": \"901E1E\"\n  },\n  {\n    \"name\": \"Hemp\",\n    \"hex\": \"907874\"\n  },\n  {\n    \"name\": \"Almond Frost\",\n    \"hex\": \"907B71\"\n  },\n  {\n    \"name\": \"Sycamore\",\n    \"hex\": \"908D39\"\n  },\n  {\n    \"name\": \"Sangria\",\n    \"hex\": \"92000A\"\n  },\n  {\n    \"name\": \"Cumin\",\n    \"hex\": \"924321\"\n  },\n  {\n    \"name\": \"Beaver\",\n    \"hex\": \"926F5B\"\n  },\n  {\n    \"name\": \"Stonewall\",\n    \"hex\": \"928573\"\n  },\n  {\n    \"name\": \"Venus\",\n    \"hex\": \"928590\"\n  },\n  {\n    \"name\": \"Medium Purple\",\n    \"hex\": \"9370DB\"\n  },\n  {\n    \"name\": \"Cornflower\",\n    \"hex\": \"93CCEA\"\n  },\n  {\n    \"name\": \"Algae Green\",\n    \"hex\": \"93DFB8\"\n  },\n  {\n    \"name\": \"Copper Rust\",\n    \"hex\": \"944747\"\n  },\n  {\n    \"name\": \"Arrowtown\",\n    \"hex\": \"948771\"\n  },\n  {\n    \"name\": \"Scarlett\",\n    \"hex\": \"950015\"\n  },\n  {\n    \"name\": \"Strikemaster\",\n    \"hex\": \"956387\"\n  },\n  {\n    \"name\": \"Mountain Mist\",\n    \"hex\": \"959396\"\n  },\n  {\n    \"name\": \"Carmine\",\n    \"hex\": \"960018\"\n  },\n  {\n    \"name\": \"Brown\",\n    \"hex\": \"964B00\"\n  },\n  {\n    \"name\": \"Leather\",\n    \"hex\": \"967059\"\n  },\n  {\n    \"name\": \"Purple Mountain's Majesty\",\n    \"hex\": \"9678B6\"\n  },\n  {\n    \"name\": \"Lavender Purple\",\n    \"hex\": \"967BB6\"\n  },\n  {\n    \"name\": \"Pewter\",\n    \"hex\": \"96A8A1\"\n  },\n  {\n    \"name\": \"Summer Green\",\n    \"hex\": \"96BBAB\"\n  },\n  {\n    \"name\": \"Au Chico\",\n    \"hex\": \"97605D\"\n  },\n  {\n    \"name\": \"Wisteria\",\n    \"hex\": \"9771B5\"\n  },\n  {\n    \"name\": \"Atlantis\",\n    \"hex\": \"97CD2D\"\n  },\n  {\n    \"name\": \"Vin Rouge\",\n    \"hex\": \"983D61\"\n  },\n  {\n    \"name\": \"Lilac Bush\",\n    \"hex\": \"9874D3\"\n  },\n  {\n    \"name\": \"Bazaar\",\n    \"hex\": \"98777B\"\n  },\n  {\n    \"name\": \"Hacienda\",\n    \"hex\": \"98811B\"\n  },\n  {\n    \"name\": \"Pale Oyster\",\n    \"hex\": \"988D77\"\n  },\n  {\n    \"name\": \"Mint Green\",\n    \"hex\": \"98FF98\"\n  },\n  {\n    \"name\": \"Fresh Eggplant\",\n    \"hex\": \"990066\"\n  },\n  {\n    \"name\": \"Violet Eggplant\",\n    \"hex\": \"991199\"\n  },\n  {\n    \"name\": \"Tamarillo\",\n    \"hex\": \"991613\"\n  },\n  {\n    \"name\": \"Totem Pole\",\n    \"hex\": \"991B07\"\n  },\n  {\n    \"name\": \"Copper Rose\",\n    \"hex\": \"996666\"\n  },\n  {\n    \"name\": \"Amethyst\",\n    \"hex\": \"9966CC\"\n  },\n  {\n    \"name\": \"Mountbatten Pink\",\n    \"hex\": \"997A8D\"\n  },\n  {\n    \"name\": \"Blue Bell\",\n    \"hex\": \"9999CC\"\n  },\n  {\n    \"name\": \"Prairie Sand\",\n    \"hex\": \"9A3820\"\n  },\n  {\n    \"name\": \"Toast\",\n    \"hex\": \"9A6E61\"\n  },\n  {\n    \"name\": \"Gurkha\",\n    \"hex\": \"9A9577\"\n  },\n  {\n    \"name\": \"Olivine\",\n    \"hex\": \"9AB973\"\n  },\n  {\n    \"name\": \"Shadow Green\",\n    \"hex\": \"9AC2B8\"\n  },\n  {\n    \"name\": \"Oregon\",\n    \"hex\": \"9B4703\"\n  },\n  {\n    \"name\": \"Lemon Grass\",\n    \"hex\": \"9B9E8F\"\n  },\n  {\n    \"name\": \"Stiletto\",\n    \"hex\": \"9C3336\"\n  },\n  {\n    \"name\": \"Hawaiian Tan\",\n    \"hex\": \"9D5616\"\n  },\n  {\n    \"name\": \"Gull Gray\",\n    \"hex\": \"9DACB7\"\n  },\n  {\n    \"name\": \"Pistachio\",\n    \"hex\": \"9DC209\"\n  },\n  {\n    \"name\": \"Granny Smith Apple\",\n    \"hex\": \"9DE093\"\n  },\n  {\n    \"name\": \"Anakiwa\",\n    \"hex\": \"9DE5FF\"\n  },\n  {\n    \"name\": \"Chelsea Gem\",\n    \"hex\": \"9E5302\"\n  },\n  {\n    \"name\": \"Sepia Skin\",\n    \"hex\": \"9E5B40\"\n  },\n  {\n    \"name\": \"Sage\",\n    \"hex\": \"9EA587\"\n  },\n  {\n    \"name\": \"Citron\",\n    \"hex\": \"9EA91F\"\n  },\n  {\n    \"name\": \"Rock Blue\",\n    \"hex\": \"9EB1CD\"\n  },\n  {\n    \"name\": \"Morning Glory\",\n    \"hex\": \"9EDEE0\"\n  },\n  {\n    \"name\": \"Cognac\",\n    \"hex\": \"9F381D\"\n  },\n  {\n    \"name\": \"Reef Gold\",\n    \"hex\": \"9F821C\"\n  },\n  {\n    \"name\": \"Star Dust\",\n    \"hex\": \"9F9F9C\"\n  },\n  {\n    \"name\": \"Santas Gray\",\n    \"hex\": \"9FA0B1\"\n  },\n  {\n    \"name\": \"Sinbad\",\n    \"hex\": \"9FD7D3\"\n  },\n  {\n    \"name\": \"Feijoa\",\n    \"hex\": \"9FDD8C\"\n  },\n  {\n    \"name\": \"Tabasco\",\n    \"hex\": \"A02712\"\n  },\n  {\n    \"name\": \"Buttered Rum\",\n    \"hex\": \"A1750D\"\n  },\n  {\n    \"name\": \"Hit Gray\",\n    \"hex\": \"A1ADB5\"\n  },\n  {\n    \"name\": \"Citrus\",\n    \"hex\": \"A1C50A\"\n  },\n  {\n    \"name\": \"Aqua Island\",\n    \"hex\": \"A1DAD7\"\n  },\n  {\n    \"name\": \"Water Leaf\",\n    \"hex\": \"A1E9DE\"\n  },\n  {\n    \"name\": \"Flirt\",\n    \"hex\": \"A2006D\"\n  },\n  {\n    \"name\": \"Rouge\",\n    \"hex\": \"A23B6C\"\n  },\n  {\n    \"name\": \"Cape Palliser\",\n    \"hex\": \"A26645\"\n  },\n  {\n    \"name\": \"Gray Chateau\",\n    \"hex\": \"A2AAB3\"\n  },\n  {\n    \"name\": \"Edward\",\n    \"hex\": \"A2AEAB\"\n  },\n  {\n    \"name\": \"Pharlap\",\n    \"hex\": \"A3807B\"\n  },\n  {\n    \"name\": \"Amethyst Smoke\",\n    \"hex\": \"A397B4\"\n  },\n  {\n    \"name\": \"Blizzard Blue\",\n    \"hex\": \"A3E3ED\"\n  },\n  {\n    \"name\": \"Delta\",\n    \"hex\": \"A4A49D\"\n  },\n  {\n    \"name\": \"Wistful\",\n    \"hex\": \"A4A6D3\"\n  },\n  {\n    \"name\": \"Green Smoke\",\n    \"hex\": \"A4AF6E\"\n  },\n  {\n    \"name\": \"Jazzberry Jam\",\n    \"hex\": \"A50B5E\"\n  },\n  {\n    \"name\": \"Zorba\",\n    \"hex\": \"A59B91\"\n  },\n  {\n    \"name\": \"Bahia\",\n    \"hex\": \"A5CB0C\"\n  },\n  {\n    \"name\": \"Roof Terracotta\",\n    \"hex\": \"A62F20\"\n  },\n  {\n    \"name\": \"Paarl\",\n    \"hex\": \"A65529\"\n  },\n  {\n    \"name\": \"Barley Corn\",\n    \"hex\": \"A68B5B\"\n  },\n  {\n    \"name\": \"Donkey Brown\",\n    \"hex\": \"A69279\"\n  },\n  {\n    \"name\": \"Dawn\",\n    \"hex\": \"A6A29A\"\n  },\n  {\n    \"name\": \"Mexican Red\",\n    \"hex\": \"A72525\"\n  },\n  {\n    \"name\": \"Luxor Gold\",\n    \"hex\": \"A7882C\"\n  },\n  {\n    \"name\": \"Rich Gold\",\n    \"hex\": \"A85307\"\n  },\n  {\n    \"name\": \"Reno Sand\",\n    \"hex\": \"A86515\"\n  },\n  {\n    \"name\": \"Coral Tree\",\n    \"hex\": \"A86B6B\"\n  },\n  {\n    \"name\": \"Dusty Gray\",\n    \"hex\": \"A8989B\"\n  },\n  {\n    \"name\": \"Dull Lavender\",\n    \"hex\": \"A899E6\"\n  },\n  {\n    \"name\": \"Tallow\",\n    \"hex\": \"A8A589\"\n  },\n  {\n    \"name\": \"Bud\",\n    \"hex\": \"A8AE9C\"\n  },\n  {\n    \"name\": \"Locust\",\n    \"hex\": \"A8AF8E\"\n  },\n  {\n    \"name\": \"Norway\",\n    \"hex\": \"A8BD9F\"\n  },\n  {\n    \"name\": \"Chinook\",\n    \"hex\": \"A8E3BD\"\n  },\n  {\n    \"name\": \"Gray Olive\",\n    \"hex\": \"A9A491\"\n  },\n  {\n    \"name\": \"Aluminium\",\n    \"hex\": \"A9ACB6\"\n  },\n  {\n    \"name\": \"Cadet Blue\",\n    \"hex\": \"A9B2C3\"\n  },\n  {\n    \"name\": \"Schist\",\n    \"hex\": \"A9B497\"\n  },\n  {\n    \"name\": \"Tower Gray\",\n    \"hex\": \"A9BDBF\"\n  },\n  {\n    \"name\": \"Perano\",\n    \"hex\": \"A9BEF2\"\n  },\n  {\n    \"name\": \"Opal\",\n    \"hex\": \"A9C6C2\"\n  },\n  {\n    \"name\": \"Night Shadz\",\n    \"hex\": \"AA375A\"\n  },\n  {\n    \"name\": \"Fire\",\n    \"hex\": \"AA4203\"\n  },\n  {\n    \"name\": \"Muesli\",\n    \"hex\": \"AA8B5B\"\n  },\n  {\n    \"name\": \"Sandal\",\n    \"hex\": \"AA8D6F\"\n  },\n  {\n    \"name\": \"Shady Lady\",\n    \"hex\": \"AAA5A9\"\n  },\n  {\n    \"name\": \"Logan\",\n    \"hex\": \"AAA9CD\"\n  },\n  {\n    \"name\": \"Spun Pearl\",\n    \"hex\": \"AAABB7\"\n  },\n  {\n    \"name\": \"Regent St Blue\",\n    \"hex\": \"AAD6E6\"\n  },\n  {\n    \"name\": \"Magic Mint\",\n    \"hex\": \"AAF0D1\"\n  },\n  {\n    \"name\": \"Lipstick\",\n    \"hex\": \"AB0563\"\n  },\n  {\n    \"name\": \"Royal Heath\",\n    \"hex\": \"AB3472\"\n  },\n  {\n    \"name\": \"Sandrift\",\n    \"hex\": \"AB917A\"\n  },\n  {\n    \"name\": \"Cold Purple\",\n    \"hex\": \"ABA0D9\"\n  },\n  {\n    \"name\": \"Bronco\",\n    \"hex\": \"ABA196\"\n  },\n  {\n    \"name\": \"Limed Oak\",\n    \"hex\": \"AC8A56\"\n  },\n  {\n    \"name\": \"East Side\",\n    \"hex\": \"AC91CE\"\n  },\n  {\n    \"name\": \"Lemon Ginger\",\n    \"hex\": \"AC9E22\"\n  },\n  {\n    \"name\": \"Napa\",\n    \"hex\": \"ACA494\"\n  },\n  {\n    \"name\": \"Hillary\",\n    \"hex\": \"ACA586\"\n  },\n  {\n    \"name\": \"Cloudy\",\n    \"hex\": \"ACA59F\"\n  },\n  {\n    \"name\": \"Silver Chalice\",\n    \"hex\": \"ACACAC\"\n  },\n  {\n    \"name\": \"Swamp Green\",\n    \"hex\": \"ACB78E\"\n  },\n  {\n    \"name\": \"Spring Rain\",\n    \"hex\": \"ACCBB1\"\n  },\n  {\n    \"name\": \"Conifer\",\n    \"hex\": \"ACDD4D\"\n  },\n  {\n    \"name\": \"Celadon\",\n    \"hex\": \"ACE1AF\"\n  },\n  {\n    \"name\": \"Mandalay\",\n    \"hex\": \"AD781B\"\n  },\n  {\n    \"name\": \"Casper\",\n    \"hex\": \"ADBED1\"\n  },\n  {\n    \"name\": \"Moss Green\",\n    \"hex\": \"ADDFAD\"\n  },\n  {\n    \"name\": \"Padua\",\n    \"hex\": \"ADE6C4\"\n  },\n  {\n    \"name\": \"Green Yellow\",\n    \"hex\": \"ADFF2F\"\n  },\n  {\n    \"name\": \"Hippie Pink\",\n    \"hex\": \"AE4560\"\n  },\n  {\n    \"name\": \"Desert\",\n    \"hex\": \"AE6020\"\n  },\n  {\n    \"name\": \"Bouquet\",\n    \"hex\": \"AE809E\"\n  },\n  {\n    \"name\": \"Medium Carmine\",\n    \"hex\": \"AF4035\"\n  },\n  {\n    \"name\": \"Apple Blossom\",\n    \"hex\": \"AF4D43\"\n  },\n  {\n    \"name\": \"Brown Rust\",\n    \"hex\": \"AF593E\"\n  },\n  {\n    \"name\": \"Driftwood\",\n    \"hex\": \"AF8751\"\n  },\n  {\n    \"name\": \"Alpine\",\n    \"hex\": \"AF8F2C\"\n  },\n  {\n    \"name\": \"Lucky\",\n    \"hex\": \"AF9F1C\"\n  },\n  {\n    \"name\": \"Martini\",\n    \"hex\": \"AFA09E\"\n  },\n  {\n    \"name\": \"Bombay\",\n    \"hex\": \"AFB1B8\"\n  },\n  {\n    \"name\": \"Pigeon Post\",\n    \"hex\": \"AFBDD9\"\n  },\n  {\n    \"name\": \"Cadillac\",\n    \"hex\": \"B04C6A\"\n  },\n  {\n    \"name\": \"Matrix\",\n    \"hex\": \"B05D54\"\n  },\n  {\n    \"name\": \"Tapestry\",\n    \"hex\": \"B05E81\"\n  },\n  {\n    \"name\": \"Mai Tai\",\n    \"hex\": \"B06608\"\n  },\n  {\n    \"name\": \"Del Rio\",\n    \"hex\": \"B09A95\"\n  },\n  {\n    \"name\": \"Powder Blue\",\n    \"hex\": \"B0E0E6\"\n  },\n  {\n    \"name\": \"Inch Worm\",\n    \"hex\": \"B0E313\"\n  },\n  {\n    \"name\": \"Bright Red\",\n    \"hex\": \"B10000\"\n  },\n  {\n    \"name\": \"Vesuvius\",\n    \"hex\": \"B14A0B\"\n  },\n  {\n    \"name\": \"Pumpkin Skin\",\n    \"hex\": \"B1610B\"\n  },\n  {\n    \"name\": \"Santa Fe\",\n    \"hex\": \"B16D52\"\n  },\n  {\n    \"name\": \"Teak\",\n    \"hex\": \"B19461\"\n  },\n  {\n    \"name\": \"Fringy Flower\",\n    \"hex\": \"B1E2C1\"\n  },\n  {\n    \"name\": \"Ice Cold\",\n    \"hex\": \"B1F4E7\"\n  },\n  {\n    \"name\": \"Shiraz\",\n    \"hex\": \"B20931\"\n  },\n  {\n    \"name\": \"Biloba Flower\",\n    \"hex\": \"B2A1EA\"\n  },\n  {\n    \"name\": \"Tall Poppy\",\n    \"hex\": \"B32D29\"\n  },\n  {\n    \"name\": \"Fiery Orange\",\n    \"hex\": \"B35213\"\n  },\n  {\n    \"name\": \"Hot Toddy\",\n    \"hex\": \"B38007\"\n  },\n  {\n    \"name\": \"Taupe Gray\",\n    \"hex\": \"B3AF95\"\n  },\n  {\n    \"name\": \"La Rioja\",\n    \"hex\": \"B3C110\"\n  },\n  {\n    \"name\": \"Well Read\",\n    \"hex\": \"B43332\"\n  },\n  {\n    \"name\": \"Blush\",\n    \"hex\": \"B44668\"\n  },\n  {\n    \"name\": \"Jungle Mist\",\n    \"hex\": \"B4CFD3\"\n  },\n  {\n    \"name\": \"Turkish Rose\",\n    \"hex\": \"B57281\"\n  },\n  {\n    \"name\": \"Lavender\",\n    \"hex\": \"B57EDC\"\n  },\n  {\n    \"name\": \"Mongoose\",\n    \"hex\": \"B5A27F\"\n  },\n  {\n    \"name\": \"Olive Green\",\n    \"hex\": \"B5B35C\"\n  },\n  {\n    \"name\": \"Jet Stream\",\n    \"hex\": \"B5D2CE\"\n  },\n  {\n    \"name\": \"Cruise\",\n    \"hex\": \"B5ECDF\"\n  },\n  {\n    \"name\": \"Hibiscus\",\n    \"hex\": \"B6316C\"\n  },\n  {\n    \"name\": \"Thatch\",\n    \"hex\": \"B69D98\"\n  },\n  {\n    \"name\": \"Heathered Gray\",\n    \"hex\": \"B6B095\"\n  },\n  {\n    \"name\": \"Eagle\",\n    \"hex\": \"B6BAA4\"\n  },\n  {\n    \"name\": \"Spindle\",\n    \"hex\": \"B6D1EA\"\n  },\n  {\n    \"name\": \"Gum Leaf\",\n    \"hex\": \"B6D3BF\"\n  },\n  {\n    \"name\": \"Rust\",\n    \"hex\": \"B7410E\"\n  },\n  {\n    \"name\": \"Muddy Waters\",\n    \"hex\": \"B78E5C\"\n  },\n  {\n    \"name\": \"Sahara\",\n    \"hex\": \"B7A214\"\n  },\n  {\n    \"name\": \"Husk\",\n    \"hex\": \"B7A458\"\n  },\n  {\n    \"name\": \"Nobel\",\n    \"hex\": \"B7B1B1\"\n  },\n  {\n    \"name\": \"Heather\",\n    \"hex\": \"B7C3D0\"\n  },\n  {\n    \"name\": \"Madang\",\n    \"hex\": \"B7F0BE\"\n  },\n  {\n    \"name\": \"Milano Red\",\n    \"hex\": \"B81104\"\n  },\n  {\n    \"name\": \"Copper\",\n    \"hex\": \"B87333\"\n  },\n  {\n    \"name\": \"Gimblet\",\n    \"hex\": \"B8B56A\"\n  },\n  {\n    \"name\": \"Green Spring\",\n    \"hex\": \"B8C1B1\"\n  },\n  {\n    \"name\": \"Celery\",\n    \"hex\": \"B8C25D\"\n  },\n  {\n    \"name\": \"Sail\",\n    \"hex\": \"B8E0F9\"\n  },\n  {\n    \"name\": \"Chestnut\",\n    \"hex\": \"B94E48\"\n  },\n  {\n    \"name\": \"Crail\",\n    \"hex\": \"B95140\"\n  },\n  {\n    \"name\": \"Marigold\",\n    \"hex\": \"B98D28\"\n  },\n  {\n    \"name\": \"Wild Willow\",\n    \"hex\": \"B9C46A\"\n  },\n  {\n    \"name\": \"Rainee\",\n    \"hex\": \"B9C8AC\"\n  },\n  {\n    \"name\": \"Guardsman Red\",\n    \"hex\": \"BA0101\"\n  },\n  {\n    \"name\": \"Rock Spray\",\n    \"hex\": \"BA450C\"\n  },\n  {\n    \"name\": \"Bourbon\",\n    \"hex\": \"BA6F1E\"\n  },\n  {\n    \"name\": \"Pirate Gold\",\n    \"hex\": \"BA7F03\"\n  },\n  {\n    \"name\": \"Nomad\",\n    \"hex\": \"BAB1A2\"\n  },\n  {\n    \"name\": \"Submarine\",\n    \"hex\": \"BAC7C9\"\n  },\n  {\n    \"name\": \"Charlotte\",\n    \"hex\": \"BAEEF9\"\n  },\n  {\n    \"name\": \"Medium Red Violet\",\n    \"hex\": \"BB3385\"\n  },\n  {\n    \"name\": \"Brandy Rose\",\n    \"hex\": \"BB8983\"\n  },\n  {\n    \"name\": \"Rio Grande\",\n    \"hex\": \"BBD009\"\n  },\n  {\n    \"name\": \"Surf\",\n    \"hex\": \"BBD7C1\"\n  },\n  {\n    \"name\": \"Powder Ash\",\n    \"hex\": \"BCC9C2\"\n  },\n  {\n    \"name\": \"Tuscany\",\n    \"hex\": \"BD5E2E\"\n  },\n  {\n    \"name\": \"Quicksand\",\n    \"hex\": \"BD978E\"\n  },\n  {\n    \"name\": \"Silk\",\n    \"hex\": \"BDB1A8\"\n  },\n  {\n    \"name\": \"Malta\",\n    \"hex\": \"BDB2A1\"\n  },\n  {\n    \"name\": \"Chatelle\",\n    \"hex\": \"BDB3C7\"\n  },\n  {\n    \"name\": \"Lavender Gray\",\n    \"hex\": \"BDBBD7\"\n  },\n  {\n    \"name\": \"French Gray\",\n    \"hex\": \"BDBDC6\"\n  },\n  {\n    \"name\": \"Clay Ash\",\n    \"hex\": \"BDC8B3\"\n  },\n  {\n    \"name\": \"Loblolly\",\n    \"hex\": \"BDC9CE\"\n  },\n  {\n    \"name\": \"French Pass\",\n    \"hex\": \"BDEDFD\"\n  },\n  {\n    \"name\": \"London Hue\",\n    \"hex\": \"BEA6C3\"\n  },\n  {\n    \"name\": \"Pink Swan\",\n    \"hex\": \"BEB5B7\"\n  },\n  {\n    \"name\": \"Fuego\",\n    \"hex\": \"BEDE0D\"\n  },\n  {\n    \"name\": \"Rose of Sharon\",\n    \"hex\": \"BF5500\"\n  },\n  {\n    \"name\": \"Tide\",\n    \"hex\": \"BFB8B0\"\n  },\n  {\n    \"name\": \"Blue Haze\",\n    \"hex\": \"BFBED8\"\n  },\n  {\n    \"name\": \"Silver Sand\",\n    \"hex\": \"BFC1C2\"\n  },\n  {\n    \"name\": \"Key Lime Pie\",\n    \"hex\": \"BFC921\"\n  },\n  {\n    \"name\": \"Ziggurat\",\n    \"hex\": \"BFDBE2\"\n  },\n  {\n    \"name\": \"Lime\",\n    \"hex\": \"BFFF00\"\n  },\n  {\n    \"name\": \"Thunderbird\",\n    \"hex\": \"C02B18\"\n  },\n  {\n    \"name\": \"Mojo\",\n    \"hex\": \"C04737\"\n  },\n  {\n    \"name\": \"Old Rose\",\n    \"hex\": \"C08081\"\n  },\n  {\n    \"name\": \"Silver\",\n    \"hex\": \"C0C0C0\"\n  },\n  {\n    \"name\": \"Pale Leaf\",\n    \"hex\": \"C0D3B9\"\n  },\n  {\n    \"name\": \"Pixie Green\",\n    \"hex\": \"C0D8B6\"\n  },\n  {\n    \"name\": \"Tia Maria\",\n    \"hex\": \"C1440E\"\n  },\n  {\n    \"name\": \"Fuchsia Pink\",\n    \"hex\": \"C154C1\"\n  },\n  {\n    \"name\": \"Buddha Gold\",\n    \"hex\": \"C1A004\"\n  },\n  {\n    \"name\": \"Bison Hide\",\n    \"hex\": \"C1B7A4\"\n  },\n  {\n    \"name\": \"Tea\",\n    \"hex\": \"C1BAB0\"\n  },\n  {\n    \"name\": \"Gray Suit\",\n    \"hex\": \"C1BECD\"\n  },\n  {\n    \"name\": \"Sprout\",\n    \"hex\": \"C1D7B0\"\n  },\n  {\n    \"name\": \"Sulu\",\n    \"hex\": \"C1F07C\"\n  },\n  {\n    \"name\": \"Indochine\",\n    \"hex\": \"C26B03\"\n  },\n  {\n    \"name\": \"Twine\",\n    \"hex\": \"C2955D\"\n  },\n  {\n    \"name\": \"Cotton Seed\",\n    \"hex\": \"C2BDB6\"\n  },\n  {\n    \"name\": \"Pumice\",\n    \"hex\": \"C2CAC4\"\n  },\n  {\n    \"name\": \"Jagged Ice\",\n    \"hex\": \"C2E8E5\"\n  },\n  {\n    \"name\": \"Maroon Flush\",\n    \"hex\": \"C32148\"\n  },\n  {\n    \"name\": \"Indian Khaki\",\n    \"hex\": \"C3B091\"\n  },\n  {\n    \"name\": \"Pale Slate\",\n    \"hex\": \"C3BFC1\"\n  },\n  {\n    \"name\": \"Gray Nickel\",\n    \"hex\": \"C3C3BD\"\n  },\n  {\n    \"name\": \"Periwinkle Gray\",\n    \"hex\": \"C3CDE6\"\n  },\n  {\n    \"name\": \"Tiara\",\n    \"hex\": \"C3D1D1\"\n  },\n  {\n    \"name\": \"Tropical Blue\",\n    \"hex\": \"C3DDF9\"\n  },\n  {\n    \"name\": \"Cardinal\",\n    \"hex\": \"C41E3A\"\n  },\n  {\n    \"name\": \"Fuzzy Wuzzy Brown\",\n    \"hex\": \"C45655\"\n  },\n  {\n    \"name\": \"Orange Roughy\",\n    \"hex\": \"C45719\"\n  },\n  {\n    \"name\": \"Mist Gray\",\n    \"hex\": \"C4C4BC\"\n  },\n  {\n    \"name\": \"Coriander\",\n    \"hex\": \"C4D0B0\"\n  },\n  {\n    \"name\": \"Mint Tulip\",\n    \"hex\": \"C4F4EB\"\n  },\n  {\n    \"name\": \"Mulberry\",\n    \"hex\": \"C54B8C\"\n  },\n  {\n    \"name\": \"Nugget\",\n    \"hex\": \"C59922\"\n  },\n  {\n    \"name\": \"Tussock\",\n    \"hex\": \"C5994B\"\n  },\n  {\n    \"name\": \"Sea Mist\",\n    \"hex\": \"C5DBCA\"\n  },\n  {\n    \"name\": \"Yellow Green\",\n    \"hex\": \"C5E17A\"\n  },\n  {\n    \"name\": \"Brick Red\",\n    \"hex\": \"C62D42\"\n  },\n  {\n    \"name\": \"Contessa\",\n    \"hex\": \"C6726B\"\n  },\n  {\n    \"name\": \"Oriental Pink\",\n    \"hex\": \"C69191\"\n  },\n  {\n    \"name\": \"Roti\",\n    \"hex\": \"C6A84B\"\n  },\n  {\n    \"name\": \"Ash\",\n    \"hex\": \"C6C3B5\"\n  },\n  {\n    \"name\": \"Kangaroo\",\n    \"hex\": \"C6C8BD\"\n  },\n  {\n    \"name\": \"Las Palmas\",\n    \"hex\": \"C6E610\"\n  },\n  {\n    \"name\": \"Monza\",\n    \"hex\": \"C7031E\"\n  },\n  {\n    \"name\": \"Red Violet\",\n    \"hex\": \"C71585\"\n  },\n  {\n    \"name\": \"Coral Reef\",\n    \"hex\": \"C7BCA2\"\n  },\n  {\n    \"name\": \"Melrose\",\n    \"hex\": \"C7C1FF\"\n  },\n  {\n    \"name\": \"Cloud\",\n    \"hex\": \"C7C4BF\"\n  },\n  {\n    \"name\": \"Ghost\",\n    \"hex\": \"C7C9D5\"\n  },\n  {\n    \"name\": \"Pine Glade\",\n    \"hex\": \"C7CD90\"\n  },\n  {\n    \"name\": \"Botticelli\",\n    \"hex\": \"C7DDE5\"\n  },\n  {\n    \"name\": \"Antique Brass\",\n    \"hex\": \"C88A65\"\n  },\n  {\n    \"name\": \"Lilac\",\n    \"hex\": \"C8A2C8\"\n  },\n  {\n    \"name\": \"Hokey Pokey\",\n    \"hex\": \"C8A528\"\n  },\n  {\n    \"name\": \"Lily\",\n    \"hex\": \"C8AABF\"\n  },\n  {\n    \"name\": \"Laser\",\n    \"hex\": \"C8B568\"\n  },\n  {\n    \"name\": \"Edgewater\",\n    \"hex\": \"C8E3D7\"\n  },\n  {\n    \"name\": \"Piper\",\n    \"hex\": \"C96323\"\n  },\n  {\n    \"name\": \"Pizza\",\n    \"hex\": \"C99415\"\n  },\n  {\n    \"name\": \"Light Wisteria\",\n    \"hex\": \"C9A0DC\"\n  },\n  {\n    \"name\": \"Rodeo Dust\",\n    \"hex\": \"C9B29B\"\n  },\n  {\n    \"name\": \"Sundance\",\n    \"hex\": \"C9B35B\"\n  },\n  {\n    \"name\": \"Earls Green\",\n    \"hex\": \"C9B93B\"\n  },\n  {\n    \"name\": \"Silver Rust\",\n    \"hex\": \"C9C0BB\"\n  },\n  {\n    \"name\": \"Conch\",\n    \"hex\": \"C9D9D2\"\n  },\n  {\n    \"name\": \"Reef\",\n    \"hex\": \"C9FFA2\"\n  },\n  {\n    \"name\": \"Aero Blue\",\n    \"hex\": \"C9FFE5\"\n  },\n  {\n    \"name\": \"Flush Mahogany\",\n    \"hex\": \"CA3435\"\n  },\n  {\n    \"name\": \"Turmeric\",\n    \"hex\": \"CABB48\"\n  },\n  {\n    \"name\": \"Paris White\",\n    \"hex\": \"CADCD4\"\n  },\n  {\n    \"name\": \"Bitter Lemon\",\n    \"hex\": \"CAE00D\"\n  },\n  {\n    \"name\": \"Skeptic\",\n    \"hex\": \"CAE6DA\"\n  },\n  {\n    \"name\": \"Viola\",\n    \"hex\": \"CB8FA9\"\n  },\n  {\n    \"name\": \"Foggy Gray\",\n    \"hex\": \"CBCAB6\"\n  },\n  {\n    \"name\": \"Green Mist\",\n    \"hex\": \"CBD3B0\"\n  },\n  {\n    \"name\": \"Nebula\",\n    \"hex\": \"CBDBD6\"\n  },\n  {\n    \"name\": \"Persian Red\",\n    \"hex\": \"CC3333\"\n  },\n  {\n    \"name\": \"Burnt Orange\",\n    \"hex\": \"CC5500\"\n  },\n  {\n    \"name\": \"Ochre\",\n    \"hex\": \"CC7722\"\n  },\n  {\n    \"name\": \"Puce\",\n    \"hex\": \"CC8899\"\n  },\n  {\n    \"name\": \"Thistle Green\",\n    \"hex\": \"CCCAA8\"\n  },\n  {\n    \"name\": \"Periwinkle\",\n    \"hex\": \"CCCCFF\"\n  },\n  {\n    \"name\": \"Electric Lime\",\n    \"hex\": \"CCFF00\"\n  },\n  {\n    \"name\": \"Tenn\",\n    \"hex\": \"CD5700\"\n  },\n  {\n    \"name\": \"Chestnut Rose\",\n    \"hex\": \"CD5C5C\"\n  },\n  {\n    \"name\": \"Brandy Punch\",\n    \"hex\": \"CD8429\"\n  },\n  {\n    \"name\": \"Onahau\",\n    \"hex\": \"CDF4FF\"\n  },\n  {\n    \"name\": \"Sorrell Brown\",\n    \"hex\": \"CEB98F\"\n  },\n  {\n    \"name\": \"Cold Turkey\",\n    \"hex\": \"CEBABA\"\n  },\n  {\n    \"name\": \"Yuma\",\n    \"hex\": \"CEC291\"\n  },\n  {\n    \"name\": \"Chino\",\n    \"hex\": \"CEC7A7\"\n  },\n  {\n    \"name\": \"Eunry\",\n    \"hex\": \"CFA39D\"\n  },\n  {\n    \"name\": \"Old Gold\",\n    \"hex\": \"CFB53B\"\n  },\n  {\n    \"name\": \"Tasman\",\n    \"hex\": \"CFDCCF\"\n  },\n  {\n    \"name\": \"Surf Crest\",\n    \"hex\": \"CFE5D2\"\n  },\n  {\n    \"name\": \"Humming Bird\",\n    \"hex\": \"CFF9F3\"\n  },\n  {\n    \"name\": \"Scandal\",\n    \"hex\": \"CFFAF4\"\n  },\n  {\n    \"name\": \"Red Stage\",\n    \"hex\": \"D05F04\"\n  },\n  {\n    \"name\": \"Hopbush\",\n    \"hex\": \"D06DA1\"\n  },\n  {\n    \"name\": \"Meteor\",\n    \"hex\": \"D07D12\"\n  },\n  {\n    \"name\": \"Perfume\",\n    \"hex\": \"D0BEF8\"\n  },\n  {\n    \"name\": \"Prelude\",\n    \"hex\": \"D0C0E5\"\n  },\n  {\n    \"name\": \"Tea Green\",\n    \"hex\": \"D0F0C0\"\n  },\n  {\n    \"name\": \"Geebung\",\n    \"hex\": \"D18F1B\"\n  },\n  {\n    \"name\": \"Vanilla\",\n    \"hex\": \"D1BEA8\"\n  },\n  {\n    \"name\": \"Soft Amber\",\n    \"hex\": \"D1C6B4\"\n  },\n  {\n    \"name\": \"Celeste\",\n    \"hex\": \"D1D2CA\"\n  },\n  {\n    \"name\": \"Mischka\",\n    \"hex\": \"D1D2DD\"\n  },\n  {\n    \"name\": \"Pear\",\n    \"hex\": \"D1E231\"\n  },\n  {\n    \"name\": \"Hot Cinnamon\",\n    \"hex\": \"D2691E\"\n  },\n  {\n    \"name\": \"Raw Sienna\",\n    \"hex\": \"D27D46\"\n  },\n  {\n    \"name\": \"Careys Pink\",\n    \"hex\": \"D29EAA\"\n  },\n  {\n    \"name\": \"Tan\",\n    \"hex\": \"D2B48C\"\n  },\n  {\n    \"name\": \"Deco\",\n    \"hex\": \"D2DA97\"\n  },\n  {\n    \"name\": \"Blue Romance\",\n    \"hex\": \"D2F6DE\"\n  },\n  {\n    \"name\": \"Gossip\",\n    \"hex\": \"D2F8B0\"\n  },\n  {\n    \"name\": \"Sisal\",\n    \"hex\": \"D3CBBA\"\n  },\n  {\n    \"name\": \"Swirl\",\n    \"hex\": \"D3CDC5\"\n  },\n  {\n    \"name\": \"Charm\",\n    \"hex\": \"D47494\"\n  },\n  {\n    \"name\": \"Clam Shell\",\n    \"hex\": \"D4B6AF\"\n  },\n  {\n    \"name\": \"Straw\",\n    \"hex\": \"D4BF8D\"\n  },\n  {\n    \"name\": \"Akaroa\",\n    \"hex\": \"D4C4A8\"\n  },\n  {\n    \"name\": \"Bird Flower\",\n    \"hex\": \"D4CD16\"\n  },\n  {\n    \"name\": \"Iron\",\n    \"hex\": \"D4D7D9\"\n  },\n  {\n    \"name\": \"Geyser\",\n    \"hex\": \"D4DFE2\"\n  },\n  {\n    \"name\": \"Hawkes Blue\",\n    \"hex\": \"D4E2FC\"\n  },\n  {\n    \"name\": \"Grenadier\",\n    \"hex\": \"D54600\"\n  },\n  {\n    \"name\": \"Can Can\",\n    \"hex\": \"D591A4\"\n  },\n  {\n    \"name\": \"Whiskey\",\n    \"hex\": \"D59A6F\"\n  },\n  {\n    \"name\": \"Winter Hazel\",\n    \"hex\": \"D5D195\"\n  },\n  {\n    \"name\": \"Granny Apple\",\n    \"hex\": \"D5F6E3\"\n  },\n  {\n    \"name\": \"My Pink\",\n    \"hex\": \"D69188\"\n  },\n  {\n    \"name\": \"Tacha\",\n    \"hex\": \"D6C562\"\n  },\n  {\n    \"name\": \"Moon Raker\",\n    \"hex\": \"D6CEF6\"\n  },\n  {\n    \"name\": \"Quill Gray\",\n    \"hex\": \"D6D6D1\"\n  },\n  {\n    \"name\": \"Snowy Mint\",\n    \"hex\": \"D6FFDB\"\n  },\n  {\n    \"name\": \"New York Pink\",\n    \"hex\": \"D7837F\"\n  },\n  {\n    \"name\": \"Pavlova\",\n    \"hex\": \"D7C498\"\n  },\n  {\n    \"name\": \"Fog\",\n    \"hex\": \"D7D0FF\"\n  },\n  {\n    \"name\": \"Valencia\",\n    \"hex\": \"D84437\"\n  },\n  {\n    \"name\": \"Japonica\",\n    \"hex\": \"D87C63\"\n  },\n  {\n    \"name\": \"Thistle\",\n    \"hex\": \"D8BFD8\"\n  },\n  {\n    \"name\": \"Maverick\",\n    \"hex\": \"D8C2D5\"\n  },\n  {\n    \"name\": \"Foam\",\n    \"hex\": \"D8FCFA\"\n  },\n  {\n    \"name\": \"Cabaret\",\n    \"hex\": \"D94972\"\n  },\n  {\n    \"name\": \"Burning Sand\",\n    \"hex\": \"D99376\"\n  },\n  {\n    \"name\": \"Cameo\",\n    \"hex\": \"D9B99B\"\n  },\n  {\n    \"name\": \"Timberwolf\",\n    \"hex\": \"D9D6CF\"\n  },\n  {\n    \"name\": \"Tana\",\n    \"hex\": \"D9DCC1\"\n  },\n  {\n    \"name\": \"Link Water\",\n    \"hex\": \"D9E4F5\"\n  },\n  {\n    \"name\": \"Mabel\",\n    \"hex\": \"D9F7FF\"\n  },\n  {\n    \"name\": \"Cerise\",\n    \"hex\": \"DA3287\"\n  },\n  {\n    \"name\": \"Flame Pea\",\n    \"hex\": \"DA5B38\"\n  },\n  {\n    \"name\": \"Bamboo\",\n    \"hex\": \"DA6304\"\n  },\n  {\n    \"name\": \"Red Damask\",\n    \"hex\": \"DA6A41\"\n  },\n  {\n    \"name\": \"Orchid\",\n    \"hex\": \"DA70D6\"\n  },\n  {\n    \"name\": \"Copperfield\",\n    \"hex\": \"DA8A67\"\n  },\n  {\n    \"name\": \"Golden Grass\",\n    \"hex\": \"DAA520\"\n  },\n  {\n    \"name\": \"Zanah\",\n    \"hex\": \"DAECD6\"\n  },\n  {\n    \"name\": \"Iceberg\",\n    \"hex\": \"DAF4F0\"\n  },\n  {\n    \"name\": \"Oyster Bay\",\n    \"hex\": \"DAFAFF\"\n  },\n  {\n    \"name\": \"Cranberry\",\n    \"hex\": \"DB5079\"\n  },\n  {\n    \"name\": \"Petite Orchid\",\n    \"hex\": \"DB9690\"\n  },\n  {\n    \"name\": \"Di Serria\",\n    \"hex\": \"DB995E\"\n  },\n  {\n    \"name\": \"Alto\",\n    \"hex\": \"DBDBDB\"\n  },\n  {\n    \"name\": \"Frosted Mint\",\n    \"hex\": \"DBFFF8\"\n  },\n  {\n    \"name\": \"Crimson\",\n    \"hex\": \"DC143C\"\n  },\n  {\n    \"name\": \"Punch\",\n    \"hex\": \"DC4333\"\n  },\n  {\n    \"name\": \"Galliano\",\n    \"hex\": \"DCB20C\"\n  },\n  {\n    \"name\": \"Blossom\",\n    \"hex\": \"DCB4BC\"\n  },\n  {\n    \"name\": \"Wattle\",\n    \"hex\": \"DCD747\"\n  },\n  {\n    \"name\": \"Westar\",\n    \"hex\": \"DCD9D2\"\n  },\n  {\n    \"name\": \"Moon Mist\",\n    \"hex\": \"DCDDCC\"\n  },\n  {\n    \"name\": \"Caper\",\n    \"hex\": \"DCEDB4\"\n  },\n  {\n    \"name\": \"Swans Down\",\n    \"hex\": \"DCF0EA\"\n  },\n  {\n    \"name\": \"Swiss Coffee\",\n    \"hex\": \"DDD6D5\"\n  },\n  {\n    \"name\": \"White Ice\",\n    \"hex\": \"DDF9F1\"\n  },\n  {\n    \"name\": \"Cerise Red\",\n    \"hex\": \"DE3163\"\n  },\n  {\n    \"name\": \"Roman\",\n    \"hex\": \"DE6360\"\n  },\n  {\n    \"name\": \"Tumbleweed\",\n    \"hex\": \"DEA681\"\n  },\n  {\n    \"name\": \"Gold Tips\",\n    \"hex\": \"DEBA13\"\n  },\n  {\n    \"name\": \"Brandy\",\n    \"hex\": \"DEC196\"\n  },\n  {\n    \"name\": \"Wafer\",\n    \"hex\": \"DECBC6\"\n  },\n  {\n    \"name\": \"Sapling\",\n    \"hex\": \"DED4A4\"\n  },\n  {\n    \"name\": \"Barberry\",\n    \"hex\": \"DED717\"\n  },\n  {\n    \"name\": \"Beryl Green\",\n    \"hex\": \"DEE5C0\"\n  },\n  {\n    \"name\": \"Pattens Blue\",\n    \"hex\": \"DEF5FF\"\n  },\n  {\n    \"name\": \"Heliotrope\",\n    \"hex\": \"DF73FF\"\n  },\n  {\n    \"name\": \"Apache\",\n    \"hex\": \"DFBE6F\"\n  },\n  {\n    \"name\": \"Chenin\",\n    \"hex\": \"DFCD6F\"\n  },\n  {\n    \"name\": \"Lola\",\n    \"hex\": \"DFCFDB\"\n  },\n  {\n    \"name\": \"Willow Brook\",\n    \"hex\": \"DFECDA\"\n  },\n  {\n    \"name\": \"Chartreuse Yellow\",\n    \"hex\": \"DFFF00\"\n  },\n  {\n    \"name\": \"Mauve\",\n    \"hex\": \"E0B0FF\"\n  },\n  {\n    \"name\": \"Anzac\",\n    \"hex\": \"E0B646\"\n  },\n  {\n    \"name\": \"Harvest Gold\",\n    \"hex\": \"E0B974\"\n  },\n  {\n    \"name\": \"Calico\",\n    \"hex\": \"E0C095\"\n  },\n  {\n    \"name\": \"Baby Blue\",\n    \"hex\": \"E0FFFF\"\n  },\n  {\n    \"name\": \"Sunglo\",\n    \"hex\": \"E16865\"\n  },\n  {\n    \"name\": \"Equator\",\n    \"hex\": \"E1BC64\"\n  },\n  {\n    \"name\": \"Pink Flare\",\n    \"hex\": \"E1C0C8\"\n  },\n  {\n    \"name\": \"Periglacial Blue\",\n    \"hex\": \"E1E6D6\"\n  },\n  {\n    \"name\": \"Kidnapper\",\n    \"hex\": \"E1EAD4\"\n  },\n  {\n    \"name\": \"Tara\",\n    \"hex\": \"E1F6E8\"\n  },\n  {\n    \"name\": \"Mandy\",\n    \"hex\": \"E25465\"\n  },\n  {\n    \"name\": \"Terracotta\",\n    \"hex\": \"E2725B\"\n  },\n  {\n    \"name\": \"Golden Bell\",\n    \"hex\": \"E28913\"\n  },\n  {\n    \"name\": \"Shocking\",\n    \"hex\": \"E292C0\"\n  },\n  {\n    \"name\": \"Dixie\",\n    \"hex\": \"E29418\"\n  },\n  {\n    \"name\": \"Light Orchid\",\n    \"hex\": \"E29CD2\"\n  },\n  {\n    \"name\": \"Snuff\",\n    \"hex\": \"E2D8ED\"\n  },\n  {\n    \"name\": \"Mystic\",\n    \"hex\": \"E2EBED\"\n  },\n  {\n    \"name\": \"Apple Green\",\n    \"hex\": \"E2F3EC\"\n  },\n  {\n    \"name\": \"Razzmatazz\",\n    \"hex\": \"E30B5C\"\n  },\n  {\n    \"name\": \"Alizarin Crimson\",\n    \"hex\": \"E32636\"\n  },\n  {\n    \"name\": \"Cinnabar\",\n    \"hex\": \"E34234\"\n  },\n  {\n    \"name\": \"Cavern Pink\",\n    \"hex\": \"E3BEBE\"\n  },\n  {\n    \"name\": \"Peppermint\",\n    \"hex\": \"E3F5E1\"\n  },\n  {\n    \"name\": \"Mindaro\",\n    \"hex\": \"E3F988\"\n  },\n  {\n    \"name\": \"Deep Blush\",\n    \"hex\": \"E47698\"\n  },\n  {\n    \"name\": \"Gamboge\",\n    \"hex\": \"E49B0F\"\n  },\n  {\n    \"name\": \"Melanie\",\n    \"hex\": \"E4C2D5\"\n  },\n  {\n    \"name\": \"Twilight\",\n    \"hex\": \"E4CFDE\"\n  },\n  {\n    \"name\": \"Bone\",\n    \"hex\": \"E4D1C0\"\n  },\n  {\n    \"name\": \"Sunflower\",\n    \"hex\": \"E4D422\"\n  },\n  {\n    \"name\": \"Grain Brown\",\n    \"hex\": \"E4D5B7\"\n  },\n  {\n    \"name\": \"Zombie\",\n    \"hex\": \"E4D69B\"\n  },\n  {\n    \"name\": \"Frostee\",\n    \"hex\": \"E4F6E7\"\n  },\n  {\n    \"name\": \"Snow Flurry\",\n    \"hex\": \"E4FFD1\"\n  },\n  {\n    \"name\": \"Amaranth\",\n    \"hex\": \"E52B50\"\n  },\n  {\n    \"name\": \"Zest\",\n    \"hex\": \"E5841B\"\n  },\n  {\n    \"name\": \"Dust Storm\",\n    \"hex\": \"E5CCC9\"\n  },\n  {\n    \"name\": \"Stark White\",\n    \"hex\": \"E5D7BD\"\n  },\n  {\n    \"name\": \"Hampton\",\n    \"hex\": \"E5D8AF\"\n  },\n  {\n    \"name\": \"Bon Jour\",\n    \"hex\": \"E5E0E1\"\n  },\n  {\n    \"name\": \"Mercury\",\n    \"hex\": \"E5E5E5\"\n  },\n  {\n    \"name\": \"Polar\",\n    \"hex\": \"E5F9F6\"\n  },\n  {\n    \"name\": \"Trinidad\",\n    \"hex\": \"E64E03\"\n  },\n  {\n    \"name\": \"Gold Sand\",\n    \"hex\": \"E6BE8A\"\n  },\n  {\n    \"name\": \"Cashmere\",\n    \"hex\": \"E6BEA5\"\n  },\n  {\n    \"name\": \"Double Spanish White\",\n    \"hex\": \"E6D7B9\"\n  },\n  {\n    \"name\": \"Satin Linen\",\n    \"hex\": \"E6E4D4\"\n  },\n  {\n    \"name\": \"Harp\",\n    \"hex\": \"E6F2EA\"\n  },\n  {\n    \"name\": \"Off Green\",\n    \"hex\": \"E6F8F3\"\n  },\n  {\n    \"name\": \"Hint of Green\",\n    \"hex\": \"E6FFE9\"\n  },\n  {\n    \"name\": \"Tranquil\",\n    \"hex\": \"E6FFFF\"\n  },\n  {\n    \"name\": \"Mango Tango\",\n    \"hex\": \"E77200\"\n  },\n  {\n    \"name\": \"Christine\",\n    \"hex\": \"E7730A\"\n  },\n  {\n    \"name\": \"Tonys Pink\",\n    \"hex\": \"E79F8C\"\n  },\n  {\n    \"name\": \"Kobi\",\n    \"hex\": \"E79FC4\"\n  },\n  {\n    \"name\": \"Rose Fog\",\n    \"hex\": \"E7BCB4\"\n  },\n  {\n    \"name\": \"Corn\",\n    \"hex\": \"E7BF05\"\n  },\n  {\n    \"name\": \"Putty\",\n    \"hex\": \"E7CD8C\"\n  },\n  {\n    \"name\": \"Gray Nurse\",\n    \"hex\": \"E7ECE6\"\n  },\n  {\n    \"name\": \"Lily White\",\n    \"hex\": \"E7F8FF\"\n  },\n  {\n    \"name\": \"Bubbles\",\n    \"hex\": \"E7FEFF\"\n  },\n  {\n    \"name\": \"Fire Bush\",\n    \"hex\": \"E89928\"\n  },\n  {\n    \"name\": \"Shilo\",\n    \"hex\": \"E8B9B3\"\n  },\n  {\n    \"name\": \"Pearl Bush\",\n    \"hex\": \"E8E0D5\"\n  },\n  {\n    \"name\": \"Green White\",\n    \"hex\": \"E8EBE0\"\n  },\n  {\n    \"name\": \"Chrome White\",\n    \"hex\": \"E8F1D4\"\n  },\n  {\n    \"name\": \"Gin\",\n    \"hex\": \"E8F2EB\"\n  },\n  {\n    \"name\": \"Aqua Squeeze\",\n    \"hex\": \"E8F5F2\"\n  },\n  {\n    \"name\": \"Clementine\",\n    \"hex\": \"E96E00\"\n  },\n  {\n    \"name\": \"Burnt Sienna\",\n    \"hex\": \"E97451\"\n  },\n  {\n    \"name\": \"Tahiti Gold\",\n    \"hex\": \"E97C07\"\n  },\n  {\n    \"name\": \"Oyster Pink\",\n    \"hex\": \"E9CECD\"\n  },\n  {\n    \"name\": \"Confetti\",\n    \"hex\": \"E9D75A\"\n  },\n  {\n    \"name\": \"Ebb\",\n    \"hex\": \"E9E3E3\"\n  },\n  {\n    \"name\": \"Ottoman\",\n    \"hex\": \"E9F8ED\"\n  },\n  {\n    \"name\": \"Clear Day\",\n    \"hex\": \"E9FFFD\"\n  },\n  {\n    \"name\": \"Carissma\",\n    \"hex\": \"EA88A8\"\n  },\n  {\n    \"name\": \"Porsche\",\n    \"hex\": \"EAAE69\"\n  },\n  {\n    \"name\": \"Tulip Tree\",\n    \"hex\": \"EAB33B\"\n  },\n  {\n    \"name\": \"Rob Roy\",\n    \"hex\": \"EAC674\"\n  },\n  {\n    \"name\": \"Raffia\",\n    \"hex\": \"EADAB8\"\n  },\n  {\n    \"name\": \"White Rock\",\n    \"hex\": \"EAE8D4\"\n  },\n  {\n    \"name\": \"Panache\",\n    \"hex\": \"EAF6EE\"\n  },\n  {\n    \"name\": \"Solitude\",\n    \"hex\": \"EAF6FF\"\n  },\n  {\n    \"name\": \"Aqua Spring\",\n    \"hex\": \"EAF9F5\"\n  },\n  {\n    \"name\": \"Dew\",\n    \"hex\": \"EAFFFE\"\n  },\n  {\n    \"name\": \"Apricot\",\n    \"hex\": \"EB9373\"\n  },\n  {\n    \"name\": \"Zinnwaldite\",\n    \"hex\": \"EBC2AF\"\n  },\n  {\n    \"name\": \"Fuel Yellow\",\n    \"hex\": \"ECA927\"\n  },\n  {\n    \"name\": \"Ronchi\",\n    \"hex\": \"ECC54E\"\n  },\n  {\n    \"name\": \"French Lilac\",\n    \"hex\": \"ECC7EE\"\n  },\n  {\n    \"name\": \"Just Right\",\n    \"hex\": \"ECCDB9\"\n  },\n  {\n    \"name\": \"Wild Rice\",\n    \"hex\": \"ECE090\"\n  },\n  {\n    \"name\": \"Fall Green\",\n    \"hex\": \"ECEBBD\"\n  },\n  {\n    \"name\": \"Aths Special\",\n    \"hex\": \"ECEBCE\"\n  },\n  {\n    \"name\": \"Starship\",\n    \"hex\": \"ECF245\"\n  },\n  {\n    \"name\": \"Red Ribbon\",\n    \"hex\": \"ED0A3F\"\n  },\n  {\n    \"name\": \"Tango\",\n    \"hex\": \"ED7A1C\"\n  },\n  {\n    \"name\": \"Carrot Orange\",\n    \"hex\": \"ED9121\"\n  },\n  {\n    \"name\": \"Sea Pink\",\n    \"hex\": \"ED989E\"\n  },\n  {\n    \"name\": \"Tacao\",\n    \"hex\": \"EDB381\"\n  },\n  {\n    \"name\": \"Desert Sand\",\n    \"hex\": \"EDC9AF\"\n  },\n  {\n    \"name\": \"Pancho\",\n    \"hex\": \"EDCDAB\"\n  },\n  {\n    \"name\": \"Chamois\",\n    \"hex\": \"EDDCB1\"\n  },\n  {\n    \"name\": \"Primrose\",\n    \"hex\": \"EDEA99\"\n  },\n  {\n    \"name\": \"Frost\",\n    \"hex\": \"EDF5DD\"\n  },\n  {\n    \"name\": \"Aqua Haze\",\n    \"hex\": \"EDF5F5\"\n  },\n  {\n    \"name\": \"Zumthor\",\n    \"hex\": \"EDF6FF\"\n  },\n  {\n    \"name\": \"Narvik\",\n    \"hex\": \"EDF9F1\"\n  },\n  {\n    \"name\": \"Honeysuckle\",\n    \"hex\": \"EDFC84\"\n  },\n  {\n    \"name\": \"Lavender Magenta\",\n    \"hex\": \"EE82EE\"\n  },\n  {\n    \"name\": \"Beauty Bush\",\n    \"hex\": \"EEC1BE\"\n  },\n  {\n    \"name\": \"Chalky\",\n    \"hex\": \"EED794\"\n  },\n  {\n    \"name\": \"Almond\",\n    \"hex\": \"EED9C4\"\n  },\n  {\n    \"name\": \"Flax\",\n    \"hex\": \"EEDC82\"\n  },\n  {\n    \"name\": \"Bizarre\",\n    \"hex\": \"EEDEDA\"\n  },\n  {\n    \"name\": \"Double Colonial White\",\n    \"hex\": \"EEE3AD\"\n  },\n  {\n    \"name\": \"Cararra\",\n    \"hex\": \"EEEEE8\"\n  },\n  {\n    \"name\": \"Manz\",\n    \"hex\": \"EEEF78\"\n  },\n  {\n    \"name\": \"Tahuna Sands\",\n    \"hex\": \"EEF0C8\"\n  },\n  {\n    \"name\": \"Athens Gray\",\n    \"hex\": \"EEF0F3\"\n  },\n  {\n    \"name\": \"Tusk\",\n    \"hex\": \"EEF3C3\"\n  },\n  {\n    \"name\": \"Loafer\",\n    \"hex\": \"EEF4DE\"\n  },\n  {\n    \"name\": \"Catskill White\",\n    \"hex\": \"EEF6F7\"\n  },\n  {\n    \"name\": \"Twilight Blue\",\n    \"hex\": \"EEFDFF\"\n  },\n  {\n    \"name\": \"Jonquil\",\n    \"hex\": \"EEFF9A\"\n  },\n  {\n    \"name\": \"Rice Flower\",\n    \"hex\": \"EEFFE2\"\n  },\n  {\n    \"name\": \"Jaffa\",\n    \"hex\": \"EF863F\"\n  },\n  {\n    \"name\": \"Gallery\",\n    \"hex\": \"EFEFEF\"\n  },\n  {\n    \"name\": \"Porcelain\",\n    \"hex\": \"EFF2F3\"\n  },\n  {\n    \"name\": \"Mauvelous\",\n    \"hex\": \"F091A9\"\n  },\n  {\n    \"name\": \"Golden Dream\",\n    \"hex\": \"F0D52D\"\n  },\n  {\n    \"name\": \"Golden Sand\",\n    \"hex\": \"F0DB7D\"\n  },\n  {\n    \"name\": \"Buff\",\n    \"hex\": \"F0DC82\"\n  },\n  {\n    \"name\": \"Prim\",\n    \"hex\": \"F0E2EC\"\n  },\n  {\n    \"name\": \"Khaki\",\n    \"hex\": \"F0E68C\"\n  },\n  {\n    \"name\": \"Selago\",\n    \"hex\": \"F0EEFD\"\n  },\n  {\n    \"name\": \"Titan White\",\n    \"hex\": \"F0EEFF\"\n  },\n  {\n    \"name\": \"Alice Blue\",\n    \"hex\": \"F0F8FF\"\n  },\n  {\n    \"name\": \"Feta\",\n    \"hex\": \"F0FCEA\"\n  },\n  {\n    \"name\": \"Gold Drop\",\n    \"hex\": \"F18200\"\n  },\n  {\n    \"name\": \"Wewak\",\n    \"hex\": \"F19BAB\"\n  },\n  {\n    \"name\": \"Sahara Sand\",\n    \"hex\": \"F1E788\"\n  },\n  {\n    \"name\": \"Parchment\",\n    \"hex\": \"F1E9D2\"\n  },\n  {\n    \"name\": \"Blue Chalk\",\n    \"hex\": \"F1E9FF\"\n  },\n  {\n    \"name\": \"Mint Julep\",\n    \"hex\": \"F1EEC1\"\n  },\n  {\n    \"name\": \"Seashell\",\n    \"hex\": \"F1F1F1\"\n  },\n  {\n    \"name\": \"Saltpan\",\n    \"hex\": \"F1F7F2\"\n  },\n  {\n    \"name\": \"Tidal\",\n    \"hex\": \"F1FFAD\"\n  },\n  {\n    \"name\": \"Chiffon\",\n    \"hex\": \"F1FFC8\"\n  },\n  {\n    \"name\": \"Flamingo\",\n    \"hex\": \"F2552A\"\n  },\n  {\n    \"name\": \"Tangerine\",\n    \"hex\": \"F28500\"\n  },\n  {\n    \"name\": \"Mandys Pink\",\n    \"hex\": \"F2C3B2\"\n  },\n  {\n    \"name\": \"Concrete\",\n    \"hex\": \"F2F2F2\"\n  },\n  {\n    \"name\": \"Black Squeeze\",\n    \"hex\": \"F2FAFA\"\n  },\n  {\n    \"name\": \"Pomegranate\",\n    \"hex\": \"F34723\"\n  },\n  {\n    \"name\": \"Buttercup\",\n    \"hex\": \"F3AD16\"\n  },\n  {\n    \"name\": \"New Orleans\",\n    \"hex\": \"F3D69D\"\n  },\n  {\n    \"name\": \"Vanilla Ice\",\n    \"hex\": \"F3D9DF\"\n  },\n  {\n    \"name\": \"Sidecar\",\n    \"hex\": \"F3E7BB\"\n  },\n  {\n    \"name\": \"Dawn Pink\",\n    \"hex\": \"F3E9E5\"\n  },\n  {\n    \"name\": \"Wheatfield\",\n    \"hex\": \"F3EDCF\"\n  },\n  {\n    \"name\": \"Canary\",\n    \"hex\": \"F3FB62\"\n  },\n  {\n    \"name\": \"Orinoco\",\n    \"hex\": \"F3FBD4\"\n  },\n  {\n    \"name\": \"Carla\",\n    \"hex\": \"F3FFD8\"\n  },\n  {\n    \"name\": \"Hollywood Cerise\",\n    \"hex\": \"F400A1\"\n  },\n  {\n    \"name\": \"Sandy brown\",\n    \"hex\": \"F4A460\"\n  },\n  {\n    \"name\": \"Saffron\",\n    \"hex\": \"F4C430\"\n  },\n  {\n    \"name\": \"Ripe Lemon\",\n    \"hex\": \"F4D81C\"\n  },\n  {\n    \"name\": \"Janna\",\n    \"hex\": \"F4EBD3\"\n  },\n  {\n    \"name\": \"Pampas\",\n    \"hex\": \"F4F2EE\"\n  },\n  {\n    \"name\": \"Wild Sand\",\n    \"hex\": \"F4F4F4\"\n  },\n  {\n    \"name\": \"Zircon\",\n    \"hex\": \"F4F8FF\"\n  },\n  {\n    \"name\": \"Froly\",\n    \"hex\": \"F57584\"\n  },\n  {\n    \"name\": \"Cream Can\",\n    \"hex\": \"F5C85C\"\n  },\n  {\n    \"name\": \"Manhattan\",\n    \"hex\": \"F5C999\"\n  },\n  {\n    \"name\": \"Maize\",\n    \"hex\": \"F5D5A0\"\n  },\n  {\n    \"name\": \"Wheat\",\n    \"hex\": \"F5DEB3\"\n  },\n  {\n    \"name\": \"Sandwisp\",\n    \"hex\": \"F5E7A2\"\n  },\n  {\n    \"name\": \"Pot Pourri\",\n    \"hex\": \"F5E7E2\"\n  },\n  {\n    \"name\": \"Albescent White\",\n    \"hex\": \"F5E9D3\"\n  },\n  {\n    \"name\": \"Soft Peach\",\n    \"hex\": \"F5EDEF\"\n  },\n  {\n    \"name\": \"Ecru White\",\n    \"hex\": \"F5F3E5\"\n  },\n  {\n    \"name\": \"Beige\",\n    \"hex\": \"F5F5DC\"\n  },\n  {\n    \"name\": \"Golden Fizz\",\n    \"hex\": \"F5FB3D\"\n  },\n  {\n    \"name\": \"Australian Mint\",\n    \"hex\": \"F5FFBE\"\n  },\n  {\n    \"name\": \"French Rose\",\n    \"hex\": \"F64A8A\"\n  },\n  {\n    \"name\": \"Brilliant Rose\",\n    \"hex\": \"F653A6\"\n  },\n  {\n    \"name\": \"Illusion\",\n    \"hex\": \"F6A4C9\"\n  },\n  {\n    \"name\": \"Merino\",\n    \"hex\": \"F6F0E6\"\n  },\n  {\n    \"name\": \"Black Haze\",\n    \"hex\": \"F6F7F7\"\n  },\n  {\n    \"name\": \"Spring Sun\",\n    \"hex\": \"F6FFDC\"\n  },\n  {\n    \"name\": \"Violet Red\",\n    \"hex\": \"F7468A\"\n  },\n  {\n    \"name\": \"Chilean Fire\",\n    \"hex\": \"F77703\"\n  },\n  {\n    \"name\": \"Persian Pink\",\n    \"hex\": \"F77FBE\"\n  },\n  {\n    \"name\": \"Rajah\",\n    \"hex\": \"F7B668\"\n  },\n  {\n    \"name\": \"Azalea\",\n    \"hex\": \"F7C8DA\"\n  },\n  {\n    \"name\": \"We Peep\",\n    \"hex\": \"F7DBE6\"\n  },\n  {\n    \"name\": \"Quarter Spanish White\",\n    \"hex\": \"F7F2E1\"\n  },\n  {\n    \"name\": \"Whisper\",\n    \"hex\": \"F7F5FA\"\n  },\n  {\n    \"name\": \"Snow Drift\",\n    \"hex\": \"F7FAF7\"\n  },\n  {\n    \"name\": \"Casablanca\",\n    \"hex\": \"F8B853\"\n  },\n  {\n    \"name\": \"Chantilly\",\n    \"hex\": \"F8C3DF\"\n  },\n  {\n    \"name\": \"Cherub\",\n    \"hex\": \"F8D9E9\"\n  },\n  {\n    \"name\": \"Marzipan\",\n    \"hex\": \"F8DB9D\"\n  },\n  {\n    \"name\": \"Energy Yellow\",\n    \"hex\": \"F8DD5C\"\n  },\n  {\n    \"name\": \"Givry\",\n    \"hex\": \"F8E4BF\"\n  },\n  {\n    \"name\": \"White Linen\",\n    \"hex\": \"F8F0E8\"\n  },\n  {\n    \"name\": \"Magnolia\",\n    \"hex\": \"F8F4FF\"\n  },\n  {\n    \"name\": \"Spring Wood\",\n    \"hex\": \"F8F6F1\"\n  },\n  {\n    \"name\": \"Coconut Cream\",\n    \"hex\": \"F8F7DC\"\n  },\n  {\n    \"name\": \"White Lilac\",\n    \"hex\": \"F8F7FC\"\n  },\n  {\n    \"name\": \"Desert Storm\",\n    \"hex\": \"F8F8F7\"\n  },\n  {\n    \"name\": \"Texas\",\n    \"hex\": \"F8F99C\"\n  },\n  {\n    \"name\": \"Corn Field\",\n    \"hex\": \"F8FACD\"\n  },\n  {\n    \"name\": \"Mimosa\",\n    \"hex\": \"F8FDD3\"\n  },\n  {\n    \"name\": \"Carnation\",\n    \"hex\": \"F95A61\"\n  },\n  {\n    \"name\": \"Saffron Mango\",\n    \"hex\": \"F9BF58\"\n  },\n  {\n    \"name\": \"Carousel Pink\",\n    \"hex\": \"F9E0ED\"\n  },\n  {\n    \"name\": \"Dairy Cream\",\n    \"hex\": \"F9E4BC\"\n  },\n  {\n    \"name\": \"Portica\",\n    \"hex\": \"F9E663\"\n  },\n  {\n    \"name\": \"Amour\",\n    \"hex\": \"F9EAF3\"\n  },\n  {\n    \"name\": \"Rum Swizzle\",\n    \"hex\": \"F9F8E4\"\n  },\n  {\n    \"name\": \"Dolly\",\n    \"hex\": \"F9FF8B\"\n  },\n  {\n    \"name\": \"Sugar Cane\",\n    \"hex\": \"F9FFF6\"\n  },\n  {\n    \"name\": \"Ecstasy\",\n    \"hex\": \"FA7814\"\n  },\n  {\n    \"name\": \"Tan Hide\",\n    \"hex\": \"FA9D5A\"\n  },\n  {\n    \"name\": \"Corvette\",\n    \"hex\": \"FAD3A2\"\n  },\n  {\n    \"name\": \"Peach Yellow\",\n    \"hex\": \"FADFAD\"\n  },\n  {\n    \"name\": \"Turbo\",\n    \"hex\": \"FAE600\"\n  },\n  {\n    \"name\": \"Astra\",\n    \"hex\": \"FAEAB9\"\n  },\n  {\n    \"name\": \"Champagne\",\n    \"hex\": \"FAECCC\"\n  },\n  {\n    \"name\": \"Linen\",\n    \"hex\": \"FAF0E6\"\n  },\n  {\n    \"name\": \"Fantasy\",\n    \"hex\": \"FAF3F0\"\n  },\n  {\n    \"name\": \"Citrine White\",\n    \"hex\": \"FAF7D6\"\n  },\n  {\n    \"name\": \"Alabaster\",\n    \"hex\": \"FAFAFA\"\n  },\n  {\n    \"name\": \"Hint of Yellow\",\n    \"hex\": \"FAFDE4\"\n  },\n  {\n    \"name\": \"Milan\",\n    \"hex\": \"FAFFA4\"\n  },\n  {\n    \"name\": \"Brink Pink\",\n    \"hex\": \"FB607F\"\n  },\n  {\n    \"name\": \"Geraldine\",\n    \"hex\": \"FB8989\"\n  },\n  {\n    \"name\": \"Lavender Rose\",\n    \"hex\": \"FBA0E3\"\n  },\n  {\n    \"name\": \"Sea Buckthorn\",\n    \"hex\": \"FBA129\"\n  },\n  {\n    \"name\": \"Sun\",\n    \"hex\": \"FBAC13\"\n  },\n  {\n    \"name\": \"Lavender Pink\",\n    \"hex\": \"FBAED2\"\n  },\n  {\n    \"name\": \"Rose Bud\",\n    \"hex\": \"FBB2A3\"\n  },\n  {\n    \"name\": \"Cupid\",\n    \"hex\": \"FBBEDA\"\n  },\n  {\n    \"name\": \"Classic Rose\",\n    \"hex\": \"FBCCE7\"\n  },\n  {\n    \"name\": \"Apricot Peach\",\n    \"hex\": \"FBCEB1\"\n  },\n  {\n    \"name\": \"Banana Mania\",\n    \"hex\": \"FBE7B2\"\n  },\n  {\n    \"name\": \"Marigold Yellow\",\n    \"hex\": \"FBE870\"\n  },\n  {\n    \"name\": \"Festival\",\n    \"hex\": \"FBE96C\"\n  },\n  {\n    \"name\": \"Sweet Corn\",\n    \"hex\": \"FBEA8C\"\n  },\n  {\n    \"name\": \"Candy Corn\",\n    \"hex\": \"FBEC5D\"\n  },\n  {\n    \"name\": \"Hint of Red\",\n    \"hex\": \"FBF9F9\"\n  },\n  {\n    \"name\": \"Shalimar\",\n    \"hex\": \"FBFFBA\"\n  },\n  {\n    \"name\": \"Shocking Pink\",\n    \"hex\": \"FC0FC0\"\n  },\n  {\n    \"name\": \"Tickle Me Pink\",\n    \"hex\": \"FC80A5\"\n  },\n  {\n    \"name\": \"Tree Poppy\",\n    \"hex\": \"FC9C1D\"\n  },\n  {\n    \"name\": \"Lightning Yellow\",\n    \"hex\": \"FCC01E\"\n  },\n  {\n    \"name\": \"Goldenrod\",\n    \"hex\": \"FCD667\"\n  },\n  {\n    \"name\": \"Candlelight\",\n    \"hex\": \"FCD917\"\n  },\n  {\n    \"name\": \"Cherokee\",\n    \"hex\": \"FCDA98\"\n  },\n  {\n    \"name\": \"Double Pearl Lusta\",\n    \"hex\": \"FCF4D0\"\n  },\n  {\n    \"name\": \"Pearl Lusta\",\n    \"hex\": \"FCF4DC\"\n  },\n  {\n    \"name\": \"Vista White\",\n    \"hex\": \"FCF8F7\"\n  },\n  {\n    \"name\": \"Bianca\",\n    \"hex\": \"FCFBF3\"\n  },\n  {\n    \"name\": \"Moon Glow\",\n    \"hex\": \"FCFEDA\"\n  },\n  {\n    \"name\": \"China Ivory\",\n    \"hex\": \"FCFFE7\"\n  },\n  {\n    \"name\": \"Ceramic\",\n    \"hex\": \"FCFFF9\"\n  },\n  {\n    \"name\": \"Torch Red\",\n    \"hex\": \"FD0E35\"\n  },\n  {\n    \"name\": \"Wild Watermelon\",\n    \"hex\": \"FD5B78\"\n  },\n  {\n    \"name\": \"Crusta\",\n    \"hex\": \"FD7B33\"\n  },\n  {\n    \"name\": \"Sorbus\",\n    \"hex\": \"FD7C07\"\n  },\n  {\n    \"name\": \"Sweet Pink\",\n    \"hex\": \"FD9FA2\"\n  },\n  {\n    \"name\": \"Light Apricot\",\n    \"hex\": \"FDD5B1\"\n  },\n  {\n    \"name\": \"Pig Pink\",\n    \"hex\": \"FDD7E4\"\n  },\n  {\n    \"name\": \"Cinderella\",\n    \"hex\": \"FDE1DC\"\n  },\n  {\n    \"name\": \"Golden Glow\",\n    \"hex\": \"FDE295\"\n  },\n  {\n    \"name\": \"Lemon\",\n    \"hex\": \"FDE910\"\n  },\n  {\n    \"name\": \"Old Lace\",\n    \"hex\": \"FDF5E6\"\n  },\n  {\n    \"name\": \"Half Colonial White\",\n    \"hex\": \"FDF6D3\"\n  },\n  {\n    \"name\": \"Drover\",\n    \"hex\": \"FDF7AD\"\n  },\n  {\n    \"name\": \"Pale Prim\",\n    \"hex\": \"FDFEB8\"\n  },\n  {\n    \"name\": \"Cumulus\",\n    \"hex\": \"FDFFD5\"\n  },\n  {\n    \"name\": \"Persian Rose\",\n    \"hex\": \"FE28A2\"\n  },\n  {\n    \"name\": \"Sunset Orange\",\n    \"hex\": \"FE4C40\"\n  },\n  {\n    \"name\": \"Bittersweet\",\n    \"hex\": \"FE6F5E\"\n  },\n  {\n    \"name\": \"California\",\n    \"hex\": \"FE9D04\"\n  },\n  {\n    \"name\": \"Yellow Sea\",\n    \"hex\": \"FEA904\"\n  },\n  {\n    \"name\": \"Melon\",\n    \"hex\": \"FEBAAD\"\n  },\n  {\n    \"name\": \"Bright Sun\",\n    \"hex\": \"FED33C\"\n  },\n  {\n    \"name\": \"Dandelion\",\n    \"hex\": \"FED85D\"\n  },\n  {\n    \"name\": \"Salomie\",\n    \"hex\": \"FEDB8D\"\n  },\n  {\n    \"name\": \"Cape Honey\",\n    \"hex\": \"FEE5AC\"\n  },\n  {\n    \"name\": \"Remy\",\n    \"hex\": \"FEEBF3\"\n  },\n  {\n    \"name\": \"Oasis\",\n    \"hex\": \"FEEFCE\"\n  },\n  {\n    \"name\": \"Bridesmaid\",\n    \"hex\": \"FEF0EC\"\n  },\n  {\n    \"name\": \"Beeswax\",\n    \"hex\": \"FEF2C7\"\n  },\n  {\n    \"name\": \"Bleach White\",\n    \"hex\": \"FEF3D8\"\n  },\n  {\n    \"name\": \"Pipi\",\n    \"hex\": \"FEF4CC\"\n  },\n  {\n    \"name\": \"Half Spanish White\",\n    \"hex\": \"FEF4DB\"\n  },\n  {\n    \"name\": \"Wisp Pink\",\n    \"hex\": \"FEF4F8\"\n  },\n  {\n    \"name\": \"Provincial Pink\",\n    \"hex\": \"FEF5F1\"\n  },\n  {\n    \"name\": \"Half Dutch White\",\n    \"hex\": \"FEF7DE\"\n  },\n  {\n    \"name\": \"Solitaire\",\n    \"hex\": \"FEF8E2\"\n  },\n  {\n    \"name\": \"White Pointer\",\n    \"hex\": \"FEF8FF\"\n  },\n  {\n    \"name\": \"Off Yellow\",\n    \"hex\": \"FEF9E3\"\n  },\n  {\n    \"name\": \"Orange White\",\n    \"hex\": \"FEFCED\"\n  },\n  {\n    \"name\": \"Red\",\n    \"hex\": \"FF0000\"\n  },\n  {\n    \"name\": \"Rose\",\n    \"hex\": \"FF007F\"\n  },\n  {\n    \"name\": \"Purple Pizzazz\",\n    \"hex\": \"FF00CC\"\n  },\n  {\n    \"name\": \"Magenta / Fuchsia\",\n    \"hex\": \"FF00FF\"\n  },\n  {\n    \"name\": \"Scarlet\",\n    \"hex\": \"FF2400\"\n  },\n  {\n    \"name\": \"Wild Strawberry\",\n    \"hex\": \"FF3399\"\n  },\n  {\n    \"name\": \"Razzle Dazzle Rose\",\n    \"hex\": \"FF33CC\"\n  },\n  {\n    \"name\": \"Radical Red\",\n    \"hex\": \"FF355E\"\n  },\n  {\n    \"name\": \"Red Orange\",\n    \"hex\": \"FF3F34\"\n  },\n  {\n    \"name\": \"Coral Red\",\n    \"hex\": \"FF4040\"\n  },\n  {\n    \"name\": \"Vermilion\",\n    \"hex\": \"FF4D00\"\n  },\n  {\n    \"name\": \"International Orange\",\n    \"hex\": \"FF4F00\"\n  },\n  {\n    \"name\": \"Outrageous Orange\",\n    \"hex\": \"FF6037\"\n  },\n  {\n    \"name\": \"Blaze Orange\",\n    \"hex\": \"FF6600\"\n  },\n  {\n    \"name\": \"Pink Flamingo\",\n    \"hex\": \"FF66FF\"\n  },\n  {\n    \"name\": \"Orange\",\n    \"hex\": \"FF681F\"\n  },\n  {\n    \"name\": \"Hot Pink\",\n    \"hex\": \"FF69B4\"\n  },\n  {\n    \"name\": \"Persimmon\",\n    \"hex\": \"FF6B53\"\n  },\n  {\n    \"name\": \"Blush Pink\",\n    \"hex\": \"FF6FFF\"\n  },\n  {\n    \"name\": \"Burning Orange\",\n    \"hex\": \"FF7034\"\n  },\n  {\n    \"name\": \"Pumpkin\",\n    \"hex\": \"FF7518\"\n  },\n  {\n    \"name\": \"Flamenco\",\n    \"hex\": \"FF7D07\"\n  },\n  {\n    \"name\": \"Flush Orange\",\n    \"hex\": \"FF7F00\"\n  },\n  {\n    \"name\": \"Coral\",\n    \"hex\": \"FF7F50\"\n  },\n  {\n    \"name\": \"Salmon\",\n    \"hex\": \"FF8C69\"\n  },\n  {\n    \"name\": \"Pizazz\",\n    \"hex\": \"FF9000\"\n  },\n  {\n    \"name\": \"West Side\",\n    \"hex\": \"FF910F\"\n  },\n  {\n    \"name\": \"Pink Salmon\",\n    \"hex\": \"FF91A4\"\n  },\n  {\n    \"name\": \"Neon Carrot\",\n    \"hex\": \"FF9933\"\n  },\n  {\n    \"name\": \"Atomic Tangerine\",\n    \"hex\": \"FF9966\"\n  },\n  {\n    \"name\": \"Vivid Tangerine\",\n    \"hex\": \"FF9980\"\n  },\n  {\n    \"name\": \"Sunshade\",\n    \"hex\": \"FF9E2C\"\n  },\n  {\n    \"name\": \"Orange Peel\",\n    \"hex\": \"FFA000\"\n  },\n  {\n    \"name\": \"Mona Lisa\",\n    \"hex\": \"FFA194\"\n  },\n  {\n    \"name\": \"Web Orange\",\n    \"hex\": \"FFA500\"\n  },\n  {\n    \"name\": \"Carnation Pink\",\n    \"hex\": \"FFA6C9\"\n  },\n  {\n    \"name\": \"Hit Pink\",\n    \"hex\": \"FFAB81\"\n  },\n  {\n    \"name\": \"Yellow Orange\",\n    \"hex\": \"FFAE42\"\n  },\n  {\n    \"name\": \"Cornflower Lilac\",\n    \"hex\": \"FFB0AC\"\n  },\n  {\n    \"name\": \"Sundown\",\n    \"hex\": \"FFB1B3\"\n  },\n  {\n    \"name\": \"My Sin\",\n    \"hex\": \"FFB31F\"\n  },\n  {\n    \"name\": \"Texas Rose\",\n    \"hex\": \"FFB555\"\n  },\n  {\n    \"name\": \"Cotton Candy\",\n    \"hex\": \"FFB7D5\"\n  },\n  {\n    \"name\": \"Macaroni and Cheese\",\n    \"hex\": \"FFB97B\"\n  },\n  {\n    \"name\": \"Selective Yellow\",\n    \"hex\": \"FFBA00\"\n  },\n  {\n    \"name\": \"Koromiko\",\n    \"hex\": \"FFBD5F\"\n  },\n  {\n    \"name\": \"Amber\",\n    \"hex\": \"FFBF00\"\n  },\n  {\n    \"name\": \"Wax Flower\",\n    \"hex\": \"FFC0A8\"\n  },\n  {\n    \"name\": \"Pink\",\n    \"hex\": \"FFC0CB\"\n  },\n  {\n    \"name\": \"Your Pink\",\n    \"hex\": \"FFC3C0\"\n  },\n  {\n    \"name\": \"Supernova\",\n    \"hex\": \"FFC901\"\n  },\n  {\n    \"name\": \"Flesh\",\n    \"hex\": \"FFCBA4\"\n  },\n  {\n    \"name\": \"Sunglow\",\n    \"hex\": \"FFCC33\"\n  },\n  {\n    \"name\": \"Golden Tainoi\",\n    \"hex\": \"FFCC5C\"\n  },\n  {\n    \"name\": \"Peach Orange\",\n    \"hex\": \"FFCC99\"\n  },\n  {\n    \"name\": \"Chardonnay\",\n    \"hex\": \"FFCD8C\"\n  },\n  {\n    \"name\": \"Pastel Pink\",\n    \"hex\": \"FFD1DC\"\n  },\n  {\n    \"name\": \"Romantic\",\n    \"hex\": \"FFD2B7\"\n  },\n  {\n    \"name\": \"Grandis\",\n    \"hex\": \"FFD38C\"\n  },\n  {\n    \"name\": \"Gold\",\n    \"hex\": \"FFD700\"\n  },\n  {\n    \"name\": \"School bus Yellow\",\n    \"hex\": \"FFD800\"\n  },\n  {\n    \"name\": \"Cosmos\",\n    \"hex\": \"FFD8D9\"\n  },\n  {\n    \"name\": \"Mustard\",\n    \"hex\": \"FFDB58\"\n  },\n  {\n    \"name\": \"Peach Schnapps\",\n    \"hex\": \"FFDCD6\"\n  },\n  {\n    \"name\": \"Caramel\",\n    \"hex\": \"FFDDAF\"\n  },\n  {\n    \"name\": \"Tuft Bush\",\n    \"hex\": \"FFDDCD\"\n  },\n  {\n    \"name\": \"Watusi\",\n    \"hex\": \"FFDDCF\"\n  },\n  {\n    \"name\": \"Pink Lace\",\n    \"hex\": \"FFDDF4\"\n  },\n  {\n    \"name\": \"Navajo White\",\n    \"hex\": \"FFDEAD\"\n  },\n  {\n    \"name\": \"Frangipani\",\n    \"hex\": \"FFDEB3\"\n  },\n  {\n    \"name\": \"Pippin\",\n    \"hex\": \"FFE1DF\"\n  },\n  {\n    \"name\": \"Pale Rose\",\n    \"hex\": \"FFE1F2\"\n  },\n  {\n    \"name\": \"Negroni\",\n    \"hex\": \"FFE2C5\"\n  },\n  {\n    \"name\": \"Cream Brulee\",\n    \"hex\": \"FFE5A0\"\n  },\n  {\n    \"name\": \"Peach\",\n    \"hex\": \"FFE5B4\"\n  },\n  {\n    \"name\": \"Tequila\",\n    \"hex\": \"FFE6C7\"\n  },\n  {\n    \"name\": \"Kournikova\",\n    \"hex\": \"FFE772\"\n  },\n  {\n    \"name\": \"Sandy Beach\",\n    \"hex\": \"FFEAC8\"\n  },\n  {\n    \"name\": \"Karry\",\n    \"hex\": \"FFEAD4\"\n  },\n  {\n    \"name\": \"Broom\",\n    \"hex\": \"FFEC13\"\n  },\n  {\n    \"name\": \"Colonial White\",\n    \"hex\": \"FFEDBC\"\n  },\n  {\n    \"name\": \"Derby\",\n    \"hex\": \"FFEED8\"\n  },\n  {\n    \"name\": \"Vis Vis\",\n    \"hex\": \"FFEFA1\"\n  },\n  {\n    \"name\": \"Egg White\",\n    \"hex\": \"FFEFC1\"\n  },\n  {\n    \"name\": \"Papaya Whip\",\n    \"hex\": \"FFEFD5\"\n  },\n  {\n    \"name\": \"Fair Pink\",\n    \"hex\": \"FFEFEC\"\n  },\n  {\n    \"name\": \"Peach Cream\",\n    \"hex\": \"FFF0DB\"\n  },\n  {\n    \"name\": \"Lavender blush\",\n    \"hex\": \"FFF0F5\"\n  },\n  {\n    \"name\": \"Gorse\",\n    \"hex\": \"FFF14F\"\n  },\n  {\n    \"name\": \"Buttermilk\",\n    \"hex\": \"FFF1B5\"\n  },\n  {\n    \"name\": \"Pink Lady\",\n    \"hex\": \"FFF1D8\"\n  },\n  {\n    \"name\": \"Forget Me Not\",\n    \"hex\": \"FFF1EE\"\n  },\n  {\n    \"name\": \"Tutu\",\n    \"hex\": \"FFF1F9\"\n  },\n  {\n    \"name\": \"Picasso\",\n    \"hex\": \"FFF39D\"\n  },\n  {\n    \"name\": \"Chardon\",\n    \"hex\": \"FFF3F1\"\n  },\n  {\n    \"name\": \"Paris Daisy\",\n    \"hex\": \"FFF46E\"\n  },\n  {\n    \"name\": \"Barley White\",\n    \"hex\": \"FFF4CE\"\n  },\n  {\n    \"name\": \"Egg Sour\",\n    \"hex\": \"FFF4DD\"\n  },\n  {\n    \"name\": \"Sazerac\",\n    \"hex\": \"FFF4E0\"\n  },\n  {\n    \"name\": \"Serenade\",\n    \"hex\": \"FFF4E8\"\n  },\n  {\n    \"name\": \"Chablis\",\n    \"hex\": \"FFF4F3\"\n  },\n  {\n    \"name\": \"Seashell Peach\",\n    \"hex\": \"FFF5EE\"\n  },\n  {\n    \"name\": \"Sauvignon\",\n    \"hex\": \"FFF5F3\"\n  },\n  {\n    \"name\": \"Milk Punch\",\n    \"hex\": \"FFF6D4\"\n  },\n  {\n    \"name\": \"Varden\",\n    \"hex\": \"FFF6DF\"\n  },\n  {\n    \"name\": \"Rose White\",\n    \"hex\": \"FFF6F5\"\n  },\n  {\n    \"name\": \"Baja White\",\n    \"hex\": \"FFF8D1\"\n  },\n  {\n    \"name\": \"Gin Fizz\",\n    \"hex\": \"FFF9E2\"\n  },\n  {\n    \"name\": \"Early Dawn\",\n    \"hex\": \"FFF9E6\"\n  },\n  {\n    \"name\": \"Lemon Chiffon\",\n    \"hex\": \"FFFACD\"\n  },\n  {\n    \"name\": \"Bridal Heath\",\n    \"hex\": \"FFFAF4\"\n  },\n  {\n    \"name\": \"Scotch Mist\",\n    \"hex\": \"FFFBDC\"\n  },\n  {\n    \"name\": \"Soapstone\",\n    \"hex\": \"FFFBF9\"\n  },\n  {\n    \"name\": \"Witch Haze\",\n    \"hex\": \"FFFC99\"\n  },\n  {\n    \"name\": \"Buttery White\",\n    \"hex\": \"FFFCEA\"\n  },\n  {\n    \"name\": \"Island Spice\",\n    \"hex\": \"FFFCEE\"\n  },\n  {\n    \"name\": \"Cream\",\n    \"hex\": \"FFFDD0\"\n  },\n  {\n    \"name\": \"Chilean Heath\",\n    \"hex\": \"FFFDE6\"\n  },\n  {\n    \"name\": \"Travertine\",\n    \"hex\": \"FFFDE8\"\n  },\n  {\n    \"name\": \"Orchid White\",\n    \"hex\": \"FFFDF3\"\n  },\n  {\n    \"name\": \"Quarter Pearl Lusta\",\n    \"hex\": \"FFFDF4\"\n  },\n  {\n    \"name\": \"Half and Half\",\n    \"hex\": \"FFFEE1\"\n  },\n  {\n    \"name\": \"Apricot White\",\n    \"hex\": \"FFFEEC\"\n  },\n  {\n    \"name\": \"Rice Cake\",\n    \"hex\": \"FFFEF0\"\n  },\n  {\n    \"name\": \"Black White\",\n    \"hex\": \"FFFEF6\"\n  },\n  {\n    \"name\": \"Romance\",\n    \"hex\": \"FFFEFD\"\n  },\n  {\n    \"name\": \"Yellow\",\n    \"hex\": \"FFFF00\"\n  },\n  {\n    \"name\": \"Laser Lemon\",\n    \"hex\": \"FFFF66\"\n  },\n  {\n    \"name\": \"Pale Canary\",\n    \"hex\": \"FFFF99\"\n  },\n  {\n    \"name\": \"Portafino\",\n    \"hex\": \"FFFFB4\"\n  },\n  {\n    \"name\": \"Ivory\",\n    \"hex\": \"FFFFF0\"\n  },\n  {\n    \"name\": \"White\",\n    \"hex\": \"FFFFFF\"\n  }\n]\n", "module.exports = [{\n  \"name\": \"Mahogany\",\n  \"hex\": \"#CD4A4A\"\n},{\n  \"name\": \"Fuzzy Wuzzy Brown\",\n  \"hex\": \"#CC6666\"\n},{\n  \"name\": \"Chestnut\",\n  \"hex\": \"#BC5D58\"\n},{\n  \"name\": \"Red Orange\",\n  \"hex\": \"#FF5349\"\n},{\n  \"name\": \"Sunset Orange\",\n  \"hex\": \"#FD5E53\"\n},{\n  \"name\": \"Bittersweet\",\n  \"hex\": \"#FD7C6E\"\n},{\n  \"name\": \"Melon\",\n  \"hex\": \"#FDBCB4\"\n},{\n  \"name\": \"Outrageous Orange\",\n  \"hex\": \"#FF6E4A\"\n},{\n  \"name\": \"Vivid Tangerine\",\n  \"hex\": \"#FFA089\"\n},{\n  \"name\": \"Burnt Sienna\",\n  \"hex\": \"#EA7E5D\"\n},{\n  \"name\": \"Brown\",\n  \"hex\": \"#B4674D\"\n},{\n  \"name\": \"Sepia\",\n  \"hex\": \"#A5694F\"\n},{\n  \"name\": \"Orange\",\n  \"hex\": \"#FF7538\"\n},{\n  \"name\": \"Burnt Orange\",\n  \"hex\": \"#FF7F49\"\n},{\n  \"name\": \"Copper\",\n  \"hex\": \"#DD9475\"\n},{\n  \"name\": \"Mango Tango\",\n  \"hex\": \"#FF8243\"\n},{\n  \"name\": \"Atomic Tangerine\",\n  \"hex\": \"#FFA474\"\n},{\n  \"name\": \"Beaver\",\n  \"hex\": \"#9F8170\"\n},{\n  \"name\": \"Antique Brass\",\n  \"hex\": \"#CD9575\"\n},{\n  \"name\": \"Desert Sand\",\n  \"hex\": \"#EFCDB8\"\n},{\n  \"name\": \"Raw Sienna\",\n  \"hex\": \"#D68A59\"\n},{\n  \"name\": \"Tumbleweed\",\n  \"hex\": \"#DEAA88\"\n},{\n  \"name\": \"Tan\",\n  \"hex\": \"#FAA76C\"\n},{\n  \"name\": \"Peach\",\n  \"hex\": \"#FFCFAB\"\n},{\n  \"name\": \"Macaroni and Cheese\",\n  \"hex\": \"#FFBD88\"\n},{\n  \"name\": \"Apricot\",\n  \"hex\": \"#FDD9B5\"\n},{\n  \"name\": \"Neon Carrot\",\n  \"hex\": \"#FFA343\"\n},{\n  \"name\": \"Almond\",\n  \"hex\": \"#EFDBC5\"\n},{\n  \"name\": \"Yellow Orange\",\n  \"hex\": \"#FFB653\"\n},{\n  \"name\": \"Gold\",\n  \"hex\": \"#E7C697\"\n},{\n  \"name\": \"Shadow\",\n  \"hex\": \"#8A795D\"\n},{\n  \"name\": \"Banana Mania\",\n  \"hex\": \"#FAE7B5\"\n},{\n  \"name\": \"Sunglow\",\n  \"hex\": \"#FFCF48\"\n},{\n  \"name\": \"Goldenrod\",\n  \"hex\": \"#FCD975\"\n},{\n  \"name\": \"Dandelion\",\n  \"hex\": \"#FDDB6D\"\n},{\n  \"name\": \"Yellow\",\n  \"hex\": \"#FCE883\"\n},{\n  \"name\": \"Green Yellow\",\n  \"hex\": \"#F0E891\"\n},{\n  \"name\": \"Spring Green\",\n  \"hex\": \"#ECEABE\"\n},{\n  \"name\": \"Olive Green\",\n  \"hex\": \"#BAB86C\"\n},{\n  \"name\": \"Laser Lemon\",\n  \"hex\": \"#FDFC74\"\n},{\n  \"name\": \"Unmellow Yellow\",\n  \"hex\": \"#FDFC74\"\n},{\n  \"name\": \"Canary\",\n  \"hex\": \"#FFFF99\"\n},{\n  \"name\": \"Yellow Green\",\n  \"hex\": \"#C5E384\"\n},{\n  \"name\": \"Inch Worm\",\n  \"hex\": \"#B2EC5D\"\n},{\n  \"name\": \"Asparagus\",\n  \"hex\": \"#87A96B\"\n},{\n  \"name\": \"Granny Smith Apple\",\n  \"hex\": \"#A8E4A0\"\n},{\n  \"name\": \"Electric Lime\",\n  \"hex\": \"#1DF914\"\n},{\n  \"name\": \"Screamin Green\",\n  \"hex\": \"#76FF7A\"\n},{\n  \"name\": \"Fern\",\n  \"hex\": \"#71BC78\"\n},{\n  \"name\": \"Forest Green\",\n  \"hex\": \"#6DAE81\"\n},{\n  \"name\": \"Sea Green\",\n  \"hex\": \"#9FE2BF\"\n},{\n  \"name\": \"Green\",\n  \"hex\": \"#1CAC78\"\n},{\n  \"name\": \"Mountain Meadow\",\n  \"hex\": \"#30BA8F\"\n},{\n  \"name\": \"Shamrock\",\n  \"hex\": \"#45CEA2\"\n},{\n  \"name\": \"Jungle Green\",\n  \"hex\": \"#3BB08F\"\n},{\n  \"name\": \"Caribbean Green\",\n  \"hex\": \"#1CD3A2\"\n},{\n  \"name\": \"Tropical Rain Forest\",\n  \"hex\": \"#17806D\"\n},{\n  \"name\": \"Pine Green\",\n  \"hex\": \"#158078\"\n},{\n  \"name\": \"Robin Egg Blue\",\n  \"hex\": \"#1FCECB\"\n},{\n  \"name\": \"Aquamarine\",\n  \"hex\": \"#78DBE2\"\n},{\n  \"name\": \"Turquoise Blue\",\n  \"hex\": \"#77DDE7\"\n},{\n  \"name\": \"Sky Blue\",\n  \"hex\": \"#80DAEB\"\n},{\n  \"name\": \"Outer Space\",\n  \"hex\": \"#414A4C\"\n},{\n  \"name\": \"Blue Green\",\n  \"hex\": \"#199EBD\"\n},{\n  \"name\": \"Pacific Blue\",\n  \"hex\": \"#1CA9C9\"\n},{\n  \"name\": \"Cerulean\",\n  \"hex\": \"#1DACD6\"\n},{\n  \"name\": \"Cornflower\",\n  \"hex\": \"#9ACEEB\"\n},{\n  \"name\": \"Midnight Blue\",\n  \"hex\": \"#1A4876\"\n},{\n  \"name\": \"Navy Blue\",\n  \"hex\": \"#1974D2\"\n},{\n  \"name\": \"Denim\",\n  \"hex\": \"#2B6CC4\"\n},{\n  \"name\": \"Blue\",\n  \"hex\": \"#1F75FE\"\n},{\n  \"name\": \"Periwinkle\",\n  \"hex\": \"#C5D0E6\"\n},{\n  \"name\": \"Cadet Blue\",\n  \"hex\": \"#B0B7C6\"\n},{\n  \"name\": \"Indigo\",\n  \"hex\": \"#5D76CB\"\n},{\n  \"name\": \"Wild Blue Yonder\",\n  \"hex\": \"#A2ADD0\"\n},{\n  \"name\": \"Manatee\",\n  \"hex\": \"#979AAA\"\n},{\n  \"name\": \"Blue Bell\",\n  \"hex\": \"#ADADD6\"\n},{\n  \"name\": \"Blue Violet\",\n  \"hex\": \"#7366BD\"\n},{\n  \"name\": \"Purple Heart\",\n  \"hex\": \"#7442C8\"\n},{\n  \"name\": \"Royal Purple\",\n  \"hex\": \"#7851A9\"\n},{\n  \"name\": \"Purple Mountains\u2019 Majesty\",\n  \"hex\": \"#9D81BA\"\n},{\n  \"name\": \"Violet (Purple)\",\n  \"hex\": \"#926EAE\"\n},{\n  \"name\": \"Wisteria\",\n  \"hex\": \"#CDA4DE\"\n},{\n  \"name\": \"Vivid Violet\",\n  \"hex\": \"#8F509D\"\n},{\n  \"name\": \"Fuchsia\",\n  \"hex\": \"#C364C5\"\n},{\n  \"name\": \"Shocking Pink\",\n  \"hex\": \"#FB7EFD\"\n},{\n  \"name\": \"Pink Flamingo\",\n  \"hex\": \"#FC74FD\"\n},{\n  \"name\": \"Plum\",\n  \"hex\": \"#8E4585\"\n},{\n  \"name\": \"Hot Magenta\",\n  \"hex\": \"#FF1DCE\"\n},{\n  \"name\": \"Purple Pizzazz\",\n  \"hex\": \"#FF1DCE\"\n},{\n  \"name\": \"Razzle Dazzle Rose\",\n  \"hex\": \"#FF48D0\"\n},{\n  \"name\": \"Orchid\",\n  \"hex\": \"#E6A8D7\"\n},{\n  \"name\": \"Red Violet\",\n  \"hex\": \"#C0448F\"\n},{\n  \"name\": \"Eggplant\",\n  \"hex\": \"#6E5160\"\n},{\n  \"name\": \"Cerise\",\n  \"hex\": \"#DD4492\"\n},{\n  \"name\": \"Wild Strawberry\",\n  \"hex\": \"#FF43A4\"\n},{\n  \"name\": \"Magenta\",\n  \"hex\": \"#F664AF\"\n},{\n  \"name\": \"Lavender\",\n  \"hex\": \"#FCB4D5\"\n},{\n  \"name\": \"Cotton Candy\",\n  \"hex\": \"#FFBCD9\"\n},{\n  \"name\": \"Violet Red\",\n  \"hex\": \"#F75394\"\n},{\n  \"name\": \"Carnation Pink\",\n  \"hex\": \"#FFAACC\"\n},{\n  \"name\": \"Razzmatazz\",\n  \"hex\": \"#E3256B\"\n},{\n  \"name\": \"Piggy Pink\",\n  \"hex\": \"#FDD7E4\"\n},{\n  \"name\": \"Jazzberry Jam\",\n  \"hex\": \"#CA3767\"\n},{\n  \"name\": \"Blush\",\n  \"hex\": \"#DE5D83\"\n},{\n  \"name\": \"Tickle Me Pink\",\n  \"hex\": \"#FC89AC\"\n},{\n  \"name\": \"Pink Sherbet\",\n  \"hex\": \"#F780A1\"\n},{\n  \"name\": \"Maroon\",\n  \"hex\": \"#C8385A\"\n},{\n  \"name\": \"Red\",\n  \"hex\": \"#EE204D\"\n},{\n  \"name\": \"Radical Red\",\n  \"hex\": \"#FF496C\"\n},{\n  \"name\": \"Mauvelous\",\n  \"hex\": \"#EF98AA\"\n},{\n  \"name\": \"Wild Watermelon\",\n  \"hex\": \"#FC6C85\"\n},{\n  \"name\": \"Scarlet\",\n  \"hex\": \"#FC2847\"\n},{\n  \"name\": \"Salmon\",\n  \"hex\": \"#FF9BAA\"\n},{\n  \"name\": \"Brick Red\",\n  \"hex\": \"#CB4154\"\n},{\n  \"name\": \"White\",\n  \"hex\": \"#EDEDED\"\n},{\n  \"name\": \"Timberwolf\",\n  \"hex\": \"#DBD7D2\"\n},{\n  \"name\": \"Silver\",\n  \"hex\": \"#CDC5C2\"\n},{\n  \"name\": \"Gray\",\n  \"hex\": \"#95918C\"\n},{\n  \"name\": \"Black\",\n  \"hex\": \"#232323\"\n}]\n", "module.exports = [\n  { name: 'red', hex: '#FF0000' },\n  { name: 'orange', hex: '#FFA500' },\n  { name: 'yellow', hex: '#FFFF00' },\n  { name: 'green', hex: '#008000' },\n  { name: 'blue', hex: '#0000FF' },\n  { name: 'indigo', hex: '#4B0082' },\n  { name: 'violet', hex: '#EE82EE' }\n]\n", "module.exports = [{\n  name: 'indigo',\n  hex: '#4b0082'\n}, {\n  name: 'gold',\n  hex: '#ffd700'\n}, {\n  name: 'hotpink',\n  hex: '#ff69b4'\n}, {\n  name: 'firebrick',\n  hex: '#b22222'\n}, {\n  name: 'indianred',\n  hex: '#cd5c5c'\n}, {\n  name: 'yellow',\n  hex: '#ffff00'\n}, {\n  name: 'mistyrose',\n  hex: '#ffe4e1'\n}, {\n  name: 'darkolivegreen',\n  hex: '#556b2f'\n}, {\n  name: 'olive',\n  hex: '#808000'\n}, {\n  name: 'darkseagreen',\n  hex: '#8fbc8f'\n}, {\n  name: 'pink',\n  hex: '#ffc0cb'\n}, {\n  name: 'tomato',\n  hex: '#ff6347'\n}, {\n  name: 'lightcoral',\n  hex: '#f08080'\n}, {\n  name: 'orangered',\n  hex: '#ff4500'\n}, {\n  name: 'navajowhite',\n  hex: '#ffdead'\n}, {\n  name: 'lime',\n  hex: '#00ff00'\n}, {\n  name: 'palegreen',\n  hex: '#98fb98'\n}, {\n  name: 'darkslategrey',\n  hex: '#2f4f4f'\n}, {\n  name: 'greenyellow',\n  hex: '#adff2f'\n}, {\n  name: 'burlywood',\n  hex: '#deb887'\n}, {\n  name: 'seashell',\n  hex: '#fff5ee'\n}, {\n  name: 'mediumspringgreen',\n  hex: '#00fa9a'\n}, {\n  name: 'fuchsia',\n  hex: '#ff00ff'\n}, {\n  name: 'papayawhip',\n  hex: '#ffefd5'\n}, {\n  name: 'blanchedalmond',\n  hex: '#ffebcd'\n}, {\n  name: 'chartreuse',\n  hex: '#7fff00'\n}, {\n  name: 'dimgray',\n  hex: '#696969'\n}, {\n  name: 'black',\n  hex: '#000000'\n}, {\n  name: 'peachpuff',\n  hex: '#ffdab9'\n}, {\n  name: 'springgreen',\n  hex: '#00ff7f'\n}, {\n  name: 'aquamarine',\n  hex: '#7fffd4'\n}, {\n  name: 'white',\n  hex: '#ffffff'\n}, {\n  name: 'orange',\n  hex: '#ffa500'\n}, {\n  name: 'lightsalmon',\n  hex: '#ffa07a'\n}, {\n  name: 'darkslategray',\n  hex: '#2f4f4f'\n}, {\n  name: 'brown',\n  hex: '#a52a2a'\n}, {\n  name: 'ivory',\n  hex: '#fffff0'\n}, {\n  name: 'dodgerblue',\n  hex: '#1e90ff'\n}, {\n  name: 'peru',\n  hex: '#cd853f'\n}, {\n  name: 'lawngreen',\n  hex: '#7cfc00'\n}, {\n  name: 'chocolate',\n  hex: '#d2691e'\n}, {\n  name: 'crimson',\n  hex: '#dc143c'\n}, {\n  name: 'forestgreen',\n  hex: '#228b22'\n}, {\n  name: 'darkgrey',\n  hex: '#a9a9a9'\n}, {\n  name: 'lightseagreen',\n  hex: '#20b2aa'\n}, {\n  name: 'cyan',\n  hex: '#00ffff'\n}, {\n  name: 'mintcream',\n  hex: '#f5fffa'\n}, {\n  name: 'silver',\n  hex: '#c0c0c0'\n}, {\n  name: 'antiquewhite',\n  hex: '#faebd7'\n}, {\n  name: 'mediumorchid',\n  hex: '#ba55d3'\n}, {\n  name: 'skyblue',\n  hex: '#87ceeb'\n}, {\n  name: 'gray',\n  hex: '#808080'\n}, {\n  name: 'darkturquoise',\n  hex: '#00ced1'\n}, {\n  name: 'goldenrod',\n  hex: '#daa520'\n}, {\n  name: 'darkgreen',\n  hex: '#006400'\n}, {\n  name: 'floralwhite',\n  hex: '#fffaf0'\n}, {\n  name: 'darkviolet',\n  hex: '#9400d3'\n}, {\n  name: 'darkgray',\n  hex: '#a9a9a9'\n}, {\n  name: 'moccasin',\n  hex: '#ffe4b5'\n}, {\n  name: 'saddlebrown',\n  hex: '#8b4513'\n}, {\n  name: 'grey',\n  hex: '#808080'\n}, {\n  name: 'darkslateblue',\n  hex: '#483d8b'\n}, {\n  name: 'lightskyblue',\n  hex: '#87cefa'\n}, {\n  name: 'lightpink',\n  hex: '#ffb6c1'\n}, {\n  name: 'mediumvioletred',\n  hex: '#c71585'\n}, {\n  name: 'slategrey',\n  hex: '#708090'\n}, {\n  name: 'red',\n  hex: '#ff0000'\n}, {\n  name: 'deeppink',\n  hex: '#ff1493'\n}, {\n  name: 'limegreen',\n  hex: '#32cd32'\n}, {\n  name: 'darkmagenta',\n  hex: '#8b008b'\n}, {\n  name: 'palegoldenrod',\n  hex: '#eee8aa'\n}, {\n  name: 'plum',\n  hex: '#dda0dd'\n}, {\n  name: 'turquoise',\n  hex: '#40e0d0'\n}, {\n  name: 'lightgrey',\n  hex: '#d3d3d3'\n}, {\n  name: 'lightgoldenrodyellow',\n  hex: '#fafad2'\n}, {\n  name: 'darkgoldenrod',\n  hex: '#b8860b'\n}, {\n  name: 'lavender',\n  hex: '#e6e6fa'\n}, {\n  name: 'maroon',\n  hex: '#800000'\n}, {\n  name: 'yellowgreen',\n  hex: '#9acd32'\n}, {\n  name: 'sandybrown',\n  hex: '#f4a460'\n}, {\n  name: 'thistle',\n  hex: '#d8bfd8'\n}, {\n  name: 'violet',\n  hex: '#ee82ee'\n}, {\n  name: 'navy',\n  hex: '#000080'\n}, {\n  name: 'magenta',\n  hex: '#ff00ff'\n}, {\n  name: 'dimgrey',\n  hex: '#696969'\n}, {\n  name: 'tan',\n  hex: '#d2b48c'\n}, {\n  name: 'rosybrown',\n  hex: '#bc8f8f'\n}, {\n  name: 'olivedrab',\n  hex: '#6b8e23'\n}, {\n  name: 'blue',\n  hex: '#0000ff'\n}, {\n  name: 'lightblue',\n  hex: '#add8e6'\n}, {\n  name: 'ghostwhite',\n  hex: '#f8f8ff'\n}, {\n  name: 'honeydew',\n  hex: '#f0fff0'\n}, {\n  name: 'cornflowerblue',\n  hex: '#6495ed'\n}, {\n  name: 'slateblue',\n  hex: '#6a5acd'\n}, {\n  name: 'linen',\n  hex: '#faf0e6'\n}, {\n  name: 'darkblue',\n  hex: '#00008b'\n}, {\n  name: 'powderblue',\n  hex: '#b0e0e6'\n}, {\n  name: 'seagreen',\n  hex: '#2e8b57'\n}, {\n  name: 'darkkhaki',\n  hex: '#bdb76b'\n}, {\n  name: 'snow',\n  hex: '#fffafa'\n}, {\n  name: 'sienna',\n  hex: '#a0522d'\n}, {\n  name: 'mediumblue',\n  hex: '#0000cd'\n}, {\n  name: 'royalblue',\n  hex: '#4169e1'\n}, {\n  name: 'lightcyan',\n  hex: '#e0ffff'\n}, {\n  name: 'green',\n  hex: '#008000'\n}, {\n  name: 'mediumpurple',\n  hex: '#9370db'\n}, {\n  name: 'midnightblue',\n  hex: '#191970'\n}, {\n  name: 'cornsilk',\n  hex: '#fff8dc'\n}, {\n  name: 'paleturquoise',\n  hex: '#afeeee'\n}, {\n  name: 'bisque',\n  hex: '#ffe4c4'\n}, {\n  name: 'slategray',\n  hex: '#708090'\n}, {\n  name: 'darkcyan',\n  hex: '#008b8b'\n}, {\n  name: 'khaki',\n  hex: '#f0e68c'\n}, {\n  name: 'wheat',\n  hex: '#f5deb3'\n}, {\n  name: 'teal',\n  hex: '#008080'\n}, {\n  name: 'darkorchid',\n  hex: '#9932cc'\n}, {\n  name: 'deepskyblue',\n  hex: '#00bfff'\n}, {\n  name: 'salmon',\n  hex: '#fa8072'\n}, {\n  name: 'darkred',\n  hex: '#8b0000'\n}, {\n  name: 'steelblue',\n  hex: '#4682b4'\n}, {\n  name: 'palevioletred',\n  hex: '#db7093'\n}, {\n  name: 'lightslategray',\n  hex: '#778899'\n}, {\n  name: 'aliceblue',\n  hex: '#f0f8ff'\n}, {\n  name: 'lightslategrey',\n  hex: '#778899'\n}, {\n  name: 'lightgreen',\n  hex: '#90ee90'\n}, {\n  name: 'orchid',\n  hex: '#da70d6'\n}, {\n  name: 'gainsboro',\n  hex: '#dcdcdc'\n}, {\n  name: 'mediumseagreen',\n  hex: '#3cb371'\n}, {\n  name: 'lightgray',\n  hex: '#d3d3d3'\n}, {\n  name: 'mediumturquoise',\n  hex: '#48d1cc'\n}, {\n  name: 'lemonchiffon',\n  hex: '#fffacd'\n}, {\n  name: 'cadetblue',\n  hex: '#5f9ea0'\n}, {\n  name: 'lightyellow',\n  hex: '#ffffe0'\n}, {\n  name: 'lavenderblush',\n  hex: '#fff0f5'\n}, {\n  name: 'coral',\n  hex: '#ff7f50'\n}, {\n  name: 'purple',\n  hex: '#800080'\n}, {\n  name: 'aqua',\n  hex: '#00ffff'\n}, {\n  name: 'whitesmoke',\n  hex: '#f5f5f5'\n}, {\n  name: 'mediumslateblue',\n  hex: '#7b68ee'\n}, {\n  name: 'darkorange',\n  hex: '#ff8c00'\n}, {\n  name: 'mediumaquamarine',\n  hex: '#66cdaa'\n}, {\n  name: 'darksalmon',\n  hex: '#e9967a'\n}, {\n  name: 'beige',\n  hex: '#f5f5dc'\n}, {\n  name: 'blueviolet',\n  hex: '#8a2be2'\n}, {\n  name: 'azure',\n  hex: '#f0ffff'\n}, {\n  name: 'lightsteelblue',\n  hex: '#b0c4de'\n}, {\n  name: 'oldlace',\n  hex: '#fdf5e6'\n}]\n", "\"use strict\";\n\nvar chroma = require('chroma-js')\nvar WeakMap = require(\"es6-weak-map\")\n\n// These `require` statements are all explicit\n// to keep the browserify build from breaking\nvar lists = {\n  basic: require('./lib/colors/basic'),\n  html: require('./lib/colors/html'),\n  ntc: require('./lib/colors/ntc'),\n  pantone: require('./lib/colors/pantone'),\n  roygbiv: require('./lib/colors/roygbiv'),\n  x11: require('./lib/colors/x11')\n}\n\nvar cache = new WeakMap()\nvar namer = module.exports = function(color, options) {\n  options = options || {}\n\n  var cacheKey = {color, options}\n  if (cache.has(cacheKey)) {\n    return cache.get(cacheKey)\n  }\n\n  var deltaE = String(options.distance).toLowerCase() === 'deltae';\n  color = chroma(color)\n  var results = {}\n  for (var key in lists) {\n    if (options.pick && options.pick.indexOf(key) === -1) {\n      continue\n    }\n    if (options.omit && options.omit.indexOf(key) !== -1) {\n      continue\n    }\n    results[key] = lists[key]\n      .map (function(name) {\n        name.distance = deltaE ? chroma.deltaE(color, chroma(name.hex)) : chroma.distance(color, chroma(name.hex))\n        return name\n      })\n      .sort (function(a, b) {\n        return a.distance - b.distance\n      })\n  }\n  cache.set(cacheKey, results)\n  return results\n}\n\nnamer.chroma = chroma\nnamer.lists = lists\n", "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n", "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n", "var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n", "var listCacheClear = require('./_listCacheClear'),\n    listCacheDelete = require('./_listCacheDelete'),\n    listCacheGet = require('./_listCacheGet'),\n    listCacheHas = require('./_listCacheHas'),\n    listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n", "var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nmodule.exports = stackClear;\n", "/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nmodule.exports = stackDelete;\n", "/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n", "/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n", "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "var baseGetTag = require('./_baseGetTag'),\n    isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n", "var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n", "var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n", "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n", "var isFunction = require('./isFunction'),\n    isMasked = require('./_isMasked'),\n    isObject = require('./isObject'),\n    toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n", "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n", "var baseIsNative = require('./_baseIsNative'),\n    getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n", "var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n", "var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n", "var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n", "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n", "var hashClear = require('./_hashClear'),\n    hashDelete = require('./_hashDelete'),\n    hashGet = require('./_hashGet'),\n    hashHas = require('./_hashHas'),\n    hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n", "var Hash = require('./_Hash'),\n    ListCache = require('./_ListCache'),\n    Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nmodule.exports = mapCacheClear;\n", "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nmodule.exports = isKeyable;\n", "var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n", "var mapCacheClear = require('./_mapCacheClear'),\n    mapCacheDelete = require('./_mapCacheDelete'),\n    mapCacheGet = require('./_mapCacheGet'),\n    mapCacheHas = require('./_mapCacheHas'),\n    mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n", "var ListCache = require('./_ListCache'),\n    Map = require('./_Map'),\n    MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nmodule.exports = stackSet;\n", "var ListCache = require('./_ListCache'),\n    stackClear = require('./_stackClear'),\n    stackDelete = require('./_stackDelete'),\n    stackGet = require('./_stackGet'),\n    stackHas = require('./_stackHas'),\n    stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n", "/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nmodule.exports = setCacheAdd;\n", "/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n", "var MapCache = require('./_MapCache'),\n    setCacheAdd = require('./_setCacheAdd'),\n    setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n", "/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arraySome;\n", "/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n", "var SetCache = require('./_SetCache'),\n    arraySome = require('./_arraySome'),\n    cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalArrays;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n", "/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nmodule.exports = mapToArray;\n", "/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nmodule.exports = setToArray;\n", "var Symbol = require('./_Symbol'),\n    Uint8Array = require('./_Uint8Array'),\n    eq = require('./eq'),\n    equalArrays = require('./_equalArrays'),\n    mapToArray = require('./_mapToArray'),\n    setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nmodule.exports = equalByTag;\n", "/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nmodule.exports = arrayPush;\n", "/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n", "var arrayPush = require('./_arrayPush'),\n    isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n", "/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayFilter;\n", "/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nmodule.exports = stubArray;\n", "var arrayFilter = require('./_arrayFilter'),\n    stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nmodule.exports = getSymbols;\n", "/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n", "var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n", "var baseIsArguments = require('./_baseIsArguments'),\n    isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n", "/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n", "var root = require('./_root'),\n    stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n", "var baseGetTag = require('./_baseGetTag'),\n    isLength = require('./isLength'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n", "/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n", "var baseIsTypedArray = require('./_baseIsTypedArray'),\n    baseUnary = require('./_baseUnary'),\n    nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n", "var baseTimes = require('./_baseTimes'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isIndex = require('./_isIndex'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n", "/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n", "var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n", "var isPrototype = require('./_isPrototype'),\n    nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n", "var isFunction = require('./isFunction'),\n    isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n", "var arrayLikeKeys = require('./_arrayLikeKeys'),\n    baseKeys = require('./_baseKeys'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n", "var baseGetAllKeys = require('./_baseGetAllKeys'),\n    getSymbols = require('./_getSymbols'),\n    keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n", "var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalObjects;\n", "var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n", "var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n", "var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n", "var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n", "var DataView = require('./_DataView'),\n    Map = require('./_Map'),\n    Promise = require('./_Promise'),\n    Set = require('./_Set'),\n    WeakMap = require('./_WeakMap'),\n    baseGetTag = require('./_baseGetTag'),\n    toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nmodule.exports = getTag;\n", "var Stack = require('./_Stack'),\n    equalArrays = require('./_equalArrays'),\n    equalByTag = require('./_equalByTag'),\n    equalObjects = require('./_equalObjects'),\n    getTag = require('./_getTag'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n", "var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n    isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n", "var Stack = require('./_Stack'),\n    baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer && data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer && data[2]) {\n      if (objValue === undefined && !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nmodule.exports = baseIsMatch;\n", "var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n", "var isStrictComparable = require('./_isStrictComparable'),\n    keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nmodule.exports = getMatchData;\n", "/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nmodule.exports = matchesStrictComparable;\n", "var baseIsMatch = require('./_baseIsMatch'),\n    getMatchData = require('./_getMatchData'),\n    matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object) {\n    return object === source || baseIsMatch(object, source, matchData);\n  };\n}\n\nmodule.exports = baseMatches;\n", "var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n", "var isArray = require('./isArray'),\n    isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n", "var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n", "var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nmodule.exports = memoizeCapped;\n", "var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nmodule.exports = stringToPath;\n", "/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n", "var Symbol = require('./_Symbol'),\n    arrayMap = require('./_arrayMap'),\n    isArray = require('./isArray'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n", "var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n", "var isArray = require('./isArray'),\n    isKey = require('./_isKey'),\n    stringToPath = require('./_stringToPath'),\n    toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n", "var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n", "var castPath = require('./_castPath'),\n    toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n", "var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n", "/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n  return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n", "var castPath = require('./_castPath'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isIndex = require('./_isIndex'),\n    isLength = require('./isLength'),\n    toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null && hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length && isLength(length) && isIndex(key, length) &&\n    (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n", "var baseHasIn = require('./_baseHasIn'),\n    hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n", "var baseIsEqual = require('./_baseIsEqual'),\n    get = require('./get'),\n    hasIn = require('./hasIn'),\n    isKey = require('./_isKey'),\n    isStrictComparable = require('./_isStrictComparable'),\n    matchesStrictComparable = require('./_matchesStrictComparable'),\n    toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object) {\n    var objValue = get(object, path);\n    return (objValue === undefined && objValue === srcValue)\n      ? hasIn(object, path)\n      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n  };\n}\n\nmodule.exports = baseMatchesProperty;\n", "/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n", "/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = baseProperty;\n", "var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nmodule.exports = basePropertyDeep;\n", "var baseProperty = require('./_baseProperty'),\n    basePropertyDeep = require('./_basePropertyDeep'),\n    isKey = require('./_isKey'),\n    toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n", "var baseMatches = require('./_baseMatches'),\n    baseMatchesProperty = require('./_baseMatchesProperty'),\n    identity = require('./identity'),\n    isArray = require('./isArray'),\n    property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n  if (typeof value == 'function') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == 'object') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nmodule.exports = baseIteratee;\n", "/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n  var length = array.length,\n      index = fromIndex + (fromRight ? 1 : -1);\n\n  while ((fromRight ? index-- : ++index < length)) {\n    if (predicate(array[index], index, array)) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = baseFindIndex;\n", "/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n  return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n", "/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n      length = array.length;\n\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = strictIndexOf;\n", "var baseFindIndex = require('./_baseFindIndex'),\n    baseIsNaN = require('./_baseIsNaN'),\n    strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value\n    ? strictIndexOf(array, value, fromIndex)\n    : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n", "var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n  var length = array == null ? 0 : array.length;\n  return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n", "/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (comparator(value, array[index])) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arrayIncludesWith;\n", "/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n  // No operation performed.\n}\n\nmodule.exports = noop;\n", "var Set = require('./_Set'),\n    noop = require('./noop'),\n    setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n  return new Set(values);\n};\n\nmodule.exports = createSet;\n", "var SetCache = require('./_SetCache'),\n    arrayIncludes = require('./_arrayIncludes'),\n    arrayIncludesWith = require('./_arrayIncludesWith'),\n    cacheHas = require('./_cacheHas'),\n    createSet = require('./_createSet'),\n    setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n  var index = -1,\n      includes = arrayIncludes,\n      length = array.length,\n      isCommon = true,\n      result = [],\n      seen = result;\n\n  if (comparator) {\n    isCommon = false;\n    includes = arrayIncludesWith;\n  }\n  else if (length >= LARGE_ARRAY_SIZE) {\n    var set = iteratee ? null : createSet(array);\n    if (set) {\n      return setToArray(set);\n    }\n    isCommon = false;\n    includes = cacheHas;\n    seen = new SetCache;\n  }\n  else {\n    seen = iteratee ? [] : result;\n  }\n  outer:\n  while (++index < length) {\n    var value = array[index],\n        computed = iteratee ? iteratee(value) : value;\n\n    value = (comparator || value !== 0) ? value : 0;\n    if (isCommon && computed === computed) {\n      var seenIndex = seen.length;\n      while (seenIndex--) {\n        if (seen[seenIndex] === computed) {\n          continue outer;\n        }\n      }\n      if (iteratee) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n    else if (!includes(seen, computed, comparator)) {\n      if (seen !== result) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseUniq;\n", "var baseIteratee = require('./_baseIteratee'),\n    baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n  return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n", "import { Clipboard, closeMainWindow, launchCommand, LaunchType, getPreferenceValues, showHUD } from \"@raycast/api\";\nimport { showFailureToast } from \"@raycast/utils\";\nimport { callbackLaunchCommand } from \"raycast-cross-extension\";\nimport colorNamer from \"color-namer\";\nimport { pickColor } from \"swift:../swift/color-picker\";\nimport { addToHistory } from \"./history\";\nimport { Color, PickColorCommandLaunchProps } from \"./types\";\nimport { getFormattedColor, getColorByProximity } from \"./utils\";\n\nexport default async function command(props: PickColorCommandLaunchProps) {\n  const { showColorName } = getPreferenceValues<Preferences.PickColor>();\n  await closeMainWindow();\n\n  try {\n    const pickedColor = (await pickColor()) as Color | undefined;\n    if (!pickedColor) {\n      return;\n    }\n\n    addToHistory(pickedColor);\n\n    const hex = getFormattedColor(pickedColor, \"hex\");\n    const formattedColor = getFormattedColor(pickedColor);\n    if (!formattedColor) {\n      throw new Error(\"Failed to format color\");\n    }\n\n    if (props.launchContext?.callbackLaunchOptions) {\n      if (props.launchContext?.copyToClipboard) {\n        await Clipboard.copy(formattedColor);\n      }\n\n      try {\n        await callbackLaunchCommand(props.launchContext.callbackLaunchOptions, { hex, formattedColor });\n      } catch (e) {\n        await showFailureToast(e);\n      }\n    } else {\n      await Clipboard.copy(formattedColor);\n      if (showColorName) {\n        const colors = colorNamer(formattedColor);\n        const colorsByDistance = getColorByProximity(colors);\n        const firstColorName = colorsByDistance[0]?.name;\n        await showHUD(`Copied color ${formattedColor} (${firstColorName}) to clipboard`);\n      } else {\n        await showHUD(`Copied color ${formattedColor} to clipboard`);\n      }\n    }\n\n    try {\n      await launchCommand({ name: \"menu-bar\", type: LaunchType.Background });\n    } catch (e) {\n      if (!(e instanceof Error && e.message.includes(\"must be activated\"))) {\n        await showFailureToast(e);\n      }\n    }\n\n    if (props.launchContext?.source === \"organize-colors\") {\n      try {\n        await launchCommand({ name: \"organize-colors\", type: LaunchType.UserInitiated });\n      } catch (e) {\n        await showFailureToast(e);\n      }\n    }\n  } catch (e) {\n    console.error(e);\n\n    await showHUD(\"\u274C Failed picking color\");\n  }\n}\n", "\nimport { environment } from \"@raycast/api\";\nimport { join } from \"path\";\nimport { chmod } from \"fs/promises\";\nimport { spawn } from \"child_process\";\n\nasync function runSwiftFunction(command, ...args) {\n  const swiftPath = join(environment.assetsPath, \"compiled_raycast_swift/color-picker\");\n  await chmod(swiftPath, \"755\");\n\n  return new Promise((resolve, reject) => {\n    const commandArgs = [command];\n    for (const arg of args) {\n      try {\n        commandArgs.push(JSON.stringify(arg, (k, v) => v === undefined ? null : v));\n      } catch (err) {\n        reject(new SwiftError(\"Failed to serialize input to JSON: \" + err.message));\n        return;\n      }\n    }\n    const child = spawn(swiftPath, commandArgs);\n    const stdout = [];\n    const stderr = [];\n\n    child.stdout?.on(\"data\", (data) => {\n      stdout.push(data.toString());\n    });\n    child.stderr?.on(\"data\", (data) => {\n      stderr.push(data.toString());\n    });\n\n    child.on(\"exit\", (code) => {\n      if (code === 0) {\n        try {\n          const result = stdout.join(\"\").trim();\n          if (result.length != 0) {\n            resolve(JSON.parse(result));\n          } else {\n            resolve(null);\n          }\n        } catch (err) {\n          const error = new SwiftError(\"Failed to deserialize result from JSON: \" + err.message);\n          error.stdout = stdout.join(\"\").trim();\n          error.stderr = stderr.join(\"\").trim();\n          reject(error);\n        }\n      } else {\n        const error = new SwiftError(stderr.join(\"\").trim() || stdout.join(\"\").trim() || \"Could not get any data\");\n        error.stdout = stdout.join(\"\").trim();\n        error.stderr = stderr.join(\"\").trim();\n        reject(error);\n      }\n    });\n\n    child.on(\"error\", (error) => {\n      reject(error);\n    });\n  });\n}\n\nexport async function pickColor() {\n  return await runSwiftFunction(\"pickColor\")\n}\n\nexport class SwiftError extends Error {\n  constructor(message) {\n    super(message);\n    this.name = \"SwiftError\";\n  }\n}\n", "import { Cache } from \"@raycast/api\";\nimport { useCachedState } from \"@raycast/utils\";\nimport { HistoryColor, HistoryItem } from \"./types\";\nimport { getFormattedColor } from \"./utils\";\n\nconst MAX_HISTORY_LENGTH = 200;\n\nexport function useHistory() {\n  const [history, setHistory] = useCachedState<HistoryItem[]>(\"history\", []);\n  return {\n    history,\n    remove: (color: HistoryColor) =>\n      setHistory((previousHistory) => {\n        return previousHistory.filter((item) => getFormattedColor(item.color) !== getFormattedColor(color));\n      }),\n    edit: (historyItem: HistoryItem) =>\n      setHistory((previousHistory) => {\n        return previousHistory.map((item) =>\n          getFormattedColor(item.color) === getFormattedColor(historyItem.color) ? historyItem : item,\n        );\n      }),\n    clear: () => setHistory([]),\n  };\n}\n\nexport function addToHistory(color: HistoryColor) {\n  const cache = new Cache();\n\n  const serializedHistory = cache.get(\"history\");\n  const previousHistory = serializedHistory ? (JSON.parse(serializedHistory) as HistoryItem[]) : [];\n\n  const historyItem: HistoryItem = { date: new Date().toISOString(), color };\n  const newHistory = [\n    historyItem,\n    ...previousHistory.filter((item) => getFormattedColor(item.color) !== getFormattedColor(color)),\n  ].slice(0, MAX_HISTORY_LENGTH);\n\n  cache.set(\"history\", JSON.stringify(newHistory));\n}\n", "import { getPreferenceValues, Icon, Image, Keyboard, List } from \"@raycast/api\";\nimport ColorJS from \"colorjs.io\";\nimport { Colors, Palette } from \"color-namer\";\nimport uniqBy from \"lodash/uniqBy\";\nimport { HistoryColor, HistoryItem } from \"./types\";\nimport { ColorFormatType } from \"./types\";\n\nconst preferences = getPreferenceValues<ExtensionPreferences>();\n\nexport function getFormattedColor(_color: HistoryColor, format?: ColorFormatType) {\n  let color;\n  if (typeof _color === \"string\") {\n    color = new ColorJS(_color);\n  } else if (\"colorSpace\" in _color) {\n    color = new ColorJS(_color.colorSpace, [_color.red, _color.green, _color.blue], _color.alpha);\n  } else {\n    color = new ColorJS(\"srgb\", [_color.red / 255, _color.green / 255, _color.blue / 255], _color.alpha);\n  }\n\n  switch (format || preferences.colorFormat) {\n    default:\n    case \"hex\": {\n      return color.to(\"srgb\").toString({ format: \"hex\" }).toUpperCase();\n    }\n    case \"hex-lower-case\": {\n      return color.to(\"srgb\").toString({ format: \"hex\" }).toLowerCase();\n    }\n    case \"hex-no-prefix\": {\n      return color.to(\"srgb\").toString({ format: \"hex\" }).replace(\"#\", \"\");\n    }\n    case \"rgb\": {\n      return color.to(\"srgb\").toString({ format: \"rgb_number\" });\n    }\n    case \"rgb-percentage\": {\n      return color.to(\"srgb\").toString({ format: \"rgb\" });\n    }\n    case \"rgba\": {\n      return color.to(\"srgb\").toString({ format: \"rgba_number\" });\n    }\n    case \"rgba-percentage\": {\n      return color.to(\"srgb\").toString({ format: \"rgba\" });\n    }\n    case \"hsla\": {\n      return color.to(\"hsl\").toString({ format: \"hsla\" });\n    }\n    case \"hsva\": {\n      return color.to(\"hsv\").toString({ format: \"color\" });\n    }\n    case \"oklch\": {\n      const oklchColor = color.to(\"oklch\");\n      const [l, c, h] = oklchColor.coords;\n      const lPercentage = (l * 100).toFixed(2);\n      return `oklch(${lPercentage}% ${c} ${h})`;\n    }\n    case \"lch\": {\n      const lchColor = color.to(\"lch\");\n      const [l, c, h] = lchColor.coords;\n      return `lch(${l.toFixed(2)}% ${c} ${h})`;\n    }\n    case \"p3\": {\n      return color.to(\"p3\").toString({ format: \"p3\" });\n    }\n  }\n}\n\nconst unsupportedPreviewFormats = [\"p3\", \"rgb\", \"rgb-percentage\"];\nexport function getPreviewColor(color: HistoryColor) {\n  const formattedColor = getFormattedColor(\n    color,\n    unsupportedPreviewFormats.includes(preferences.colorFormat) ? \"oklch\" : undefined,\n  );\n  return formattedColor;\n}\n\nexport function getShortcut(index: number) {\n  const key = index + 1;\n\n  let shortcut: Keyboard.Shortcut | undefined;\n  if (key >= 1 && key <= 9) {\n    shortcut = { modifiers: [\"cmd\"], key: String(key) as Keyboard.KeyEquivalent };\n  }\n\n  return shortcut;\n}\n\nexport function getIcon(color: HistoryColor) {\n  const previewColor = typeof color === \"string\" ? color : getFormattedColor(color, \"hex\");\n  if (!previewColor) {\n    return undefined;\n  }\n\n  const icon: Image.ImageLike = {\n    source: Icon.CircleFilled,\n    tintColor: { light: previewColor, dark: previewColor, adjustContrast: false },\n  };\n\n  return icon;\n}\n\nexport function getAccessories(historyItem: HistoryItem) {\n  const accessories = new Array<List.Item.Accessory>();\n  accessories.push({ date: new Date(historyItem.date), tooltip: new Date(historyItem.date).toLocaleString() });\n  return accessories;\n}\n\nexport function normalizeColorHex(colorInput: string) {\n  let hex = colorInput.replace(/^#/, \"\");\n  const validHexPattern = /^([a-f\\d]{3,4}|[a-f\\d]{6}|[a-f]\\d{8})$/i;\n  if (validHexPattern.test(hex)) {\n    switch (hex.length) {\n      case 3:\n      case 4:\n        hex = hex\n          .slice(0, 3)\n          .split(\"\")\n          .map((x) => x.repeat(2))\n          .join(\"\");\n        break;\n      case 8:\n        hex = hex.slice(0, 6);\n        break;\n    }\n  }\n  return \"#\" + hex.toUpperCase();\n}\n\nexport function getColorByPlatform(normalizedSearchString: string, colors?: Colors<Palette>) {\n  return Object.entries(colors ?? {}).sort(([, a], [, b]) => {\n    if (normalizeColorHex(a[0].hex) === normalizeColorHex(b[0].hex)) return 0;\n    if (normalizedSearchString === normalizeColorHex(a[0].hex)) return -1;\n    return 1;\n  });\n}\n\nexport function getColorByProximity(colors?: Colors<Palette>) {\n  return uniqBy(Object.values(colors ?? {}).flat(), (x) => x.name.toLowerCase()).sort(\n    (a, b) => a.distance - b.distance,\n  );\n}\n", "// A is m x n. B is n x p. product is m x p.\nexport default function multiplyMatrices (A, B) {\n\tlet m = A.length;\n\n\tif (!Array.isArray(A[0])) {\n\t\t// A is vector, convert to [[a, b, c, ...]]\n\t\tA = [A];\n\t}\n\n\tif (!Array.isArray(B[0])) {\n\t\t// B is vector, convert to [[a], [b], [c], ...]]\n\t\tB = B.map(x => [x]);\n\t}\n\n\tlet p = B[0].length;\n\tlet B_cols = B[0].map((_, i) => B.map(x => x[i])); // transpose B\n\tlet product = A.map(row => B_cols.map(col => {\n\t\tlet ret = 0;\n\n\t\tif (!Array.isArray(row)) {\n\t\t\tfor (let c of col) {\n\t\t\t\tret += row * c;\n\t\t\t}\n\n\t\t\treturn ret;\n\t\t}\n\n\t\tfor (let i = 0; i < row.length; i++) {\n\t\t\tret += row[i] * (col[i] || 0);\n\t\t}\n\n\t\treturn ret;\n\t}));\n\n\tif (m === 1) {\n\t\tproduct = product[0]; // Avoid [[a, b, c, ...]]\n\t}\n\n\tif (p === 1) {\n\t\treturn product.map(x => x[0]); // Avoid [[a], [b], [c], ...]]\n\t}\n\n\treturn product;\n}\n", "/**\n * Various utility functions\n */\n\nexport {default as multiplyMatrices} from \"./multiply-matrices.js\";\n\n/**\n * Check if a value is a string (including a String object)\n * @param {*} str - Value to check\n * @returns {boolean}\n */\nexport function isString (str) {\n\treturn type(str) === \"string\";\n}\n\n/**\n * Determine the internal JavaScript [[Class]] of an object.\n * @param {*} o - Value to check\n * @returns {string}\n */\nexport function type (o) {\n\tlet str = Object.prototype.toString.call(o);\n\n\treturn (str.match(/^\\[object\\s+(.*?)\\]$/)[1] || \"\").toLowerCase();\n}\n\nexport function serializeNumber (n, {precision, unit }) {\n\tif (isNone(n)) {\n\t\treturn \"none\";\n\t}\n\n\treturn toPrecision(n, precision) + (unit ?? \"\");\n}\n\n/**\n * Check if a value corresponds to a none argument\n * @param {*} n - Value to check\n * @returns {boolean}\n */\nexport function isNone (n) {\n\treturn Number.isNaN(n) || (n instanceof Number && n?.none);\n}\n\n/**\n * Replace none values with 0\n */\nexport function skipNone (n) {\n\treturn isNone(n) ? 0 : n;\n}\n\n/**\n * Round a number to a certain number of significant digits\n * @param {number} n - The number to round\n * @param {number} precision - Number of significant digits\n */\nexport function toPrecision (n, precision) {\n\tif (n === 0) {\n\t\treturn 0;\n\t}\n\tlet integer = ~~n;\n\tlet digits = 0;\n\tif (integer && precision) {\n\t\tdigits = ~~Math.log10(Math.abs(integer)) + 1;\n\t}\n\tconst multiplier = 10.0 ** (precision - digits);\n\treturn Math.floor(n * multiplier + 0.5) / multiplier;\n}\n\nconst angleFactor = {\n\tdeg: 1,\n\tgrad: 0.9,\n\trad: 180 / Math.PI,\n\tturn: 360,\n};\n\n/**\n* Parse a CSS function, regardless of its name and arguments\n* @param String str String to parse\n* @return {{name, args, rawArgs}}\n*/\nexport function parseFunction (str) {\n\tif (!str) {\n\t\treturn;\n\t}\n\n\tstr = str.trim();\n\n\tconst isFunctionRegex = /^([a-z]+)\\((.+?)\\)$/i;\n\tconst isNumberRegex = /^-?[\\d.]+$/;\n\tconst unitValueRegex = /%|deg|g?rad|turn$/;\n\tconst singleArgument = /\\/?\\s*(none|[-\\w.]+(?:%|deg|g?rad|turn)?)/g;\n\tlet parts = str.match(isFunctionRegex);\n\n\tif (parts) {\n\t\t// It is a function, parse args\n\t\tlet args = [];\n\t\tparts[2].replace(singleArgument, ($0, rawArg) => {\n\t\t\tlet match = rawArg.match(unitValueRegex);\n\t\t\tlet arg = rawArg;\n\n\t\t\tif (match) {\n\t\t\t\tlet unit = match[0];\n\t\t\t\t// Drop unit from value\n\t\t\t\tlet unitlessArg = arg.slice(0, -unit.length);\n\n\t\t\t\tif (unit === \"%\") {\n\t\t\t\t\t// Convert percentages to 0-1 numbers\n\t\t\t\t\targ = new Number(unitlessArg / 100);\n\t\t\t\t\targ.type = \"<percentage>\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Multiply angle by appropriate factor for its unit\n\t\t\t\t\targ = new Number(unitlessArg * angleFactor[unit]);\n\t\t\t\t\targ.type = \"<angle>\";\n\t\t\t\t\targ.unit = unit;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (isNumberRegex.test(arg)) {\n\t\t\t\t// Convert numerical args to numbers\n\t\t\t\targ = new Number(arg);\n\t\t\t\targ.type = \"<number>\";\n\t\t\t}\n\t\t\telse if (arg === \"none\") {\n\t\t\t\targ = new Number(NaN);\n\t\t\t\targ.none = true;\n\t\t\t}\n\n\t\t\tif ($0.startsWith(\"/\")) {\n\t\t\t\t// It's alpha\n\t\t\t\targ = arg instanceof Number ? arg : new Number(arg);\n\t\t\t\targ.alpha = true;\n\t\t\t}\n\n\t\t\tif (typeof arg === \"object\" && arg instanceof Number) {\n\t\t\t\targ.raw = rawArg;\n\t\t\t}\n\n\t\t\targs.push(arg);\n\t\t});\n\n\t\treturn {\n\t\t\tname: parts[1].toLowerCase(),\n\t\t\trawName: parts[1],\n\t\t\trawArgs: parts[2],\n\t\t\t// An argument could be (as of css-color-4):\n\t\t\t// a number, percentage, degrees (hue), ident (in color())\n\t\t\targs,\n\t\t};\n\t}\n}\n\nexport function last (arr) {\n\treturn arr[arr.length - 1];\n}\n\nexport function interpolate (start, end, p) {\n\tif (isNaN(start)) {\n\t\treturn end;\n\t}\n\n\tif (isNaN(end)) {\n\t\treturn start;\n\t}\n\n\treturn start + (end - start) * p;\n}\n\nexport function interpolateInv (start, end, value) {\n\treturn (value - start) / (end - start);\n}\n\nexport function mapRange (from, to, value) {\n\treturn interpolate(to[0], to[1], interpolateInv(from[0], from[1], value));\n}\n\nexport function parseCoordGrammar (coordGrammars) {\n\treturn coordGrammars.map(coordGrammar => {\n\t\treturn coordGrammar.split(\"|\").map(type => {\n\t\t\ttype = type.trim();\n\t\t\tlet range = type.match(/^(<[a-z]+>)\\[(-?[.\\d]+),\\s*(-?[.\\d]+)\\]?$/);\n\n\t\t\tif (range) {\n\t\t\t\tlet ret = new String(range[1]);\n\t\t\t\tret.range = [+range[2], +range[3]];\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn type;\n\t\t});\n\t});\n}\n\n/**\n * Clamp value between the minimum and maximum\n * @param {number} min minimum value to return\n * @param {number} val the value to return if it is between min and max\n * @param {number} max maximum value to return\n * @returns number\n */\nexport function clamp (min, val, max) {\n\treturn Math.max(Math.min(max, val), min);\n}\n\n/**\n * Copy sign of one value to another.\n * @param {number} - to number to copy sign to\n * @param {number} - from number to copy sign from\n * @returns number\n */\nexport function copySign (to, from) {\n\treturn Math.sign(to) === Math.sign(from) ? to : -to;\n}\n\n/**\n * Perform pow on a signed number and copy sign to result\n * @param {number} - base the base number\n * @param {number} - exp the exponent\n * @returns number\n */\nexport function spow (base, exp) {\n\treturn copySign(Math.abs(base) ** exp, base);\n}\n\n/**\n * Perform a divide, but return zero if the numerator is zero\n * @param {number} n - the numerator\n * @param {number} d - the denominator\n * @returns number\n */\nexport function zdiv (n, d) {\n\treturn (d === 0) ? 0 : n / d;\n}\n\n/**\n * Perform a bisect on a sorted list and locate the insertion point for\n * a value in arr to maintain sorted order.\n * @param {number[]} arr - array of sorted numbers\n * @param {number} value - value to find insertion point for\n * @param {number} lo - used to specify a the low end of a subset of the list\n * @param {number} hi - used to specify a the high end of a subset of the list\n * @returns number\n */\nexport function bisectLeft (arr, value, lo = 0, hi = arr.length) {\n\twhile (lo < hi) {\n\t\tconst mid = (lo + hi) >> 1;\n\t\tif (arr[mid] < value) {\n\t\t\tlo = mid + 1;\n\t\t}\n\t\telse {\n\t\t\thi = mid;\n\t\t}\n\t}\n\treturn lo;\n}\n", "/**\n * A class for adding deep extensibility to any piece of JS code\n */\nexport class Hooks {\n\tadd (name, callback, first) {\n\t\tif (typeof arguments[0] != \"string\") {\n\t\t\t// Multiple hooks\n\t\t\tfor (var name in arguments[0]) {\n\t\t\t\tthis.add(name, arguments[0][name], arguments[1]);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t(Array.isArray(name) ? name : [name]).forEach(function (name) {\n\t\t\tthis[name] = this[name] || [];\n\n\t\t\tif (callback) {\n\t\t\t\tthis[name][first ? \"unshift\" : \"push\"](callback);\n\t\t\t}\n\t\t}, this);\n\t}\n\n\trun (name, env) {\n\t\tthis[name] = this[name] || [];\n\t\tthis[name].forEach(function (callback) {\n\t\t\tcallback.call(env && env.context ? env.context : env, env);\n\t\t});\n\t}\n}\n\n/**\n * The instance of {@link Hooks} used throughout Color.js\n */\nconst hooks = new Hooks();\n\nexport default hooks;\n", "// Global defaults one may want to configure\nexport default {\n\tgamut_mapping: \"css\",\n\tprecision: 5,\n\tdeltaE: \"76\", // Default deltaE method\n\tverbose: globalThis?.process?.env?.NODE_ENV?.toLowerCase() !== \"test\",\n\twarn: function warn (msg) {\n\t\tif (this.verbose) {\n\t\t\tglobalThis?.console?.warn?.(msg);\n\t\t}\n\t},\n};\n", "import hooks from \"./hooks.js\";\nimport {multiplyMatrices} from \"./util.js\";\n\nexport const WHITES = {\n\t// for compatibility, the four-digit chromaticity-derived ones everyone else uses\n\tD50: [0.3457 / 0.3585, 1.00000, (1.0 - 0.3457 - 0.3585) / 0.3585],\n\tD65: [0.3127 / 0.3290, 1.00000, (1.0 - 0.3127 - 0.3290) / 0.3290],\n};\n\nexport function getWhite (name) {\n\tif (Array.isArray(name)) {\n\t\treturn name;\n\t}\n\n\treturn WHITES[name];\n}\n\n// Adapt XYZ from white point W1 to W2\nexport default function adapt (W1, W2, XYZ, options = {}) {\n\tW1 = getWhite(W1);\n\tW2 = getWhite(W2);\n\n\tif (!W1 || !W2) {\n\t\tthrow new TypeError(`Missing white point to convert ${!W1 ? \"from\" : \"\"}${!W1 && !W2 ? \"/\" : \"\"}${!W2 ? \"to\" : \"\"}`);\n\t}\n\n\tif (W1 === W2) {\n\t\t// Same whitepoints, no conversion needed\n\t\treturn XYZ;\n\t}\n\n\tlet env = {W1, W2, XYZ, options};\n\n\thooks.run(\"chromatic-adaptation-start\", env);\n\n\tif (!env.M) {\n\t\tif (env.W1 === WHITES.D65 && env.W2 === WHITES.D50) {\n\t\t\tenv.M = [\n\t\t\t\t[ 1.0479297925449969, 0.022946870601609652, -0.05019226628920524 ],\n\t\t\t\t[ 0.02962780877005599, 0.9904344267538799, -0.017073799063418826 ],\n\t\t\t\t[ -0.009243040646204504, 0.015055191490298152, 0.7518742814281371 ],\n\t\t\t];\n\t\t}\n\t\telse if (env.W1 === WHITES.D50 && env.W2 === WHITES.D65) {\n\n\t\t\tenv.M = [\n\t\t\t\t[ 0.955473421488075, -0.02309845494876471, 0.06325924320057072 ],\n\t\t\t\t[ -0.0283697093338637, 1.0099953980813041, 0.021041441191917323 ],\n\t\t\t\t[ 0.012314014864481998, -0.020507649298898964, 1.330365926242124 ],\n\t\t\t];\n\t\t}\n\t}\n\n\thooks.run(\"chromatic-adaptation-end\", env);\n\n\tif (env.M) {\n\t\treturn multiplyMatrices(env.M, env.XYZ);\n\t}\n\telse {\n\t\tthrow new TypeError(\"Only Bradford CAT with white points D50 and D65 supported for now.\");\n\t}\n}\n", "import * as util from \"./util.js\";\nimport hooks from \"./hooks.js\";\nimport ColorSpace from \"./space.js\";\nimport defaults from \"./defaults.js\";\n\nconst noneTypes = new Set([\"<number>\", \"<percentage>\", \"<angle>\"]);\n\n/**\n * Validates the coordinates of a color against a format's coord grammar and\n * maps the coordinates to the range or refRange of the coordinates.\n * @param {ColorSpace} space - Colorspace the coords are in\n * @param {object} format - the format object to validate against\n * @param {string} name - the name of the color function. e.g. \"oklab\" or \"color\"\n * @returns {object[]} - an array of type metadata for each coordinate\n */\nfunction coerceCoords (space, format, name, coords) {\n\tlet types = Object.entries(space.coords).map(([id, coordMeta], i) => {\n\t\tlet coordGrammar = format.coordGrammar[i];\n\t\tlet arg = coords[i];\n\t\tlet providedType = arg?.type;\n\n\t\t// Find grammar alternative that matches the provided type\n\t\t// Non-strict equals is intentional because we are comparing w/ string objects\n\t\tlet type;\n\t\tif (arg.none) {\n\t\t\ttype = coordGrammar.find(c => noneTypes.has(c));\n\t\t}\n\t\telse {\n\t\t\ttype = coordGrammar.find(c => c == providedType);\n\t\t}\n\n\t\t// Check that each coord conforms to its grammar\n\t\tif (!type) {\n\t\t\t// Type does not exist in the grammar, throw\n\t\t\tlet coordName = coordMeta.name || id;\n\t\t\tthrow new TypeError(`${providedType ?? arg.raw} not allowed for ${coordName} in ${name}()`);\n\t\t}\n\n\t\tlet fromRange = type.range;\n\n\t\tif (providedType === \"<percentage>\") {\n\t\t\tfromRange ||= [0, 1];\n\t\t}\n\n\t\tlet toRange = coordMeta.range || coordMeta.refRange;\n\n\t\tif (fromRange && toRange) {\n\t\t\tcoords[i] = util.mapRange(fromRange, toRange, coords[i]);\n\t\t}\n\n\t\treturn type;\n\t});\n\n\treturn types;\n}\n\n\n/**\n * Convert a CSS Color string to a color object\n * @param {string} str\n * @param {object} [options]\n * @param {object} [options.meta] - Object for additional information about the parsing\n * @returns {Color}\n */\nexport default function parse (str, {meta} = {}) {\n\tlet env = {\"str\": String(str)?.trim()};\n\thooks.run(\"parse-start\", env);\n\n\tif (env.color) {\n\t\treturn env.color;\n\t}\n\n\tenv.parsed = util.parseFunction(env.str);\n\n\tif (env.parsed) {\n\t\t// Is a functional syntax\n\t\tlet name = env.parsed.name;\n\n\t\tif (name === \"color\") {\n\t\t\t// color() function\n\t\t\tlet id = env.parsed.args.shift();\n\t\t\t// Check against both <dashed-ident> and <ident> versions\n\t\t\tlet alternateId = id.startsWith(\"--\") ? id.substring(2) : `--${id}`;\n\t\t\tlet ids = [id, alternateId];\n\t\t\tlet alpha = env.parsed.rawArgs.indexOf(\"/\") > 0 ? env.parsed.args.pop() : 1;\n\n\t\t\tfor (let space of ColorSpace.all) {\n\t\t\t\tlet colorSpec = space.getFormat(\"color\");\n\n\t\t\t\tif (colorSpec) {\n\t\t\t\t\tif (ids.includes(colorSpec.id) || colorSpec.ids?.filter((specId) => ids.includes(specId)).length) {\n\t\t\t\t\t\t// From https://drafts.csswg.org/css-color-4/#color-function\n\t\t\t\t\t\t// If more <number>s or <percentage>s are provided than parameters that the colorspace takes, the excess <number>s at the end are ignored.\n\t\t\t\t\t\t// If less <number>s or <percentage>s are provided than parameters that the colorspace takes, the missing parameters default to 0. (This is particularly convenient for multichannel printers where the additional inks are spot colors or varnishes that most colors on the page won’t use.)\n\t\t\t\t\t\tconst coords = Object.keys(space.coords).map((_, i) => env.parsed.args[i] || 0);\n\n\t\t\t\t\t\tlet types;\n\n\t\t\t\t\t\tif (colorSpec.coordGrammar) {\n\t\t\t\t\t\t\ttypes = coerceCoords(space, colorSpec, \"color\", coords);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (meta) {\n\t\t\t\t\t\t\tObject.assign(meta, {formatId: \"color\", types});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (colorSpec.id.startsWith(\"--\") && !id.startsWith(\"--\")) {\n\t\t\t\t\t\t\tdefaults.warn(`${space.name} is a non-standard space and not currently supported in the CSS spec. ` +\n\t\t\t\t\t\t\t              `Use prefixed color(${colorSpec.id}) instead of color(${id}).`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (id.startsWith(\"--\") && !colorSpec.id.startsWith(\"--\")) {\n\t\t\t\t\t\t\tdefaults.warn(`${space.name} is a standard space and supported in the CSS spec. ` +\n\t\t\t\t\t\t\t              `Use color(${colorSpec.id}) instead of prefixed color(${id}).`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {spaceId: space.id, coords, alpha};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Not found\n\t\t\tlet didYouMean = \"\";\n\t\t\tlet registryId = id in ColorSpace.registry ? id : alternateId;\n\t\t\tif (registryId in ColorSpace.registry) {\n\t\t\t\t// Used color space id instead of color() id, these are often different\n\t\t\t\tlet cssId = ColorSpace.registry[registryId].formats?.color?.id;\n\n\t\t\t\tif (cssId) {\n\t\t\t\t\tdidYouMean = `Did you mean color(${cssId})?`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new TypeError(`Cannot parse color(${id}). ` + (didYouMean || \"Missing a plugin?\"));\n\t\t}\n\t\telse {\n\t\t\tfor (let space of ColorSpace.all) {\n\t\t\t\t// color space specific function\n\t\t\t\tlet format = space.getFormat(name);\n\t\t\t\tif (format && format.type === \"function\") {\n\t\t\t\t\tlet alpha = 1;\n\n\t\t\t\t\tif (format.lastAlpha || util.last(env.parsed.args).alpha) {\n\t\t\t\t\t\talpha = env.parsed.args.pop();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet coords = env.parsed.args;\n\n\t\t\t\t\tlet types;\n\n\t\t\t\t\tif (format.coordGrammar) {\n\t\t\t\t\t\ttypes = coerceCoords(space, format, name, coords);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (meta) {\n\t\t\t\t\t\tObject.assign(meta, {formatId: format.name, types});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tspaceId: space.id,\n\t\t\t\t\t\tcoords, alpha,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\telse {\n\t\t// Custom, colorspace-specific format\n\t\tfor (let space of ColorSpace.all) {\n\t\t\tfor (let formatId in space.formats) {\n\t\t\t\tlet format = space.formats[formatId];\n\n\t\t\t\tif (format.type !== \"custom\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (format.test && !format.test(env.str)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet color = format.parse(env.str);\n\n\t\t\t\tif (color) {\n\t\t\t\t\tcolor.alpha ??= 1;\n\n\t\t\t\t\tif (meta) {\n\t\t\t\t\t\tmeta.formatId = formatId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn color;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t// If we're here, we couldn't parse\n\tthrow new TypeError(`Could not parse ${str} as a color. Missing a plugin?`);\n}\n", "import ColorSpace from \"./space.js\";\nimport {isString} from \"./util.js\";\nimport parse from \"./parse.js\";\n\n/**\n * Resolves a color reference (object or string) to a plain color object\n * @param {Color | {space, coords, alpha} | string | Array<Color | {space, coords, alpha} | string> } color\n * @returns {{space, coords, alpha} | Array<{space, coords, alpha}}>\n */\nexport default function getColor (color) {\n\tif (Array.isArray(color)) {\n\t\treturn color.map(getColor);\n\t}\n\n\tif (!color) {\n\t\tthrow new TypeError(\"Empty color reference\");\n\t}\n\n\tif (isString(color)) {\n\t\tcolor = parse(color);\n\t}\n\n\t// Object fixup\n\tlet space = color.space || color.spaceId;\n\n\tif (!(space instanceof ColorSpace)) {\n\t\t// Convert string id to color space object\n\t\tcolor.space = ColorSpace.get(space);\n\t}\n\n\tif (color.alpha === undefined) {\n\t\tcolor.alpha = 1;\n\t}\n\n\treturn color;\n}\n", "import {type, parseCoordGrammar, serializeNumber, mapRange} from \"./util.js\";\nimport {getWhite} from \"./adapt.js\";\nimport hooks from \"./hooks.js\";\nimport getColor from \"./getColor.js\";\n\nconst ε = .000075;\n\n/**\n * Class to represent a color space\n */\nexport default class ColorSpace {\n\tconstructor (options) {\n\t\tthis.id = options.id;\n\t\tthis.name = options.name;\n\t\tthis.base = options.base ? ColorSpace.get(options.base) : null;\n\t\tthis.aliases = options.aliases;\n\n\t\tif (this.base) {\n\t\t\tthis.fromBase = options.fromBase;\n\t\t\tthis.toBase = options.toBase;\n\t\t}\n\n\t\t// Coordinate metadata\n\n\t\tlet coords = options.coords ?? this.base.coords;\n\n\t\tfor (let name in coords) {\n\t\t\tif (!(\"name\" in coords[name])) {\n\t\t\t\tcoords[name].name = name;\n\t\t\t}\n\t\t}\n\t\tthis.coords = coords;\n\n\t\t// White point\n\n\t\tlet white = options.white ?? this.base.white ?? \"D65\";\n\t\tthis.white = getWhite(white);\n\n\t\t// Sort out formats\n\n\t\tthis.formats = options.formats ?? {};\n\n\t\tfor (let name in this.formats) {\n\t\t\tlet format = this.formats[name];\n\t\t\tformat.type ||= \"function\";\n\t\t\tformat.name ||= name;\n\t\t}\n\n\t\tif (!this.formats.color?.id) {\n\t\t\tthis.formats.color = {\n\t\t\t\t...this.formats.color ?? {},\n\t\t\t\tid: options.cssId || this.id,\n\t\t\t};\n\t\t}\n\n\t\t// Gamut space\n\n\t\tif (options.gamutSpace) {\n\t\t\t// Gamut space explicitly specified\n\t\t\tthis.gamutSpace = options.gamutSpace === \"self\" ? this : ColorSpace.get(options.gamutSpace);\n\t\t}\n\t\telse {\n\t\t\t// No gamut space specified, calculate a sensible default\n\t\t\tif (this.isPolar) {\n\t\t\t\t// Do not check gamut through polar coordinates\n\t\t\t\tthis.gamutSpace = this.base;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.gamutSpace =  this;\n\t\t\t}\n\t\t}\n\n\t\t// Optimize inGamut for unbounded spaces\n\t\tif (this.gamutSpace.isUnbounded) {\n\t\t\tthis.inGamut = (coords, options) => {\n\t\t\t\treturn true;\n\t\t\t};\n\t\t}\n\n\t\t// Other stuff\n\t\tthis.referred = options.referred;\n\n\t\t// Compute ancestors and store them, since they will never change\n\t\tObject.defineProperty(this, \"path\", {\n\t\t\tvalue: getPath(this).reverse(),\n\t\t\twritable: false,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t});\n\n\t\thooks.run(\"colorspace-init-end\", this);\n\t}\n\n\tinGamut (coords, {epsilon = ε} = {}) {\n\t\tif (!this.equals(this.gamutSpace)) {\n\t\t\tcoords = this.to(this.gamutSpace, coords);\n\t\t\treturn this.gamutSpace.inGamut(coords, {epsilon});\n\t\t}\n\n\t\tlet coordMeta = Object.values(this.coords);\n\n\t\treturn coords.every((c, i) => {\n\t\t\tlet meta = coordMeta[i];\n\n\t\t\tif (meta.type !== \"angle\" && meta.range) {\n\t\t\t\tif (Number.isNaN(c)) {\n\t\t\t\t\t// NaN is always in gamut\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet [min, max] = meta.range;\n\t\t\t\treturn (min === undefined || c >= min - epsilon)\n\t\t\t\t    && (max === undefined || c <= max + epsilon);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tget isUnbounded () {\n\t\treturn Object.values(this.coords).every(coord => !(\"range\" in coord));\n\t}\n\n\tget cssId () {\n\t\treturn this.formats?.color?.id || this.id;\n\t}\n\n\tget isPolar () {\n\t\tfor (let id in this.coords) {\n\t\t\tif (this.coords[id].type === \"angle\") {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tgetFormat (format) {\n\t\tif (typeof format === \"object\") {\n\t\t\tformat = processFormat(format, this);\n\t\t\treturn format;\n\t\t}\n\n\t\tlet ret;\n\t\tif (format === \"default\") {\n\t\t\t// Get first format\n\t\t\tret = Object.values(this.formats)[0];\n\t\t}\n\t\telse {\n\t\t\tret = this.formats[format];\n\t\t}\n\n\t\tif (ret) {\n\t\t\tret = processFormat(ret, this);\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Check if this color space is the same as another color space reference.\n\t * Allows proxying color space objects and comparing color spaces with ids.\n\t * @param {string | ColorSpace} space ColorSpace object or id to compare to\n\t * @returns {boolean}\n\t */\n\tequals (space) {\n\t\tif (!space) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this === space || this.id === space || this.id === space.id;\n\t}\n\n\tto (space, coords) {\n\t\tif (arguments.length === 1) {\n\t\t\tconst color = getColor(space);\n\t\t\t[space, coords] = [color.space, color.coords];\n\t\t}\n\n\t\tspace = ColorSpace.get(space);\n\n\t\tif (this.equals(space)) {\n\t\t\t// Same space, no change needed\n\t\t\treturn coords;\n\t\t}\n\n\t\t// Convert NaN to 0, which seems to be valid in every coordinate of every color space\n\t\tcoords = coords.map(c => Number.isNaN(c) ? 0 : c);\n\n\t\t// Find connection space = lowest common ancestor in the base tree\n\t\tlet myPath = this.path;\n\t\tlet otherPath = space.path;\n\n\t\tlet connectionSpace, connectionSpaceIndex;\n\n\t\tfor (let i = 0; i < myPath.length; i++) {\n\t\t\tif (myPath[i].equals(otherPath[i])) {\n\t\t\t\tconnectionSpace = myPath[i];\n\t\t\t\tconnectionSpaceIndex = i;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!connectionSpace) {\n\t\t\t// This should never happen\n\t\t\tthrow new Error(`Cannot convert between color spaces ${this} and ${space}: no connection space was found`);\n\t\t}\n\n\t\t// Go up from current space to connection space\n\t\tfor (let i = myPath.length - 1; i > connectionSpaceIndex; i--) {\n\t\t\tcoords = myPath[i].toBase(coords);\n\t\t}\n\n\t\t// Go down from connection space to target space\n\t\tfor (let i = connectionSpaceIndex + 1; i < otherPath.length; i++) {\n\t\t\tcoords = otherPath[i].fromBase(coords);\n\t\t}\n\n\t\treturn coords;\n\t}\n\n\tfrom (space, coords) {\n\t\tif (arguments.length === 1) {\n\t\t\tconst color = getColor(space);\n\t\t\t[space, coords] = [color.space, color.coords];\n\t\t}\n\n\t\tspace = ColorSpace.get(space);\n\n\t\treturn space.to(this, coords);\n\t}\n\n\ttoString () {\n\t\treturn `${this.name} (${this.id})`;\n\t}\n\n\tgetMinCoords () {\n\t\tlet ret = [];\n\n\t\tfor (let id in this.coords) {\n\t\t\tlet meta = this.coords[id];\n\t\t\tlet range = meta.range || meta.refRange;\n\t\t\tret.push(range?.min ?? 0);\n\t\t}\n\n\t\treturn ret;\n\t}\n\n\tstatic registry = {};\n\n\t// Returns array of unique color spaces\n\tstatic get all () {\n\t\treturn [...new Set(Object.values(ColorSpace.registry))];\n\t}\n\n\tstatic register (id, space) {\n\t\tif (arguments.length === 1) {\n\t\t\tspace = arguments[0];\n\t\t\tid = space.id;\n\t\t}\n\n\t\tspace = this.get(space);\n\n\t\tif (this.registry[id] && this.registry[id] !== space) {\n\t\t\tthrow new Error(`Duplicate color space registration: '${id}'`);\n\t\t}\n\t\tthis.registry[id] = space;\n\n\t\t// Register aliases when called without an explicit ID.\n\t\tif (arguments.length === 1 && space.aliases) {\n\t\t\tfor (let alias of space.aliases) {\n\t\t\t\tthis.register(alias, space);\n\t\t\t}\n\t\t}\n\n\t\treturn space;\n\t}\n\n\t/**\n\t * Lookup ColorSpace object by name\n\t * @param {ColorSpace | string} name\n\t */\n\tstatic get (space, ...alternatives) {\n\t\tif (!space || space instanceof ColorSpace) {\n\t\t\treturn space;\n\t\t}\n\n\t\tlet argType = type(space);\n\n\t\tif (argType === \"string\") {\n\t\t\t// It's a color space id\n\t\t\tlet ret = ColorSpace.registry[space.toLowerCase()];\n\n\t\t\tif (!ret) {\n\t\t\t\tthrow new TypeError(`No color space found with id = \"${space}\"`);\n\t\t\t}\n\n\t\t\treturn ret;\n\t\t}\n\n\t\tif (alternatives.length) {\n\t\t\treturn ColorSpace.get(...alternatives);\n\t\t}\n\n\t\tthrow new TypeError(`${space} is not a valid color space`);\n\t}\n\n\t/**\n\t * Get metadata about a coordinate of a color space\n\t *\n\t * @static\n\t * @param {Array | string} ref\n\t * @param {ColorSpace | string} [workingSpace]\n\t * @return {Object}\n\t */\n\tstatic resolveCoord (ref, workingSpace) {\n\t\tlet coordType = type(ref);\n\t\tlet space, coord;\n\n\t\tif (coordType === \"string\") {\n\t\t\tif (ref.includes(\".\")) {\n\t\t\t\t// Absolute coordinate\n\t\t\t\t[space, coord] = ref.split(\".\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Relative coordinate\n\t\t\t\t[space, coord] = [, ref];\n\t\t\t}\n\t\t}\n\t\telse if (Array.isArray(ref)) {\n\t\t\t[space, coord] = ref;\n\t\t}\n\t\telse {\n\t\t\t// Object\n\t\t\tspace = ref.space;\n\t\t\tcoord = ref.coordId;\n\t\t}\n\n\t\tspace = ColorSpace.get(space);\n\n\t\tif (!space) {\n\t\t\tspace = workingSpace;\n\t\t}\n\n\t\tif (!space) {\n\t\t\tthrow new TypeError(`Cannot resolve coordinate reference ${ref}: No color space specified and relative references are not allowed here`);\n\t\t}\n\n\t\tcoordType = type(coord);\n\n\t\tif (coordType === \"number\" || coordType === \"string\" && coord >= 0) {\n\t\t\t// Resolve numerical coord\n\t\t\tlet meta = Object.entries(space.coords)[coord];\n\n\t\t\tif (meta) {\n\t\t\t\treturn {space, id: meta[0], index: coord, ...meta[1]};\n\t\t\t}\n\t\t}\n\n\t\tspace = ColorSpace.get(space);\n\n\t\tlet normalizedCoord = coord.toLowerCase();\n\n\t\tlet i = 0;\n\t\tfor (let id in space.coords) {\n\t\t\tlet meta = space.coords[id];\n\n\t\t\tif (id.toLowerCase() === normalizedCoord || meta.name?.toLowerCase() === normalizedCoord) {\n\t\t\t\treturn {space, id, index: i, ...meta};\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\n\t\tthrow new TypeError(`No \"${coord}\" coordinate found in ${space.name}. Its coordinates are: ${Object.keys(space.coords).join(\", \")}`);\n\t}\n\n\tstatic DEFAULT_FORMAT = {\n\t\ttype: \"functions\",\n\t\tname: \"color\",\n\t};\n}\n\nfunction getPath (space) {\n\tlet ret = [space];\n\n\tfor (let s = space; s = s.base;) {\n\t\tret.push(s);\n\t}\n\n\treturn ret;\n}\n\nfunction processFormat (format, {coords} = {}) {\n\tif (format.coords && !format.coordGrammar) {\n\t\tformat.type ||= \"function\";\n\t\tformat.name ||= \"color\";\n\n\t\t// Format has not been processed\n\t\tformat.coordGrammar = parseCoordGrammar(format.coords);\n\n\t\tlet coordFormats = Object.entries(coords).map(([id, coordMeta], i) => {\n\t\t\t// Preferred format for each coord is the first one\n\t\t\tlet outputType = format.coordGrammar[i][0];\n\n\t\t\tlet fromRange = coordMeta.range || coordMeta.refRange;\n\t\t\tlet toRange = outputType.range, suffix = \"\";\n\n\t\t\t// Non-strict equals intentional since outputType could be a string object\n\t\t\tif (outputType == \"<percentage>\") {\n\t\t\t\ttoRange = [0, 100];\n\t\t\t\tsuffix = \"%\";\n\t\t\t}\n\t\t\telse if (outputType == \"<angle>\") {\n\t\t\t\tsuffix = \"deg\";\n\t\t\t}\n\n\t\t\treturn  {fromRange, toRange, suffix};\n\t\t});\n\n\t\tformat.serializeCoords = (coords, precision) => {\n\t\t\treturn coords.map((c, i) => {\n\t\t\t\tlet {fromRange, toRange, suffix} = coordFormats[i];\n\n\t\t\t\tif (fromRange && toRange) {\n\t\t\t\t\tc = mapRange(fromRange, toRange, c);\n\t\t\t\t}\n\n\t\t\t\tc = serializeNumber(c, {precision, unit: suffix});\n\n\t\t\t\treturn c;\n\t\t\t});\n\t\t};\n\t}\n\n\treturn format;\n}\n", "import ColorSpace from \"../space.js\";\n\nexport default new ColorSpace({\n\tid: \"xyz-d65\",\n\tname: \"XYZ D65\",\n\tcoords: {\n\t\tx: {name: \"X\"},\n\t\ty: {name: \"Y\"},\n\t\tz: {name: \"Z\"},\n\t},\n\twhite: \"D65\",\n\tformats: {\n\t\tcolor: {\n\t\t\tids: [\"xyz-d65\", \"xyz\"],\n\t\t},\n\t},\n\taliases: [\"xyz\"],\n});\n", "import ColorSpace from \"./space.js\";\nimport {multiplyMatrices} from \"./util.js\";\nimport adapt from \"./adapt.js\";\nimport XYZ_D65 from \"./spaces/xyz-d65.js\";\n\n/**\n * Convenience class for RGB color spaces\n * @extends {ColorSpace}\n */\nexport default class RGBColorSpace extends ColorSpace {\n\t/**\n\t * Creates a new RGB ColorSpace.\n\t * If coords are not specified, they will use the default RGB coords.\n\t * Instead of `fromBase()` and `toBase()` functions,\n\t * you can specify to/from XYZ matrices and have `toBase()` and `fromBase()` automatically generated.\n\t * @param {*} options - Same options as {@link ColorSpace} plus:\n\t * @param {number[][]} options.toXYZ_M - Matrix to convert to XYZ\n\t * @param {number[][]} options.fromXYZ_M - Matrix to convert from XYZ\n\t */\n\tconstructor (options) {\n\t\tif (!options.coords) {\n\t\t\toptions.coords = {\n\t\t\t\tr: {\n\t\t\t\t\trange: [0, 1],\n\t\t\t\t\tname: \"Red\",\n\t\t\t\t},\n\t\t\t\tg: {\n\t\t\t\t\trange: [0, 1],\n\t\t\t\t\tname: \"Green\",\n\t\t\t\t},\n\t\t\t\tb: {\n\t\t\t\t\trange: [0, 1],\n\t\t\t\t\tname: \"Blue\",\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tif (!options.base) {\n\t\t\toptions.base = XYZ_D65;\n\t\t}\n\n\t\tif (options.toXYZ_M && options.fromXYZ_M) {\n\t\t\toptions.toBase ??= rgb => {\n\t\t\t\tlet xyz = multiplyMatrices(options.toXYZ_M, rgb);\n\n\t\t\t\tif (this.white !== this.base.white) {\n\t\t\t\t\t// Perform chromatic adaptation\n\t\t\t\t\txyz = adapt(this.white, this.base.white, xyz);\n\t\t\t\t}\n\n\t\t\t\treturn xyz;\n\t\t\t};\n\n\t\t\toptions.fromBase ??= xyz => {\n\t\t\t\txyz = adapt(this.base.white, this.white, xyz);\n\t\t\t\treturn multiplyMatrices(options.fromXYZ_M, xyz);\n\t\t\t};\n\t\t}\n\n\t\toptions.referred ??= \"display\";\n\n\t\tsuper(options);\n\t}\n}\n", "import ColorSpace from \"./space.js\";\nimport getColor from \"./getColor.js\";\n\n/**\n * Get the coordinates of a color in any color space\n * @param {Color} color\n * @param {string | ColorSpace} [space = color.space] The color space to convert to. Defaults to the color's current space\n * @returns {number[]} The color coordinates in the given color space\n */\nexport default function getAll (color, space) {\n\tcolor = getColor(color);\n\n\tif (!space || color.space.equals(space)) {\n\t\t// No conversion needed\n\t\treturn color.coords.slice();\n\t}\n\n\tspace = ColorSpace.get(space);\n\treturn space.from(color);\n}\n", "import ColorSpace from \"./space.js\";\nimport getAll from \"./getAll.js\";\nimport getColor from \"./getColor.js\";\n\nexport default function get (color, prop) {\n\tcolor = getColor(color);\n\n\tlet {space, index} = ColorSpace.resolveCoord(prop, color.space);\n\tlet coords = getAll(color, space);\n\treturn coords[index];\n}\n", "import ColorSpace from \"./space.js\";\nimport getColor from \"./getColor.js\";\n\nexport default function setAll (color, space, coords) {\n\tcolor = getColor(color);\n\n\tspace = ColorSpace.get(space);\n\tcolor.coords = space.to(color.space, coords);\n\treturn color;\n}\n\nsetAll.returns = \"color\";\n", "import ColorSpace from \"./space.js\";\nimport getColor from \"./getColor.js\";\nimport get from \"./get.js\";\nimport getAll from \"./getAll.js\";\nimport setAll from \"./setAll.js\";\nimport {type} from \"./util.js\";\n\n// Set properties and return current instance\nexport default function set (color, prop, value) {\n\tcolor = getColor(color);\n\n\tif (arguments.length === 2 && type(arguments[1]) === \"object\") {\n\t\t// Argument is an object literal\n\t\tlet object = arguments[1];\n\t\tfor (let p in object) {\n\t\t\tset(color, p, object[p]);\n\t\t}\n\t}\n\telse {\n\t\tif (typeof value === \"function\") {\n\t\t\tvalue = value(get(color, prop));\n\t\t}\n\n\t\tlet {space, index} = ColorSpace.resolveCoord(prop, color.space);\n\t\tlet coords = getAll(color, space);\n\t\tcoords[index] = value;\n\t\tsetAll(color, space, coords);\n\t}\n\n\treturn color;\n}\n\nset.returns = \"color\";\n", "import ColorSpace from \"../space.js\";\nimport adapt from \"../adapt.js\";\nimport XYZ_D65 from \"./xyz-d65.js\";\n\nexport default new ColorSpace({\n\tid: \"xyz-d50\",\n\tname: \"XYZ D50\",\n\twhite: \"D50\",\n\tbase: XYZ_D65,\n\tfromBase: coords => adapt(XYZ_D65.white, \"D50\", coords),\n\ttoBase: coords => adapt(\"D50\", XYZ_D65.white, coords),\n});\n", "import ColorSpace from \"../space.js\";\nimport {WHITES} from \"../adapt.js\";\nimport xyz_d50 from \"./xyz-d50.js\";\n\n// κ * ε  = 2^3 = 8\nconst ε = 216 / 24389;  // 6^3/29^3 == (24/116)^3\nconst ε3 = 24 / 116;\nconst κ = 24389 / 27;   // 29^3/3^3\n\nlet white = WHITES.D50;\n\nexport default new ColorSpace({\n\tid: \"lab\",\n\tname: \"Lab\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t\ta: {\n\t\t\trefRange: [-125, 125],\n\t\t},\n\t\tb: {\n\t\t\trefRange: [-125, 125],\n\t\t},\n\t},\n\n\t// Assuming XYZ is relative to D50, convert to CIE Lab\n\t// from CIE standard, which now defines these as a rational fraction\n\twhite,\n\n\tbase: xyz_d50,\n\t// Convert D50-adapted XYX to Lab\n\t//  CIE 15.3:2004 section 8.2.1.1\n\tfromBase (XYZ) {\n\t\t// compute xyz, which is XYZ scaled relative to reference white\n\t\tlet xyz = XYZ.map((value, i) => value / white[i]);\n\n\t\t// now compute f\n\t\tlet f = xyz.map(value => value > ε ? Math.cbrt(value) : (κ * value + 16) / 116);\n\n\t\treturn [\n\t\t\t(116 * f[1]) - 16,   // L\n\t\t\t500 * (f[0] - f[1]), // a\n\t\t\t200 * (f[1] - f[2]),  // b\n\t\t];\n\t},\n\t// Convert Lab to D50-adapted XYZ\n\t// Same result as CIE 15.3:2004 Appendix D although the derivation is different\n\t// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\ttoBase (Lab) {\n\t\t// compute f, starting with the luminance-related term\n\t\tlet f = [];\n\t\tf[1] = (Lab[0] + 16) / 116;\n\t\tf[0] = Lab[1] / 500 + f[1];\n\t\tf[2] = f[1] - Lab[2] / 200;\n\n\t\t// compute xyz\n\t\tlet xyz = [\n\t\t\tf[0]   > ε3 ? Math.pow(f[0], 3)                : (116 * f[0] - 16) / κ,\n\t\t\tLab[0] > 8  ? Math.pow((Lab[0] + 16) / 116, 3) : Lab[0] / κ,\n\t\t\tf[2]   > ε3 ? Math.pow(f[2], 3)                : (116 * f[2] - 16) / κ,\n\t\t];\n\n\t\t// Compute XYZ by scaling xyz by reference white\n\t\treturn xyz.map((value, i) => value * white[i]);\n\t},\n\n\tformats: {\n\t\t\"lab\": {\n\t\t\tcoords: [\"<number> | <percentage>\", \"<number> | <percentage>[-1,1]\", \"<number> | <percentage>[-1,1]\"],\n\t\t},\n\t},\n});\n", "export function constrain (angle) {\n\treturn ((angle % 360) + 360) % 360;\n}\n\nexport function adjust (arc, angles) {\n\tif (arc === \"raw\") {\n\t\treturn angles;\n\t}\n\n\tlet [a1, a2] = angles.map(constrain);\n\n\tlet angleDiff = a2 - a1;\n\n\tif (arc === \"increasing\") {\n\t\tif (angleDiff < 0) {\n\t\t\ta2 += 360;\n\t\t}\n\t}\n\telse if (arc === \"decreasing\") {\n\t\tif (angleDiff > 0) {\n\t\t\ta1 += 360;\n\t\t}\n\t}\n\telse if (arc === \"longer\") {\n\t\tif (-180 < angleDiff && angleDiff < 180) {\n\t\t\tif (angleDiff > 0) {\n\t\t\t\ta1 += 360;\n\t\t\t}\n\t\t\telse {\n\t\t\t\ta2 += 360;\n\t\t\t}\n\t\t}\n\t}\n\telse if (arc === \"shorter\") {\n\t\tif (angleDiff > 180) {\n\t\t\ta1 += 360;\n\t\t}\n\t\telse if (angleDiff < -180) {\n\t\t\ta2 += 360;\n\t\t}\n\t}\n\n\treturn [a1, a2];\n}\n", "import ColorSpace from \"../space.js\";\nimport Lab from \"./lab.js\";\nimport {constrain as constrainAngle} from \"../angles.js\";\n\nexport default new ColorSpace({\n\tid: \"lch\",\n\tname: \"LCH\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, 150],\n\t\t\tname: \"Chroma\",\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t},\n\n\tbase: Lab,\n\tfromBase (Lab) {\n\t\t// Convert to polar form\n\t\tlet [L, a, b] = Lab;\n\t\tlet hue;\n\t\tconst ε = 0.02;\n\n\t\tif (Math.abs(a) < ε && Math.abs(b) < ε) {\n\t\t\thue = NaN;\n\t\t}\n\t\telse {\n\t\t\thue = Math.atan2(b, a) * 180 / Math.PI;\n\t\t}\n\n\t\treturn [\n\t\t\tL, // L is still L\n\t\t\tMath.sqrt(a ** 2 + b ** 2), // Chroma\n\t\t\tconstrainAngle(hue), // Hue, in degrees [0 to 360)\n\t\t];\n\t},\n\ttoBase (LCH) {\n\t\t// Convert from polar form\n\t\tlet [Lightness, Chroma, Hue] = LCH;\n\t\t// Clamp any negative Chroma\n\t\tif (Chroma < 0) {\n\t\t\tChroma = 0;\n\t\t}\n\t\t// Deal with NaN Hue\n\t\tif (isNaN(Hue)) {\n\t\t\tHue = 0;\n\t\t}\n\t\treturn [\n\t\t\tLightness, // L is still L\n\t\t\tChroma * Math.cos(Hue * Math.PI / 180), // a\n\t\t\tChroma * Math.sin(Hue * Math.PI / 180),  // b\n\t\t];\n\t},\n\n\tformats: {\n\t\t\"lch\": {\n\t\t\tcoords: [\"<number> | <percentage>\", \"<number> | <percentage>\", \"<number> | <angle>\"],\n\t\t},\n\t},\n});\n", "import defaults from \"../defaults.js\";\nimport lab from \"../spaces/lab.js\";\nimport lch from \"../spaces/lch.js\";\nimport getColor from \"../getColor.js\";\n\n// deltaE2000 is a statistically significant improvement\n// and is recommended by the CIE and Idealliance\n// especially for color differences less than 10 deltaE76\n// but is wicked complicated\n// and many implementations have small errors!\n// DeltaE2000 is also discontinuous; in case this\n// matters to you, use deltaECMC instead.\n\nconst Gfactor = 25 ** 7;\nconst π = Math.PI;\nconst r2d = 180 / π;\nconst d2r = π / 180;\n\nfunction pow7 (x) {\n\t// Faster than x ** 7 or Math.pow(x, 7)\n\n\tconst x2 = x * x;\n\tconst x7 = x2 * x2 * x2 * x;\n\n\treturn x7;\n}\n\nexport default function (color, sample, {kL = 1, kC = 1, kH = 1} = {}) {\n\t[color, sample] = getColor([color, sample]);\n\n\t// Given this color as the reference\n\t// and the function parameter as the sample,\n\t// calculate deltaE 2000.\n\n\t// This implementation assumes the parametric\n\t// weighting factors kL, kC and kH\n\t// for the influence of viewing conditions\n\t// are all 1, as sadly seems typical.\n\t// kL should be increased for lightness texture or noise\n\t// and kC increased for chroma noise\n\n\tlet [L1, a1, b1] = lab.from(color);\n\tlet C1 = lch.from(lab, [L1, a1, b1])[1];\n\tlet [L2, a2, b2] = lab.from(sample);\n\tlet C2 = lch.from(lab, [L2, a2, b2])[1];\n\n\t// Check for negative Chroma,\n\t// which might happen through\n\t// direct user input of LCH values\n\n\tif (C1 < 0) {\n\t\tC1 = 0;\n\t}\n\tif (C2 < 0) {\n\t\tC2 = 0;\n\t}\n\n\tlet Cbar = (C1 + C2) / 2; // mean Chroma\n\n\t// calculate a-axis asymmetry factor from mean Chroma\n\t// this turns JND ellipses for near-neutral colors back into circles\n\tlet C7 = pow7(Cbar);\n\n\tlet G = 0.5 * (1 - Math.sqrt(C7 / (C7 + Gfactor)));\n\n\t// scale a axes by asymmetry factor\n\t// this by the way is why there is no Lab2000 colorspace\n\tlet adash1 = (1 + G) * a1;\n\tlet adash2 = (1 + G) * a2;\n\n\t// calculate new Chroma from scaled a and original b axes\n\tlet Cdash1 = Math.sqrt(adash1 ** 2 + b1 ** 2);\n\tlet Cdash2 = Math.sqrt(adash2 ** 2 + b2 ** 2);\n\n\t// calculate new hues, with zero hue for true neutrals\n\t// and in degrees, not radians\n\n\tlet h1 = (adash1 === 0 && b1 === 0) ? 0 : Math.atan2(b1, adash1);\n\tlet h2 = (adash2 === 0 && b2 === 0) ? 0 : Math.atan2(b2, adash2);\n\n\tif (h1 < 0) {\n\t\th1 += 2 * π;\n\t}\n\tif (h2 < 0) {\n\t\th2 += 2 * π;\n\t}\n\n\th1 *= r2d;\n\th2 *= r2d;\n\n\t// Lightness and Chroma differences; sign matters\n\tlet ΔL = L2 - L1;\n\tlet ΔC = Cdash2 - Cdash1;\n\n\t// Hue difference, getting the sign correct\n\tlet hdiff = h2 - h1;\n\tlet hsum = h1 + h2;\n\tlet habs = Math.abs(hdiff);\n\tlet Δh;\n\n\tif (Cdash1 * Cdash2 === 0) {\n\t\tΔh = 0;\n\t}\n\telse if (habs <= 180) {\n\t\tΔh = hdiff;\n\t}\n\telse if (hdiff > 180) {\n\t\tΔh = hdiff - 360;\n\t}\n\telse if (hdiff < -180) {\n\t\tΔh = hdiff + 360;\n\t}\n\telse {\n\t\tdefaults.warn(\"the unthinkable has happened\");\n\t}\n\n\t// weighted Hue difference, more for larger Chroma\n\tlet ΔH = 2 * Math.sqrt(Cdash2 * Cdash1) * Math.sin(Δh * d2r / 2);\n\n\t// calculate mean Lightness and Chroma\n\tlet Ldash = (L1 + L2) / 2;\n\tlet Cdash = (Cdash1 + Cdash2) / 2;\n\tlet Cdash7 = pow7(Cdash);\n\n\t// Compensate for non-linearity in the blue region of Lab.\n\t// Four possibilities for hue weighting factor,\n\t// depending on the angles, to get the correct sign\n\tlet hdash;\n\tif (Cdash1 * Cdash2 === 0) {\n\t\thdash = hsum;   // which should be zero\n\t}\n\telse if (habs <= 180) {\n\t\thdash = hsum / 2;\n\t}\n\telse if (hsum < 360) {\n\t\thdash = (hsum + 360) / 2;\n\t}\n\telse {\n\t\thdash = (hsum - 360) / 2;\n\t}\n\n\t// positional corrections to the lack of uniformity of CIELAB\n\t// These are all trying to make JND ellipsoids more like spheres\n\n\t// SL Lightness crispening factor\n\t// a background with L=50 is assumed\n\tlet lsq = (Ldash - 50) ** 2;\n\tlet SL = 1 + ((0.015 * lsq) / Math.sqrt(20 + lsq));\n\n\t// SC Chroma factor, similar to those in CMC and deltaE 94 formulae\n\tlet SC = 1 + 0.045 * Cdash;\n\n\t// Cross term T for blue non-linearity\n\tlet T = 1;\n\tT -= (0.17 * Math.cos((     hdash - 30)  * d2r));\n\tT += (0.24 * Math.cos(  2 * hdash        * d2r));\n\tT += (0.32 * Math.cos(((3 * hdash) + 6)  * d2r));\n\tT -= (0.20 * Math.cos(((4 * hdash) - 63) * d2r));\n\n\t// SH Hue factor depends on Chroma,\n\t// as well as adjusted hue angle like deltaE94.\n\tlet SH = 1 + 0.015 * Cdash * T;\n\n\t// RT Hue rotation term compensates for rotation of JND ellipses\n\t// and Munsell constant hue lines\n\t// in the medium-high Chroma blue region\n\t// (Hue 225 to 315)\n\tlet Δθ = 30 * Math.exp(-1 * (((hdash - 275) / 25) ** 2));\n\tlet RC = 2 * Math.sqrt(Cdash7 / (Cdash7 + Gfactor));\n\tlet RT = -1 * Math.sin(2 * Δθ * d2r) * RC;\n\n\t// Finally calculate the deltaE, term by term as root sume of squares\n\tlet dE = (ΔL / (kL * SL)) ** 2;\n\tdE += (ΔC / (kC * SC)) ** 2;\n\tdE += (ΔH / (kH * SH)) ** 2;\n\tdE += RT * (ΔC / (kC * SC)) * (ΔH / (kH * SH));\n\treturn Math.sqrt(dE);\n\t// Yay!!!\n}\n", "import ColorSpace from \"../space.js\";\nimport {multiplyMatrices} from \"../util.js\";\nimport XYZ_D65 from \"./xyz-d65.js\";\n\n// Recalculated for consistent reference white\n// see https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484\nconst XYZtoLMS_M = [\n\t[ 0.8190224379967030, 0.3619062600528904, -0.1288737815209879 ],\n\t[ 0.0329836539323885, 0.9292868615863434,  0.0361446663506424 ],\n\t[ 0.0481771893596242, 0.2642395317527308,  0.6335478284694309 ],\n];\n// inverse of XYZtoLMS_M\nconst LMStoXYZ_M = [\n\t[  1.2268798758459243, -0.5578149944602171,  0.2813910456659647 ],\n\t[ -0.0405757452148008,  1.1122868032803170, -0.0717110580655164 ],\n\t[ -0.0763729366746601, -0.4214933324022432,  1.5869240198367816 ],\n];\nconst LMStoLab_M = [\n\t[ 0.2104542683093140,  0.7936177747023054, -0.0040720430116193 ],\n\t[ 1.9779985324311684, -2.4285922420485799,  0.4505937096174110 ],\n\t[ 0.0259040424655478,  0.7827717124575296, -0.8086757549230774 ],\n];\n// LMStoIab_M inverted\nconst LabtoLMS_M = [\n\t[ 1.0000000000000000,  0.3963377773761749,  0.2158037573099136 ],\n\t[ 1.0000000000000000, -0.1055613458156586, -0.0638541728258133 ],\n\t[ 1.0000000000000000, -0.0894841775298119, -1.2914855480194092 ],\n];\n\nexport default new ColorSpace({\n\tid: \"oklab\",\n\tname: \"Oklab\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t\ta: {\n\t\t\trefRange: [-0.4, 0.4],\n\t\t},\n\t\tb: {\n\t\t\trefRange: [-0.4, 0.4],\n\t\t},\n\t},\n\n\t// Note that XYZ is relative to D65\n\twhite: \"D65\",\n\tbase: XYZ_D65,\n\tfromBase (XYZ) {\n\t\t// move to LMS cone domain\n\t\tlet LMS = multiplyMatrices(XYZtoLMS_M, XYZ);\n\n\t\t// non-linearity\n\t\tlet LMSg = LMS.map(val => Math.cbrt(val));\n\n\t\treturn multiplyMatrices(LMStoLab_M, LMSg);\n\n\t},\n\ttoBase (OKLab) {\n\t\t// move to LMS cone domain\n\t\tlet LMSg = multiplyMatrices(LabtoLMS_M, OKLab);\n\n\t\t// restore linearity\n\t\tlet LMS = LMSg.map(val => val ** 3);\n\n\t\treturn multiplyMatrices(LMStoXYZ_M, LMS);\n\t},\n\n\tformats: {\n\t\t\"oklab\": {\n\t\t\tcoords: [\"<percentage> | <number>\", \"<number> | <percentage>[-1,1]\", \"<number> | <percentage>[-1,1]\"],\n\t\t},\n\t},\n});\n", "// More accurate color-difference formulae\n// than the simple 1976 Euclidean distance in CIE Lab\n\nimport oklab from \"../spaces/oklab.js\";\nimport getColor from \"../getColor.js\";\n\nexport default function (color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\n\t// Given this color as the reference\n\t// and a sample,\n\t// calculate deltaEOK, term by term as root sum of squares\n\tlet [L1, a1, b1] = oklab.from(color);\n\tlet [L2, a2, b2] = oklab.from(sample);\n\tlet ΔL = L1 - L2;\n\tlet Δa = a1 - a2;\n\tlet Δb = b1 - b2;\n\treturn Math.sqrt(ΔL ** 2 + Δa ** 2 + Δb ** 2);\n}\n", "import ColorSpace from \"./space.js\";\nimport getColor from \"./getColor.js\";\n\nconst ε = .000075;\n\n/**\n * Check if a color is in gamut of either its own or another color space\n * @return {Boolean} Is the color in gamut?\n */\nexport default function inGamut (color, space, {epsilon = ε} = {}) {\n\tcolor = getColor(color);\n\n\tif (!space) {\n\t\tspace = color.space;\n\t}\n\n\tspace = ColorSpace.get(space);\n\tlet coords = color.coords;\n\n\tif (space !== color.space) {\n\t\tcoords = space.from(color);\n\t}\n\n\treturn space.inGamut(coords, {epsilon});\n}\n", "export default function clone (color) {\n\treturn {\n\t\tspace: color.space,\n\t\tcoords: color.coords.slice(),\n\t\talpha: color.alpha,\n\t};\n}\n", "import ColorSpace from \"./space.js\";\n\n/**\n * Euclidean distance of colors in an arbitrary color space\n */\nexport default function distance (color1, color2, space = \"lab\") {\n\tspace = ColorSpace.get(space);\n\n\t// Assume getColor() is called on color in space.from()\n\tlet coords1 = space.from(color1);\n\tlet coords2 = space.from(color2);\n\n\treturn Math.sqrt(coords1.reduce((acc, c1, i) => {\n\t\tlet c2 = coords2[i];\n\t\tif (isNaN(c1) || isNaN(c2)) {\n\t\t\treturn acc;\n\t\t}\n\n\t\treturn acc + (c2 - c1) ** 2;\n\t}, 0));\n}\n", "import distance from \"../distance.js\";\nimport getColor from \"../getColor.js\";\n\nexport default function deltaE76 (color, sample) {\n\t// Assume getColor() is called in the distance function\n\treturn distance(color, sample, \"lab\");\n}\n", "import lab from \"../spaces/lab.js\";\nimport lch from \"../spaces/lch.js\";\nimport getColor from \"../getColor.js\";\n\n// More accurate color-difference formulae\n// than the simple 1976 Euclidean distance in Lab\n\n// CMC by the Color Measurement Committee of the\n// Bradford Society of Dyeists and Colorsts, 1994.\n// Uses LCH rather than Lab,\n// with different weights for L, C and H differences\n// A nice increase in accuracy for modest increase in complexity\nconst π = Math.PI;\nconst d2r = π / 180;\n\nexport default function (color, sample, {l = 2, c = 1} = {}) {\n\t[color, sample] = getColor([color, sample]);\n\n\t// Given this color as the reference\n\t// and a sample,\n\t// calculate deltaE CMC.\n\n\t// This implementation assumes the parametric\n\t// weighting factors l:c are 2:1\n\t// which is typical for non-textile uses.\n\n\tlet [L1, a1, b1] = lab.from(color);\n\tlet [, C1, H1] = lch.from(lab, [L1, a1, b1]);\n\tlet [L2, a2, b2] = lab.from(sample);\n\tlet C2 = lch.from(lab, [L2, a2, b2])[1];\n\n\t// let [L1, a1, b1] = color.getAll(lab);\n\t// let C1 = color.get(\"lch.c\");\n\t// let H1 = color.get(\"lch.h\");\n\t// let [L2, a2, b2] = sample.getAll(lab);\n\t// let C2 = sample.get(\"lch.c\");\n\n\t// Check for negative Chroma,\n\t// which might happen through\n\t// direct user input of LCH values\n\n\tif (C1 < 0) {\n\t\tC1 = 0;\n\t}\n\tif (C2 < 0) {\n\t\tC2 = 0;\n\t}\n\n\t// we don't need H2 as ΔH is calculated from Δa, Δb and ΔC\n\n\t// Lightness and Chroma differences\n\t// These are (color - sample), unlike deltaE2000\n\tlet ΔL = L1 - L2;\n\tlet ΔC = C1 - C2;\n\n\tlet Δa = a1 - a2;\n\tlet Δb = b1 - b2;\n\n\t// weighted Hue difference, less for larger Chroma difference\n\n\tlet H2 = (Δa ** 2) + (Δb ** 2) - (ΔC ** 2);\n\t// due to roundoff error it is possible that, for zero a and b,\n\t// ΔC > Δa + Δb is 0, resulting in attempting\n\t// to take the square root of a negative number\n\n\t// trying instead the equation from Industrial Color Physics\n\t// By Georg A. Klein\n\n\t// let ΔH = ((a1 * b2) - (a2 * b1)) / Math.sqrt(0.5 * ((C2 * C1) + (a2 * a1) + (b2 * b1)));\n\t// console.log({ΔH});\n\t// This gives the same result to 12 decimal places\n\t// except it sometimes NaNs when trying to root a negative number\n\n\t// let ΔH = Math.sqrt(H2); we never actually use the root, it gets squared again!!\n\n\t// positional corrections to the lack of uniformity of CIELAB\n\t// These are all trying to make JND ellipsoids more like spheres\n\n\t// SL Lightness crispening factor, depends entirely on L1 not L2\n\tlet SL = 0.511;\t// linear portion of the Y to L transfer function\n\tif (L1 >= 16) {\t// cubic portion\n\t\tSL = (0.040975 * L1) / (1 + 0.01765 * L1);\n\t}\n\n\t// SC Chroma factor\n\tlet SC = ((0.0638 * C1) / (1 + 0.0131 * C1)) + 0.638;\n\n\t// Cross term T for blue non-linearity\n\tlet T;\n\tif (Number.isNaN(H1)) {\n\t\tH1 = 0;\n\t}\n\n\tif (H1 >= 164 && H1 <= 345) {\n\t\tT = 0.56 + Math.abs(0.2 * Math.cos((H1 + 168) * d2r));\n\t}\n\telse {\n\t\tT = 0.36 + Math.abs(0.4 * Math.cos((H1 + 35) * d2r));\n\t}\n\t// console.log({T});\n\n\t// SH Hue factor also depends on C1,\n\tlet C4 = Math.pow(C1, 4);\n\tlet F = Math.sqrt(C4 / (C4 + 1900));\n\tlet SH = SC * ((F * T) + 1 - F);\n\n\t// Finally calculate the deltaE, term by term as root sume of squares\n\tlet dE = (ΔL / (l * SL)) ** 2;\n\tdE += (ΔC / (c * SC)) ** 2;\n\tdE += (H2 / (SH ** 2));\n\t// dE += (ΔH / SH)  ** 2;\n\treturn Math.sqrt(dE);\n\t// Yay!!!\n}\n", "import ColorSpace from \"../space.js\";\nimport XYZ_D65 from \"./xyz-d65.js\";\n\nconst Yw = 203;\t// absolute luminance of media white\n\nexport default new ColorSpace({\n// Absolute CIE XYZ, with a D65 whitepoint,\n// as used in most HDR colorspaces as a starting point.\n// SDR spaces are converted per BT.2048\n// so that diffuse, media white is 203 cd/m²\n\tid: \"xyz-abs-d65\",\n\tcssId: \"--xyz-abs-d65\",\n\tname: \"Absolute XYZ D65\",\n\tcoords: {\n\t\tx: {\n\t\t\trefRange: [0, 9504.7],\n\t\t\tname: \"Xa\",\n\t\t},\n\t\ty: {\n\t\t\trefRange: [0, 10000],\n\t\t\tname: \"Ya\",\n\t\t},\n\t\tz: {\n\t\t\trefRange: [0, 10888.3],\n\t\t\tname: \"Za\",\n\t\t},\n\t},\n\n\tbase: XYZ_D65,\n\tfromBase (XYZ) {\n\t\t// Make XYZ absolute, not relative to media white\n\t\t// Maximum luminance in PQ is 10,000 cd/m²\n\t\t// Relative XYZ has Y=1 for media white\n\t\treturn XYZ.map (v => Math.max(v * Yw, 0));\n\t},\n\ttoBase (AbsXYZ) {\n\t\t// Convert to media-white relative XYZ\n\t\treturn AbsXYZ.map(v => Math.max(v / Yw, 0));\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport {multiplyMatrices} from \"../util.js\";\nimport XYZ_Abs_D65 from \"./xyz-abs-d65.js\";\n\nconst b = 1.15;\nconst g = 0.66;\nconst n = 2610 / (2 ** 14);\nconst ninv = (2 ** 14) / 2610;\nconst c1 = 3424 / (2 ** 12);\nconst c2 = 2413 / (2 ** 7);\nconst c3 = 2392 / (2 ** 7);\nconst p = 1.7 * 2523 / (2 ** 5);\nconst pinv = (2 ** 5) / (1.7 * 2523);\nconst d = -0.56;\nconst d0 = 1.6295499532821566E-11;\n\nconst XYZtoCone_M = [\n\t[  0.41478972, 0.579999,  0.0146480 ],\n\t[ -0.2015100,  1.120649,  0.0531008 ],\n\t[ -0.0166008,  0.264800,  0.6684799 ],\n];\n// XYZtoCone_M inverted\nconst ConetoXYZ_M = [\n\t[  1.9242264357876067,  -1.0047923125953657,  0.037651404030618   ],\n\t[  0.35031676209499907,  0.7264811939316552, -0.06538442294808501 ],\n\t[ -0.09098281098284752, -0.3127282905230739,  1.5227665613052603  ],\n];\nconst ConetoIab_M = [\n\t[  0.5,       0.5,       0        ],\n\t[  3.524000, -4.066708,  0.542708 ],\n\t[  0.199076,  1.096799, -1.295875 ],\n];\n// ConetoIab_M inverted\nconst IabtoCone_M = [\n\t[ 1,                   0.1386050432715393,   0.05804731615611886 ],\n\t[ 0.9999999999999999, -0.1386050432715393,  -0.05804731615611886 ],\n\t[ 0.9999999999999998, -0.09601924202631895, -0.8118918960560388  ],\n];\n\nexport default new ColorSpace({\n\tid: \"jzazbz\",\n\tname: \"Jzazbz\",\n\tcoords: {\n\t\tjz: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Jz\",\n\t\t},\n\t\taz: {\n\t\t\trefRange: [-0.5, 0.5],\n\t\t},\n\t\tbz: {\n\t\t\trefRange: [-0.5, 0.5],\n\t\t},\n\t},\n\n\tbase: XYZ_Abs_D65,\n\tfromBase (XYZ) {\n\t\t// First make XYZ absolute, not relative to media white\n\t\t// Maximum luminance in PQ is 10,000 cd/m²\n\t\t// Relative XYZ has Y=1 for media white\n\t\t// BT.2048 says media white Y=203 at PQ 58\n\n\t\tlet [ Xa, Ya, Za ] = XYZ;\n\n\t\t// modify X and Y\n\t\tlet Xm = (b * Xa) - ((b - 1) * Za);\n\t\tlet Ym = (g * Ya) - ((g - 1) * Xa);\n\n\t\t// move to LMS cone domain\n\t\tlet LMS = multiplyMatrices(XYZtoCone_M, [ Xm, Ym, Za ]);\n\n\t\t// PQ-encode LMS\n\t\tlet PQLMS = LMS.map (function (val) {\n\t\t\tlet num = c1 + (c2 * ((val / 10000) ** n));\n\t\t\tlet denom = 1 + (c3 * ((val / 10000) ** n));\n\n\t\t\treturn (num / denom)  ** p;\n\t\t});\n\n\t\t// almost there, calculate Iz az bz\n\t\tlet [ Iz, az, bz] = multiplyMatrices(ConetoIab_M, PQLMS);\n\t\t// console.log({Iz, az, bz});\n\n\t\tlet Jz = ((1 + d) * Iz) / (1 + (d * Iz)) - d0;\n\t\treturn [Jz, az, bz];\n\t},\n\ttoBase (Jzazbz) {\n\t\tlet [Jz, az, bz] = Jzazbz;\n\t\tlet Iz = (Jz + d0) / (1 + d - d * (Jz + d0));\n\n\t\t// bring into LMS cone domain\n\t\tlet PQLMS = multiplyMatrices(IabtoCone_M, [ Iz, az, bz ]);\n\n\t\t// convert from PQ-coded to linear-light\n\t\tlet LMS = PQLMS.map(function (val) {\n\t\t\tlet num = (c1 - (val ** pinv));\n\t\t\tlet denom = (c3 * (val ** pinv)) - c2;\n\t\t\tlet x = 10000 * ((num / denom) ** ninv);\n\n\t\t\treturn (x); \t// luminance relative to diffuse white, [0, 70 or so].\n\t\t});\n\n\t\t// modified abs XYZ\n\t\tlet [ Xm, Ym, Za ] = multiplyMatrices(ConetoXYZ_M, LMS);\n\n\t\t// restore standard D50 relative XYZ, relative to media white\n\t\tlet Xa = (Xm + ((b - 1) * Za)) / b;\n\t\tlet Ya = (Ym + ((g - 1) * Xa)) / g;\n\t\treturn [ Xa, Ya, Za ];\n\t},\n\n\tformats: {\n\t\t// https://drafts.csswg.org/css-color-hdr/#Jzazbz\n\t\t\"color\": {\n\t\t\tcoords: [\"<number> | <percentage>\", \"<number> | <percentage>[-1,1]\", \"<number> | <percentage>[-1,1]\"],\n\t\t},\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport Jzazbz from \"./jzazbz.js\";\nimport {constrain as constrainAngle} from \"../angles.js\";\n\nexport default new ColorSpace({\n\tid: \"jzczhz\",\n\tname: \"JzCzHz\",\n\tcoords: {\n\t\tjz: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Jz\",\n\t\t},\n\t\tcz: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Chroma\",\n\t\t},\n\t\thz: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t},\n\n\tbase: Jzazbz,\n\tfromBase (jzazbz) {\n\t\t// Convert to polar form\n\t\tlet [Jz, az, bz] = jzazbz;\n\t\tlet hue;\n\t\tconst ε = 0.0002; // chromatic components much smaller than a,b\n\n\t\tif (Math.abs(az) < ε && Math.abs(bz) < ε) {\n\t\t\thue = NaN;\n\t\t}\n\t\telse {\n\t\t\thue = Math.atan2(bz, az) * 180 / Math.PI;\n\t\t}\n\n\t\treturn [\n\t\t\tJz, // Jz is still Jz\n\t\t\tMath.sqrt(az ** 2 + bz ** 2), // Chroma\n\t\t\tconstrainAngle(hue), // Hue, in degrees [0 to 360)\n\t\t];\n\t},\n\ttoBase (jzczhz) {\n\t\t// Convert from polar form\n\t\t// debugger;\n\t\treturn [\n\t\t\tjzczhz[0], // Jz is still Jz\n\t\t\tjzczhz[1] * Math.cos(jzczhz[2] * Math.PI / 180), // az\n\t\t\tjzczhz[1] * Math.sin(jzczhz[2] * Math.PI / 180),  // bz\n\t\t];\n\t},\n});\n", "import jzczhz from \"../spaces/jzczhz.js\";\nimport getColor from \"../getColor.js\";\n\n// More accurate color-difference formulae\n// than the simple 1976 Euclidean distance in Lab\n\n// Uses JzCzHz, which has improved perceptual uniformity\n// and thus a simple Euclidean root-sum of ΔL² ΔC² ΔH²\n// gives good results.\n\nexport default function (color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\n\t// Given this color as the reference\n\t// and a sample,\n\t// calculate deltaE in JzCzHz.\n\tlet [Jz1, Cz1, Hz1] = jzczhz.from(color);\n\tlet [Jz2, Cz2, Hz2] = jzczhz.from(sample);\n\n\t// Lightness and Chroma differences\n\t// sign does not matter as they are squared.\n\tlet ΔJ = Jz1 - Jz2;\n\tlet ΔC = Cz1 - Cz2;\n\n\t// length of chord for ΔH\n\tif ((Number.isNaN(Hz1)) && (Number.isNaN(Hz2))) {\n\t\t// both undefined hues\n\t\tHz1 = 0;\n\t\tHz2 = 0;\n\t}\n\telse if (Number.isNaN(Hz1)) {\n\t\t// one undefined, set to the defined hue\n\t\tHz1 = Hz2;\n\t}\n\telse if (Number.isNaN(Hz2)) {\n\t\tHz2 = Hz1;\n\t}\n\n\tlet Δh = Hz1 - Hz2;\n\tlet ΔH = 2 * Math.sqrt(Cz1 * Cz2) * Math.sin((Δh / 2) * (Math.PI / 180));\n\n\treturn Math.sqrt(ΔJ ** 2 + ΔC ** 2 + ΔH ** 2);\n}\n", "import ColorSpace from \"../space.js\";\nimport {multiplyMatrices} from \"../util.js\";\nimport XYZ_Abs_D65 from \"./xyz-abs-d65.js\";\n\nconst c1 = 3424 / 4096;\nconst c2 = 2413 / 128;\nconst c3 = 2392 / 128;\nconst m1 = 2610 / 16384;\nconst m2 = 2523 / 32;\nconst im1 = 16384 / 2610;\nconst im2 = 32 / 2523;\n\n// The matrix below includes the 4% crosstalk components\n// and is from the Dolby \"What is ICtCp\" paper\"\nconst XYZtoLMS_M = [\n\t[  0.3592832590121217,  0.6976051147779502, -0.0358915932320290 ],\n\t[ -0.1920808463704993,  1.1004767970374321,  0.0753748658519118 ],\n\t[  0.0070797844607479,  0.0748396662186362,  0.8433265453898765 ],\n];\n// linear-light Rec.2020 to LMS, again with crosstalk\n// rational terms from Jan Fröhlich,\n// Encoding High Dynamic Range andWide Color Gamut Imagery, p.97\n// and ITU-R BT.2124-0 p.2\n/*\nconst Rec2020toLMS_M = [\n\t[ 1688 / 4096,  2146 / 4096,   262 / 4096 ],\n\t[  683 / 4096,  2951 / 4096,   462 / 4096 ],\n\t[   99 / 4096,   309 / 4096,  3688 / 4096 ]\n];\n*/\n// this includes the Ebner LMS coefficients,\n// the rotation, and the scaling to [-0.5,0.5] range\n// rational terms from Fröhlich p.97\n// and ITU-R BT.2124-0 pp.2-3\nconst LMStoIPT_M = [\n\t[  2048 / 4096,   2048 / 4096,       0      ],\n\t[  6610 / 4096, -13613 / 4096,  7003 / 4096 ],\n\t[ 17933 / 4096, -17390 / 4096,  -543 / 4096 ],\n];\n\n// inverted matrices, calculated from the above\nconst IPTtoLMS_M = [\n\t[ 0.9999999999999998,  0.0086090370379328,  0.1110296250030260 ],\n\t[ 0.9999999999999998, -0.0086090370379328, -0.1110296250030259 ],\n\t[ 0.9999999999999998,  0.5600313357106791, -0.3206271749873188 ],\n];\n/*\nconst LMStoRec2020_M = [\n\t[ 3.4375568932814012112,   -2.5072112125095058195,   0.069654319228104608382],\n\t[-0.79142868665644156125,   1.9838372198740089874,  -0.19240853321756742626 ],\n\t[-0.025646662911506476363, -0.099240248643945566751, 1.1248869115554520431  ]\n];\n*/\nconst LMStoXYZ_M = [\n\t[  2.0701522183894223, -1.3263473389671563,  0.2066510476294053 ],\n\t[  0.3647385209748072,  0.6805660249472273, -0.0453045459220347 ],\n\t[ -0.0497472075358123, -0.0492609666966131,  1.1880659249923042 ],\n];\n\n// Only the PQ form of ICtCp is implemented here. There is also an HLG form.\n// from Dolby, \"WHAT IS ICTCP?\"\n// https://professional.dolby.com/siteassets/pdfs/ictcp_dolbywhitepaper_v071.pdf\n// and\n// Dolby, \"Perceptual Color Volume\n// Measuring the Distinguishable Colors of HDR and WCG Displays\"\n// https://professional.dolby.com/siteassets/pdfs/dolby-vision-measuring-perceptual-color-volume-v7.1.pdf\nexport default new ColorSpace({\n\tid: \"ictcp\",\n\tname: \"ICTCP\",\n\t// From BT.2100-2 page 7:\n\t// During production, signal values are expected to exceed the\n\t// range E′ = [0.0 : 1.0]. This provides processing headroom and avoids\n\t// signal degradation during cascaded processing. Such values of E′,\n\t// below 0.0 or exceeding 1.0, should not be clipped during production\n\t// and exchange.\n\t// Values below 0.0 should not be clipped in reference displays (even\n\t// though they represent “negative” light) to allow the black level of\n\t// the signal (LB) to be properly set using test signals known as “PLUGE”\n\tcoords: {\n\t\ti: {\n\t\t\trefRange: [0, 1],\t// Constant luminance,\n\t\t\tname: \"I\",\n\t\t},\n\t\tct: {\n\t\t\trefRange: [-0.5, 0.5],\t// Full BT.2020 gamut in range [-0.5, 0.5]\n\t\t\tname: \"CT\",\n\t\t},\n\t\tcp: {\n\t\t\trefRange: [-0.5, 0.5],\n\t\t\tname: \"CP\",\n\t\t},\n\t},\n\n\tbase: XYZ_Abs_D65,\n\tfromBase (XYZ) {\n\t\t// move to LMS cone domain\n\t\tlet LMS = multiplyMatrices(XYZtoLMS_M, XYZ);\n\n\t\treturn LMStoICtCp(LMS);\n\t},\n\ttoBase (ICtCp) {\n\t\tlet LMS = ICtCptoLMS(ICtCp);\n\n\t\treturn multiplyMatrices(LMStoXYZ_M, LMS);\n\t},\n});\n\nfunction LMStoICtCp (LMS) {\n\t// apply the PQ EOTF\n\t// we can't ever be dividing by zero because of the \"1 +\" in the denominator\n\tlet PQLMS = LMS.map (function (val) {\n\t\tlet num = c1 + (c2 * ((val / 10000) ** m1));\n\t\tlet denom = 1 + (c3 * ((val / 10000) ** m1));\n\n\t\treturn (num / denom)  ** m2;\n\t});\n\n\t// LMS to IPT, with rotation for Y'C'bC'r compatibility\n\treturn multiplyMatrices(LMStoIPT_M, PQLMS);\n}\n\nfunction ICtCptoLMS (ICtCp) {\n\tlet PQLMS = multiplyMatrices(IPTtoLMS_M, ICtCp);\n\n\t// From BT.2124-0 Annex 2 Conversion 3\n\tlet LMS = PQLMS.map (function (val) {\n\t\tlet num  = Math.max((val ** im2) - c1, 0);\n\t\tlet denom = (c2 - (c3 * (val ** im2)));\n\t\treturn 10000 * ((num / denom) ** im1);\n\t});\n\n\treturn LMS;\n}\n", "import ictcp from \"../spaces/ictcp.js\";\nimport getColor from \"../getColor.js\";\n\n// Delta E in ICtCp space,\n// which the ITU calls Delta E ITP, which is shorter\n// formulae from ITU Rec. ITU-R BT.2124-0\n\nexport default function (color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\n\t// Given this color as the reference\n\t// and a sample,\n\t// calculate deltaE in ICtCp\n\t// which is simply the Euclidean distance\n\n\tlet [ I1, T1, P1 ] = ictcp.from(color);\n\tlet [ I2, T2, P2 ] = ictcp.from(sample);\n\n\t// the 0.25 factor is to undo the encoding scaling in Ct\n\t// the 720 is so that 1 deltaE = 1 JND\n\t// per  ITU-R BT.2124-0 p.3\n\n\treturn 720 * Math.sqrt((I1 - I2) ** 2 + (0.25 * (T1 - T2) ** 2) + (P1 - P2) ** 2);\n}\n", "import ColorSpace from \"../space.js\";\nimport {multiplyMatrices, interpolate, copySign, spow, zdiv, bisectLeft} from \"../util.js\";\nimport {constrain} from \"../angles.js\";\nimport xyz_d65 from \"./xyz-d65.js\";\nimport {WHITES} from \"../adapt.js\";\n\nconst white = WHITES.D65;\nconst adaptedCoef = 0.42;\nconst adaptedCoefInv = 1 / adaptedCoef;\nconst tau = 2 * Math.PI;\n\nconst cat16 = [\n\t[  0.401288,  0.650173, -0.051461 ],\n\t[ -0.250268,  1.204414,  0.045854 ],\n\t[ -0.002079,  0.048952,  0.953127 ],\n];\n\nconst cat16Inv = [\n\t[1.8620678550872327, -1.0112546305316843, 0.14918677544445175],\n\t[0.38752654323613717, 0.6214474419314753, -0.008973985167612518],\n\t[-0.015841498849333856, -0.03412293802851557, 1.0499644368778496],\n];\n\nconst m1 = [\n\t[460.0, 451.0, 288.0],\n\t[460.0, -891.0, -261.0],\n\t[460.0, -220.0, -6300.0],\n];\n\nconst surroundMap = {\n\tdark: [0.8, 0.525, 0.8],\n\tdim: [0.9, 0.59, 0.9],\n\taverage: [1, 0.69, 1],\n};\n\nconst hueQuadMap = {\n\t// Red, Yellow, Green, Blue, Red\n\th: [20.14, 90.00, 164.25, 237.53, 380.14],\n\te: [0.8, 0.7, 1.0, 1.2, 0.8],\n\tH: [0.0, 100.0, 200.0, 300.0, 400.0],\n};\n\nconst rad2deg = 180 / Math.PI;\nconst deg2rad = Math.PI / 180;\n\nexport function adapt (coords, fl) {\n\tconst temp = coords.map(c => {\n\t\tconst x = spow(fl * Math.abs(c) * 0.01, adaptedCoef);\n\t\treturn 400 * copySign(x, c) / (x + 27.13);\n\t});\n\treturn temp;\n}\n\nexport function unadapt (adapted, fl) {\n\tconst constant = 100 / fl * (27.13 ** adaptedCoefInv);\n\treturn adapted.map(c => {\n\t\tconst cabs = Math.abs(c);\n\t\treturn copySign(constant * spow(cabs / (400 - cabs), adaptedCoefInv), c);\n\t});\n}\n\nexport function hueQuadrature (h) {\n\tlet hp = constrain(h);\n\tif (hp <= hueQuadMap.h[0]) {\n\t\thp += 360;\n\t}\n\n\tconst i = bisectLeft(hueQuadMap.h, hp) - 1;\n\tconst [hi, hii] = hueQuadMap.h.slice(i, i + 2);\n\tconst [ei, eii] = hueQuadMap.e.slice(i, i + 2);\n\tconst Hi = hueQuadMap.H[i];\n\n\tconst t = (hp - hi) / ei;\n\treturn Hi + (100 * t) / (t + (hii - hp) / eii);\n}\n\nexport function invHueQuadrature (H) {\n\tlet Hp = ((H % 400 + 400) % 400);\n\tconst i = Math.floor(0.01 * Hp);\n\tHp = Hp % 100;\n\tconst [hi, hii] = hueQuadMap.h.slice(i, i + 2);\n\tconst [ei, eii] = hueQuadMap.e.slice(i, i + 2);\n\n\treturn constrain(\n\t\t(Hp * (eii * hi - ei * hii) - 100 * hi * eii) /\n\t\t(Hp * (eii - ei) - 100 * eii),\n\t);\n}\n\nexport function environment (\n\trefWhite,\n\tadaptingLuminance,\n\tbackgroundLuminance,\n\tsurround,\n\tdiscounting,\n) {\n\n\tconst env = {};\n\n\tenv.discounting = discounting;\n\tenv.refWhite = refWhite;\n\tenv.surround = surround;\n\tconst xyzW = refWhite.map(c => {\n\t\treturn c * 100;\n\t});\n\n\t// The average luminance of the environment in `cd/m^2cd/m` (a.k.a. nits)\n\tenv.la = adaptingLuminance;\n\t// The relative luminance of the nearby background\n\tenv.yb = backgroundLuminance;\n\t// Absolute luminance of the reference white.\n\tconst yw = xyzW[1];\n\n\t// Cone response for reference white\n\tconst rgbW = multiplyMatrices(cat16, xyzW);\n\n\t// Surround: dark, dim, and average\n\tsurround = surroundMap[env.surround];\n\tconst f = surround[0];\n\tenv.c = surround[1];\n\tenv.nc = surround[2];\n\n\tconst k = 1 / (5 * env.la + 1);\n\tconst k4 = k ** 4;\n\n\t// Factor of luminance level adaptation\n\tenv.fl = (k4 * env.la + 0.1 * (1 - k4) * (1 - k4) * Math.cbrt(5 * env.la));\n\tenv.flRoot = env.fl ** 0.25;\n\n\tenv.n = env.yb / yw;\n\tenv.z = 1.48 + Math.sqrt(env.n);\n\tenv.nbb = 0.725 * (env.n ** -0.2);\n\tenv.ncb = env.nbb;\n\n\t// Degree of adaptation calculating if not discounting\n\t// illuminant (assumed eye is fully adapted)\n\tconst d = (discounting) ?\n\t\t1 :\n\t\tMath.max(\n\t\t\tMath.min(f * (1 - 1 / 3.6 * Math.exp((-env.la - 42) / 92)), 1),\n\t\t\t0,\n\t\t);\n\tenv.dRgb = rgbW.map(c => {\n\t\treturn interpolate(1, yw / c, d);\n\t});\n\tenv.dRgbInv = env.dRgb.map(c => {\n\t\treturn 1 / c;\n\t});\n\n\t// Achromatic response\n\tconst rgbCW = rgbW.map((c, i) => {\n\t\treturn c * env.dRgb[i];\n\t});\n\tconst rgbAW = adapt(rgbCW, env.fl);\n\tenv.aW = env.nbb * (2 * rgbAW[0] + rgbAW[1] + 0.05 * rgbAW[2]);\n\n\t// console.log(env);\n\n\treturn env;\n}\n\n// Pre-calculate everything we can with the viewing conditions\nconst viewingConditions = environment(\n\twhite,\n\t64 / Math.PI * 0.2, 20,\n\t\"average\",\n\tfalse,\n);\n\nexport function fromCam16 (cam16, env) {\n\n\t// These check ensure one, and only one attribute for a\n\t// given category is provided.\n\tif (!((cam16.J !== undefined) ^ (cam16.Q !== undefined))) {\n\t\tthrow new Error(\"Conversion requires one and only one: 'J' or 'Q'\");\n\t}\n\n\tif (!((cam16.C !== undefined) ^ (cam16.M !== undefined) ^ (cam16.s !== undefined))) {\n\t\tthrow new Error(\"Conversion requires one and only one: 'C', 'M' or 's'\");\n\t}\n\n\t// Hue is absolutely required\n\tif (!((cam16.h !== undefined) ^ (cam16.H !== undefined))) {\n\t\tthrow new Error(\"Conversion requires one and only one: 'h' or 'H'\");\n\t}\n\n\t// Black\n\tif (cam16.J === 0.0 || cam16.Q === 0.0) {\n\t\treturn [0.0, 0.0, 0.0];\n\t}\n\n\t// Break hue into Cartesian components\n\tlet hRad = 0.0;\n\tif (cam16.h !== undefined) {\n\t\thRad = constrain(cam16.h) * deg2rad;\n\t}\n\telse {\n\t\thRad = invHueQuadrature(cam16.H) * deg2rad;\n\t}\n\n\tconst cosh = Math.cos(hRad);\n\tconst sinh = Math.sin(hRad);\n\n\t// Calculate `Jroot` from one of the lightness derived coordinates.\n\tlet Jroot = 0.0;\n\tif (cam16.J !== undefined) {\n\t\tJroot = spow(cam16.J, 1 / 2) * 0.1;\n\t}\n\telse if (cam16.Q !== undefined) {\n\t\tJroot = 0.25 * env.c * cam16.Q / ((env.aW + 4) * env.flRoot);\n\t}\n\n\t// Calculate the `t` value from one of the chroma derived coordinates\n\tlet alpha = 0.0;\n\tif (cam16.C !== undefined) {\n\t\talpha = cam16.C / Jroot;\n\t}\n\telse if (cam16.M !== undefined) {\n\t\talpha = (cam16.M / env.flRoot) / Jroot;\n\t}\n\telse if (cam16.s !== undefined) {\n\t\talpha = 0.0004 * (cam16.s ** 2) * (env.aW + 4) / env.c;\n\t}\n\tconst t = spow(\n\t\talpha * Math.pow(1.64 - Math.pow(0.29, env.n), -0.73),\n\t\t10 / 9,\n\t);\n\n\t// Eccentricity\n\tconst et = 0.25 * (Math.cos(hRad + 2) + 3.8);\n\n\t// Achromatic response\n\tconst A = env.aW * spow(Jroot, 2 / env.c / env.z);\n\n\t// Calculate red-green and yellow-blue components\n\tconst p1 = 5e4 / 13 * env.nc * env.ncb * et;\n\tconst p2 = A / env.nbb;\n\tconst r = (\n\t\t23 * (p2 + 0.305) *\n\t\tzdiv(t, 23 * p1 + t * (11 * cosh + 108 * sinh))\n\t);\n\tconst a = r * cosh;\n\tconst b = r * sinh;\n\n\t// Calculate back from cone response to XYZ\n\tconst rgb_c = unadapt(\n\t\tmultiplyMatrices(m1, [p2, a, b]).map(c => {\n\t\t\treturn c * 1 / 1403;\n\t\t}),\n\t\tenv.fl,\n\t);\n\treturn multiplyMatrices(\n\t\tcat16Inv,\n\t\trgb_c.map((c, i) => {\n\t\t\treturn c * env.dRgbInv[i];\n\t\t}),\n\t).map(c => {\n\t\treturn c / 100;\n\t});\n}\n\n\nexport function toCam16 (xyzd65, env) {\n\t// Cone response\n\tconst xyz100 = xyzd65.map(c => {\n\t\treturn c * 100;\n\t});\n\tconst rgbA = adapt(\n\t\tmultiplyMatrices(cat16, xyz100).map((c, i) => {\n\t\t\treturn c * env.dRgb[i];\n\t\t}),\n\t\tenv.fl,\n\t);\n\n\t// Calculate hue from red-green and yellow-blue components\n\tconst a = rgbA[0] + (-12 * rgbA[1] + rgbA[2]) / 11;\n\tconst b = (rgbA[0] + rgbA[1] - 2 * rgbA[2]) / 9;\n\tconst hRad = ((Math.atan2(b, a) % tau) + tau) % tau;\n\n\t// Eccentricity\n\tconst et = 0.25 * (Math.cos(hRad + 2) + 3.8);\n\n\tconst t = (\n\t\t5e4 / 13 * env.nc * env.ncb *\n\t\tzdiv(\n\t\t\tet * Math.sqrt(a ** 2 + b ** 2),\n\t\t\trgbA[0] + rgbA[1] + 1.05 * rgbA[2] + 0.305,\n\t\t)\n\t);\n\tconst alpha = spow(t, 0.9) * Math.pow(1.64 - Math.pow(0.29, env.n), 0.73);\n\n\t// Achromatic response\n\tconst A = env.nbb * (2 * rgbA[0] + rgbA[1] + 0.05 * rgbA[2]);\n\n\tconst Jroot = spow(A / env.aW, 0.5 * env.c * env.z);\n\n\t// Lightness\n\tconst J = 100 * spow(Jroot, 2);\n\n\t// Brightness\n\tconst Q = (4 / env.c * Jroot * (env.aW + 4) * env.flRoot);\n\n\t// Chroma\n\tconst C = alpha * Jroot;\n\n\t// Colorfulness\n\tconst M = C * env.flRoot;\n\n\t// Hue\n\tconst h = constrain(hRad * rad2deg);\n\n\t// Hue quadrature\n\tconst H = hueQuadrature(h);\n\n\t// Saturation\n\tconst s = 50 * spow(env.c * alpha / (env.aW + 4), 1 / 2);\n\n\t// console.log({J: J, C: C, h: h, s: s, Q: Q, M: M, H: H});\n\n\treturn {J: J, C: C, h: h, s: s, Q: Q, M: M, H: H};\n}\n\n\n// Provided as a way to directly evaluate the CAM16 model\n// https://observablehq.com/@jrus/cam16: reference implementation\n// https://arxiv.org/pdf/1802.06067.pdf: Nico Schlömer\n// https://onlinelibrary.wiley.com/doi/pdf/10.1002/col.22324: hue quadrature\n// https://www.researchgate.net/publication/318152296_Comprehensive_color_solutions_CAM16_CAT16_and_CAM16-UCS\n// Results compared against: https://github.com/colour-science/colour\nexport default new ColorSpace({\n\tid: \"cam16-jmh\",\n\tcssId: \"--cam16-jmh\",\n\tname: \"CAM16-JMh\",\n\tcoords: {\n\t\tj: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"J\",\n\t\t},\n\t\tm: {\n\t\t\trefRange: [0, 105.0],\n\t\t\tname: \"Colorfulness\",\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t},\n\n\tbase: xyz_d65,\n\n\tfromBase (xyz) {\n\t\tconst cam16 = toCam16(xyz, viewingConditions);\n\t\treturn [cam16.J, cam16.M, cam16.h];\n\t},\n\ttoBase (cam16) {\n\t\treturn fromCam16(\n\t\t\t{J: cam16[0], M: cam16[1], h: cam16[2]},\n\t\t\tviewingConditions,\n\t\t);\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport {constrain} from \"../angles.js\";\nimport xyz_d65 from \"./xyz-d65.js\";\nimport {fromCam16, toCam16, environment} from \"./cam16.js\";\nimport {WHITES} from \"../adapt.js\";\n\nconst white = WHITES.D65;\nconst ε = 216 / 24389;  // 6^3/29^3 == (24/116)^3\nconst κ = 24389 / 27;   // 29^3/3^3\n\nfunction toLstar (y) {\n\t// Convert XYZ Y to L*\n\n\tconst fy = (y > ε) ? Math.cbrt(y) : (κ * y + 16) / 116;\n\treturn (116.0 * fy) - 16.0;\n}\n\nfunction fromLstar (lstar) {\n\t// Convert L* back to XYZ Y\n\n\treturn (lstar > 8) ?  Math.pow((lstar + 16) / 116, 3) : lstar / κ;\n}\n\nfunction fromHct (coords, env) {\n\t// Use Newton's method to try and converge as quick as possible or\n\t// converge as close as we can. While the requested precision is achieved\n\t// most of the time, it may not always be achievable. Especially past the\n\t// visible spectrum, the algorithm will likely struggle to get the same\n\t// precision. If, for whatever reason, we cannot achieve the accuracy we\n\t// seek in the allotted iterations, just return the closest we were able to\n\t// get.\n\n\tlet [h, c, t] = coords;\n\tlet xyz = [];\n\tlet j = 0;\n\n\t// Shortcut out for black\n\tif (t === 0) {\n\t\treturn [0.0, 0.0, 0.0];\n\t}\n\n\t// Calculate the Y we need to target\n\tlet y = fromLstar(t);\n\n\t// A better initial guess yields better results. Polynomials come from\n\t// curve fitting the T vs J response.\n\tif (t > 0) {\n\t\tj = 0.00379058511492914 * t ** 2 + 0.608983189401032 * t + 0.9155088574762233;\n\t}\n\telse {\n\t\tj = 9.514440756550361e-06 * t ** 2 + 0.08693057439788597 * t - 21.928975842194614;\n\t}\n\n\t// Threshold of how close is close enough, and max number of attempts.\n\t// More precision and more attempts means more time spent iterating. Higher\n\t// required precision gives more accuracy but also increases the chance of\n\t// not hitting the goal. 2e-12 allows us to convert round trip with\n\t// reasonable accuracy of six decimal places or more.\n\tconst threshold = 2e-12;\n\tconst max_attempts = 15;\n\n\tlet attempt = 0;\n\tlet last = Infinity;\n\tlet best = j;\n\n\t// Try to find a J such that the returned y matches the returned y of the L*\n\twhile (attempt <= max_attempts) {\n\t\txyz = fromCam16({J: j, C: c, h: h}, env);\n\n\t\t// If we are within range, return XYZ\n\t\t// If we are closer than last time, save the values\n\t\tconst delta = Math.abs(xyz[1] - y);\n\t\tif (delta < last) {\n\t\t\tif (delta <= threshold) {\n\t\t\t\treturn xyz;\n\t\t\t}\n\t\t\tbest = j;\n\t\t\tlast = delta;\n\t\t}\n\n\t\t// f(j_root) = (j ** (1 / 2)) * 0.1\n\t\t// f(j) = ((f(j_root) * 100) ** 2) / j - 1 = 0\n\t\t// f(j_root) = Y = y / 100\n\t\t// f(j) = (y ** 2) / j - 1\n\t\t// f'(j) = (2 * y) / j\n\t\tj = j - (xyz[1] - y) * j / (2 * xyz[1]);\n\n\t\tattempt += 1;\n\t}\n\n\t// We could not acquire the precision we desired,\n\t// return our closest attempt.\n\treturn fromCam16({J: j, C: c, h: h}, env);\n}\n\nfunction toHct (xyz, env) {\n\t// Calculate HCT by taking the L* of CIE LCh D65 and CAM16 chroma and hue.\n\n\tconst t = toLstar(xyz[1]);\n\tif (t === 0.0) {\n\t\treturn [0.0, 0.0, 0.0];\n\t}\n\tconst cam16 = toCam16(xyz, viewingConditions);\n\treturn [constrain(cam16.h), cam16.C, t];\n}\n\n// Pre-calculate everything we can with the viewing conditions\nexport const viewingConditions = environment(\n\twhite, 200 / Math.PI * fromLstar(50.0),\n\tfromLstar(50.0) * 100,\n\t\"average\",\n\tfalse,\n);\n\n// https://material.io/blog/science-of-color-design\n// This is not a port of the material-color-utilities,\n// but instead implements the full color space as described,\n// combining CAM16 JCh and Lab D65. This does not clamp conversion\n// to HCT to specific chroma bands and provides support for wider\n// gamuts than Google currently supports and does so at a greater\n// precision (> 8 bits back to sRGB).\n// This implementation comes from https://github.com/facelessuser/coloraide\n// which is licensed under MIT.\nexport default new ColorSpace({\n\tid: \"hct\",\n\tname: \"HCT\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, 145],\n\t\t\tname: \"Colorfulness\",\n\t\t},\n\t\tt: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Tone\",\n\t\t},\n\t},\n\n\tbase: xyz_d65,\n\n\tfromBase (xyz) {\n\t\treturn toHct(xyz, viewingConditions);\n\t},\n\ttoBase (hct) {\n\t\treturn fromHct(hct, viewingConditions);\n\t},\n\tformats: {\n\t\tcolor: {\n\t\t\tid: \"--hct\",\n\t\t\tcoords: [\"<number> | <angle>\", \"<percentage> | <number>\", \"<percentage> | <number>\"],\n\t\t},\n\t},\n});\n", "import hct from \"../spaces/hct.js\";\nimport {viewingConditions} from \"../spaces/hct.js\";\nimport getColor from \"../getColor.js\";\n\nconst rad2deg = 180 / Math.PI;\nconst deg2rad = Math.PI / 180;\nconst ucsCoeff = [1.00, 0.007, 0.0228];\n\n/**\n* Convert HCT chroma and hue (CAM16 JMh colorfulness and hue) using UCS logic for a and b.\n* @param {number[]} coords - HCT coordinates.\n* @return {number[]}\n*/\nfunction convertUcsAb (coords) {\n\t// We want the distance between the actual color.\n\t// If chroma is negative, it will throw off our calculations.\n\t// Normally, converting back to the base and forward will correct it.\n\t// If we have a negative chroma after this, then we have a color that\n\t// cannot resolve to positive chroma.\n\tif (coords[1] < 0) {\n\t\tcoords = hct.fromBase(hct.toBase(coords));\n\t}\n\n\t// Only in extreme cases (usually outside the visible spectrum)\n\t// can the input value for log become negative.\n\t// Avoid domain error by forcing a zero result via \"max\" if necessary.\n\tconst M = Math.log(Math.max(1 + ucsCoeff[2] * coords[1] * viewingConditions.flRoot, 1.0)) / ucsCoeff[2];\n\tconst hrad = coords[0] * deg2rad;\n\tconst a = M * Math.cos(hrad);\n\tconst b = M * Math.sin(hrad);\n\n\treturn [coords[2], a, b];\n}\n\n\n/**\n* Color distance using HCT.\n* @param {Color} color - Color to compare.\n* @param {Color} sample - Color to compare.\n* @return {number[]}\n*/\nexport default function (color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\n\tlet [ t1, a1, b1 ] = convertUcsAb(hct.from(color));\n\tlet [ t2, a2, b2 ] = convertUcsAb(hct.from(sample));\n\n\t// Use simple euclidean distance with a and b using UCS conversion\n\t// and LCh lightness (HCT tone).\n\treturn Math.sqrt((t1 - t2) ** 2 + (a1 - a2) ** 2 + (b1 - b2) ** 2);\n}\n", "import deltaE76 from \"./deltaE76.js\";\nimport deltaECMC from \"./deltaECMC.js\";\nimport deltaE2000 from \"./deltaE2000.js\";\nimport deltaEJz from \"./deltaEJz.js\";\nimport deltaEITP from \"./deltaEITP.js\";\nimport deltaEOK from \"./deltaEOK.js\";\nimport deltaEHCT from \"./deltaEHCT.js\";\n\nexport {\n\tdeltaE76,\n\tdeltaECMC,\n\tdeltaE2000,\n\tdeltaEJz,\n\tdeltaEITP,\n\tdeltaEOK,\n\tdeltaEHCT,\n};\n\nexport default {\n\tdeltaE76,\n\tdeltaECMC,\n\tdeltaE2000,\n\tdeltaEJz,\n\tdeltaEITP,\n\tdeltaEOK,\n\tdeltaEHCT,\n};\n", "import * as util from \"./util.js\";\nimport ColorSpace from \"./space.js\";\nimport defaults from \"./defaults.js\";\nimport deltaE2000 from \"./deltaE/deltaE2000.js\";\nimport deltaEOK from \"./deltaE/deltaEOK.js\";\nimport inGamut from \"./inGamut.js\";\nimport to from \"./to.js\";\nimport get from \"./get.js\";\nimport oklab from \"./spaces/oklab.js\";\nimport set from \"./set.js\";\nimport clone from \"./clone.js\";\nimport getColor from \"./getColor.js\";\nimport deltaEMethods from \"./deltaE/index.js\";\nimport {WHITES} from \"./adapt.js\";\n\n/**\n * Calculate the epsilon to 2 degrees smaller than the specified JND.\n * @param {Number} jnd - The target \"just noticeable difference\".\n * @returns {Number}\n */\nfunction calcEpsilon (jnd) {\n\t// Calculate the epsilon to 2 degrees smaller than the specified JND.\n\n\tconst order = (!jnd) ? 0 : Math.floor(Math.log10(Math.abs(jnd)));\n\t// Limit to an arbitrary value to ensure value is never too small and causes infinite loops.\n\treturn Math.max(parseFloat(`1e${order - 2}`), 1e-6);\n}\n\nconst GMAPPRESET = {\n\t\"hct\": {\n\t\tmethod: \"hct.c\",\n\t\tjnd: 2,\n\t\tdeltaEMethod: \"hct\",\n\t\tblackWhiteClamp: {},\n\t},\n\t\"hct-tonal\": {\n\t\tmethod: \"hct.c\",\n\t\tjnd: 0,\n\t\tdeltaEMethod: \"hct\",\n\t\tblackWhiteClamp: { channel: \"hct.t\", min: 0, max: 100 },\n\t},\n};\n\n/**\n * Force coordinates to be in gamut of a certain color space.\n * Mutates the color it is passed.\n * @param {Object|string} options object or spaceId string\n * @param {string} options.method - How to force into gamut.\n *        If \"clip\", coordinates are just clipped to their reference range.\n *        If \"css\", coordinates are reduced according to the CSS 4 Gamut Mapping Algorithm.\n *        If in the form [colorSpaceId].[coordName], that coordinate is reduced\n *        until the color is in gamut. Please note that this may produce nonsensical\n *        results for certain coordinates (e.g. hue) or infinite loops if reducing the coordinate never brings the color in gamut.\n * @param {ColorSpace|string} options.space - The space whose gamut we want to map to\n * @param {string} options.deltaEMethod - The delta E method to use while performing gamut mapping.\n *        If no method is specified, delta E 2000 is used.\n * @param {Number} options.jnd - The \"just noticeable difference\" to target.\n * @param {Object} options.blackWhiteClamp - Used to configure SDR black and clamping.\n *        \"channel\" indicates the \"space.channel\" to use for determining when to clamp.\n *        \"min\" indicates the lower limit for black clamping and \"max\" indicates the upper\n *        limit for white clamping.\n */\n\nexport default function toGamut (\n\tcolor,\n\t{\n\t\tmethod = defaults.gamut_mapping,\n\t\tspace = undefined,\n\t\tdeltaEMethod = \"\",\n\t\tjnd = 2,\n\t\tblackWhiteClamp = {},\n\t} = {},\n) {\n\tcolor = getColor(color);\n\n\tif (util.isString(arguments[1])) {\n\t\tspace = arguments[1];\n\t}\n\telse if (!space) {\n\t\tspace = color.space;\n\t}\n\n\tspace = ColorSpace.get(space);\n\n\t// 3 spaces:\n\t// color.space: current color space\n\t// space: space whose gamut we are mapping to\n\t// mapSpace: space with the coord we're reducing\n\n\tif (inGamut(color, space, { epsilon: 0 })) {\n\t\treturn color;\n\t}\n\n\tlet spaceColor;\n\tif (method === \"css\") {\n\t\tspaceColor = toGamutCSS(color, { space });\n\t}\n\telse {\n\t\tif (method !== \"clip\" && !inGamut(color, space)) {\n\n\t\t\tif (Object.prototype.hasOwnProperty.call(GMAPPRESET, method)) {\n\t\t\t\t({method, jnd, deltaEMethod, blackWhiteClamp} = GMAPPRESET[method]);\n\t\t\t}\n\n\t\t\t// Get the correct delta E method\n\t\t\tlet de = deltaE2000;\n\t\t\tif (deltaEMethod !== \"\") {\n\t\t\t\tfor (let m in deltaEMethods) {\n\t\t\t\t\tif (\"deltae\" + deltaEMethod.toLowerCase() === m.toLowerCase()) {\n\t\t\t\t\t\tde = deltaEMethods[m];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet clipped = toGamut(to(color, space), { method: \"clip\", space });\n\t\t\tif (de(color, clipped) > jnd) {\n\n\t\t\t\t// Clamp to SDR white and black if required\n\t\t\t\tif (Object.keys(blackWhiteClamp).length === 3) {\n\t\t\t\t\tlet channelMeta = ColorSpace.resolveCoord(blackWhiteClamp.channel);\n\t\t\t\t\tlet channel = get(to(color, channelMeta.space), channelMeta.id);\n\t\t\t\t\tif (util.isNone(channel)) {\n\t\t\t\t\t\tchannel = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (channel >= blackWhiteClamp.max) {\n\t\t\t\t\t\treturn to({ space: \"xyz-d65\", coords: WHITES[\"D65\"] }, color.space);\n\t\t\t\t\t}\n\t\t\t\t\telse if (channel <= blackWhiteClamp.min) {\n\t\t\t\t\t\treturn to({ space: \"xyz-d65\", coords: [0, 0, 0] }, color.space);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Reduce a coordinate of a certain color space until the color is in gamut\n\t\t\t\tlet coordMeta = ColorSpace.resolveCoord(method);\n\t\t\t\tlet mapSpace = coordMeta.space;\n\t\t\t\tlet coordId = coordMeta.id;\n\n\t\t\t\tlet mappedColor = to(color, mapSpace);\n\t\t\t\t// If we were already in the mapped color space, we need to resolve undefined channels\n\t\t\t\tmappedColor.coords.forEach((c, i) => {\n\t\t\t\t\tif (util.isNone(c)) {\n\t\t\t\t\t\tmappedColor.coords[i] = 0;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tlet bounds = coordMeta.range || coordMeta.refRange;\n\t\t\t\tlet min = bounds[0];\n\t\t\t\tlet ε = calcEpsilon(jnd);\n\t\t\t\tlet low = min;\n\t\t\t\tlet high = get(mappedColor, coordId);\n\n\t\t\t\twhile (high - low > ε) {\n\t\t\t\t\tlet clipped = clone(mappedColor);\n\t\t\t\t\tclipped = toGamut(clipped, { space, method: \"clip\" });\n\t\t\t\t\tlet deltaE = de(mappedColor, clipped);\n\n\t\t\t\t\tif (deltaE - jnd < ε) {\n\t\t\t\t\t\tlow = get(mappedColor, coordId);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\thigh = get(mappedColor, coordId);\n\t\t\t\t\t}\n\n\t\t\t\t\tset(mappedColor, coordId, (low + high) / 2);\n\t\t\t\t}\n\n\t\t\t\tspaceColor = to(mappedColor, space);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tspaceColor = clipped;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tspaceColor = to(color, space);\n\t\t}\n\n\t\tif (method === \"clip\" // Dumb coord clipping\n\t\t\t// finish off smarter gamut mapping with clip to get rid of ε, see #17\n\t\t\t|| !inGamut(spaceColor, space, { epsilon: 0 })\n\t\t) {\n\t\t\tlet bounds = Object.values(space.coords).map(c => c.range || []);\n\n\t\t\tspaceColor.coords = spaceColor.coords.map((c, i) => {\n\t\t\t\tlet [min, max] = bounds[i];\n\n\t\t\t\tif (min !== undefined) {\n\t\t\t\t\tc = Math.max(min, c);\n\t\t\t\t}\n\n\t\t\t\tif (max !== undefined) {\n\t\t\t\t\tc = Math.min(c, max);\n\t\t\t\t}\n\n\t\t\t\treturn c;\n\t\t\t});\n\t\t}\n\t}\n\n\tif (space !== color.space) {\n\t\tspaceColor = to(spaceColor, color.space);\n\t}\n\n\tcolor.coords = spaceColor.coords;\n\treturn color;\n}\n\ntoGamut.returns = \"color\";\n\n// The reference colors to be used if lightness is out of the range 0-1 in the\n// `Oklch` space. These are created in the `Oklab` space, as it is used by the\n// DeltaEOK calculation, so it is guaranteed to be imported.\nconst COLORS = {\n\tWHITE: { space: oklab, coords: [1, 0, 0] },\n\tBLACK: { space: oklab, coords: [0, 0, 0] },\n};\n\n/**\n * Given a color `origin`, returns a new color that is in gamut using\n * the CSS Gamut Mapping Algorithm. If `space` is specified, it will be in gamut\n * in `space`, and returned in `space`. Otherwise, it will be in gamut and\n * returned in the color space of `origin`.\n * @param {Object} origin\n * @param {Object} options\n * @param {ColorSpace|string} options.space\n * @returns {Color}\n */\nexport function toGamutCSS (origin, {space} = {}) {\n\tconst JND = 0.02;\n\tconst ε = 0.0001;\n\n\torigin = getColor(origin);\n\n\tif (!space) {\n\t\tspace = origin.space;\n\t}\n\n\tspace = ColorSpace.get(space);\n\tconst oklchSpace = ColorSpace.get(\"oklch\");\n\n\tif (space.isUnbounded) {\n\t\treturn to(origin, space);\n\t}\n\n\tconst origin_OKLCH = to(origin, oklchSpace);\n\tlet L = origin_OKLCH.coords[0];\n\n\t// return media white or black, if lightness is out of range\n\tif (L >= 1) {\n\t\tconst white = to(COLORS.WHITE, space);\n\t\twhite.alpha = origin.alpha;\n\t\treturn to(white, space);\n\t}\n\tif (L <= 0) {\n\t\tconst black = to(COLORS.BLACK, space);\n\t\tblack.alpha = origin.alpha;\n\t\treturn to(black, space);\n\t}\n\n\tif (inGamut(origin_OKLCH, space, {epsilon: 0})) {\n\t\treturn to(origin_OKLCH, space);\n\t}\n\n\tfunction clip (_color) {\n\t\tconst destColor = to(_color, space);\n\t\tconst spaceCoords = Object.values(space.coords);\n\t\tdestColor.coords = destColor.coords.map((coord, index) => {\n\t\t\tif (\"range\" in spaceCoords[index]) {\n\t\t\t\tconst [min, max] =  spaceCoords[index].range;\n\t\t\t\treturn util.clamp(min, coord, max);\n\t\t\t}\n\t\t\treturn coord;\n\t\t});\n\t\treturn destColor;\n\t}\n\tlet min = 0;\n\tlet max = origin_OKLCH.coords[1];\n\tlet min_inGamut = true;\n\tlet current = clone(origin_OKLCH);\n\tlet clipped = clip(current);\n\n\tlet E = deltaEOK(clipped, current);\n\tif (E < JND) {\n\t\treturn clipped;\n\t}\n\n\twhile ((max - min) > ε) {\n\t\tconst chroma = (min + max) / 2;\n\t\tcurrent.coords[1] = chroma;\n\t\tif (min_inGamut && inGamut(current, space, {epsilon: 0})) {\n\t\t\tmin = chroma;\n\t\t}\n\t\telse {\n\t\t\tclipped = clip(current);\n\t\t\tE = deltaEOK(clipped, current);\n\t\t\tif (E < JND) {\n\t\t\t\tif ((JND - E < ε)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmin_inGamut = false;\n\t\t\t\t\tmin = chroma;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmax = chroma;\n\t\t\t}\n\t\t}\n\t}\n\treturn clipped;\n}\n", "import getColor from \"./getColor.js\";\nimport ColorSpace from \"./space.js\";\nimport toGamut from \"./toGamut.js\";\n\n/**\n * Convert to color space and return a new color\n * @param {Object|string} space - Color space object or id\n * @param {Object} options\n * @param {boolean} options.inGamut - Whether to force resulting color in gamut\n * @returns {Color}\n */\nexport default function to (color, space, {inGamut} = {}) {\n\tcolor = getColor(color);\n\tspace = ColorSpace.get(space);\n\n\tlet coords = space.from(color);\n\tlet ret = {space, coords, alpha: color.alpha};\n\n\tif (inGamut) {\n\t\tret = toGamut(ret, inGamut === true ? undefined : inGamut);\n\t}\n\n\treturn ret;\n}\n\nto.returns = \"color\";\n", "import * as util from \"./util.js\";\nimport ColorSpace from \"./space.js\";\nimport defaults from \"./defaults.js\";\nimport getColor from \"./getColor.js\";\nimport checkInGamut from \"./inGamut.js\";\nimport toGamut from \"./toGamut.js\";\nimport clone from \"./clone.js\";\n\n/**\n * Generic toString() method, outputs a color(spaceId ...coords) function, a functional syntax, or custom formats defined by the color space\n * @param {Object} options\n * @param {number} options.precision - Significant digits\n * @param {boolean} options.inGamut - Adjust coordinates to fit in gamut first? [default: false]\n */\nexport default function serialize (color, {\n\tprecision = defaults.precision,\n\tformat = \"default\",\n\tinGamut = true,\n\t...customOptions\n} = {}) {\n\tlet ret;\n\n\tcolor = getColor(color);\n\n\tlet formatId = format;\n\tformat = color.space.getFormat(format)\n\t       ?? color.space.getFormat(\"default\")\n\t       ?? ColorSpace.DEFAULT_FORMAT;\n\n\t// The assignment to coords and inGamut needs to stay in the order they are now\n\t// The order of the assignment was changed as a workaround for a bug in Next.js\n\t// See this issue for details: https://github.com/color-js/color.js/issues/260\n\n\tlet coords = color.coords.slice(); // clone so we can manipulate it\n\n\tinGamut ||= format.toGamut;\n\n\tif (inGamut && !checkInGamut(color)) {\n\t\t// FIXME what happens if the color contains NaNs?\n\t\tcoords = toGamut(clone(color), inGamut === true ? undefined : inGamut).coords;\n\t}\n\n\tif (format.type === \"custom\") {\n\t\tcustomOptions.precision = precision;\n\n\t\tif (format.serialize) {\n\t\t\tret = format.serialize(coords, color.alpha, customOptions);\n\t\t}\n\t\telse {\n\t\t\tthrow new TypeError(`format ${formatId} can only be used to parse colors, not for serialization`);\n\t\t}\n\t}\n\telse {\n\t\t// Functional syntax\n\t\tlet name = format.name || \"color\";\n\n\t\tif (format.serializeCoords) {\n\t\t\tcoords = format.serializeCoords(coords, precision);\n\t\t}\n\t\telse {\n\t\t\tif (precision !== null) {\n\t\t\t\tcoords = coords.map(c => {\n\t\t\t\t\treturn util.serializeNumber(c, {precision});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tlet args = [...coords];\n\n\t\tif (name === \"color\") {\n\t\t\t// If output is a color() function, add colorspace id as first argument\n\t\t\tlet cssId = format.id || format.ids?.[0] || color.space.id;\n\t\t\targs.unshift(cssId);\n\t\t}\n\n\t\tlet alpha = color.alpha;\n\t\tif (precision !== null) {\n\t\t\talpha = util.serializeNumber(alpha, {precision});\n\t\t}\n\n\t\tlet strAlpha = color.alpha >= 1 || format.noAlpha ? \"\" : `${format.commas ? \",\" : \" /\"} ${alpha}`;\n\t\tret = `${name}(${args.join(format.commas ? \", \" : \" \")}${strAlpha})`;\n\t}\n\n\treturn ret;\n}\n", "import RGBColorSpace from \"../rgbspace.js\";\n\n// convert an array of linear-light rec2020 values to CIE XYZ\n// using  D65 (no chromatic adaptation)\n// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n// 0 is actually calculated as  4.994106574466076e-17\nconst toXYZ_M = [\n\t[ 0.6369580483012914, 0.14461690358620832,  0.1688809751641721  ],\n\t[ 0.2627002120112671, 0.6779980715188708,   0.05930171646986196 ],\n\t[ 0.000000000000000,  0.028072693049087428, 1.060985057710791   ],\n];\n\n// from ITU-R BT.2124-0 Annex 2 p.3\nconst fromXYZ_M = [\n\t[  1.716651187971268,  -0.355670783776392, -0.253366281373660  ],\n\t[ -0.666684351832489,   1.616481236634939,  0.0157685458139111 ],\n\t[  0.017639857445311,  -0.042770613257809,  0.942103121235474  ],\n];\n\nexport default new RGBColorSpace({\n\tid: \"rec2020-linear\",\n\tcssId: \"--rec2020-linear\",\n\tname: \"Linear REC.2020\",\n\twhite: \"D65\",\n\ttoXYZ_M,\n\tfromXYZ_M,\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport REC2020Linear from \"./rec2020-linear.js\";\n// import sRGB from \"./srgb.js\";\n\nconst α = 1.09929682680944;\nconst β = 0.018053968510807;\n\nexport default new RGBColorSpace({\n\tid: \"rec2020\",\n\tname: \"REC.2020\",\n\tbase: REC2020Linear,\n\t// Non-linear transfer function from Rec. ITU-R BT.2020-2 table 4\n\ttoBase (RGB) {\n\t\treturn RGB.map(function (val) {\n\t\t\tif (val < β * 4.5) {\n\t\t\t\treturn val / 4.5;\n\t\t\t}\n\n\t\t\treturn Math.pow((val + α - 1) / α, 1 / 0.45);\n\t\t});\n\t},\n\tfromBase (RGB) {\n\t\treturn RGB.map(function (val) {\n\t\t\tif (val >= β) {\n\t\t\t\treturn α * Math.pow(val, 0.45) - (α - 1);\n\t\t\t}\n\n\t\t\treturn 4.5 * val;\n\t\t});\n\t},\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\n\nconst toXYZ_M = [\n\t[0.4865709486482162, 0.26566769316909306, 0.1982172852343625],\n\t[0.2289745640697488, 0.6917385218365064,  0.079286914093745],\n\t[0.0000000000000000, 0.04511338185890264, 1.043944368900976],\n];\n\nconst fromXYZ_M = [\n\t[ 2.493496911941425,   -0.9313836179191239, -0.40271078445071684],\n\t[-0.8294889695615747,   1.7626640603183463,  0.023624685841943577],\n\t[ 0.03584583024378447, -0.07617238926804182, 0.9568845240076872],\n];\n\nexport default new RGBColorSpace({\n\tid: \"p3-linear\",\n\tcssId: \"--display-p3-linear\",\n\tname: \"Linear P3\",\n\twhite: \"D65\",\n\ttoXYZ_M,\n\tfromXYZ_M,\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\n\n// This is the linear-light version of sRGB\n// as used for example in SVG filters\n// or in Canvas\n\n// This matrix was calculated directly from the RGB and white chromaticities\n// when rounded to 8 decimal places, it agrees completely with the official matrix\n// see https://github.com/w3c/csswg-drafts/issues/5922\nconst toXYZ_M = [\n\t[ 0.41239079926595934, 0.357584339383878,   0.1804807884018343  ],\n\t[ 0.21263900587151027, 0.715168678767756,   0.07219231536073371 ],\n\t[ 0.01933081871559182, 0.11919477979462598, 0.9505321522496607  ],\n];\n\n// This matrix is the inverse of the above;\n// again it agrees with the official definition when rounded to 8 decimal places\nexport const fromXYZ_M = [\n\t[  3.2409699419045226,  -1.537383177570094,   -0.4986107602930034  ],\n\t[ -0.9692436362808796,   1.8759675015077202,   0.04155505740717559 ],\n\t[  0.05563007969699366, -0.20397695888897652,  1.0569715142428786  ],\n];\n\nexport default new RGBColorSpace({\n\tid: \"srgb-linear\",\n\tname: \"Linear sRGB\",\n\twhite: \"D65\",\n\ttoXYZ_M,\n\tfromXYZ_M,\n});\n", "/* List of CSS color keywords\n * Note that this does not include currentColor, transparent,\n * or system colors\n */\n\n// To produce: Visit https://www.w3.org/TR/css-color-4/#named-colors\n// and run in the console:\n// copy($$(\"tr\", $(\".named-color-table tbody\")).map(tr => `\"${tr.cells[2].textContent.trim()}\": [${tr.cells[4].textContent.trim().split(/\\s+/).map(c => c === \"0\"? \"0\" : c === \"255\"? \"1\" : c + \" / 255\").join(\", \")}]`).join(\",\\n\"))\nexport default {\n\t\"aliceblue\": [240 / 255, 248 / 255, 1],\n\t\"antiquewhite\": [250 / 255, 235 / 255, 215 / 255],\n\t\"aqua\": [0, 1, 1],\n\t\"aquamarine\": [127 / 255, 1, 212 / 255],\n\t\"azure\": [240 / 255, 1, 1],\n\t\"beige\": [245 / 255, 245 / 255, 220 / 255],\n\t\"bisque\": [1, 228 / 255, 196 / 255],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [1, 235 / 255, 205 / 255],\n\t\"blue\": [0, 0, 1],\n\t\"blueviolet\": [138 / 255, 43 / 255, 226 / 255],\n\t\"brown\": [165 / 255, 42 / 255, 42 / 255],\n\t\"burlywood\": [222 / 255, 184 / 255, 135 / 255],\n\t\"cadetblue\": [95 / 255, 158 / 255, 160 / 255],\n\t\"chartreuse\": [127 / 255, 1, 0],\n\t\"chocolate\": [210 / 255, 105 / 255, 30 / 255],\n\t\"coral\": [1, 127 / 255, 80 / 255],\n\t\"cornflowerblue\": [100 / 255, 149 / 255, 237 / 255],\n\t\"cornsilk\": [1, 248 / 255, 220 / 255],\n\t\"crimson\": [220 / 255, 20 / 255, 60 / 255],\n\t\"cyan\": [0, 1, 1],\n\t\"darkblue\": [0, 0, 139 / 255],\n\t\"darkcyan\": [0, 139 / 255, 139 / 255],\n\t\"darkgoldenrod\": [184 / 255, 134 / 255, 11 / 255],\n\t\"darkgray\": [169 / 255, 169 / 255, 169 / 255],\n\t\"darkgreen\": [0, 100 / 255, 0],\n\t\"darkgrey\": [169 / 255, 169 / 255, 169 / 255],\n\t\"darkkhaki\": [189 / 255, 183 / 255, 107 / 255],\n\t\"darkmagenta\": [139 / 255, 0, 139 / 255],\n\t\"darkolivegreen\": [85 / 255, 107 / 255, 47 / 255],\n\t\"darkorange\": [1, 140 / 255, 0],\n\t\"darkorchid\": [153 / 255, 50 / 255, 204 / 255],\n\t\"darkred\": [139 / 255, 0, 0],\n\t\"darksalmon\": [233 / 255, 150 / 255, 122 / 255],\n\t\"darkseagreen\": [143 / 255, 188 / 255, 143 / 255],\n\t\"darkslateblue\": [72 / 255, 61 / 255, 139 / 255],\n\t\"darkslategray\": [47 / 255, 79 / 255, 79 / 255],\n\t\"darkslategrey\": [47 / 255, 79 / 255, 79 / 255],\n\t\"darkturquoise\": [0, 206 / 255, 209 / 255],\n\t\"darkviolet\": [148 / 255, 0, 211 / 255],\n\t\"deeppink\": [1, 20 / 255, 147 / 255],\n\t\"deepskyblue\": [0, 191 / 255, 1],\n\t\"dimgray\": [105 / 255, 105 / 255, 105 / 255],\n\t\"dimgrey\": [105 / 255, 105 / 255, 105 / 255],\n\t\"dodgerblue\": [30 / 255, 144 / 255, 1],\n\t\"firebrick\": [178 / 255, 34 / 255, 34 / 255],\n\t\"floralwhite\": [1, 250 / 255, 240 / 255],\n\t\"forestgreen\": [34 / 255, 139 / 255, 34 / 255],\n\t\"fuchsia\": [1, 0, 1],\n\t\"gainsboro\": [220 / 255, 220 / 255, 220 / 255],\n\t\"ghostwhite\": [248 / 255, 248 / 255, 1],\n\t\"gold\": [1, 215 / 255, 0],\n\t\"goldenrod\": [218 / 255, 165 / 255, 32 / 255],\n\t\"gray\": [128 / 255, 128 / 255, 128 / 255],\n\t\"green\": [0, 128 / 255, 0],\n\t\"greenyellow\": [173 / 255, 1, 47 / 255],\n\t\"grey\": [128 / 255, 128 / 255, 128 / 255],\n\t\"honeydew\": [240 / 255, 1, 240 / 255],\n\t\"hotpink\": [1, 105 / 255, 180 / 255],\n\t\"indianred\": [205 / 255, 92 / 255, 92 / 255],\n\t\"indigo\": [75 / 255, 0, 130 / 255],\n\t\"ivory\": [1, 1, 240 / 255],\n\t\"khaki\": [240 / 255, 230 / 255, 140 / 255],\n\t\"lavender\": [230 / 255, 230 / 255, 250 / 255],\n\t\"lavenderblush\": [1, 240 / 255, 245 / 255],\n\t\"lawngreen\": [124 / 255, 252 / 255, 0],\n\t\"lemonchiffon\": [1, 250 / 255, 205 / 255],\n\t\"lightblue\": [173 / 255, 216 / 255, 230 / 255],\n\t\"lightcoral\": [240 / 255, 128 / 255, 128 / 255],\n\t\"lightcyan\": [224 / 255, 1, 1],\n\t\"lightgoldenrodyellow\": [250 / 255, 250 / 255, 210 / 255],\n\t\"lightgray\": [211 / 255, 211 / 255, 211 / 255],\n\t\"lightgreen\": [144 / 255, 238 / 255, 144 / 255],\n\t\"lightgrey\": [211 / 255, 211 / 255, 211 / 255],\n\t\"lightpink\": [1, 182 / 255, 193 / 255],\n\t\"lightsalmon\": [1, 160 / 255, 122 / 255],\n\t\"lightseagreen\": [32 / 255, 178 / 255, 170 / 255],\n\t\"lightskyblue\": [135 / 255, 206 / 255, 250 / 255],\n\t\"lightslategray\": [119 / 255, 136 / 255, 153 / 255],\n\t\"lightslategrey\": [119 / 255, 136 / 255, 153 / 255],\n\t\"lightsteelblue\": [176 / 255, 196 / 255, 222 / 255],\n\t\"lightyellow\": [1, 1, 224 / 255],\n\t\"lime\": [0, 1, 0],\n\t\"limegreen\": [50 / 255, 205 / 255, 50 / 255],\n\t\"linen\": [250 / 255, 240 / 255, 230 / 255],\n\t\"magenta\": [1, 0, 1],\n\t\"maroon\": [128 / 255, 0, 0],\n\t\"mediumaquamarine\": [102 / 255, 205 / 255, 170 / 255],\n\t\"mediumblue\": [0, 0, 205 / 255],\n\t\"mediumorchid\": [186 / 255, 85 / 255, 211 / 255],\n\t\"mediumpurple\": [147 / 255, 112 / 255, 219 / 255],\n\t\"mediumseagreen\": [60 / 255, 179 / 255, 113 / 255],\n\t\"mediumslateblue\": [123 / 255, 104 / 255, 238 / 255],\n\t\"mediumspringgreen\": [0, 250 / 255, 154 / 255],\n\t\"mediumturquoise\": [72 / 255, 209 / 255, 204 / 255],\n\t\"mediumvioletred\": [199 / 255, 21 / 255, 133 / 255],\n\t\"midnightblue\": [25 / 255, 25 / 255, 112 / 255],\n\t\"mintcream\": [245 / 255, 1, 250 / 255],\n\t\"mistyrose\": [1, 228 / 255, 225 / 255],\n\t\"moccasin\": [1, 228 / 255, 181 / 255],\n\t\"navajowhite\": [1, 222 / 255, 173 / 255],\n\t\"navy\": [0, 0, 128 / 255],\n\t\"oldlace\": [253 / 255, 245 / 255, 230 / 255],\n\t\"olive\": [128 / 255, 128 / 255, 0],\n\t\"olivedrab\": [107 / 255, 142 / 255, 35 / 255],\n\t\"orange\": [1, 165 / 255, 0],\n\t\"orangered\": [1, 69 / 255, 0],\n\t\"orchid\": [218 / 255, 112 / 255, 214 / 255],\n\t\"palegoldenrod\": [238 / 255, 232 / 255, 170 / 255],\n\t\"palegreen\": [152 / 255, 251 / 255, 152 / 255],\n\t\"paleturquoise\": [175 / 255, 238 / 255, 238 / 255],\n\t\"palevioletred\": [219 / 255, 112 / 255, 147 / 255],\n\t\"papayawhip\": [1, 239 / 255, 213 / 255],\n\t\"peachpuff\": [1, 218 / 255, 185 / 255],\n\t\"peru\": [205 / 255, 133 / 255, 63 / 255],\n\t\"pink\": [1, 192 / 255, 203 / 255],\n\t\"plum\": [221 / 255, 160 / 255, 221 / 255],\n\t\"powderblue\": [176 / 255, 224 / 255, 230 / 255],\n\t\"purple\": [128 / 255, 0, 128 / 255],\n\t\"rebeccapurple\": [102 / 255, 51 / 255, 153 / 255],\n\t\"red\": [1, 0, 0],\n\t\"rosybrown\": [188 / 255, 143 / 255, 143 / 255],\n\t\"royalblue\": [65 / 255, 105 / 255, 225 / 255],\n\t\"saddlebrown\": [139 / 255, 69 / 255, 19 / 255],\n\t\"salmon\": [250 / 255, 128 / 255, 114 / 255],\n\t\"sandybrown\": [244 / 255, 164 / 255, 96 / 255],\n\t\"seagreen\": [46 / 255, 139 / 255, 87 / 255],\n\t\"seashell\": [1, 245 / 255, 238 / 255],\n\t\"sienna\": [160 / 255, 82 / 255, 45 / 255],\n\t\"silver\": [192 / 255, 192 / 255, 192 / 255],\n\t\"skyblue\": [135 / 255, 206 / 255, 235 / 255],\n\t\"slateblue\": [106 / 255, 90 / 255, 205 / 255],\n\t\"slategray\": [112 / 255, 128 / 255, 144 / 255],\n\t\"slategrey\": [112 / 255, 128 / 255, 144 / 255],\n\t\"snow\": [1, 250 / 255, 250 / 255],\n\t\"springgreen\": [0, 1, 127 / 255],\n\t\"steelblue\": [70 / 255, 130 / 255, 180 / 255],\n\t\"tan\": [210 / 255, 180 / 255, 140 / 255],\n\t\"teal\": [0, 128 / 255, 128 / 255],\n\t\"thistle\": [216 / 255, 191 / 255, 216 / 255],\n\t\"tomato\": [1, 99 / 255, 71 / 255],\n\t\"turquoise\": [64 / 255, 224 / 255, 208 / 255],\n\t\"violet\": [238 / 255, 130 / 255, 238 / 255],\n\t\"wheat\": [245 / 255, 222 / 255, 179 / 255],\n\t\"white\": [1, 1, 1],\n\t\"whitesmoke\": [245 / 255, 245 / 255, 245 / 255],\n\t\"yellow\": [1, 1, 0],\n\t\"yellowgreen\": [154 / 255, 205 / 255, 50 / 255],\n};\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport sRGBLinear from \"./srgb-linear.js\";\nimport KEYWORDS from \"../keywords.js\";\n\nlet coordGrammar = Array(3).fill(\"<percentage> | <number>[0, 255]\");\nlet coordGrammarNumber = Array(3).fill(\"<number>[0, 255]\");\n\nexport default new RGBColorSpace({\n\tid: \"srgb\",\n\tname: \"sRGB\",\n\tbase: sRGBLinear,\n\tfromBase: rgb => {\n\t\t// convert an array of linear-light sRGB values in the range 0.0-1.0\n\t\t// to gamma corrected form\n\t\t// https://en.wikipedia.org/wiki/SRGB\n\t\treturn rgb.map(val => {\n\t\t\tlet sign = val < 0 ? -1 : 1;\n\t\t\tlet abs = val * sign;\n\n\t\t\tif (abs > 0.0031308) {\n\t\t\t\treturn sign * (1.055 * (abs ** (1 / 2.4)) - 0.055);\n\t\t\t}\n\n\t\t\treturn 12.92 * val;\n\t\t});\n\t},\n\ttoBase: rgb => {\n\t\t// convert an array of sRGB values in the range 0.0 - 1.0\n\t\t// to linear light (un-companded) form.\n\t\t// https://en.wikipedia.org/wiki/SRGB\n\t\treturn rgb.map(val => {\n\t\t\tlet sign = val < 0 ? -1 : 1;\n\t\t\tlet abs = val * sign;\n\n\t\t\tif (abs <= 0.04045) {\n\t\t\t\treturn val / 12.92;\n\t\t\t}\n\n\t\t\treturn sign * (((abs + 0.055) / 1.055) ** 2.4);\n\t\t});\n\t},\n\tformats: {\n\t\t\"rgb\": {\n\t\t\tcoords: coordGrammar,\n\t\t},\n\t\t\"rgb_number\": {\n\t\t\tname: \"rgb\",\n\t\t\tcommas: true,\n\t\t\tcoords: coordGrammarNumber,\n\t\t\tnoAlpha: true,\n\t\t},\n\t\t\"color\": { /* use defaults */ },\n\t\t\"rgba\": {\n\t\t\tcoords: coordGrammar,\n\t\t\tcommas: true,\n\t\t\tlastAlpha: true,\n\t\t},\n\t\t\"rgba_number\": {\n\t\t\tname: \"rgba\",\n\t\t\tcommas: true,\n\t\t\tcoords: coordGrammarNumber,\n\t\t},\n\t\t\"hex\": {\n\t\t\ttype: \"custom\",\n\t\t\ttoGamut: true,\n\t\t\ttest: str => /^#([a-f0-9]{3,4}){1,2}$/i.test(str),\n\t\t\tparse (str) {\n\t\t\t\tif (str.length <= 5) {\n\t\t\t\t\t// #rgb or #rgba, duplicate digits\n\t\t\t\t\tstr = str.replace(/[a-f0-9]/gi, \"$&$&\");\n\t\t\t\t}\n\n\t\t\t\tlet rgba = [];\n\t\t\t\tstr.replace(/[a-f0-9]{2}/gi, component => {\n\t\t\t\t\trgba.push(parseInt(component, 16) / 255);\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tspaceId: \"srgb\",\n\t\t\t\t\tcoords: rgba.slice(0, 3),\n\t\t\t\t\talpha: rgba.slice(3)[0],\n\t\t\t\t};\n\t\t\t},\n\t\t\tserialize: (coords, alpha, {\n\t\t\t\tcollapse = true, // collapse to 3-4 digit hex when possible?\n\t\t\t} = {}) => {\n\t\t\t\tif (alpha < 1) {\n\t\t\t\t\tcoords.push(alpha);\n\t\t\t\t}\n\n\t\t\t\tcoords = coords.map(c => Math.round(c * 255));\n\n\t\t\t\tlet collapsible = collapse && coords.every(c => c % 17 === 0);\n\n\t\t\t\tlet hex = coords.map(c => {\n\t\t\t\t\tif (collapsible) {\n\t\t\t\t\t\treturn (c / 17).toString(16);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn c.toString(16).padStart(2, \"0\");\n\t\t\t\t}).join(\"\");\n\n\t\t\t\treturn \"#\" + hex;\n\t\t\t},\n\t\t},\n\t\t\"keyword\": {\n\t\t\ttype: \"custom\",\n\t\t\ttest: str => /^[a-z]+$/i.test(str),\n\t\t\tparse (str) {\n\t\t\t\tstr = str.toLowerCase();\n\t\t\t\tlet ret = {spaceId: \"srgb\", coords: null, alpha: 1};\n\n\t\t\t\tif (str === \"transparent\") {\n\t\t\t\t\tret.coords = KEYWORDS.black;\n\t\t\t\t\tret.alpha = 0;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tret.coords = KEYWORDS[str];\n\t\t\t\t}\n\n\t\t\t\tif (ret.coords) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport P3Linear from \"./p3-linear.js\";\nimport sRGB from \"./srgb.js\";\n\nexport default new RGBColorSpace({\n\tid: \"p3\",\n\tcssId: \"display-p3\",\n\tname: \"P3\",\n\tbase: P3Linear,\n\t// Gamma encoding/decoding is the same as sRGB\n\tfromBase: sRGB.fromBase,\n\ttoBase: sRGB.toBase,\n});\n", "import { isNone, skipNone } from \"./util.js\";\nimport defaults from \"./defaults.js\";\nimport to from \"./to.js\";\nimport serialize from \"./serialize.js\";\nimport clone from \"./clone.js\";\nimport REC2020 from \"./spaces/rec2020.js\";\nimport P3 from \"./spaces/p3.js\";\nimport Lab from \"./spaces/lab.js\";\nimport sRGB from \"./spaces/srgb.js\";\n\n// Default space for CSS output. Code in Color.js makes this wider if there's a DOM available\ndefaults.display_space = sRGB;\n\nlet supportsNone;\n\nif (typeof CSS !== \"undefined\" && CSS.supports) {\n\t// Find widest supported color space for CSS\n\tfor (let space of [Lab, REC2020, P3]) {\n\t\tlet coords = space.getMinCoords();\n\t\tlet color = {space, coords, alpha: 1};\n\t\tlet str = serialize(color);\n\n\t\tif (CSS.supports(\"color\", str)) {\n\t\t\tdefaults.display_space = space;\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\n/**\n * Returns a serialization of the color that can actually be displayed in the browser.\n * If the default serialization can be displayed, it is returned.\n * Otherwise, the color is converted to Lab, REC2020, or P3, whichever is the widest supported.\n * In Node.js, this is basically equivalent to `serialize()` but returns a `String` object instead.\n *\n * @export\n * @param {{space, coords} | Color | string} color\n * @param {*} [options={}] Options to be passed to serialize()\n * @param {ColorSpace | string} [options.space = defaults.display_space] Color space to use for serialization if default is not supported\n * @returns {String} String object containing the serialized color with a color property containing the converted color (or the original, if no conversion was necessary)\n */\nexport default function display (color, {space = defaults.display_space, ...options} = {}) {\n\tlet ret = serialize(color, options);\n\n\tif (typeof CSS === \"undefined\" || CSS.supports(\"color\", ret) || !defaults.display_space) {\n\t\tret = new String(ret);\n\t\tret.color = color;\n\t}\n\telse {\n\t\t// If we're here, what we were about to output is not supported\n\t\tlet fallbackColor = color;\n\n\t\t// First, check if the culprit is none values\n\t\tlet hasNone = color.coords.some(isNone) || isNone(color.alpha);\n\n\t\tif (hasNone) {\n\t\t\t// Does the browser support none values?\n\t\t\tif (!(supportsNone ??= CSS.supports(\"color\", \"hsl(none 50% 50%)\"))) {\n\t\t\t\t// Nope, try again without none\n\t\t\t\tfallbackColor = clone(color);\n\t\t\t\tfallbackColor.coords = fallbackColor.coords.map(skipNone);\n\t\t\t\tfallbackColor.alpha = skipNone(fallbackColor.alpha);\n\n\t\t\t\tret = serialize(fallbackColor, options);\n\n\t\t\t\tif (CSS.supports(\"color\", ret)) {\n\t\t\t\t\t// We're done, now it's supported\n\t\t\t\t\tret = new String(ret);\n\t\t\t\t\tret.color = fallbackColor;\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're here, the color function is not supported\n\t\t// Fall back to fallback space\n\t\tfallbackColor = to(fallbackColor, space);\n\t\tret = new String(serialize(fallbackColor, options));\n\t\tret.color = fallbackColor;\n\t}\n\n\treturn ret;\n}\n", "import getColor from \"./getColor.js\";\n\nexport default function equals (color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\n\treturn color1.space === color2.space\n\t       && color1.alpha === color2.alpha\n\t       && color1.coords.every((c, i) => c === color2.coords[i]);\n}\n", "/**\n * Relative luminance\n */\nimport get from \"./get.js\";\nimport set from \"./set.js\";\nimport xyz_d65 from \"./spaces/xyz-d65.js\";\n\nexport function getLuminance (color) {\n\t// Assume getColor() is called on color in get()\n\treturn get(color, [xyz_d65, \"y\"]);\n}\n\nexport function setLuminance (color, value) {\n\t// Assume getColor() is called on color in set()\n\tset(color, [xyz_d65, \"y\"], value);\n}\n\nexport function register (Color) {\n\tObject.defineProperty(Color.prototype, \"luminance\", {\n\t\tget () {\n\t\t\treturn getLuminance(this);\n\t\t},\n\t\tset (value) {\n\t\t\tsetLuminance(this, value);\n\t\t},\n\t});\n}\n", "// WCAG 2.0 contrast https://www.w3.org/TR/WCAG20-TECHS/G18.html\n// Simple contrast, with fixed 5% viewing flare contribution\n// Symmetric, does not matter which is foreground and which is background\n\nimport getColor from \"../getColor.js\";\nimport {getLuminance} from \"../luminance.js\";\n\nexport default function contrastWCAG21 (color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\n\tlet Y1 = Math.max(getLuminance(color1), 0);\n\tlet Y2 = Math.max(getLuminance(color2), 0);\n\n\tif (Y2 > Y1) {\n\t\t[Y1, Y2] = [Y2, Y1];\n\t}\n\n\treturn (Y1 + .05) / (Y2 + .05);\n}\n", "// APCA 0.0.98G\n// https://github.com/Myndex/apca-w3\n// see also https://github.com/w3c/silver/issues/643\n\nimport getColor from \"../getColor.js\";\nimport to from \"../to.js\";\n\n// exponents\nconst normBG = 0.56;\nconst normTXT = 0.57;\nconst revTXT = 0.62;\nconst revBG = 0.65;\n\n// clamps\nconst blkThrs = 0.022;\nconst blkClmp = 1.414;\nconst loClip = 0.1;\nconst deltaYmin = 0.0005;\n\n// scalers\n// see https://github.com/w3c/silver/issues/645\nconst scaleBoW = 1.14;\nconst loBoWoffset = 0.027;\nconst scaleWoB = 1.14;\nconst loWoBoffset = 0.027;\n\nfunction fclamp (Y) {\n\tif (Y >= blkThrs) {\n\t\treturn Y;\n\t}\n\treturn Y + (blkThrs - Y) ** blkClmp;\n}\n\nfunction linearize (val) {\n\tlet sign = val < 0 ? -1 : 1;\n\tlet abs = Math.abs(val);\n\treturn sign * Math.pow(abs, 2.4);\n}\n\n// Not symmetric, requires a foreground (text) color, and a background color\nexport default function contrastAPCA (background, foreground) {\n\tforeground = getColor(foreground);\n\tbackground = getColor(background);\n\n\tlet S;\n\tlet C;\n\tlet Sapc;\n\n\t// Myndex as-published, assumes sRGB inputs\n\tlet R, G, B;\n\n\tforeground = to(foreground, \"srgb\");\n\t// Should these be clamped to in-gamut values?\n\n\t// Calculates \"screen luminance\" with non-standard simple gamma EOTF\n\t// weights should be from CSS Color 4, not the ones here which are via Myndex and copied from Lindbloom\n\t[R, G, B] = foreground.coords;\n\tlet lumTxt = linearize(R) * 0.2126729 + linearize(G) * 0.7151522 + linearize(B) * 0.0721750;\n\n\tbackground = to(background, \"srgb\");\n\t[R, G, B] = background.coords;\n\tlet lumBg = linearize(R) * 0.2126729 + linearize(G) * 0.7151522 + linearize(B) * 0.0721750;\n\n\t// toe clamping of very dark values to account for flare\n\tlet Ytxt = fclamp(lumTxt);\n\tlet Ybg = fclamp(lumBg);\n\n\t// are we \"Black on White\" (dark on light), or light on dark?\n\tlet BoW = Ybg > Ytxt;\n\n\t// why is this a delta, when Y is not perceptually uniform?\n\t// Answer: it is a noise gate, see\n\t// https://github.com/LeaVerou/color.js/issues/208\n\tif (Math.abs(Ybg - Ytxt) < deltaYmin) {\n\t\tC = 0;\n\t}\n\telse {\n\t\tif (BoW) {\n\t\t\t// dark text on light background\n\t\t\tS = Ybg ** normBG - Ytxt ** normTXT;\n\t\t\tC = S * scaleBoW;\n\t\t}\n\t\telse {\n\t\t\t// light text on dark background\n\t\t\tS = Ybg ** revBG - Ytxt ** revTXT;\n\t\t\tC = S * scaleWoB;\n\t\t}\n\t}\n\tif (Math.abs(C) < loClip) {\n\t\tSapc = 0;\n\t}\n\telse if (C > 0) {\n\t\t// not clear whether Woffset is loBoWoffset or loWoBoffset\n\t\t// but they have the same value\n\t\tSapc = C - loBoWoffset;\n\t}\n\telse {\n\t\tSapc = C + loBoWoffset;\n\t}\n\n\treturn Sapc * 100;\n}\n", "// Michelson  luminance contrast\n// the relation between the spread and the sum of the two luminances\n// Symmetric, does not matter which is foreground and which is background\n// No black level compensation for flare.\n\nimport getColor from \"../getColor.js\";\nimport {getLuminance} from \"../luminance.js\";\n\nexport default function contrastMichelson (color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\n\tlet Y1 = Math.max(getLuminance(color1), 0);\n\tlet Y2 = Math.max(getLuminance(color2), 0);\n\n\tif (Y2 > Y1) {\n\t\t[Y1, Y2] = [Y2, Y1];\n\t}\n\n\tlet denom = (Y1 + Y2);\n\treturn denom === 0 ? 0 : (Y1 - Y2) / denom;\n}\n", "// Weber luminance contrast\n// The difference between the two luminances divided by the lower luminance\n// Symmetric, does not matter which is foreground and which is background\n// No black level compensation for flare.\n\nimport getColor from \"../getColor.js\";\nimport {getLuminance} from \"../luminance.js\";\n\n// the darkest sRGB color above black is #000001 and this produces\n// a plain Weber contrast of ~45647.\n// So, setting the divide-by-zero result at 50000 is a reasonable\n// max clamp for the plain Weber\nconst max = 50000;\n\nexport default function contrastWeber (color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\n\tlet Y1 = Math.max(getLuminance(color1), 0);\n\tlet Y2 = Math.max(getLuminance(color2), 0);\n\n\tif (Y2 > Y1) {\n\t\t[Y1, Y2] = [Y2, Y1];\n\t}\n\n\treturn Y2 === 0 ? max : (Y1 - Y2) / Y2;\n}\n", "// CIE Lightness difference, as used by Google Material Design\n// Google HCT Tone is the same as CIE Lightness\n// https://material.io/blog/science-of-color-design\n\nimport getColor from \"../getColor.js\";\nimport get from \"../get.js\";\nimport lab from \"../spaces/lab.js\";\n\nexport default function contrastLstar (color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\n\tlet L1 = get(color1, [lab, \"l\"]);\n\tlet L2 = get(color2, [lab, \"l\"]);\n\n\treturn Math.abs(L1 - L2);\n}\n", "import ColorSpace from \"../space.js\";\nimport {WHITES} from \"../adapt.js\";\nimport xyz_d65 from \"./xyz-d65.js\";\n\n// κ * ε  = 2^3 = 8\nconst ε = 216 / 24389;  // 6^3/29^3 == (24/116)^3\nconst ε3 = 24 / 116;\nconst κ = 24389 / 27;   // 29^3/3^3\n\nlet white = WHITES.D65;\n\nexport default new ColorSpace({\n\tid: \"lab-d65\",\n\tname: \"Lab D65\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t\ta: {\n\t\t\trefRange: [-125, 125],\n\t\t},\n\t\tb: {\n\t\t\trefRange: [-125, 125],\n\t\t},\n\t},\n\n\t// Assuming XYZ is relative to D65, convert to CIE Lab\n\t// from CIE standard, which now defines these as a rational fraction\n\twhite,\n\n\tbase: xyz_d65,\n\t// Convert D65-adapted XYZ to Lab\n\t//  CIE 15.3:2004 section 8.2.1.1\n\tfromBase (XYZ) {\n\t\t// compute xyz, which is XYZ scaled relative to reference white\n\t\tlet xyz = XYZ.map((value, i) => value / white[i]);\n\n\t\t// now compute f\n\t\tlet f = xyz.map(value => value > ε ? Math.cbrt(value) : (κ * value + 16) / 116);\n\n\t\treturn [\n\t\t\t(116 * f[1]) - 16,   // L\n\t\t\t500 * (f[0] - f[1]), // a\n\t\t\t200 * (f[1] - f[2]),  // b\n\t\t];\n\t},\n\t// Convert Lab to D65-adapted XYZ\n\t// Same result as CIE 15.3:2004 Appendix D although the derivation is different\n\t// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\ttoBase (Lab) {\n\t\t// compute f, starting with the luminance-related term\n\t\tlet f = [];\n\t\tf[1] = (Lab[0] + 16) / 116;\n\t\tf[0] = Lab[1] / 500 + f[1];\n\t\tf[2] = f[1] - Lab[2] / 200;\n\n\t\t// compute xyz\n\t\tlet xyz = [\n\t\t\tf[0]   > ε3 ? Math.pow(f[0], 3)                : (116 * f[0] - 16) / κ,\n\t\t\tLab[0] > 8  ? Math.pow((Lab[0] + 16) / 116, 3) : Lab[0] / κ,\n\t\t\tf[2]   > ε3 ? Math.pow(f[2], 3)                : (116 * f[2] - 16) / κ,\n\t\t];\n\n\t\t// Compute XYZ by scaling xyz by reference white\n\t\treturn xyz.map((value, i) => value * white[i]);\n\t},\n\n\tformats: {\n\t\t\"lab-d65\": {\n\t\t\tcoords: [\"<number> | <percentage>\", \"<number> | <percentage>[-1,1]\", \"<number> | <percentage>[-1,1]\"],\n\t\t},\n\t},\n});\n", "// Delta Phi Star perceptual lightness contrast\n// See https://github.com/Myndex/deltaphistar\n// The (difference between two Lstars each raised to phi) raised to (1/phi)\n// Symmetric, does not matter which is foreground and which is background\n\n\nimport getColor from \"../getColor.js\";\nimport get from \"../get.js\";\nimport lab_d65 from \"../spaces/lab-d65.js\";\n\nconst phi = Math.pow(5, 0.5) * 0.5 + 0.5; // Math.phi can be used if Math.js\n\nexport default function contrastDeltaPhi (color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\n\tlet Lstr1 = get(color1, [lab_d65, \"l\"]);\n\tlet Lstr2 = get(color2, [lab_d65, \"l\"]);\n\n\tlet deltaPhiStar = Math.abs(Math.pow(Lstr1, phi) - Math.pow(Lstr2, phi));\n\n\tlet contrast = Math.pow(deltaPhiStar, (1 / phi)) * Math.SQRT2 - 40;\n\n\treturn (contrast < 7.5) ? 0.0 : contrast ;\n}\n", "import getColor from \"./getColor.js\";\n// import defaults from \"./defaults.js\";\nimport {isString} from \"./util.js\";\nimport * as contrastAlgorithms from \"./contrast/index.js\";\n\nexport default function contrast (background, foreground, o = {}) {\n\tif (isString(o)) {\n\t\to = {algorithm: o};\n\t}\n\n\tlet {algorithm, ...rest} = o;\n\n\tif (!algorithm) {\n\t\tlet algorithms = Object.keys(contrastAlgorithms).map(a => a.replace(/^contrast/, \"\")).join(\", \");\n\t\tthrow new TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${algorithms}`);\n\t}\n\n\tbackground = getColor(background);\n\tforeground = getColor(foreground);\n\n\tfor (let a in contrastAlgorithms) {\n\t\tif (\"contrast\" + algorithm.toLowerCase() === a.toLowerCase()) {\n\t\t\treturn contrastAlgorithms[a](background, foreground, rest);\n\t\t}\n\t}\n\n\tthrow new TypeError(`Unknown contrast algorithm: ${algorithm}`);\n}\n", "import xyz_d65 from \"./spaces/xyz-d65.js\";\nimport getAll from \"./getAll.js\";\n\n// Chromaticity coordinates\nexport function uv (color) {\n\t// Assumes getAll() calls getColor() on color\n\tlet [X, Y, Z] = getAll(color, xyz_d65);\n\tlet denom = X + 15 * Y + 3 * Z;\n\treturn [4 * X / denom, 9 * Y / denom];\n}\n\nexport function xy (color) {\n\t// Assumes getAll() calls getColor() on color\n\tlet [X, Y, Z] = getAll(color, xyz_d65);\n\tlet  sum = X + Y + Z;\n\treturn [X / sum, Y / sum];\n}\n\nexport function register (Color) {\n\t// no setters, as lightness information is lost\n\t// when converting color to chromaticity\n\tObject.defineProperty(Color.prototype, \"uv\", {\n\t\tget () {\n\t\t\treturn uv(this);\n\t\t},\n\t});\n\n\tObject.defineProperty(Color.prototype, \"xy\", {\n\t\tget () {\n\t\t\treturn xy(this);\n\t\t},\n\t});\n}\n", "import defaults from \"./defaults.js\";\nimport {isString} from \"./util.js\";\nimport deltaEMethods from \"./deltaE/index.js\";\n\nexport default function deltaE (c1, c2, o = {}) {\n\tif (isString(o)) {\n\t\to = {method: o};\n\t}\n\n\tlet {method = defaults.deltaE, ...rest} = o;\n\n\tfor (let m in deltaEMethods) {\n\t\tif (\"deltae\" + method.toLowerCase() === m.toLowerCase()) {\n\t\t\treturn deltaEMethods[m](c1, c2, rest);\n\t\t}\n\t}\n\n\tthrow new TypeError(`Unknown deltaE method: ${method}`);\n}\n", "import ColorSpace from \"./space.js\";\nimport set from \"./set.js\";\n\nexport function lighten (color, amount = .25) {\n\tlet space = ColorSpace.get(\"oklch\", \"lch\");\n\tlet lightness = [space, \"l\"];\n\treturn set(color, lightness, l => l * (1 + amount));\n}\n\nexport function darken (color, amount = .25) {\n\tlet space = ColorSpace.get(\"oklch\", \"lch\");\n\tlet lightness = [space, \"l\"];\n\treturn set(color, lightness, l => l * (1 - amount));\n}\n", "/**\n * Functions related to color interpolation\n */\nimport ColorSpace from \"./space.js\";\nimport {type, interpolate} from \"./util.js\";\nimport getColor from \"./getColor.js\";\nimport clone from \"./clone.js\";\nimport to from \"./to.js\";\nimport toGamut from \"./toGamut.js\";\nimport get from \"./get.js\";\nimport set from \"./set.js\";\nimport defaults from \"./defaults.js\";\nimport * as angles from \"./angles.js\";\nimport deltaE from \"./deltaE.js\";\n\n/**\n * Return an intermediate color between two colors\n * Signatures: mix(c1, c2, p, options)\n *             mix(c1, c2, options)\n *             mix(color)\n * @param {Color | string} c1 The first color\n * @param {Color | string} [c2] The second color\n * @param {number} [p=.5] A 0-1 percentage where 0 is c1 and 1 is c2\n * @param {Object} [o={}]\n * @return {Color}\n */\nexport function mix (c1, c2, p = .5, o = {}) {\n\t[c1, c2] = [getColor(c1), getColor(c2)];\n\n\tif (type(p) === \"object\") {\n\t\t[p, o] = [.5, p];\n\t}\n\n\tlet r = range(c1, c2, o);\n\treturn r(p);\n}\n\n/**\n *\n * @param {Color | string | Function} c1 The first color or a range\n * @param {Color | string} [c2] The second color if c1 is not a range\n * @param {Object} [options={}]\n * @return {Color[]}\n */\nexport function steps (c1, c2, options = {}) {\n\tlet colorRange;\n\n\tif (isRange(c1)) {\n\t\t// Tweaking existing range\n\t\t[colorRange, options] = [c1, c2];\n\t\t[c1, c2] = colorRange.rangeArgs.colors;\n\t}\n\n\tlet {\n\t\tmaxDeltaE, deltaEMethod,\n\t\tsteps = 2, maxSteps = 1000,\n\t\t...rangeOptions\n\t} = options;\n\n\tif (!colorRange) {\n\t\t[c1, c2] = [getColor(c1), getColor(c2)];\n\t\tcolorRange = range(c1, c2, rangeOptions);\n\t}\n\n\tlet totalDelta = deltaE(c1, c2);\n\tlet actualSteps = maxDeltaE > 0 ? Math.max(steps, Math.ceil(totalDelta / maxDeltaE) + 1) : steps;\n\tlet ret = [];\n\n\tif (maxSteps !== undefined) {\n\t\tactualSteps = Math.min(actualSteps, maxSteps);\n\t}\n\n\tif (actualSteps === 1) {\n\t\tret = [{p: .5, color: colorRange(.5)}];\n\t}\n\telse {\n\t\tlet step = 1 / (actualSteps - 1);\n\t\tret = Array.from({length: actualSteps}, (_, i) => {\n\t\t\tlet p = i * step;\n\t\t\treturn {p, color: colorRange(p)};\n\t\t});\n\t}\n\n\tif (maxDeltaE > 0) {\n\t\t// Iterate over all stops and find max deltaE\n\t\tlet maxDelta = ret.reduce((acc, cur, i) => {\n\t\t\tif (i === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tlet ΔΕ = deltaE(cur.color, ret[i - 1].color, deltaEMethod);\n\t\t\treturn Math.max(acc, ΔΕ);\n\t\t}, 0);\n\n\t\twhile (maxDelta > maxDeltaE) {\n\t\t\t// Insert intermediate stops and measure maxDelta again\n\t\t\t// We need to do this for all pairs, otherwise the midpoint shifts\n\t\t\tmaxDelta = 0;\n\n\t\t\tfor (let i = 1; (i < ret.length) && (ret.length < maxSteps); i++) {\n\t\t\t\tlet prev = ret[i - 1];\n\t\t\t\tlet cur = ret[i];\n\n\t\t\t\tlet p = (cur.p + prev.p) / 2;\n\t\t\t\tlet color = colorRange(p);\n\t\t\t\tmaxDelta = Math.max(maxDelta, deltaE(color, prev.color), deltaE(color, cur.color));\n\t\t\t\tret.splice(i, 0, {p, color: colorRange(p)});\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\t}\n\n\tret = ret.map(a => a.color);\n\n\treturn ret;\n}\n\n/**\n * Interpolate to color2 and return a function that takes a 0-1 percentage\n * @param {Color | string | Function} color1 The first color or an existing range\n * @param {Color | string} [color2] If color1 is a color, this is the second color\n * @param {Object} [options={}]\n * @returns {Function} A function that takes a 0-1 percentage and returns a color\n */\nexport function range (color1, color2, options = {}) {\n\tif (isRange(color1)) {\n\t\t// Tweaking existing range\n\t\tlet [r, options] = [color1, color2];\n\n\t\treturn range(...r.rangeArgs.colors, {...r.rangeArgs.options, ...options});\n\t}\n\n\tlet {space, outputSpace, progression, premultiplied} = options;\n\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\n\t// Make sure we're working on copies of these colors\n\tcolor1 = clone(color1);\n\tcolor2 = clone(color2);\n\n\tlet rangeArgs = {colors: [color1, color2], options};\n\n\tif (space) {\n\t\tspace = ColorSpace.get(space);\n\t}\n\telse {\n\t\tspace = ColorSpace.registry[defaults.interpolationSpace] || color1.space;\n\t}\n\n\toutputSpace = outputSpace ? ColorSpace.get(outputSpace) : space;\n\n\tcolor1 = to(color1, space);\n\tcolor2 = to(color2, space);\n\n\t// Gamut map to avoid areas of flat color\n\tcolor1 = toGamut(color1);\n\tcolor2 = toGamut(color2);\n\n\t// Handle hue interpolation\n\t// See https://github.com/w3c/csswg-drafts/issues/4735#issuecomment-635741840\n\tif (space.coords.h && space.coords.h.type === \"angle\") {\n\t\tlet arc = options.hue = options.hue || \"shorter\";\n\n\t\tlet hue = [space, \"h\"];\n\t\tlet [θ1, θ2] = [get(color1, hue), get(color2, hue)];\n\t\t// Undefined hues must be evaluated before hue fix-up to properly\n\t\t// calculate hue arcs between undefined and defined hues.\n\t\t// See https://github.com/w3c/csswg-drafts/issues/9436#issuecomment-1746957545\n\t\tif (isNaN(θ1) && !isNaN(θ2)) {\n\t\t\tθ1 = θ2;\n\t\t}\n\t\telse if (isNaN(θ2) && !isNaN(θ1)) {\n\t\t\tθ2 = θ1;\n\t\t}\n\t\t[θ1, θ2] = angles.adjust(arc, [θ1, θ2]);\n\t\tset(color1, hue, θ1);\n\t\tset(color2, hue, θ2);\n\t}\n\n\tif (premultiplied) {\n\t\t// not coping with polar spaces yet\n\t\tcolor1.coords = color1.coords.map(c => c * color1.alpha);\n\t\tcolor2.coords = color2.coords.map(c => c * color2.alpha);\n\t}\n\n\treturn Object.assign(p => {\n\t\tp = progression ? progression(p) : p;\n\t\tlet coords = color1.coords.map((start, i) => {\n\t\t\tlet end = color2.coords[i];\n\t\t\treturn interpolate(start, end, p);\n\t\t});\n\n\t\tlet alpha = interpolate(color1.alpha, color2.alpha, p);\n\t\tlet ret = {space, coords, alpha};\n\n\t\tif (premultiplied) {\n\t\t\t// undo premultiplication\n\t\t\tret.coords = ret.coords.map(c => c / alpha);\n\t\t}\n\n\t\tif (outputSpace !== space) {\n\t\t\tret = to(ret, outputSpace);\n\t\t}\n\n\t\treturn ret;\n\t}, {\n\t\trangeArgs,\n\t});\n}\n\nexport function isRange (val) {\n\treturn type(val) === \"function\" && !!val.rangeArgs;\n}\n\ndefaults.interpolationSpace = \"lab\";\n\nexport function register (Color) {\n\tColor.defineFunction(\"mix\", mix, {returns: \"color\"});\n\tColor.defineFunction(\"range\", range, {returns: \"function<color>\"});\n\tColor.defineFunction(\"steps\", steps, {returns: \"array<color>\"});\n}\n", "import ColorSpace from \"../space.js\";\nimport sRGB from \"./srgb.js\";\n\nexport default new ColorSpace({\n\tid: \"hsl\",\n\tname: \"HSL\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\",\n\t\t},\n\t\tl: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t},\n\n\tbase: sRGB,\n\n\t// Adapted from https://drafts.csswg.org/css-color-4/better-rgbToHsl.js\n\tfromBase: rgb => {\n\t\tlet max = Math.max(...rgb);\n\t\tlet min = Math.min(...rgb);\n\t\tlet [r, g, b] = rgb;\n\t\tlet [h, s, l] = [NaN, 0, (min + max) / 2];\n\t\tlet d = max - min;\n\n\t\tif (d !== 0) {\n\t\t\ts = (l === 0 || l === 1) ? 0 : (max - l) / Math.min(l, 1 - l);\n\n\t\t\tswitch (max) {\n\t\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\n\t\t\t\tcase g: h = (b - r) / d + 2; break;\n\t\t\t\tcase b: h = (r - g) / d + 4;\n\t\t\t}\n\n\t\t\th = h * 60;\n\t\t}\n\n\t\t// Very out of gamut colors can produce negative saturation\n\t\t// If so, just rotate the hue by 180 and use a positive saturation\n\t\t// see https://github.com/w3c/csswg-drafts/issues/9222\n\t\tif (s < 0) {\n\t\t\th += 180;\n\t\t\ts = Math.abs(s);\n\t\t}\n\n\t\tif (h >= 360) {\n\t\t\th -= 360;\n\t\t}\n\n\t\treturn [h, s * 100, l * 100];\n\t},\n\n\t// Adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative\n\ttoBase: hsl => {\n\t\tlet [h, s, l] = hsl;\n\t\th = h % 360;\n\n\t\tif (h < 0) {\n\t\t\th += 360;\n\t\t}\n\n\t\ts /= 100;\n\t\tl /= 100;\n\n\t\tfunction f (n) {\n\t\t\tlet k = (n + h / 30) % 12;\n\t\t\tlet a = s * Math.min(l, 1 - l);\n\t\t\treturn l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));\n\t\t}\n\n\t\treturn [f(0), f(8), f(4)];\n\t},\n\n\tformats: {\n\t\t\"hsl\": {\n\t\t\tcoords: [\"<number> | <angle>\", \"<percentage>\", \"<percentage>\"],\n\t\t},\n\t\t\"hsla\": {\n\t\t\tcoords: [\"<number> | <angle>\", \"<percentage>\", \"<percentage>\"],\n\t\t\tcommas: true,\n\t\t\tlastAlpha: true,\n\t\t},\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport HSL from \"./hsl.js\";\n\n// The Hue, Whiteness Blackness (HWB) colorspace\n// See https://drafts.csswg.org/css-color-4/#the-hwb-notation\n// Note that, like HSL, calculations are done directly on\n// gamma-corrected sRGB values rather than linearising them first.\n\nexport default new ColorSpace({\n\tid: \"hsv\",\n\tname: \"HSV\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\",\n\t\t},\n\t\tv: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Value\",\n\t\t},\n\t},\n\n\tbase: HSL,\n\t// https://en.wikipedia.org/wiki/HSL_and_HSV#Interconversion\n\tfromBase (hsl) {\n\t\tlet [h, s, l] = hsl;\n\t\ts /= 100;\n\t\tl /= 100;\n\n\t\tlet v = l + s * Math.min(l, 1 - l);\n\n\t\treturn [\n\t\t\th, // h is the same\n\t\t\tv === 0 ? 0 : 200 * (1 - l / v), // s\n\t\t\t100 * v,\n\t\t];\n\t},\n\t// https://en.wikipedia.org/wiki/HSL_and_HSV#Interconversion\n\ttoBase (hsv) {\n\t\tlet [h, s, v] = hsv;\n\n\t\ts /= 100;\n\t\tv /= 100;\n\n\t\tlet l = v * (1 - s / 2);\n\n\t\treturn [\n\t\t\th, // h is the same\n\t\t\t(l === 0 || l === 1) ? 0 : ((v - l) / Math.min(l, 1 - l)) * 100,\n\t\t\tl * 100,\n\t\t];\n\t},\n\n\tformats: {\n\t\tcolor: {\n\t\t\tid: \"--hsv\",\n\t\t\tcoords: [\"<number> | <angle>\", \"<percentage> | <number>\", \"<percentage> | <number>\"],\n\t\t},\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport HSV from \"./hsv.js\";\n\n// The Hue, Whiteness Blackness (HWB) colorspace\n// See https://drafts.csswg.org/css-color-4/#the-hwb-notation\n// Note that, like HSL, calculations are done directly on\n// gamma-corrected sRGB values rather than linearising them first.\n\nexport default new ColorSpace({\n\tid: \"hwb\",\n\tname: \"HWB\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t\tw: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Whiteness\",\n\t\t},\n\t\tb: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Blackness\",\n\t\t},\n\t},\n\n\tbase: HSV,\n\tfromBase (hsv) {\n\t\tlet [h, s, v] = hsv;\n\n\t\treturn [h, v * (100 - s) / 100, 100 - v];\n\t},\n\ttoBase (hwb) {\n\t\tlet [h, w, b] = hwb;\n\n\t\t// Now convert percentages to [0..1]\n\t\tw /= 100;\n\t\tb /= 100;\n\n\t\t// Achromatic check (white plus black >= 1)\n\t\tlet sum = w + b;\n\t\tif (sum >= 1) {\n\t\t\tlet gray = w / sum;\n\t\t\treturn [h, 0, gray * 100];\n\t\t}\n\n\t\tlet v = (1 - b);\n\t\tlet s = (v === 0) ? 0 : 1 - w / v;\n\t\treturn [h, s * 100, v * 100];\n\t},\n\n\tformats: {\n\t\t\"hwb\": {\n\t\t\tcoords: [\"<number> | <angle>\", \"<percentage> | <number>\", \"<percentage> | <number>\"],\n\t\t},\n\t},\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\n\n// convert an array of linear-light a98-rgb values to CIE XYZ\n// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n// has greater numerical precision than section 4.3.5.3 of\n// https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf\n// but the values below were calculated from first principles\n// from the chromaticity coordinates of R G B W\nconst toXYZ_M = [\n\t[ 0.5766690429101305,   0.1855582379065463,   0.1882286462349947  ],\n\t[ 0.29734497525053605,  0.6273635662554661,   0.07529145849399788 ],\n\t[ 0.02703136138641234,  0.07068885253582723,  0.9913375368376388  ],\n];\n\nconst fromXYZ_M = [\n\t[  2.0415879038107465,    -0.5650069742788596,   -0.34473135077832956 ],\n\t[ -0.9692436362808795,     1.8759675015077202,    0.04155505740717557 ],\n\t[  0.013444280632031142,  -0.11836239223101838,   1.0151749943912054  ],\n];\n\nexport default new RGBColorSpace({\n\tid: \"a98rgb-linear\",\n\tcssId: \"--a98-rgb-linear\",\n\tname: \"Linear Adobe® 98 RGB compatible\",\n\twhite: \"D65\",\n\ttoXYZ_M,\n\tfromXYZ_M,\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport A98Linear from \"./a98rgb-linear.js\";\n\nexport default new RGBColorSpace({\n\tid: \"a98rgb\",\n\tcssId: \"a98-rgb\",\n\tname: \"Adobe® 98 RGB compatible\",\n\tbase: A98Linear,\n\ttoBase: RGB => RGB.map(val => Math.pow(Math.abs(val), 563 / 256) * Math.sign(val)),\n\tfromBase: RGB => RGB.map(val => Math.pow(Math.abs(val), 256 / 563) * Math.sign(val)),\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport XYZ_D50 from \"./xyz-d50.js\";\n\n// convert an array of  prophoto-rgb values to CIE XYZ\n// using  D50 (so no chromatic adaptation needed afterwards)\n// matrix cannot be expressed in rational form, but is calculated to 64 bit accuracy\n// see https://github.com/w3c/csswg-drafts/issues/7675\nconst toXYZ_M = [\n\t[ 0.79776664490064230,  0.13518129740053308,  0.03134773412839220 ],\n\t[ 0.28807482881940130,  0.71183523424187300,  0.00008993693872564 ],\n\t[ 0.00000000000000000,  0.00000000000000000,  0.82510460251046020 ],\n];\n\nconst fromXYZ_M = [\n\t[  1.34578688164715830, -0.25557208737979464, -0.05110186497554526 ],\n\t[ -0.54463070512490190,  1.50824774284514680,  0.02052744743642139 ],\n\t[  0.00000000000000000,  0.00000000000000000,  1.21196754563894520 ],\n];\n\nexport default new RGBColorSpace({\n\tid: \"prophoto-linear\",\n\tcssId: \"--prophoto-rgb-linear\",\n\tname: \"Linear ProPhoto\",\n\twhite: \"D50\",\n\tbase: XYZ_D50,\n\ttoXYZ_M,\n\tfromXYZ_M,\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport ProPhotoLinear from \"./prophoto-linear.js\";\n\nconst Et = 1 / 512;\nconst Et2 = 16 / 512;\n\nexport default new RGBColorSpace({\n\tid: \"prophoto\",\n\tcssId: \"prophoto-rgb\",\n\tname: \"ProPhoto\",\n\tbase: ProPhotoLinear,\n\ttoBase (RGB) {\n\t\t// Transfer curve is gamma 1.8 with a small linear portion\n\t\treturn RGB.map(v => v < Et2 ? v / 16 : v ** 1.8);\n\t},\n\tfromBase (RGB) {\n\t\treturn RGB.map(v => v >= Et ? v ** (1 / 1.8) : 16 * v);\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport OKLab from \"./oklab.js\";\nimport {constrain as constrainAngle} from \"../angles.js\";\n\nexport default new ColorSpace({\n\tid: \"oklch\",\n\tname: \"Oklch\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, 0.4],\n\t\t\tname: \"Chroma\",\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t},\n\twhite: \"D65\",\n\n\tbase: OKLab,\n\tfromBase (oklab) {\n\t\t// Convert to polar form\n\t\tlet [L, a, b] = oklab;\n\t\tlet h;\n\t\tconst ε = 0.0002; // chromatic components much smaller than a,b\n\n\t\tif (Math.abs(a) < ε && Math.abs(b) < ε) {\n\t\t\th = NaN;\n\t\t}\n\t\telse {\n\t\t\th = Math.atan2(b, a) * 180 / Math.PI;\n\t\t}\n\n\t\treturn [\n\t\t\tL, // OKLab L is still L\n\t\t\tMath.sqrt(a ** 2 + b ** 2), // Chroma\n\t\t\tconstrainAngle(h), // Hue, in degrees [0 to 360)\n\t\t];\n\t},\n\t// Convert from polar form\n\ttoBase (oklch) {\n\t\tlet [L, C, h] = oklch;\n\t\tlet a, b;\n\n\t\t// check for NaN hue\n\t\tif (isNaN(h)) {\n\t\t\ta = 0;\n\t\t\tb = 0;\n\t\t}\n\t\telse {\n\t\t\ta = C * Math.cos(h * Math.PI / 180);\n\t\t\tb = C * Math.sin(h * Math.PI / 180);\n\t\t}\n\n\t\treturn [ L, a, b ];\n\t},\n\n\tformats: {\n\t\t\"oklch\": {\n\t\t\tcoords: [\"<percentage> | <number>\", \"<number> | <percentage>[0,1]\", \"<number> | <angle>\"],\n\t\t},\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport {WHITES} from \"../adapt.js\";\nimport xyz_d65 from \"./xyz-d65.js\";\nimport {uv} from \"../chromaticity.js\";\nimport {isNone, skipNone} from \"../util.js\";\n\nlet white = WHITES.D65;\n\nconst ε = 216 / 24389;  // 6^3/29^3 == (24/116)^3\nconst κ = 24389 / 27;   // 29^3/3^3\nconst [U_PRIME_WHITE, V_PRIME_WHITE] = uv({space: xyz_d65, coords: white});\n\nexport default new ColorSpace({\n\tid: \"luv\",\n\tname: \"Luv\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t\t// Reference ranges from https://facelessuser.github.io/coloraide/colors/luv/\n\t\tu: {\n\t\t\trefRange: [-215, 215],\n\t\t},\n\t\tv: {\n\t\t\trefRange: [-215, 215],\n\t\t},\n\t},\n\n\twhite: white,\n\tbase: xyz_d65,\n\n\t// Convert D65-adapted XYZ to Luv\n\t// https://en.wikipedia.org/wiki/CIELUV#The_forward_transformation\n\tfromBase (XYZ) {\n\t\tlet xyz = [skipNone(XYZ[0]), skipNone(XYZ[1]), skipNone(XYZ[2])];\n\t\tlet y = xyz[1];\n\n\t\tlet [up, vp] = uv({space: xyz_d65, coords: xyz});\n\n\t\t// Protect against XYZ of [0, 0, 0]\n\t\tif (!Number.isFinite(up) || !Number.isFinite(vp)) {\n\t\t\treturn [0, 0, 0];\n\t\t}\n\n\t\tlet L = y <= ε ? κ * y : 116 * Math.cbrt(y) - 16;\n\t\treturn [\n\t\t\tL,\n\t\t\t13 * L * (up - U_PRIME_WHITE),\n\t\t\t13 * L * (vp - V_PRIME_WHITE),\n\t\t ];\n\t},\n\n\t// Convert Luv to D65-adapted XYZ\n\t// https://en.wikipedia.org/wiki/CIELUV#The_reverse_transformation\n\ttoBase (Luv) {\n\t\tlet [L, u, v] = Luv;\n\n\t\t// Protect against division by zero and NaN Lightness\n\t\tif (L === 0 || isNone(L)) {\n\t\t\treturn [0, 0, 0];\n\t\t}\n\n\t\tu = skipNone(u);\n\t\tv = skipNone(v);\n\n\t\tlet up = (u / (13 * L)) + U_PRIME_WHITE;\n\t\tlet vp = (v / (13 * L)) + V_PRIME_WHITE;\n\n\t\tlet y = L <= 8 ? L / κ : Math.pow((L + 16) / 116, 3);\n\n\t\treturn [\n\t\t\ty * ((9 * up) / (4 * vp)),\n\t\t\ty,\n\t\t\ty * ((12 - 3 * up - 20 * vp) / (4 * vp)),\n\t\t];\n\t},\n\n\tformats: {\n\t\tcolor: {\n\t\t\tid: \"--luv\",\n\t\t\tcoords: [\"<number> | <percentage>\", \"<number> | <percentage>[-1,1]\", \"<number> | <percentage>[-1,1]\"],\n\t\t},\n\t},\n});\n", "import ColorSpace from \"../space.js\";\nimport Luv from \"./luv.js\";\nimport {constrain as constrainAngle} from \"../angles.js\";\n\nexport default new ColorSpace({\n\tid: \"lchuv\",\n\tname: \"LChuv\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, 220],\n\t\t\tname: \"Chroma\",\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t},\n\n\tbase: Luv,\n\tfromBase (Luv) {\n\t\t// Convert to polar form\n\t\tlet [L, u, v] = Luv;\n\t\tlet hue;\n\t\tconst ε = 0.02;\n\n\t\tif (Math.abs(u) < ε && Math.abs(v) < ε) {\n\t\t\thue = NaN;\n\t\t}\n\t\telse {\n\t\t\thue = Math.atan2(v, u) * 180 / Math.PI;\n\t\t}\n\n\t\treturn [\n\t\t\tL, // L is still L\n\t\t\tMath.sqrt(u ** 2 + v ** 2), // Chroma\n\t\t\tconstrainAngle(hue), // Hue, in degrees [0 to 360)\n\t\t];\n\t},\n\ttoBase (LCH) {\n\t\t// Convert from polar form\n\t\tlet [Lightness, Chroma, Hue] = LCH;\n\t\t// Clamp any negative Chroma\n\t\tif (Chroma < 0) {\n\t\t\tChroma = 0;\n\t\t}\n\t\t// Deal with NaN Hue\n\t\tif (isNaN(Hue)) {\n\t\t\tHue = 0;\n\t\t}\n\t\treturn [\n\t\t\tLightness, // L is still L\n\t\t\tChroma * Math.cos(Hue * Math.PI / 180), // u\n\t\t\tChroma * Math.sin(Hue * Math.PI / 180),  // v\n\t\t];\n\t},\n\n\tformats: {\n\t\tcolor: {\n\t\t\tid: \"--lchuv\",\n\t\t\tcoords: [\"<number> | <percentage>\", \"<number> | <percentage>\", \"<number> | <angle>\"],\n\t\t},\n\t},\n});\n", "/*\nAdapted from: https://github.com/hsluv/hsluv-javascript/blob/14b49e6cf9a9137916096b8487a5372626b57ba4/src/hsluv.ts\n\nCopyright (c) 2012-2022 Alexei Boronine\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nimport ColorSpace from \"../space.js\";\nimport LCHuv from \"./lchuv.js\";\nimport sRGB from \"./srgb.js\";\nimport {fromXYZ_M} from \"./srgb-linear.js\";\nimport {skipNone} from \"../util.js\";\n\nconst ε = 216 / 24389;  // 6^3/29^3 == (24/116)^3\nconst κ = 24389 / 27;   // 29^3/3^3\n\nconst m_r0 = fromXYZ_M[0][0];\nconst m_r1 = fromXYZ_M[0][1];\nconst m_r2 = fromXYZ_M[0][2];\nconst m_g0 = fromXYZ_M[1][0];\nconst m_g1 = fromXYZ_M[1][1];\nconst m_g2 = fromXYZ_M[1][2];\nconst m_b0 = fromXYZ_M[2][0];\nconst m_b1 = fromXYZ_M[2][1];\nconst m_b2 = fromXYZ_M[2][2];\n\nfunction distanceFromOriginAngle (slope, intercept, angle) {\n\tconst d = intercept / (Math.sin(angle) - slope * Math.cos(angle));\n\treturn d < 0 ? Infinity : d;\n}\n\nexport function calculateBoundingLines (l) {\n\tconst sub1 = Math.pow(l + 16, 3) / 1560896;\n\tconst sub2 = sub1 > ε ? sub1 : l / κ;\n\tconst s1r = sub2 * (284517 * m_r0 - 94839 * m_r2);\n\tconst s2r = sub2 * (838422 * m_r2 + 769860 * m_r1 + 731718 * m_r0);\n\tconst s3r = sub2 * (632260 * m_r2 - 126452 * m_r1);\n\tconst s1g = sub2 * (284517 * m_g0 - 94839 * m_g2);\n\tconst s2g = sub2 * (838422 * m_g2 + 769860 * m_g1 + 731718 * m_g0);\n\tconst s3g = sub2 * (632260 * m_g2 - 126452 * m_g1);\n\tconst s1b = sub2 * (284517 * m_b0 - 94839 * m_b2);\n\tconst s2b = sub2 * (838422 * m_b2 + 769860 * m_b1 + 731718 * m_b0);\n\tconst s3b = sub2 * (632260 * m_b2 - 126452 * m_b1);\n\n\treturn {\n\t\tr0s: s1r / s3r,\n\t\tr0i: s2r * l / s3r,\n\t\tr1s: s1r / (s3r + 126452),\n\t\tr1i: (s2r - 769860) * l / (s3r + 126452),\n\t\tg0s: s1g / s3g,\n\t\tg0i: s2g * l / s3g,\n\t\tg1s: s1g / (s3g + 126452),\n\t\tg1i: (s2g - 769860) * l / (s3g + 126452),\n\t\tb0s: s1b / s3b,\n\t\tb0i: s2b * l / s3b,\n\t\tb1s: s1b / (s3b + 126452),\n\t\tb1i: (s2b - 769860) * l / (s3b + 126452),\n\t};\n}\n\nfunction calcMaxChromaHsluv (lines, h) {\n\tconst hueRad = h / 360 * Math.PI * 2;\n\tconst r0 = distanceFromOriginAngle(lines.r0s, lines.r0i, hueRad);\n\tconst r1 = distanceFromOriginAngle(lines.r1s, lines.r1i, hueRad);\n\tconst g0 = distanceFromOriginAngle(lines.g0s, lines.g0i, hueRad);\n\tconst g1 = distanceFromOriginAngle(lines.g1s, lines.g1i, hueRad);\n\tconst b0 = distanceFromOriginAngle(lines.b0s, lines.b0i, hueRad);\n\tconst b1 = distanceFromOriginAngle(lines.b1s, lines.b1i, hueRad);\n\n\treturn Math.min(r0, r1, g0, g1, b0, b1);\n}\n\nexport default new ColorSpace({\n\tid: \"hsluv\",\n\tname: \"HSLuv\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\",\n\t\t},\n\t\tl: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t},\n\n\tbase: LCHuv,\n\tgamutSpace: sRGB,\n\n\t// Convert LCHuv to HSLuv\n\tfromBase (lch) {\n\t\tlet [l, c, h] = [skipNone(lch[0]), skipNone(lch[1]), skipNone(lch[2])];\n\t\tlet s;\n\n\t\tif (l > 99.9999999) {\n\t\t\ts = 0;\n\t\t\tl = 100;\n\t\t}\n\t\telse if (l < 0.00000001) {\n\t\t\ts = 0;\n\t\t\tl = 0;\n\t\t}\n\t\telse {\n\t\t\tlet lines = calculateBoundingLines(l);\n\t\t\tlet max = calcMaxChromaHsluv(lines, h);\n\t\t\ts = c / max * 100;\n\t\t}\n\n\t\treturn [h, s, l];\n\t},\n\n\t// Convert HSLuv to LCHuv\n\ttoBase (hsl) {\n\t\tlet [h, s, l] = [skipNone(hsl[0]), skipNone(hsl[1]), skipNone(hsl[2])];\n\t\tlet c;\n\n\t\tif (l > 99.9999999) {\n\t\t\tl = 100;\n\t\t\tc = 0;\n\t\t}\n\t\telse if (l < 0.00000001) {\n\t\t\tl = 0;\n\t\t\tc = 0;\n\t\t}\n\t\telse {\n\t\t\tlet lines = calculateBoundingLines(l);\n\t\t\tlet max = calcMaxChromaHsluv(lines, h);\n\t\t\tc = max / 100 * s;\n\t\t}\n\n\t\treturn [l, c, h];\n\t},\n\n\tformats: {\n\t\tcolor: {\n\t\t\tid: \"--hsluv\",\n\t\t\tcoords: [\"<number> | <angle>\", \"<percentage> | <number>\", \"<percentage> | <number>\"],\n\t\t},\n\t},\n});\n", "/*\nAdapted from: https://github.com/hsluv/hsluv-javascript/blob/14b49e6cf9a9137916096b8487a5372626b57ba4/src/hsluv.ts\n\nCopyright (c) 2012-2022 Alexei Boronine\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nimport ColorSpace from \"../space.js\";\nimport LCHuv from \"./lchuv.js\";\nimport {fromXYZ_M} from \"./srgb-linear.js\";\nimport {skipNone} from \"../util.js\";\nimport {calculateBoundingLines} from \"./hsluv.js\";\n\nconst ε = 216 / 24389;  // 6^3/29^3 == (24/116)^3\nconst κ = 24389 / 27;   // 29^3/3^3\n\nconst m_r0 = fromXYZ_M[0][0];\nconst m_r1 = fromXYZ_M[0][1];\nconst m_r2 = fromXYZ_M[0][2];\nconst m_g0 = fromXYZ_M[1][0];\nconst m_g1 = fromXYZ_M[1][1];\nconst m_g2 = fromXYZ_M[1][2];\nconst m_b0 = fromXYZ_M[2][0];\nconst m_b1 = fromXYZ_M[2][1];\nconst m_b2 = fromXYZ_M[2][2];\n\nfunction distanceFromOrigin (slope, intercept) {\n\treturn Math.abs(intercept) / Math.sqrt(Math.pow(slope, 2) + 1);\n}\n\nfunction calcMaxChromaHpluv (lines) {\n\tlet r0 = distanceFromOrigin(lines.r0s, lines.r0i);\n\tlet r1 = distanceFromOrigin(lines.r1s, lines.r1i);\n\tlet g0 = distanceFromOrigin(lines.g0s, lines.g0i);\n\tlet g1 = distanceFromOrigin(lines.g1s, lines.g1i);\n\tlet b0 = distanceFromOrigin(lines.b0s, lines.b0i);\n\tlet b1 = distanceFromOrigin(lines.b1s, lines.b1i);\n\n\treturn Math.min(r0, r1, g0, g1, b0, b1);\n}\n\nexport default new ColorSpace({\n\tid: \"hpluv\",\n\tname: \"HPLuv\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\",\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\",\n\t\t},\n\t\tl: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Lightness\",\n\t\t},\n\t},\n\n\tbase: LCHuv,\n\tgamutSpace: \"self\",\n\n\t// Convert LCHuv to HPLuv\n\tfromBase (lch) {\n\t\tlet [l, c, h] = [skipNone(lch[0]), skipNone(lch[1]), skipNone(lch[2])];\n\t\tlet s;\n\n\t\tif (l > 99.9999999) {\n\t\t\ts = 0;\n\t\t\tl = 100;\n\t\t}\n\t\telse if (l < 0.00000001) {\n\t\t\ts = 0;\n\t\t\tl = 0;\n\t\t}\n\t\telse {\n\t\t\tlet lines = calculateBoundingLines(l);\n\t\t\tlet max = calcMaxChromaHpluv(lines);\n\t\t\ts = c / max * 100;\n\t\t}\n\t\treturn [h, s, l];\n\t},\n\n\t// Convert HPLuv to LCHuv\n\ttoBase (hsl) {\n\t\tlet [h, s, l] = [skipNone(hsl[0]), skipNone(hsl[1]), skipNone(hsl[2])];\n\t\tlet c;\n\n\t\tif (l > 99.9999999) {\n\t\t\tl = 100;\n\t\t\tc = 0;\n\t\t}\n\t\telse if (l < 0.00000001) {\n\t\t\tl = 0;\n\t\t\tc = 0;\n\t\t}\n\t\telse {\n\t\t\tlet lines = calculateBoundingLines(l);\n\t\t\tlet max = calcMaxChromaHpluv(lines, h);\n\t\t\tc = max / 100 * s;\n\t\t}\n\n\t\treturn [l, c, h];\n\t},\n\n\tformats: {\n\t\tcolor: {\n\t\t\tid: \"--hpluv\",\n\t\t\tcoords: [\"<number> | <angle>\", \"<percentage> | <number>\", \"<percentage> | <number>\"],\n\t\t},\n\t},\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport REC2020Linear from \"./rec2020-linear.js\";\n\nconst Yw = 203;\t// absolute luminance of media white, cd/m²\nconst n = 2610 / (2 ** 14);\nconst ninv = (2 ** 14) / 2610;\nconst m = 2523 / (2 ** 5);\nconst minv = (2 ** 5) / 2523;\nconst c1 = 3424 / (2 ** 12);\nconst c2 = 2413 / (2 ** 7);\nconst c3 = 2392 / (2 ** 7);\n\nexport default new RGBColorSpace({\n\tid: \"rec2100pq\",\n\tcssId: \"rec2100-pq\",\n\tname: \"REC.2100-PQ\",\n\tbase: REC2020Linear,\n\ttoBase (RGB) {\n\t\t// given PQ encoded component in range [0, 1]\n\t\t// return media-white relative linear-light\n\t\treturn RGB.map(function (val) {\n\t\t\tlet x = ((Math.max(((val ** minv) - c1), 0) / (c2 - (c3 * (val ** minv)))) ** ninv);\n\t\t\treturn (x * 10000 / Yw); \t// luminance relative to diffuse white, [0, 70 or so].\n\t\t});\n\t},\n\tfromBase (RGB) {\n\t\t// given media-white relative linear-light\n\t\t// returnPQ encoded component in range [0, 1]\n\t\treturn RGB.map(function (val) {\n\t\t\tlet x = Math.max(val * Yw / 10000, 0); \t// absolute luminance of peak white is 10,000 cd/m².\n\t\t\tlet num = (c1 + (c2 * (x ** n)));\n\t\t\tlet denom = (1 + (c3 * (x ** n)));\n\n\t\t\treturn ((num / denom)  ** m);\n\t\t});\n\t},\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport REC2020Linear from \"./rec2020-linear.js\";\n\n// FIXME see https://github.com/LeaVerou/color.js/issues/190\n\nconst a = 0.17883277;\nconst b = 0.28466892; // 1 - (4 * a)\nconst c = 0.55991073; // 0.5 - a * Math.log(4 *a)\n\nconst scale = 3.7743;\t// Place 18% grey at HLG 0.38, so media white at 0.75\n\nexport default new RGBColorSpace({\n\tid: \"rec2100hlg\",\n\tcssId: \"rec2100-hlg\",\n\tname: \"REC.2100-HLG\",\n\treferred: \"scene\",\n\n\tbase: REC2020Linear,\n\ttoBase (RGB) {\n\t\t// given HLG encoded component in range [0, 1]\n\t\t// return media-white relative linear-light\n\t\treturn RGB.map(function (val) {\n\t\t\t// first the HLG EOTF\n\t\t\t// ITU-R BT.2390-10 p.30 section\n\t\t\t// 6.3 The hybrid log-gamma electro-optical transfer function (EOTF)\n\t\t\t// Then scale by 3 so media white is 1.0\n\t\t\tif (val <= 0.5) {\n\t\t\t\treturn (val ** 2) / 3 * scale;\n\t\t\t}\n\t\t\treturn ((Math.exp((val - c) / a) + b) / 12) * scale;\n\t\t});\n\t},\n\tfromBase (RGB) {\n\t\t// given media-white relative linear-light\n\t\t// where diffuse white is 1.0,\n\t\t// return HLG encoded component in range [0, 1]\n\t\treturn RGB.map(function (val) {\n\t\t\t// first scale to put linear-light media white at 1/3\n\t\t\tval /= scale;\n\t\t\t// now the HLG OETF\n\t\t\t// ITU-R BT.2390-10 p.23\n\t\t\t// 6.1 The hybrid log-gamma opto-electronic transfer function (OETF)\n\t\t\tif (val <= 1 / 12) {\n\t\t\t\treturn Math.sqrt(3 * val);\n\t\t\t}\n\t\t\treturn a * Math.log(12 * val - b) + c;\n\t\t});\n\t},\n});\n", "import hooks from \"./hooks.js\";\nimport {multiplyMatrices} from \"./util.js\";\nimport {WHITES} from \"./adapt.js\";\n\nexport const CATs = {};\n\nhooks.add(\"chromatic-adaptation-start\", env => {\n\tif (env.options.method) {\n\t\tenv.M = adapt(env.W1, env.W2, env.options.method);\n\t}\n});\n\nhooks.add(\"chromatic-adaptation-end\", env => {\n\tif (!env.M) {\n\t\tenv.M = adapt(env.W1, env.W2, env.options.method);\n\t}\n});\n\nexport function defineCAT ({id, toCone_M, fromCone_M}) {\n\t// Use id, toCone_M, fromCone_M like variables\n\tCATs[id] = arguments[0];\n}\n\nexport function adapt (W1, W2, id = \"Bradford\") {\n\t// adapt from a source whitepoint or illuminant W1\n\t// to a destination whitepoint or illuminant W2,\n\t// using the given chromatic adaptation transform (CAT)\n\t// debugger;\n\tlet method = CATs[id];\n\n\tlet [ρs, γs, βs] = multiplyMatrices(method.toCone_M, W1);\n\tlet [ρd, γd, βd] = multiplyMatrices(method.toCone_M, W2);\n\n\t// all practical illuminants have non-zero XYZ so no division by zero can occur below\n\tlet scale = [\n\t\t[ρd / ρs,  0,        0      ],\n\t\t[0,        γd / γs,  0      ],\n\t\t[0,        0,        βd / βs],\n\t];\n\t// console.log({scale});\n\n\tlet scaled_cone_M = multiplyMatrices(scale, method.toCone_M);\n\tlet adapt_M\t= multiplyMatrices(method.fromCone_M, scaled_cone_M);\n\t// console.log({scaled_cone_M, adapt_M});\n\treturn adapt_M;\n}\n\ndefineCAT({\n\tid: \"von Kries\",\n\ttoCone_M: [\n\t\t[  0.4002400,  0.7076000, -0.0808100 ],\n\t\t[ -0.2263000,  1.1653200,  0.0457000 ],\n\t\t[  0.0000000,  0.0000000,  0.9182200 ],\n\t],\n\tfromCone_M: [\n\t\t[ 1.8599363874558397, -1.1293816185800916,   0.21989740959619328     ],\n\t\t[ 0.3611914362417676,  0.6388124632850422,  -0.000006370596838649899 ],\n\t\t[ 0,                   0,                    1.0890636230968613      ],\n\t],\n});\n\ndefineCAT({\n\tid: \"Bradford\",\n\t// Convert an array of XYZ values in the range 0.0 - 1.0\n\t// to cone fundamentals\n\ttoCone_M: [\n\t\t[  0.8951000,  0.2664000, -0.1614000 ],\n\t\t[ -0.7502000,  1.7135000,  0.0367000 ],\n\t\t[  0.0389000, -0.0685000,  1.0296000 ],\n\t],\n\t// and back\n\tfromCone_M: [\n\t\t[  0.9869929054667121, -0.14705425642099013, 0.15996265166373122  ],\n\t\t[  0.4323052697233945,  0.5183602715367774,  0.049291228212855594 ],\n\t\t[ -0.00852866457517732, 0.04004282165408486, 0.96848669578755     ],\n\t],\n});\n\ndefineCAT({\n\tid: \"CAT02\",\n\t// with complete chromatic adaptation to W2, so D = 1.0\n\ttoCone_M: [\n\t\t[  0.7328000,  0.4296000, -0.1624000 ],\n\t\t[ -0.7036000,  1.6975000,  0.0061000 ],\n\t\t[  0.0030000,  0.0136000,  0.9834000 ],\n\t],\n\tfromCone_M: [\n\t\t[  1.0961238208355142,   -0.27886900021828726, 0.18274517938277307 ],\n\t\t[  0.4543690419753592,    0.4735331543074117,  0.07209780371722911 ],\n\t\t[ -0.009627608738429355, -0.00569803121611342, 1.0153256399545427  ],\n\t],\n});\n\ndefineCAT({\n\tid: \"CAT16\",\n\ttoCone_M: [\n\t\t[  0.401288,  0.650173, -0.051461 ],\n\t\t[ -0.250268,  1.204414,  0.045854 ],\n\t\t[ -0.002079,  0.048952,  0.953127 ],\n\t],\n\t// the extra precision is needed to avoid roundtripping errors\n\tfromCone_M: [\n\t\t[  1.862067855087233,   -1.0112546305316845,  0.14918677544445172  ],\n\t\t[  0.3875265432361372,   0.6214474419314753, -0.008973985167612521 ],\n\t\t[ -0.01584149884933386, -0.03412293802851557, 1.0499644368778496   ],\n\t],\n});\n\nObject.assign(WHITES, {\n\t// whitepoint values from ASTM E308-01 with 10nm spacing, 1931 2 degree observer\n\t// all normalized to Y (luminance) = 1.00000\n\t// Illuminant A is a tungsten electric light, giving a very warm, orange light.\n\tA:   [1.09850, 1.00000, 0.35585],\n\n\t// Illuminant C was an early approximation to daylight: illuminant A with a blue filter.\n\tC:   [0.98074, 1.000000, 1.18232],\n\n\t// The daylight series of illuminants simulate natural daylight.\n\t// The color temperature (in degrees Kelvin/100) ranges from\n\t// cool, overcast daylight (D50) to bright, direct sunlight (D65).\n\tD55: [0.95682, 1.00000, 0.92149],\n\tD75: [0.94972, 1.00000, 1.22638],\n\n\t// Equal-energy illuminant, used in two-stage CAT16\n\tE:   [1.00000, 1.00000, 1.00000],\n\n\t// The F series of illuminants represent fluorescent lights\n\tF2:  [0.99186, 1.00000, 0.67393],\n\tF7:  [0.95041, 1.00000, 1.08747],\n\tF11: [1.00962, 1.00000, 0.64350],\n});\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport {WHITES} from \"../adapt.js\";\nimport \"../CATs.js\"; // because of the funky whitepoint\n\n// The ACES whitepoint\n// see TB-2018-001 Derivation of the ACES White Point CIE Chromaticity Coordinates\n// also https://github.com/ampas/aces-dev/blob/master/documents/python/TB-2018-001/aces_wp.py\n// Similar to D60\nWHITES.ACES = [0.32168 / 0.33767, 1.00000, (1.00000 - 0.32168 - 0.33767) / 0.33767];\n\n// convert an array of linear-light ACEScc values to CIE XYZ\nconst toXYZ_M = [\n\t[  0.6624541811085053,   0.13400420645643313,  0.1561876870049078  ],\n\t[  0.27222871678091454,  0.6740817658111484,   0.05368951740793705 ],\n\t[ -0.005574649490394108, 0.004060733528982826, 1.0103391003129971  ],\n];\nconst fromXYZ_M = [\n\t[  1.6410233796943257,   -0.32480329418479,    -0.23642469523761225  ],\n\t[ -0.6636628587229829,    1.6153315916573379,   0.016756347685530137 ],\n\t[  0.011721894328375376, -0.008284441996237409, 0.9883948585390215   ],\n];\n\nexport default new RGBColorSpace({\n\tid: \"acescg\",\n\tcssId: \"--acescg\",\n\tname: \"ACEScg\",\n\n\t// ACEScg – A scene-referred, linear-light encoding of ACES Data\n\t// https://docs.acescentral.com/specifications/acescg/\n\t// uses the AP1 primaries, see section 4.3.1 Color primaries\n\tcoords: {\n\t\tr: {\n\t\t\trange: [0, 65504],\n\t\t\tname: \"Red\",\n\t\t},\n\t\tg: {\n\t\t\trange: [0, 65504],\n\t\t\tname: \"Green\",\n\t\t},\n\t\tb: {\n\t\t\trange: [0, 65504],\n\t\t\tname: \"Blue\",\n\t\t},\n\t},\n\n\treferred: \"scene\",\n\n\twhite: WHITES.ACES,\n\n\ttoXYZ_M,\n\tfromXYZ_M,\n});\n\n// export default Color;\n", "import RGBColorSpace from \"../rgbspace.js\";\nimport \"../CATs.js\"; // because of the funky whitepoint\nimport ACEScg from \"./acescg.js\";\n\nconst ε = 2 ** -16;\n\n// the smallest value which, in the 32bit IEEE 754 float encoding,\n// decodes as a non-negative value\nconst ACES_min_nonzero = -0.35828683;\n\n// brightest encoded value, decodes to 65504\nconst ACES_cc_max = (Math.log2(65504) + 9.72) / 17.52; // 1.468\n\nexport default new RGBColorSpace({\n\tid: \"acescc\",\n\tcssId: \"--acescc\",\n\tname: \"ACEScc\",\n\t// see S-2014-003 ACEScc – A Logarithmic Encoding of ACES Data\n\t// https://docs.acescentral.com/specifications/acescc/\n\t// uses the AP1 primaries, see section 4.3.1 Color primaries\n\n\t// Appendix A: \"Very small ACES scene referred values below 7 1/4 stops\n\t// below 18% middle gray are encoded as negative ACEScc values.\n\t// These values should be preserved per the encoding in Section 4.4\n\t// so that all positive ACES values are maintained.\"\n\tcoords: {\n\t\tr: {\n\t\t\trange: [ACES_min_nonzero, ACES_cc_max],\n\t\t\tname: \"Red\",\n\t\t},\n\t\tg: {\n\t\t\trange: [ACES_min_nonzero, ACES_cc_max],\n\t\t\tname: \"Green\",\n\t\t},\n\t\tb: {\n\t\t\trange: [ACES_min_nonzero, ACES_cc_max],\n\t\t\tname: \"Blue\",\n\t\t},\n\t},\n\treferred: \"scene\",\n\n\tbase: ACEScg,\n\t// from section 4.4.2 Decoding Function\n\ttoBase (RGB) {\n\t\tconst low = (9.72 - 15) / 17.52; // -0.3014\n\n\t\treturn RGB.map(function (val) {\n\t\t\tif (val <= low) {\n\t\t\t\treturn (2 ** ((val * 17.52) - 9.72) - ε) * 2; // very low values, below -0.3014\n\t\t\t}\n\t\t\telse if (val < ACES_cc_max) {\n\t\t\t\treturn 2 ** ((val * 17.52) - 9.72);\n\t\t\t}\n\t\t\telse { // val >= ACES_cc_max\n\t\t\t\treturn 65504;\n\t\t\t}\n\t\t});\n\t},\n\n\t// Non-linear encoding function from S-2014-003, section 4.4.1 Encoding Function\n\tfromBase (RGB) {\n\t\treturn RGB.map(function (val) {\n\t\t\tif (val <= 0) {\n\t\t\t\treturn (Math.log2(ε) + 9.72) / 17.52; // -0.3584\n\t\t\t}\n\t\t\telse if (val < ε) {\n\t\t\t\treturn  (Math.log2(ε + val * 0.5) + 9.72) / 17.52;\n\t\t\t}\n\t\t\telse { // val >= ε\n\t\t\t\treturn  (Math.log2(val) + 9.72) / 17.52;\n\t\t\t}\n\t\t});\n\t},\n\t// encoded media white (rgb 1,1,1) => linear  [ 222.861, 222.861, 222.861 ]\n\t// encoded media black (rgb 0,0,0) => linear [ 0.0011857, 0.0011857, 0.0011857]\n});\n", "import * as util from \"./util.js\";\nimport hooks from \"./hooks.js\";\nimport defaults from \"./defaults.js\";\nimport ColorSpace from \"./space.js\";\nimport {WHITES} from \"./adapt.js\";\nimport {\n\tgetColor,\n\tparse,\n\tto,\n\tserialize,\n\tinGamut,\n\ttoGamut,\n\tdistance,\n\tequals,\n\tget,\n\tgetAll,\n\tset,\n\tsetAll,\n\tdisplay,\n} from \"./index-fn.js\";\n\n\nimport \"./spaces/xyz-d50.js\";\nimport \"./spaces/srgb.js\";\n\n/**\n * Class that represents a color\n */\nexport default class Color {\n\t/**\n\t * Creates an instance of Color.\n\t * Signatures:\n\t * - `new Color(stringToParse)`\n\t * - `new Color(otherColor)`\n\t * - `new Color({space, coords, alpha})`\n\t * - `new Color(space, coords, alpha)`\n\t * - `new Color(spaceId, coords, alpha)`\n\t */\n\tconstructor (...args) {\n\t\tlet color;\n\n\t\tif (args.length === 1) {\n\t\t\tcolor = getColor(args[0]);\n\t\t}\n\n\t\tlet space, coords, alpha;\n\n\t\tif (color) {\n\t\t\tspace = color.space || color.spaceId;\n\t\t\tcoords = color.coords;\n\t\t\talpha = color.alpha;\n\t\t}\n\t\telse {\n\t\t\t// default signature new Color(ColorSpace, array [, alpha])\n\t\t\t[space, coords, alpha] = args;\n\t\t}\n\n\t\tObject.defineProperty(this, \"space\", {\n\t\t\tvalue: ColorSpace.get(space),\n\t\t\twritable: false,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true, // see note in https://262.ecma-international.org/8.0/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver\n\t\t});\n\n\t\tthis.coords = coords ? coords.slice() : [0, 0, 0];\n\n\t\t// Clamp alpha to [0, 1]\n\t\tthis.alpha = alpha > 1 || alpha === undefined ? 1 : (alpha < 0 ? 0 : alpha);\n\n\t\t// Convert \"NaN\" to NaN\n\t\tfor (let i = 0; i < this.coords.length; i++) {\n\t\t\tif (this.coords[i] === \"NaN\") {\n\t\t\t\tthis.coords[i] = NaN;\n\t\t\t}\n\t\t}\n\n\t\t// Define getters and setters for each coordinate\n\t\tfor (let id in this.space.coords) {\n\t\t\tObject.defineProperty(this, id, {\n\t\t\t\tget: () => this.get(id),\n\t\t\t\tset: value => this.set(id, value),\n\t\t\t});\n\t\t}\n\t}\n\n\tget spaceId () {\n\t\treturn this.space.id;\n\t}\n\n\tclone () {\n\t\treturn new Color(this.space, this.coords, this.alpha);\n\t}\n\n\ttoJSON () {\n\t\treturn {\n\t\t\tspaceId: this.spaceId,\n\t\t\tcoords: this.coords,\n\t\t\talpha: this.alpha,\n\t\t};\n\t}\n\n\tdisplay (...args) {\n\t\tlet ret = display(this, ...args);\n\n\t\t// Convert color object to Color instance\n\t\tret.color = new Color(ret.color);\n\n\t\treturn ret;\n\t}\n\n\t/**\n\t * Get a color from the argument passed\n\t * Basically gets us the same result as new Color(color) but doesn't clone an existing color object\n\t */\n\tstatic get (color, ...args) {\n\t\tif (color instanceof Color) {\n\t\t\treturn color;\n\t\t}\n\n\t\treturn new Color(color, ...args);\n\t}\n\n\tstatic defineFunction (name, code, o = code) {\n\t\tlet {instance = true, returns} = o;\n\n\t\tlet func = function (...args) {\n\t\t\tlet ret = code(...args);\n\n\t\t\tif (returns === \"color\") {\n\t\t\t\tret = Color.get(ret);\n\t\t\t}\n\t\t\telse if (returns === \"function<color>\") {\n\t\t\t\tlet f = ret;\n\t\t\t\tret = function (...args) {\n\t\t\t\t\tlet ret = f(...args);\n\t\t\t\t\treturn Color.get(ret);\n\t\t\t\t};\n\t\t\t\t// Copy any function metadata\n\t\t\t\tObject.assign(ret, f);\n\t\t\t}\n\t\t\telse if (returns === \"array<color>\") {\n\t\t\t\tret = ret.map(c => Color.get(c));\n\t\t\t}\n\n\t\t\treturn ret;\n\t\t};\n\n\t\tif (!(name in Color)) {\n\t\t\tColor[name] = func;\n\t\t}\n\n\t\tif (instance) {\n\t\t\tColor.prototype[name] = function (...args) {\n\t\t\t\treturn func(this, ...args);\n\t\t\t};\n\t\t}\n\t}\n\n\tstatic defineFunctions (o) {\n\t\tfor (let name in o) {\n\t\t\tColor.defineFunction(name, o[name], o[name]);\n\t\t}\n\t}\n\n\tstatic extend (exports) {\n\t\tif (exports.register) {\n\t\t\texports.register(Color);\n\t\t}\n\t\telse {\n\t\t\t// No register method, just add the module's functions\n\t\t\tfor (let name in exports) {\n\t\t\t\tColor.defineFunction(name, exports[name]);\n\t\t\t}\n\t\t}\n\t}\n}\n\nColor.defineFunctions({\n\tget,\n\tgetAll,\n\tset,\n\tsetAll,\n\tto,\n\tequals,\n\tinGamut,\n\ttoGamut,\n\tdistance,\n\ttoString: serialize,\n});\n\nObject.assign(Color, {\n\tutil,\n\thooks,\n\tWHITES,\n\tSpace: ColorSpace,\n\tspaces: ColorSpace.registry,\n\tparse,\n\n\t// Global defaults one may want to configure\n\tdefaults,\n});\n", "import ColorSpace from \"../space.js\";\nimport * as spaces from \"./index-fn.js\";\n\nexport * as spaces from \"./index-fn.js\";\n\nfor (let key of Object.keys(spaces)) {\n\tColorSpace.register(spaces[key]);\n}\n", "/**\n * This plugin defines getters and setters for color[spaceId]\n * e.g. color.lch on *any* color gives us the lch coords\n */\nimport ColorSpace from \"./space.js\";\nimport Color from \"./color.js\";\nimport hooks from \"./hooks.js\";\n\n// Add space accessors to existing color spaces\nfor (let id in ColorSpace.registry) {\n\taddSpaceAccessors(id, ColorSpace.registry[id]);\n}\n\n// Add space accessors to color spaces not yet created\nhooks.add(\"colorspace-init-end\", space => {\n\taddSpaceAccessors(space.id, space);\n\tspace.aliases?.forEach(alias => {\n\t\taddSpaceAccessors(alias, space);\n\t});\n});\n\nfunction addSpaceAccessors (id, space) {\n\tlet propId = id.replace(/-/g, \"_\");\n\n\tObject.defineProperty(Color.prototype, propId, {\n\t\t// Convert coords to coords in another colorspace and return them\n\t\t// Source colorspace: this.spaceId\n\t\t// Target colorspace: id\n\t\tget () {\n\t\t\tlet ret = this.getAll(id);\n\n\t\t\tif (typeof Proxy === \"undefined\") {\n\t\t\t\t// If proxies are not supported, just return a static array\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Enable color.spaceId.coordName syntax\n\t\t\treturn new Proxy(ret, {\n\t\t\t\thas: (obj, property) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tColorSpace.resolveCoord([space, property]);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {}\n\n\t\t\t\t\treturn Reflect.has(obj, property);\n\t\t\t\t},\n\t\t\t\tget: (obj, property, receiver) => {\n\t\t\t\t\tif (property && typeof property !== \"symbol\" && !(property in obj)) {\n\t\t\t\t\t\tlet {index} = ColorSpace.resolveCoord([space, property]);\n\n\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\treturn obj[index];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Reflect.get(obj, property, receiver);\n\t\t\t\t},\n\t\t\t\tset: (obj, property, value, receiver) => {\n\t\t\t\t\tif (property && typeof property !== \"symbol\" && !(property in obj) || property >= 0) {\n\t\t\t\t\t\tlet {index} = ColorSpace.resolveCoord([space, property]);\n\n\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\tobj[index] = value;\n\n\t\t\t\t\t\t\t// Update color.coords\n\t\t\t\t\t\t\tthis.setAll(id, obj);\n\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Reflect.set(obj, property, value, receiver);\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\t// Convert coords in another colorspace to internal coords and set them\n\t\t// Target colorspace: this.spaceId\n\t\t// Source colorspace: id\n\t\tset (coords) {\n\t\t\tthis.setAll(id, coords);\n\t\t},\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t});\n}\n", "// Import all modules of Color.js\nimport Color from \"./color.js\";\n\n// Import all color spaces\nimport \"./spaces/index.js\";\n\n// Import all DeltaE methods\nimport deltaE from \"./deltaE.js\";\nimport deltaEMethods from \"./deltaE/index.js\";\n\nColor.extend(deltaEMethods);\nColor.extend({deltaE});\nObject.assign(Color, {deltaEMethods});\n\n// Import optional modules\nimport * as variations from \"./variations.js\";\nColor.extend(variations);\n\nimport contrast from \"./contrast.js\";\nColor.extend({contrast});\n\nimport * as chromaticity from \"./chromaticity.js\";\nColor.extend(chromaticity);\n\nimport * as luminance from \"./luminance.js\";\nColor.extend(luminance);\n\nimport * as interpolation from \"./interpolation.js\";\nColor.extend(interpolation);\n\nimport * as contrastMethods from \"./contrast/index.js\";\nColor.extend(contrastMethods);\n\nimport \"./CATs.js\";\nimport \"./space-accessors.js\";\n\n// Re-export everything\nexport default Color;\n"],
      5   "mappings": "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S,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAK,GAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAM,IAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAO,IAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,yBAAyB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO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,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAO,KAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,YAAY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AAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,KAAK,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,IAAI,EAEj+CC,GAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EA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AAO2D,EAGT,GAAI,OAAOA,GAAY,SACrB,OAAO,KAGT,IAAIsI,EAAQtI,EAAQ,MAAMnD,GAAOgC,EAAM,CAAC,EAExC,OAAIyJ,GAAS,KACJ,KAGFvI,GAAMuI,EAAM,CAAC,EAClB,KAAOA,EAAM,CAAC,GAAK,KACnB,KAAOA,EAAM,CAAC,GAAK,IAAI,CAC3B,ICp/CA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAA,SACC,OACA,gBACA,MACA,OACA,UACA,UACA,UACA,UACA,UACA,gBACA,oBACA,gBACA,oBACA,aACA,UACA,MACA,cACA,QACA,WACA,oBACA,SACA,UACA,WACA,WACA,WACA,WACA,0BACA,0BACA,WACA,cACA,aACA,2BACA,cACA,eACA,WACA,UACA,aACA,aACA,aACA,UACA,cACA,eACA,oBACA,mBACA,eACA,eACA,eACA,sBACA,sBACA,qBACA,2BACA,eACA,2BACA,qBACA,kBACA,oBACA,4BACA,mCACA,kCACA,uCACA,mCACA,wBACA,mBACA,sBACA,oBACA,eACA,yBACA,kBACA,cACA,eACA,kCACA,kCACA,uBACA,iBACA,kBACA,4BACA,gBACA,wBACA,UACA,WACA,UACA,SACA,OACA,WACA,iBACA,iBACA,oBACA,iBACA,gBACA,WACA,UACA,yBACA,yBACA,YACA,UACA,kCACA,aACA,YACA,YACA,YACA,eACA,YACA,eACA,eACA,eACA,gBACA,eACA,eACA,YACA,eACA,eACA,eACA,eACA,kBACA,eACA,kBACA,kBACA,kBACA,kBACA,qBACA,sBACA,kBACA,kBACA,kBACA,qBACA,qBACA,qBACA,kBACA,kBACA,qBACA,sBACA,kBACA,eACA,eACA,eACA,eACA,kBACA,eACA,eACA,eACA,kBACA,kBACA,eACA,eACA,kBACA,kBACA,mBACA,eACA,UACA,UACA,WACA,WACA,UACA,sBACA,sBACA,mBACA,aACA,aACA,aACA,aACA,WACA,WACA,eACA,eACA,iBACA,iBACA,iBACA,UACA,WACA,iBACA,cACA,cACA,6BACA,WACA,WACA,UACA,YACA,cACA,UACA,sBACA,WACA,aACA,QACA,qBACA,aACA,wBACA,SACA,YACA,iBACA,OACA,YACA,eACA,eACA,iBACA,MACA,UACA,UACA,OACA,iBACA,cACA,UACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,aACA,WACA,WACA,WACA,cACA,UACA,YACA,UACA,MACA,UACA,QACA,+BACA,QACA,UACA,YACA,MACA,OACA,mBACA,gBACA,cACA,YACA,WACA,WACA,KACA,2BACA,+BACA,8BACA,kCACA,gBACA,oBACA,2BACA,+BACA,8BACA,kCACA,gBACA,oBACA,2BACA,+BACA,8BACA,kCACA,gBACA,oBACA,QACA,SACA,eACA,mBACA,eACA,mBACA,eACA,mBACA,WACA,QACA,SACA,gBACA,UACA,SACA,UACA,UACA,OACA,WACA,4BACA,kBACA,aACA,qBACA,sBACA,mBACA,cACA,eACA,UACA,oBACA,WACA,gBACA,iBACA,iCACA,wBACA,kBACA,+BACA,mCACA,oBACA,oBACA,mCACA,uCACA,WACA,gBACA,kBACA,WACA,MACA,2BACA,MACA,YACA,MACA,UACA,MACA,eACA,cACA,SACA,WACA,gBACA,QACA,aACA,gBACA,YACA,QACA,OACA,MACA,aACA,UACA,SACA,aACA,UACA,UACA,gBACA,oBACA,gBACA,oBACA,gBACA,oBACA,SACA,OACA,eACA,UACA,WACA,WACA,WACA,WACA,YACA,YACA,wBACA,gBACA,UACA,4BACA,YACA,cACA,cACA,kBACA,SACA,eACA,yBACA,2BACA,kCACA,+BACA,sBACA,MACA,QACA,UACA,eACA,kBACA,qBACA,SACA,kBACA,WACA,UACA,iBACA,gBACA,SACA,WACA,WACA,UACA,UACA,UACA,gCACA,SACA,QACA,QACA,OACA,qBACA,oCACA,YACA,mBACA,mBACA,UACA,QACA,WACA,eACA,eACA,UACA,MACA,aACA,WACA,WACA,UACA,cACA,MACA,OACA,OACA,YACA,UACA,mBACA,gBACA,WACA,WACA,OACA,OACA,UACA,UACA,YACA,MACA,MACA,QACA,SACA,SACA,WACA,QACA,QACA,YACA,MACA,UACA,WACA,aACA,WACA,QACA,UACA,cACA,iBACA,UACA,cACA,iBACA,UACA,kBACA,iBACA,aACA,aACA,aACA,QACA,YACA,YACA,YACA,YACA,YACA,cACA,YACA,YACA,cACA,cACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,MACA,UACA,aACA,YACA,cACA,UACA,UACA,UACA,UACA,UACA,cACA,UACA,qBACA,aACA,OACA,WACA,UACA,WACA,MACA,UACA,eACA,eACA,QACA,SACA,+BACA,gCACA,aACA,aACA,eACA,UACA,qBACA,QACA,aACA,UACA,UACA,WACA,SACA,QACA,QACA,OACA,WACA,SACA,aACA,OACA,YACA,YACA,YACA,aACA,OACA,UACA,WACA,QACA,YACA,KACA,QACA,QACA,OACA,UACA,cACA,YACA,oBACA,WACA,MACA,UACA,eACA,WACA,gBACA,YACA,YACA,UACA,aACA,aACA,aACA,iBACA,UACA,eACA,SACA,WACA,eACA,MACA,eACA,YACA,QACA,aACA,OACA,OACA,UACA,OACA,QACA,gBACA,gBACA,cACA,OACA,UACA,cACA,UACA,UACA,kBACA,cACA,mBACA,mBACA,cACA,YACA,YACA,UACA,UACA,MACA,MACA,eACA,eACA,QACA,aACA,kBACA,SACA,MACA,uCACA,cACA,cACA,QACA,cACA,QACA,OACA,OACA,UACA,UACA,UACA,UACA,UACA,MACA,QACA,WACA,aACA,aACA,OACA,UACA,wBACA,WACA,cACA,YACA,UACA,sBACA,sBACA,OACA,UACA,WACA,OACA,UACA,SACA,aACA,OACA,aACA,UACA,UACA,SACA,SACA,aACA,iBACA,UACA,uBACA,OACA,QACA,WACA,WACA,iBACA,SACA,QACA,UACA,YACA,SACA,UACA,cACA,QACA,WACA,aACA,cACA,SACA,iBACA,OACA,MACA,SACA,4BACA,QACA,MACA,QACA,sBACD,IC3nBA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAA,SACC,WACA,WACA,uBACA,sBACA,WACA,WACA,WACA,UACA,UACA,6BACA,kCACA,+BACA,mCACA,8BACA,UACA,6BACA,kCACA,WACA,WACA,WACA,WACA,QACA,gBACA,cACA,WACA,WACD,IC3BA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAA,SACE,gBACA,qBACA,yBACA,yBACA,6BACA,iCACA,2BACA,uBACA,sBACA,uBACA,0BACA,sBACA,+BACA,0BACA,qBACA,2BACA,iBACA,gBACA,qBACA,yBACA,oBACA,yBACA,oBACA,iBACA,iBACA,2BACA,yBACA,yBACA,8BACA,4BACA,mCACA,aACA,2BACA,2BACA,yBACA,4BACA,6BACA,4BACA,oBACA,qBACA,QACA,iBACA,iBACA,gBACA,+BACA,qBACA,iCACA,4BACA,oCACA,+BACA,uBACA,wBACA,oBACA,iBACA,UACA,UACA,oBACA,gBACA,kBACA,oBACA,uBACA,iBACA,+BACA,2BACA,0BACA,0BACF,ICnEA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAW,CAAC,EACb,OAAO,IAA2B,EAClC,OAAO,IAAsC,EAC5CC,GAAa,KAEjBF,GAAO,QAAU,SAAUG,EAAQ,CACjC,IAAIC,EAAQ,EAEZ,SAASC,GAAW,CAClB,OAAOD,EAAQD,EAAO,MACxB,CAKA,SAASG,EAAMC,EAAO,CACpB,GAAIA,aAAiB,OAAQ,CAC3B,IAAIC,EAAQL,EAAO,MAAMC,CAAK,EAC1BK,EAAQD,EAAM,MAAMD,CAAK,EAC7B,GAAIE,EACF,OAAAL,GAASK,EAAM,CAAC,EAAE,OACXA,EAAM,CAAC,CAElB,SACMN,EAAO,QAAQI,EAAOH,CAAK,IAAMA,EACnC,OAAAA,GAASG,EAAM,OACRA,CAGb,CAEA,SAASG,GAAkB,CACzBJ,EAAK,MAAM,CACb,CAEA,SAASK,GAAY,CAGnB,QAFIC,EACAC,EAAgB,CAAC,OAAQ,MAAO,KAAM,IAAK,IA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SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,uBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,qBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,4BACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,qBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,uBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,wBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,wBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,qBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,sBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,qBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,MACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,qBACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,uBACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,kBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,sBACR,IAAO,QACT,EACA,CACE,KAAQ,mBACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,oBACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,OACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,iBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,WACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,aACR,IAAO,QACT,EACA,CACE,KAAQ,eACR,IAAO,QACT,EACA,CACE,KAAQ,sBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,gBACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,UACR,IAAO,QACT,EACA,CACE,KAAQ,SACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,cACR,IAAO,QACT,EACA,CACE,KAAQ,YACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,EACA,CACE,KAAQ,QACR,IAAO,QACT,CACF,ICznMA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,CAAC,C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AK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,UACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,eACN,IAAK,SACP,EAAG,CACD,KAAM,eACN,IAAK,SACP,EAAG,CACD,KAAM,UACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,eACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,kBACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,MACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,uBACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,UACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,UACN,IAAK,SACP,EAAG,CACD,KAAM,UACN,IAAK,SACP,EAAG,CACD,KAAM,MACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,iBACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,eACN,IAAK,SACP,EAAG,CACD,KAAM,eACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,WACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,UACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,iBACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,iBACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,iBACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,kBACN,IAAK,SACP,EAAG,CACD,KAAM,eACN,IAAK,SACP,EAAG,CACD,KAAM,YACN,IAAK,SACP,EAAG,CACD,KAAM,cACN,IAAK,SACP,EAAG,CACD,KAAM,gBACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,SACN,IAAK,SACP,EAAG,CACD,KAAM,OACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,kBACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,mBACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,aACN,IAAK,SACP,EAAG,CACD,KAAM,QACN,IAAK,SACP,EAAG,CACD,KAAM,iBACN,IAAK,SACP,EAAG,CACD,KAAM,UACN,IAAK,SACP,CAA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",
      6   "names": ["require_lite", "__commonJSMin", "exports", "has", "dequal", "foo", "bar", "ctor", "len", "require_useDeepMemo", "__commonJSMin", "exports", "react_1", "lite_1", "useDeepMemo", "value", "ref", "signalRef", "require_useLatest", "__commonJSMin", "exports", "react_1", "useLatest", "value", "ref", "require_showFailureToast", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__setModuleDefault", "v", "__importStar", "mod", "result", "fs", "path", "api_1", "showFailureToast", "error", "options", "message", "handleErrorToastAction", "privateExtension", "title", "extensionURL", "packageJSON", "fallback", "stack", "toast", "require_usePromise", "__commonJSMin", "exports", "react_1", "api_1", "useDeepMemo_1", "useLatest_1", "showFailureToast_1", "usePromise", "fn", "args", "options", "lastCallId", "state", "set", "fnRef", "latestAbortable", "latestArgs", "latestOnError", "latestOnData", "latestOnWillExecute", "latestFailureToast", "latestValue", "latestCallback", "paginationArgsRef", "usePaginationRef", "hasMoreRef", "pageSizeRef", "callback", "callId", "prevState", "promiseOrPaginatedPromise", "bindPromiseIfNeeded", "handleError", "error", "toast", "data", "hasMore", "cursor", "previousData", "revalidate", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "update", "err", "onLoadMore", "isLoading", "stateWithLoadingFixed", "pagination", "require_object_hash", "__commonJSMin", "exports", "module", "crypto", "objectHash", "object", "options", "applyDefaults", "hash", "hashes", "encodings", "sourceOptions", "i", "isNativeFunction", "f", "exp", "hashingStream", "PassThrough", "hasher", "typeHasher", "buf", "stream", "writeTo", "context", "write", "str", "value", "type", "pattern", "objString", "objType", "objectNumber", "keys", "key", "self", "arr", "unordered", "entry", "contextAdditions", "entries", "strm", "localContext", "date", "sym", "err", "bool", "string", "fn", "number", "xml", "regex", "url", "map", "set", "file", "b", "require_helpers", "__commonJSMin", "exports", "__importDefault", "mod", "object_hash_1", "replacer", "key", "_value", "value", "reviver", "_key", "hash", "object", "options", "require_useCachedState", "__commonJSMin", "exports", "react_1", "api_1", "useLatest_1", "helpers_1", "rootCache", "cacheMap", "useCachedState", "key", "initialState", "config", "cacheKey", "cache", "keyRef", "initialValueRef", "cachedState", "error", "state", "err", "stateRef", "setStateAndCache", "updater", "newValue", "stringifiedValue", "require_useCachedPromise", "__commonJSMin", "exports", "react_1", "useCachedState_1", "usePromise_1", "useLatest_1", "helpers_1", "emptyCache", "useCachedPromise", "fn", "args", "options", "initialData", "keepPreviousData", "internal_cacheKeySuffix", "usePromiseOptions", "lastUpdateFrom", "cachedData", "mutateCache", "laggyDataRef", "paginationArgsRef", "_mutate", "revalidate", "state", "data", "pagination", "returnedData", "latestData", "mutate", "asyncUpdate", "dataBeforeOptimisticUpdate", "err", "require_lib", "__commonJSMin", "exports", "module", "conversions", "sign", "x", "evenRound", "createNumberConversion", "bitLength", "typeOpts", "lowerBound", "upperBound", "moduloVal", "moduloBound", "V", "opts", "val", "c", "i", "S", "n", "U", "d", "a", "b", "require_utils", "__commonJSMin", "exports", "module", "target", "source", "keys", "i", "impl", "wrapper", "require_mappingTable", "__commonJSMin", "exports", "module", "require_tr46", "__commonJSMin", "exports", "module", "punycode", "mappingTable", "PROCESSING_OPTIONS", "normalize", "str", "s", "findStatus", "val", "start", "end", "mid", "target", "regexAstralSymbols", "countSymbols", "string", "mapChars", "domain_name", "useSTD3", "processing_option", "hasError", "processed", "len", "i", "codePoint", "status", "combiningMarksRegex", "validateLabel", "label", "error", "processing", "result", "labels", "validation", "verifyDnsLength", "l", "total", "require_url_state_machine", "__commonJSMin", "exports", "module", "punycode", "tr46", "specialSchemes", "failure", "countSymbols", "str", "at", "input", "idx", "c", "isASCIIDigit", "isASCIIAlpha", "isASCIIAlphanumeric", "isASCIIHex", "isSingleDot", "buffer", "isDoubleDot", "isWindowsDriveLetterCodePoints", "cp1", "cp2", "isWindowsDriveLetterString", "string", "isNormalizedWindowsDriveLetterString", "containsForbiddenHostCodePoint", "containsForbiddenHostCodePointExcludingPercent", "isSpecialScheme", "scheme", "isSpecial", "url", "defaultPort", "percentEncode", "hex", "utf8PercentEncode", "buf", "i", "utf8PercentDecode", "output", "isC0ControlPercentEncode", "extraPathPercentEncodeSet", "isPathPercentEncode", "extraUserinfoPercentEncodeSet", "isUserinfoPercentEncode", "percentEncodeChar", "encodeSetPredicate", "cStr", "parseIPv4Number", "R", "parseIPv4", "parts", "numbers", "part", "n", "ipv4", "counter", "serializeIPv4", "address", "parseIPv6", "pieceIndex", "compress", "pointer", "value", "length", "numbersSeen", "ipv4Piece", "number", "swaps", "temp", "serializeIPv6", "findLongestZeroSequence", "ignore0", "parseHost", "isSpecialArg", "parseOpaqueHost", "domain", "asciiDomain", "ipv4Host", "decoded", "arr", "maxIdx", "maxLen", "currStart", "currLen", "serializeHost", "host", "trimControlChars", "trimTabAndNewline", "shortenPath", "path", "isNormalizedWindowsDriveLetter", "includesCredentials", "cannotHaveAUsernamePasswordPort", "URLStateMachine", "base", "encodingOverride", "stateOverride", "res", "ret", "len", "codePoint", "encodedCodePoints", "port", "fileOtherwiseCodePoints", "serializeURL", "excludeFragment", "serializeOrigin", "tuple", "result", "options", "usm", "username", "password", "integer", "require_URL_impl", "__commonJSMin", "exports", "usm", "constructorArgs", "url", "base", "parsedBase", "parsedURL", "v", "input", "require_URL", "__commonJSMin", "exports", "module", "conversions", "utils", "Impl", "impl", "URL", "url", "args", "i", "V", "obj", "constructorArgs", "privateData", "require_public_api", "__commonJSMin", "exports", "require_lib", "__commonJSMin", "exports", "module", "_interopDefault", "ex", "Stream", "http", "Url", "whatwgUrl", "https", "zlib", "Readable", "BUFFER", "TYPE", "Blob", "_Blob", "blobParts", "options", "buffers", "size", "a", "length", "i", "element", "buffer", "type", "buf", "ab", "readable", "start", "end", "relativeStart", "relativeEnd", "span", "slicedBuffer", "blob", "FetchError", "message", "systemError", "convert", "INTERNALS", "PassThrough", "Body", "body", "_this", "_ref", "_ref$size", "_ref$timeout", "timeout", "isURLSearchParams", "isBlob", "err", "error", "consumeBody", "ct", "_this2", "_this3", "convertBody", "proto", "name", "desc", "_this4", "accum", "accumBytes", "abort", "resolve", "reject", "resTimeout", "chunk", "headers", "charset", "res", "str", "obj", "clone", "instance", "p1", "p2", "extractContentType", "getTotalBytes", "writeToStream", "dest", "invalidTokenRegex", "invalidHeaderCharRegex", "validateName", "validateValue", "value", "find", "map", "key", "MAP", "Headers", "_Headers", "init", "rawHeaders", "headerNames", "headerName", "method", "pairs", "pair", "callback", "thisArg", "getHeaders", "_pairs$i", "createHeadersIterator", "kind", "k", "INTERNAL", "target", "iterator", "HeadersIteratorPrototype", "_INTERNAL", "index", "values", "len", "exportNodeCompatibleHeaders", "hostHeaderKey", "createHeadersLenient", "val", "INTERNALS$1", "STATUS_CODES", "Response", "_Response", "opts", "status", "contentType", "INTERNALS$2", "URL", "parse_url", "format_url", "parseURL", "urlStr", "streamDestructionSupported", "isRequest", "input", "isAbortSignal", "signal", "Request", "_Request", "parsedURL", "inputBody", "getNodeRequestOptions", "request", "contentLengthValue", "totalBytes", "agent", "AbortError", "URL$1", "PassThrough$1", "isDomainOrSubdomain", "destination", "original", "orig", "isSameProtocol", "fetch", "url", "send", "response", "destroyStream", "abortAndFinalize", "finalize", "req", "reqTimeout", "socket", "fixResponseChunkedTransferBadEnding", "s", "hadError", "hasDataListener", "location", "locationURL", "requestOpts", "response_options", "codings", "zlibOptions", "raw", "errorCallback", "stream", "code", "require_node_ponyfill", "__commonJSMin", "exports", "module", "nodeFetch", "realFetch", "fetch", "url", "options", "require_fetch_utils", "__commonJSMin", "exports", "isJSON", "contentTypeHeader", "mediaType", "parseContentType", "MEDIA_TYPE_REGEXP", "header", "headerDelimitationindex", "contentType", "match", "type", "subtype", "suffix", "index", "require_useFetch", "__commonJSMin", "exports", "react_1", "useCachedPromise_1", "useLatest_1", "cross_fetch_1", "fetch_utils_1", "helpers_1", "defaultParsing", "response", "contentTypeHeader", "defaultMapping", "result", "useFetch", "url", "options", "parseResponse", "mapResult", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "failureToastOptions", "fetchOptions", "useCachedPromiseOptions", "parseResponseRef", "mapResultRef", "urlRef", "firstPageUrlRef", "firstPageUrl", "abortable", "paginatedFn", "pagination", "res", "parsed", "fn", "promise", "exports", "signals_js_1", "exports", "processOk", "process", "kExitEmitter", "global", "ObjectDefineProperty", "Emitter", "ev", "fn", "list", "i", "code", "signal", "ret", "SignalExitBase", "signalExitWrap", "handler", "cb", "opts", "SignalExitFallback", "SignalExit", "#hupSig", "#emitter", "#process", "#originalProcessEmit", "#originalProcessReallyExit", "#sigListeners", "#loaded", "sig", "listeners", "count", "p", "a", "#processEmit", "#processReallyExit", "listener", "args", "og", "_a", "require_exec_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_buffer_1", "node_stream_1", "node_util_1", "signal_exit_1", "getSpawnedPromise", "spawned", "timeout", "spawnedPromise", "resolve", "reject", "exitCode", "signal", "error", "timeoutId", "timeoutPromise", "_resolve", "safeSpawnedPromise", "removeExitHandler", "MaxBufferError", "streamPipelinePromisified", "bufferStream", "options", "encoding", "isBuffer", "stream", "length", "chunks", "chunk", "getStream", "inputStream", "rejectPromise", "getBufferedData", "streamPromise", "getSpawnedResult", "stdout", "stderr", "processDone", "stdoutPromise", "stderrPromise", "stripFinalNewline", "input", "LF", "CR", "handleOutput", "value", "getErrorPrefix", "timedOut", "makeError", "command", "parentError", "execaMessage", "shortMessage", "message", "defaultParsing", "require_useExec", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "react_1", "useCachedPromise_1", "useLatest_1", "exec_utils_1", "SPACES_REGEXP", "parseCommand", "command", "args", "tokens", "token", "previousToken", "useExec", "optionsOrArgs", "options", "parseOutput", "input", "onData", "onWillExecute", "initialData", "execute", "keepPreviousData", "onError", "failureToastOptions", "execOptions", "useCachedPromiseOptions", "abortable", "parseOutputRef", "fn", "_command", "_args", "_options", "file", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_stream_chain", "__commonJSMin", "exports", "module", "Readable", "Writable", "Duplex", "Transform", "none", "finalSymbol", "manySymbol", "final", "value", "many", "values", "isFinal", "o", "isMany", "getFinalValue", "getManyValues", "runAsyncGenerator", "gen", "stream", "data", "Chain", "wrapFunction", "fn", "chunk", "encoding", "callback", "result", "error", "wrapArray", "fns", "isReadableNodeStream", "obj", "isWritableNodeStream", "isDuplexNodeStream", "_Chain", "options", "index", "s", "output", "_1", "_2", "e", "require_Utf8Stream", "__commonJSMin", "exports", "module", "Transform", "StringDecoder", "Utf8Stream", "options", "chunk", "encoding", "callback", "_", "require_Parser", "__commonJSMin", "exports", "module", "Utf8Stream", "patterns", "MAX_PATTERN_SIZE", "noSticky", "key", "src", "values", "expected", "fromHex", "s", "codes", "Parser", "_Parser", "options", "callback", "error", "match", "value", "index", "main", "t", "require_emit", "__commonJSMin", "exports", "module", "emit", "stream", "item", "require_stream_json", "__commonJSMin", "exports", "module", "Parser", "emit", "make", "options", "require_FilterBase", "__commonJSMin", "exports", "module", "Transform", "FilterBase", "_FilterBase", "string", "separator", "stack", "path", "regExp", "array", "options", "filter", "replacement", "chunk", "_", "callback", "passValue", "last", "post", "expected", "skipValue", "require_withParser", "__commonJSMin", "exports", "module", "Chain", "Parser", "withParser", "fn", "options", "require_Pick", "__commonJSMin", "exports", "module", "FilterBase", "withParser", "Pick", "_Pick", "options", "chunk", "require_Assembler", "__commonJSMin", "exports", "module", "EventEmitter", "startObject", "Ctr", "Assembler", "_Assembler", "stream", "options", "chunk", "path", "i", "key", "level", "index", "value", "require_StreamBase", "__commonJSMin", "exports", "module", "Transform", "Assembler", "Counter", "initialDepth", "StreamBase", "options", "chunk", "encoding", "callback", "result", "require_StreamArray", "__commonJSMin", "exports", "module", "StreamBase", "withParser", "StreamArray", "_StreamArray", "options", "chunk", "_", "callback", "discard", "require_useStreamJSON", "__commonJSMin", "exports", "__importDefault", "mod", "api_1", "cross_fetch_1", "node_fs_1", "promises_1", "node_path_1", "promises_2", "react_1", "stream_chain_1", "stream_json_1", "Pick_1", "StreamArray_1", "fetch_utils_1", "useCachedPromise_1", "helpers_1", "cache", "url", "destination", "fetchOptions", "cacheURL", "cacheFile", "response", "source", "abortSignal", "cacheURLIfNecessary", "folder", "fileName", "forceUpdate", "stats", "headResponse", "lastModified", "streamJsonFile", "filePath", "pageSize", "dataPath", "filterFn", "transformFn", "page", "pipeline", "data", "e", "useStreamJSON", "options", "initialData", "execute", "keepPreviousData", "onError", "onData", "onWillExecute", "failureToastOptions", "filter", "transform", "previousUrl", "previousDestination", "useCachedPromiseOptions", "generatorRef", "controllerRef", "hasMoreRef", "forceCacheUpdate", "newData", "done", "require_sql_utils", "__commonJSMin", "exports", "__importDefault", "mod", "node_fs_1", "promises_1", "node_os_1", "node_child_process_1", "node_path_1", "exec_utils_1", "helpers_1", "PermissionError", "message", "isPermissionError", "error", "baseExecuteSQL", "databasePath", "query", "options", "abortSignal", "workaroundCopiedDb", "spawned", "spawnedPromise", "exitCode", "signal", "stdoutResult", "stderrResult", "checkAborted", "tempFolder", "require_useSQL", "__commonJSMin", "exports", "__importDefault", "mod", "jsx_runtime_1", "api_1", "node_fs_1", "node_os_1", "react_1", "usePromise_1", "useLatest_1", "showFailureToast_1", "sql_utils_1", "useSQL", "databasePath", "query", "options", "permissionPriming", "usePromiseOptions", "permissionView", "setPermissionView", "latestOptions", "abortable", "handleError", "_error", "error", "PermissionErrorScreen", "fn", "abortSignal", "macosVenturaAndLater", "preferencesString", "props", "action", "require_useForm", "__commonJSMin", "exports", "react_1", "useLatest_1", "FormValidation", "validationError", "validation", "value", "valueIsValid", "useForm", "props", "_onSubmit", "initialValues", "values", "setValues", "errors", "setErrors", "refs", "latestValidation", "latestOnSubmit", "focus", "id", "handleSubmit", "validationErrors", "error", "result", "setValidationError", "setValue", "itemProps", "target", "event", "instance", "reset", "ref", "require_useAI", "__commonJSMin", "exports", "react_1", "api_1", "usePromise_1", "useAI", "prompt", "options", "creativity", "stream", "model", "usePromiseOptions", "data", "setData", "abortable", "isLoading", "error", "revalidate", "shouldStream", "x", "require_useFrecencySorting", "__commonJSMin", "exports", "react_1", "useLatest_1", "useCachedState_1", "HALF_LIFE_DAYS", "MS_PER_DAY", "DECAY_RATE_CONSTANT", "VISIT_TYPE_POINTS", "getNewFrecency", "item", "now", "lastVisited", "frecency", "visitAgeInDays", "currentVisitValue", "totalVisitValue", "defaultKey", "useFrecencySorting", "data", "options", "keyRef", "sortUnvisitedRef", "storedFrecencies", "setStoredFrecencies", "visitItem", "itemKey", "newFrecency", "resetRanking", "newFrencencies", "a", "b", "frecencyA", "frecencyB", "require_useLocalStorage", "__commonJSMin", "exports", "api_1", "showFailureToast_1", "helpers_1", "usePromise_1", "useLocalStorage", "key", "initialValue", "value", "isLoading", "mutate", "storageKey", "item", "setValue", "error", "removeValue", "require_color", "__commonJSMin", "exports", "hexToRGB", "hex", "r", "g", "b", "rgbToHex", "rString", "gString", "bString", "rgbToHSL", "cmin", "cmax", "delta", "h", "l", "hslToRGB", "s", "c", "x", "m", "hexToHSL", "hslToHex", "hsl", "clamp", "value", "min", "max", "offset", "slightlyDarkerColor", "slightlyLighterColor", "require_avatar", "__commonJSMin", "exports", "color_1", "getWholeCharAndI", "str", "i", "code", "next", "prev", "avatarColorSet", "getAvatarIcon", "name", "options", "words", "initials", "firstWordFirstLetter", "lastWordFirstLetter", "backgroundColor", "initialsCharIndex", "char", "colorIndex", "radius", "require_favicon", "__commonJSMin", "exports", "api_1", "url_1", "getFavicon", "url", "options", "hostname", "e", "require_progress", "__commonJSMin", "exports", "api_1", "polarToCartesian", "centerX", "centerY", "radius", "angleInDegrees", "angleInRadians", "describeArc", "x", "y", "startAngle", "endAngle", "start", "end", "largeArcFlag", "getProgressIcon", "progress", "color", "options", "background", "backgroundOpacity", "stroke", "require_icon", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_providers", "__commonJSMin", "exports", "api_1", "OAuthService_1", "PROVIDER_CLIENT_IDS", "getIcon", "markup", "PROVIDERS_ICONS", "asanaService", "options", "githubService", "googleService", "jiraService", "linearService", "slackService", "response", "zoomService", "require_OAuthService", "__commonJSMin", "exports", "__importDefault", "mod", "cross_fetch_1", "providers_1", "OAuthService", "options", "x", "currentTokenSet", "tokens", "authRequest", "authorizationCode", "params", "response", "responseText", "token", "tokenResponse", "require_withAccessToken", "__commonJSMin", "exports", "jsx_runtime_1", "api_1", "token", "type", "authorize", "getIdToken", "onAuthorize", "withAccessToken", "options", "fn", "props", "idToken", "Component", "WrappedComponent", "wrapPromise", "getAccessToken", "promise", "status", "response", "suspender", "res", "err", "require_oauth", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_createDeeplink", "__commonJSMin", "exports", "__importDefault", "mod", "api_1", "node_fs_1", "node_path_1", "DeeplinkType", "getProtocol", "getOwnerOrAuthorName", "packageJSON", "createScriptCommandDeeplink", "options", "url", "params", "arg", "createExtensionDeeplink", "ownerOrAuthorName", "extensionName", "createDeeplink", "require_executeSQL", "__commonJSMin", "exports", "sql_utils_1", "executeSQL", "databasePath", "query", "require_run_applescript", "__commonJSMin", "exports", "__importDefault", "mod", "node_child_process_1", "exec_utils_1", "runAppleScript", "script", "optionsOrArgs", "options", "humanReadableOutput", "language", "timeout", "execOptions", "outputArguments", "spawned", "spawnedPromise", "error", "exitCode", "signal", "timedOut", "stdoutResult", "stderrResult", "stdout", "stderr", "require_cache", "__commonJSMin", "exports", "api_1", "helpers_1", "withCache", "fn", "options", "cache", "wrappedFn", "args", "key", "cached", "data", "timestamp", "result", "require_dist", "__commonJSMin", "exports", "__createBinding", "o", "m", "k", "k2", "desc", "__exportStar", "p", "require_p_try", "__commonJSMin", "exports", "module", "pTry", "fn", "arguments_", "resolve", "require_p_limit", "__commonJSMin", "exports", "module", "pTry", "pLimit", "concurrency", "queue", "activeCount", "next", "run", "fn", "resolve", "args", "result", "enqueue", "generator", "require_p_locate", "__commonJSMin", "exports", "module", "pLimit", "EndError", "value", "testElement", "element", "tester", "finder", "values", "pLocate", "iterable", "options", "limit", "items", "checkLimit", "error", "require_locate_path", "__commonJSMin", "exports", "module", "path", "fs", "promisify", "pLocate", "fsStat", "fsLStat", "typeMappings", "checkType", "type", "matchType", "stat", "paths", "options", "statFn", "path_", "require_path_exists", "__commonJSMin", "exports", "module", "fs", "promisify", "pAccess", "path", "require_find_up", "__commonJSMin", "exports", "module", "path", "locatePath", "pathExists", "stop", "name", "options", "directory", "root", "paths", "runMatcher", "locateOptions", "foundPath", "require_is_arrayish", "__commonJSMin", "exports", "module", "obj", "require_error_ex", "__commonJSMin", "exports", "module", "util", "isArrayish", "errorEx", "name", "properties", "errorExError", "ErrorEXError", "message", "newMessage", "key", "modifier", "v", "overwrittenStack", "stackDescriptor", "stackGetter", "stackValue", "newstack", "stack", "lineCount", "line", "str", "def", "require_json_parse_even_better_errors", "__commonJSMin", "exports", "module", "hexify", "char", "h", "parseError", "txt", "context", "badToken", "errIdx", "msg", "start", "end", "slice", "JSONParseError", "er", "caller", "metadata", "n", "kIndent", "kNewline", "formatRE", "emptyRE", "parseJson", "reviver", "parseText", "stripBOM", "newline", "indent", "result", "e", "isEmptyArray", "require_build", "__commonJSMin", "exports", "LF", "CR", "LinesAndColumns", "string", "offsets", "offset", "index", "line", "column", "location", "nextOffset", "require_js_tokens", "__commonJSMin", "exports", "match", "token", "nonASCIIidentifierStartChars", "nonASCIIidentifierChars", "nonASCIIidentifierStart", "RegExp", "nonASCIIidentifier", "astralIdentifierStartCodes", "astralIdentifierCodes", "isInAstralSet", "code", "set", "pos", "i", "length", "isIdentifierStart", "test", "String", "fromCharCode", "isIdentifierChar", "isIdentifierName", "name", "isFirst", "cp", "charCodeAt", "trail", "reservedWords", "keyword", "strict", "strictBind", "keywords", "Set", "reservedWordsStrictSet", "reservedWordsStrictBindSet", "isReservedWord", "word", "inModule", "isStrictReservedWord", "has", "isStrictBindOnlyReservedWord", "isStrictBindReservedWord", "isKeyword", "_identifier", "require", "_keyword", "require_picocolors", "__commonJSMin", "exports", "module", "argv", "env", "isColorSupported", "formatter", "open", "close", "replace", "input", "string", "index", "replaceClose", "result", "cursor", "createColors", "enabled", "init", "require_escape_string_regexp", "__commonJSMin", "exports", "module", "matchOperatorsRe", "str", "require_color_name", "__commonJSMin", "exports", "module", "require_conversions", "__commonJSMin", "exports", "module", "cssKeywords", "reverseKeywords", "key", "convert", "model", "channels", "labels", "rgb", "r", "g", "b", "min", "max", "delta", "h", "s", "l", "rdif", "gdif", "bdif", "v", "diff", "diffc", "c", "w", "m", "y", "k", "comparativeDistance", "x", "reversed", "currentClosestDistance", "currentClosestKeyword", "keyword", "value", "distance", "z", "xyz", "a", "hsl", "t1", "t2", "t3", "val", "i", "smin", "lmin", "sv", "hsv", "hi", "f", "q", "t", "vmin", "sl", "hwb", "wh", "bl", "ratio", "n", "cmyk", "lab", "y2", "x2", "z2", "hr", "lch", "args", "ansi", "color", "mult", "rem", "integer", "string", "match", "colorString", "char", "chroma", "grayscale", "hue", "hcg", "pure", "mg", "apple", "gray", "require_route", "__commonJSMin", "exports", "module", "conversions", "buildGraph", "graph", "models", "len", "i", "deriveBFS", "fromModel", "queue", "current", "adjacents", "adjacent", "node", "link", "from", "to", "args", "wrapConversion", "toModel", "path", "fn", "cur", "conversion", "require_color_convert", "__commonJSMin", "exports", "module", "conversions", "route", "convert", "models", "wrapRaw", "fn", "wrappedFn", "args", "wrapRounded", "result", "len", "fromModel", "routes", "routeModels", "toModel", "require_ansi_styles", "__commonJSMin", "exports", "module", "colorConvert", "wrapAnsi16", "fn", "offset", "wrapAnsi256", "code", "wrapAnsi16m", "rgb", "assembleStyles", "codes", "styles", "groupName", "group", "styleName", "style", "ansi2ansi", "rgb2rgb", "r", "g", "b", "key", "suite", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "pos", "terminatorPos", "require_supports_color", "__commonJSMin", "exports", "module", "os", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "stream", "min", "osRelease", "sign", "version", "getSupportLevel", "require_templates", "__commonJSMin", "exports", "module", "TEMPLATE_REGEX", "STYLE_REGEX", "STRING_REGEX", "ESCAPE_REGEX", "ESCAPES", "unescape", "c", "parseArguments", "name", "args", "results", "chunks", "matches", "chunk", "m", "escape", "chr", "parseStyle", "style", "buildStyle", "chalk", "styles", "enabled", "layer", "current", "styleName", "tmp", "escapeChar", "inverse", "close", "str", "errMsg", "require_chalk", "__commonJSMin", "exports", "module", "escapeStringRegexp", "ansiStyles", "stdoutColor", "template", "isSimpleWindowsTerm", "levelMapping", "skipModels", "styles", "applyOptions", "obj", "options", "scLevel", "Chalk", "chalk", "args", "chalkTag", "key", "codes", "build", "model", "level", "bgModel", "proto", "_styles", "_empty", "builder", "applyStyle", "self", "enabled", "argsLen", "str", "a", "originalDim", "code", "strings", "parts", "i", "_jsTokens", "require", "_helperValidatorIdentifier", "_picocolors", "_interopRequireWildcard", "_getRequireWildcardCache", "e", "WeakMap", "r", "t", "__esModule", "default", "has", "get", "n", "__proto__", "a", "Object", "defineProperty", "getOwnPropertyDescriptor", "u", "hasOwnProperty", "call", "i", "set", "colors", "process", "env", "FORCE_COLOR", "createColors", "_colors", "compose", "f", "g", "v", "sometimesKeywords", "Set", "getDefs", "keyword", "cyan", "capitalized", "yellow", "jsxIdentifier", "punctuator", "number", "magenta", "string", "green", "regex", "comment", "gray", "invalid", "white", "bgRed", "bold", "NEWLINE", "BRACKET", "tokenize", "JSX_TAG", "getTokenType", "token", "offset", "text", "type", "isKeyword", "value", "isStrictReservedWord", "test", "slice", "toLowerCase", "match", "jsTokens", "exec", "matchToToken", "index", "highlightTokens", "defs", "highlighted", "colorize", "split", "map", "str", "join", "shouldHighlight", "options", "isColorSupported", "forceColor", "pcWithForcedColor", "getColors", "_pcWithForcedColor", "highlight", "code", "chalk", "chalkWithForcedColor", "exports", "getChalk", "_chalk", "_chalkWithForcedColor", "constructor", "enabled", "level", "_highlight", "require", "_picocolors", "_interopRequireWildcard", "_getRequireWildcardCache", "e", "WeakMap", "r", "t", "__esModule", "default", "has", "get", "n", "__proto__", "a", "Object", "defineProperty", "getOwnPropertyDescriptor", "u", "hasOwnProperty", "call", "i", "set", "colors", "process", "env", "FORCE_COLOR", "createColors", "_colors", "compose", "f", "g", "v", "pcWithForcedColor", "getColors", "forceColor", "_pcWithForcedColor", "deprecationWarningShown", "getDefs", "gutter", "gray", "marker", "red", "bold", "message", "NEWLINE", "getMarkerLines", "loc", "source", "opts", "startLoc", "assign", "column", "line", "start", "endLoc", "end", "linesAbove", "linesBelow", "startLine", "startColumn", "endLine", "endColumn", "Math", "max", "min", "length", "lineDiff", "markerLines", "lineNumber", "sourceLength", "codeFrameColumns", "rawLines", "highlighted", "highlightCode", "shouldHighlight", "defs", "maybeHighlight", "fmt", "string", "lines", "split", "hasColumns", "numberMaxWidth", "String", "frame", "highlight", "slice", "map", "index", "number", "hasMarker", "lastMarkerLine", "markerLine", "Array", "isArray", "markerSpacing", "replace", "numberOfMarkers", "repeat", "join", "reset", "_default", "colNumber", "emitWarning", "deprecationError", "Error", "name", "console", "warn", "require_parse_json", "__commonJSMin", "exports", "module", "errorEx", "fallback", "LinesAndColumns", "codeFrameColumns", "JSONError", "parseJson", "string", "reviver", "filename", "error", "indexMatch", "jsonError", "lines", "index", "location", "codeFrame", "require_semver", "__commonJSMin", "exports", "module", "SemVer", "debug", "args", "MAX_LENGTH", "MAX_SAFE_INTEGER", "MAX_SAFE_COMPONENT_LENGTH", "MAX_SAFE_BUILD_LENGTH", "re", "safeRe", "src", "R", "LETTERDASHNUMBER", "safeRegexReplacements", "makeSafeRe", "value", "i", "token", "max", "NUMERICIDENTIFIER", "NUMERICIDENTIFIERLOOSE", "NONNUMERICIDENTIFIER", "MAINVERSION", "MAINVERSIONLOOSE", "PRERELEASEIDENTIFIER", "PRERELEASEIDENTIFIERLOOSE", "PRERELEASE", "PRERELEASELOOSE", "BUILDIDENTIFIER", "BUILD", "FULL", "FULLPLAIN", "LOOSEPLAIN", "LOOSE", "GTLT", "XRANGEIDENTIFIERLOOSE", "XRANGEIDENTIFIER", "XRANGEPLAIN", "XRANGEPLAINLOOSE", "XRANGE", "XRANGELOOSE", "COERCE", "LONETILDE", "TILDETRIM", "tildeTrimReplace", "TILDE", "TILDELOOSE", "LONECARET", "CARETTRIM", "caretTrimReplace", "CARET", "CARETLOOSE", "COMPARATORLOOSE", "COMPARATOR", "COMPARATORTRIM", "comparatorTrimReplace", "HYPHENRANGE", "HYPHENRANGELOOSE", "STAR", "parse", "version", "options", "valid", "v", "clean", "s", "m", "id", "num", "other", "compareIdentifiers", "a", "b", "release", "identifier", "inc", "loose", "diff", "version1", "version2", "eq", "v1", "v2", "prefix", "defaultResult", "key", "numeric", "anum", "bnum", "rcompareIdentifiers", "major", "minor", "patch", "compare", "compareLoose", "rcompare", "sort", "list", "rsort", "gt", "lt", "neq", "gte", "lte", "cmp", "op", "Comparator", "comp", "ANY", "r", "rangeTmp", "Range", "satisfies", "sameDirectionIncreasing", "sameDirectionDecreasing", "sameSemVer", "differentDirectionsInclusive", "oppositeDirectionsLessThan", "oppositeDirectionsGreaterThan", "range", "c", "comps", "hr", "hyphenReplace", "compRe", "set", "parseComparator", "thisComparators", "thisComparator", "rangeComparators", "rangeComparator", "toComparators", "replaceCarets", "replaceTildes", "replaceXRanges", "replaceStars", "isX", "replaceTilde", "_", "M", "pr", "ret", "replaceCaret", "replaceXRange", "gtlt", "p", "xM", "xm", "xp", "anyX", "$0", "from", "fM", "fm", "fp", "fpr", "fb", "to", "tM", "tm", "tp", "tpr", "tb", "testSet", "allowed", "maxSatisfying", "versions", "maxSV", "rangeObj", "minSatisfying", "min", "minSV", "minVersion", "minver", "comparators", "comparator", "compver", "validRange", "ltr", "outside", "gtr", "hilo", "gtfn", "ltefn", "ltfn", "ecomp", "high", "low", "prerelease", "parsed", "intersects", "r1", "r2", "coerce", "match", "require_spdx_license_ids", "__commonJSMin", "exports", "module", "require_deprecated", "__commonJSMin", "exports", "module", "require_spdx_exceptions", "__commonJSMin", "exports", "module", "require_scan", "__commonJSMin", "exports", "module", "licenses", "exceptions", "source", "index", "hasMore", "read", "value", "chars", "match", "skipWhitespace", "operator", "string", "possibilities", "i", "idstring", "expectIdstring", "documentRef", "licenseRef", "identifier", "begin", "parseToken", "tokens", "token", "require_parse", "__commonJSMin", "exports", "module", "tokens", "index", "hasMore", "token", "next", "parseOperator", "operator", "t", "parseWith", "parseLicenseRef", "begin", "string", "parseLicense", "node", "exception", "parseParenthesizedExpression", "left", "expr", "parseExpression", "parseAtom", "makeBinaryOpParser", "nextParser", "parseBinaryOp", "right", "parseAnd", "require_spdx_expression_parse", "__commonJSMin", "exports", "module", "scan", "parse", "source", "require_spdx_correct", "__commonJSMin", "exports", "module", "parse", "spdxLicenseIds", "valid", "string", "sortTranspositions", "a", "b", "length", "transpositions", "TRANSPOSED", "CORRECT", "transforms", "argument", "licensesWithVersions", "id", "match", "objectMap", "item", "key", "licensesWithOneVersion", "lastResorts", "SUBSTRING", "IDENTIFIER", "validTransformation", "identifier", "i", "transformed", "validLastResort", "upperCased", "lastResort", "anyCorrection", "check", "transposition", "transposed", "corrected", "checked", "options", "upgrade", "postprocess", "value", "upgradeGPLs", "validArugment", "noPlus", "require_validate_npm_package_license", "__commonJSMin", "exports", "module", "parse", "correct", "genericWarning", "fileReferenceRE", "startsWith", "prefix", "string", "usesLicenseRef", "ast", "license", "argument", "match", "result", "corrected", "require_git_host_info", "__commonJSMin", "exports", "module", "gitHosts", "fragment", "formatHashFragment", "gitHostDefaults", "name", "key", "protocol", "require_git_host", "__commonJSMin", "exports", "module", "gitHosts", "extend", "target", "source", "keys", "i", "GitHost", "type", "user", "auth", "project", "committish", "defaultRepresentation", "opts", "gitHostInfo", "key", "template", "vars", "self", "rawAuth", "rawcommittish", "rawFragment", "rawPath", "rawProject", "value", "pathComponent", "res", "P", "F", "opts_", "require_hosted_git_info", "__commonJSMin", "exports", "module", "url", "gitHosts", "GitHost", "protocolToRepresentationMap", "protocolToRepresentation", "protocol", "authProtocols", "cache", "giturl", "opts", "key", "fromUrl", "fixupUnqualifiedGist", "isGitHubShorthand", "parsed", "parseGitUrl", "shortcutMatch", "matches", "gitHostName", "gitHostInfo", "auth", "committish", "user", "project", "defaultRepresentation", "pathmatch", "matched", "ex", "arg", "legacy", "authmatch", "whatwg", "require_homedir", "__commonJSMin", "exports", "module", "os", "home", "user", "require_caller", "__commonJSMin", "exports", "module", "origPrepareStackTrace", "_", "stack", "require_path_parse", "__commonJSMin", "exports", "module", "isWindows", "splitWindowsRe", "win32", "win32SplitPath", "filename", "pathString", "allParts", "splitPathRe", "posix", "posixSplitPath", "require_node_modules_paths", "__commonJSMin", "exports", "module", "path", "parse", "getNodeModulesDirs", "absoluteStart", "modules", "prefix", "paths", "parsed", "dirs", "aPath", "moduleDir", "start", "opts", "request", "require_normalize_options", "__commonJSMin", "exports", "module", "x", "opts", "require_implementation", "__commonJSMin", "exports", "module", "ERROR_MESSAGE", "toStr", "max", "funcType", "concatty", "b", "arr", "i", "j", "slicy", "arrLike", "offset", "joiny", "joiner", "str", "that", "target", "args", "bound", "binder", "result", "boundLength", "boundArgs", "Empty", "require_function_bind", "__commonJSMin", "exports", "module", "implementation", "require_hasown", "__commonJSMin", "exports", "module", "call", "$hasOwn", "bind", "require_core", "__commonJSMin", "exports", "module", "require_is_core_module", "__commonJSMin", "exports", "module", "hasOwn", "specifierIncluded", "current", "specifier", "nodeParts", "parts", "op", "versionParts", "i", "cur", "ver", "matchesRange", "range", "specifiers", "versionIncluded", "nodeVersion", "specifierValue", "data", "x", "require_async", "__commonJSMin", "exports", "module", "fs", "getHomedir", "path", "caller", "nodeModulesPaths", "normalizeOptions", "isCore", "realpathFS", "homedir", "defaultPaths", "defaultIsFile", "file", "cb", "err", "stat", "defaultIsDir", "dir", "defaultRealpath", "x", "realpathErr", "realPath", "maybeRealpath", "realpath", "opts", "defaultReadPackage", "readFile", "pkgfile", "readFileErr", "body", "pkg", "getPackageCandidates", "start", "dirs", "options", "callback", "isFile", "isDirectory", "readPackage", "conflictErr", "packageIterator", "extensions", "includeCoreModules", "basedir", "parent", "absoluteStart", "realStart", "init", "res", "loadAsDirectory", "onfile", "loadAsFile", "loadNodeModules", "n", "realN", "moduleError", "m", "d", "realD", "thePackage", "loadAsFilePackage", "exts", "load", "loadPackage", "onpkg", "loadpkg", "pkg_", "rfile", "rel", "r", "onex", "ex", "unwrapErr", "pkgdir", "pkgParam", "loadAsDirectoryPackage", "fpkg", "mainError", "processDirs", "isdir", "ondir", "thunk", "require_core", "__commonJSMin", "exports", "module", "require_core", "__commonJSMin", "exports", "module", "isCoreModule", "data", "core", "mod", "require_is_core", "__commonJSMin", "exports", "module", "isCoreModule", "x", "require_sync", "__commonJSMin", "exports", "module", "isCore", "fs", "path", "getHomedir", "caller", "nodeModulesPaths", "normalizeOptions", "realpathFS", "homedir", "defaultPaths", "defaultIsFile", "file", "stat", "e", "defaultIsDir", "dir", "defaultRealpathSync", "x", "realpathErr", "maybeRealpathSync", "realpathSync", "opts", "defaultReadPackageSync", "readFileSync", "pkgfile", "body", "pkg", "getPackageCandidates", "start", "dirs", "options", "isFile", "isDirectory", "readPackageSync", "packageIterator", "extensions", "includeCoreModules", "basedir", "parent", "absoluteStart", "res", "m", "loadAsFileSync", "loadAsDirectorySync", "n", "loadNodeModulesSync", "err", "loadpkg", "rfile", "r", "i", "mainError", "thunk", "require_resolve", "__commonJSMin", "exports", "module", "async", "require_extract_description", "__commonJSMin", "exports", "module", "extractDescription", "d", "s", "l", "e", "require_typos", "__commonJSMin", "exports", "module", "require_fixer", "__commonJSMin", "exports", "module", "semver", "validateLicense", "hostedGitInfo", "isBuiltinModule", "depTypes", "extractDescription", "url", "typos", "fixer", "data", "r", "hosted", "d", "k", "files", "file", "b", "match", "bdd", "bd", "strict", "loose", "objectifyDeps", "addOptionalDepsToDeps", "deps", "kw", "modifyPeople", "unParsePerson", "parsePerson", "options", "ensureValidName", "emailRe", "bugsTypos", "oldBugs", "isValidScopedPackageName", "spec", "rest", "isCorrectlyEncodedName", "name", "allowLegacyCase", "fn", "set", "person", "u", "e", "email", "obj", "warn", "o", "depObjectify", "type", "dn", "dv", "bugs", "require_warning_messages", "__commonJSMin", "exports", "module", "require_make_warning", "__commonJSMin", "exports", "module", "util", "messages", "args", "warningName", "makeTypoWarning", "msgTemplate", "providedName", "probableName", "field", "require_normalize", "__commonJSMin", "exports", "module", "normalize", "fixer", "makeWarning", "fieldsToFix", "otherThingsToFix", "thingsToFix", "fieldName", "ucFirst", "data", "warn", "strict", "msg", "thingName", "string", "require_read_pkg", "__commonJSMin", "exports", "module", "promisify", "fs", "path", "parseJson", "readFileAsync", "options", "filePath", "json", "require_read_pkg_up", "__commonJSMin", "exports", "module", "path", "findUp", "readPkg", "options", "filePath", "require_distribution", "__commonJSMin", "exports", "api_1", "read_pkg_up_1", "callbackLaunchCommand", "options", "result", "crossLaunchCommand", "callbackLaunchOptions", "pack", "ownerOrAuthorName", "targetHandle", "message", "require_chroma", "__commonJSMin", "exports", "module", "Color", "DEG2RAD", "LAB_CONSTANTS", "PI", "PITHIRD", "RAD2DEG", "TWOPI", "_average_lrgb", "_guess_formats", "_guess_formats_sorted", "_input", "_interpolators", "abs", "atan2", "bezier", "blend", "blend_f", "brewer", "burn", "chroma", "clip_rgb", "cmyk2rgb", "colors", "cos", "css2rgb", "darken", "dodge", "each", "floor", "hcg2rgb", "hex2rgb", "hsi2rgb", "hsl2css", "hsl2rgb", "hsv2rgb", "interpolate", "interpolate_hsx", "interpolate_lab", "interpolate_lrgb", "interpolate_num", "interpolate_rgb", "lab2lch", "lab2rgb", "lab_xyz", "lch2lab", "lch2rgb", "lighten", "limit", "log", "luminance_x", "m", "max", "multiply", "normal", "num2rgb", "overlay", "pow", "rgb2cmyk", "rgb2css", "rgb2hcg", "rgb2hex", "rgb2hsi", "rgb2hsl", "rgb2hsv", "rgb2lab", "rgb2lch", "rgb2luminance", "rgb2num", "rgb2temperature", "rgb2xyz", "rgb_xyz", "rnd", "root", "round", "screen", "sin", "sqrt", "temperature2rgb", "type", "unpack", "w3cx11", "xyz_lab", "xyz_rgb", "slice", "classToType", "len", "name", "o", "ref", "obj", "strType", "x", "min", "args", "rgb", "i", "func", "ctor", "child", "result", "arg", "chk", "len1", "me", "mode", "w", "a", "b", "key", "results", "g", "l", "r", "z", "t", "ref1", "y", "I", "I0", "I1", "c", "lab0", "lab1", "lab2", "lab3", "ref2", "lab", "f", "start", "rotations", "hue", "gamma", "lightness", "dh", "dl", "fract", "amp", "cos_a", "h", "sin_a", "s", "code", "digits", "col1", "col2", "interpol", "res", "k", "v", "n", "xyz0", "xyz1", "col", "xyz", "A", "alpha", "cnt", "dx", "dy", "first", "xyz2", "hex", "u", "channels", "hxa", "str", "t1", "t2", "t3", "p", "q", "ref3", "ref4", "ref5", "delta", "num", "_c", "_g", "css", "aa", "ab", "hsl", "rgba", "L", "lum", "cur_lum", "eps", "max_iter", "test", "lm", "kelvin", "temp", "maxTemp", "minTemp", "l1", "l2", "d", "sum_sq", "C", "L1", "L2", "a1", "a2", "b1", "b2", "c1", "c2", "c4", "dH2", "delA", "delB", "delC", "delL", "h1", "sc", "sh", "sl", "v1", "v2", "v3", "modechan", "channel", "src", "value", "amount", "lch", "bottom", "top", "c0", "out", "data", "val", "positions", "_classes", "_colorCache", "_colors", "_correctLightness", "_domain", "_fixed", "_gamma", "_max", "_min", "_mode", "_nacol", "_out", "_padding", "_pos", "_spread", "_useCache", "classifyValue", "getClass", "getColor", "resetCache", "setColors", "tmap", "maxc", "minc", "bypassMap", "classes", "domain", "_m", "_o", "L0", "L_actual", "L_diff", "L_ideal", "pol", "t0", "numColors", "dd", "dm", "samples", "filter", "add", "visit", "ac", "ad", "ae", "af", "ag", "ah", "ai", "aj", "ak", "al", "am", "assignments", "best", "centroids", "cluster", "clusterSizes", "dist", "j", "kClusters", "limits", "max_log", "min_log", "mindist", "nb_iters", "newCentroids", "pb", "pr", "ref10", "ref11", "ref12", "ref13", "ref14", "ref6", "ref7", "ref8", "ref9", "repeat", "sum", "tmpKMeansBreaks", "values", "hue0", "hue1", "lbv", "lbv0", "lbv1", "sat", "sat0", "sat1", "n1", "n2", "require_is_implemented", "__commonJSMin", "exports", "module", "weakMap", "obj", "require_noop", "__commonJSMin", "exports", "module", "require_is_value", "__commonJSMin", "exports", "module", "_undefined", "val", "require_is_implemented", "__commonJSMin", "exports", "module", "create", "getPrototypeOf", "plainObject", "setPrototypeOf", "customCreate", "require_is_object", "__commonJSMin", "exports", "module", "isValue", "map", "value", "require_valid_value", "__commonJSMin", "exports", "module", "isValue", "value", "require_create", "__commonJSMin", "exports", "module", "create", "shim", "nullObject", "polyProps", "desc", "name", "prototype", "props", "require_shim", "__commonJSMin", "exports", "module", "isObject", "value", "objIsPrototypeOf", "defineProperty", "nullDesc", "validate", "obj", "prototype", "status", "fn", "set", "self", "isNullBase", "tmpObj1", "tmpObj2", "desc", "require_set_prototype_of", "__commonJSMin", "exports", "module", "require_valid_object", "__commonJSMin", "exports", "module", "isObject", "value", "require_random_uniq", "__commonJSMin", "exports", "module", "generated", "random", "str", "require_is", "__commonJSMin", "exports", "module", "_undefined", "value", "require_is", "__commonJSMin", "exports", "module", "isValue", "possibleTypes", "value", "require_is", "__commonJSMin", "exports", "module", "isObject", "value", "require_is", "__commonJSMin", "exports", "module", "isPrototype", "value", "require_is", "__commonJSMin", "exports", "module", "isFunction", "classRe", "functionToString", "value", "require_is_implemented", "__commonJSMin", "exports", "module", "assign", "obj", "require_is_implemented", "__commonJSMin", "exports", "module", "require_shim", "__commonJSMin", "exports", "module", "isValue", "keys", "object", "require_keys", "__commonJSMin", "exports", "module", "require_shim", "__commonJSMin", "exports", "module", "keys", "value", "max", "dest", "src", "error", "i", "length", "assign", "key", "e", "require_assign", "__commonJSMin", "exports", "module", "require_normalize_options", "__commonJSMin", "exports", "module", "isValue", "forEach", "create", "process", "src", "obj", "key", "opts1", "result", "options", "require_is_implemented", "__commonJSMin", "exports", "module", "str", "require_shim", "__commonJSMin", "exports", "module", "indexOf", "searchString", "require_contains", "__commonJSMin", "exports", "module", "require_d", "__commonJSMin", "exports", "module", "isValue", "isPlainFunction", "assign", "normalizeOpts", "contains", "d", "dscr", "value", "c", "e", "w", "options", "desc", "get", "set", "require_is_arguments", "__commonJSMin", "exports", "module", "objToString", "id", "value", "require_is_string", "__commonJSMin", "exports", "module", "objToString", "id", "value", "require_is_implemented", "__commonJSMin", "exports", "module", "require_implementation", "__commonJSMin", "exports", "module", "naiveFallback", "require_global_this", "__commonJSMin", "exports", "module", "require_is_implemented", "__commonJSMin", "exports", "module", "global", "validTypes", "Symbol", "symbol", "require_is_symbol", "__commonJSMin", "exports", "module", "value", "require_validate_symbol", "__commonJSMin", "exports", "module", "isSymbol", "value", "require_generate_name", "__commonJSMin", "exports", "module", "d", "create", "defineProperty", "objPrototype", "created", "desc", "postfix", "name", "ie11BugWorkaround", "value", "require_standard_symbols", "__commonJSMin", "exports", "module", "d", "NativeSymbol", "SymbolPolyfill", "require_symbol_registry", "__commonJSMin", "exports", "module", "d", "validateSymbol", "registry", "SymbolPolyfill", "key", "symbol", "require_polyfill", "__commonJSMin", "exports", "module", "d", "validateSymbol", "NativeSymbol", "generateName", "setupStandardSymbols", "setupSymbolRegistry", "create", "defineProperties", "defineProperty", "SymbolPolyfill", "HiddenSymbol", "isNativeSafe", "description", "Symbol", "symbol", "require_es6_symbol", "__commonJSMin", "exports", "module", "require_clear", "__commonJSMin", "exports", "module", "value", "require_valid_callable", "__commonJSMin", "exports", "module", "fn", "require_coerce", "__commonJSMin", "exports", "module", "isValue", "isObject", "objectToString", "value", "valueToString", "require_safe_to_string", "__commonJSMin", "exports", "module", "value", "require_to_short_string", "__commonJSMin", "exports", "module", "safeToString", "reNewLine", "value", "string", "char", "require_resolve_error_message", "__commonJSMin", "exports", "module", "stringCoerce", "toShortString", "errorMessage", "value", "inputOptions", "valueInsertIndex", "valueToken", "nameInsertIndex", "firstToken", "secondToken", "firstInsertIndex", "secondInsertIndex", "require_resolve_exception", "__commonJSMin", "exports", "module", "isValue", "resolveErrorMessage", "value", "defaultMessage", "inputOptions", "ErrorConstructor", "error", "require_ensure", "__commonJSMin", "exports", "module", "resolveException", "is", "value", "options", "errorMessage", "require_ensure", "__commonJSMin", "exports", "module", "resolveException", "is", "value", "options", "errorMessage", "require_is_implemented", "__commonJSMin", "exports", "module", "from", "arr", "result", "require_is_function", "__commonJSMin", "exports", "module", "objToString", "isFunctionStringTag", "value", "require_is_implemented", "__commonJSMin", "exports", "module", "sign", "require_shim", "__commonJSMin", "exports", "module", "value", "require_sign", "__commonJSMin", "exports", "module", "require_to_integer", "__commonJSMin", "exports", "module", "sign", "abs", "floor", "value", "require_to_pos_integer", "__commonJSMin", "exports", "module", "toInteger", "max", "value", "require_shim", "__commonJSMin", "exports", "module", "iteratorSymbol", "isArguments", "isFunction", "toPosInt", "callable", "validValue", "isValue", "isString", "isArray", "call", "desc", "defineProperty", "arrayLike", "mapFn", "thisArg", "Context", "i", "j", "arr", "length", "code", "iterator", "result", "getIterator", "value", "require_from", "__commonJSMin", "exports", "module", "require_copy", "__commonJSMin", "exports", "module", "aFrom", "assign", "value", "obj", "copy", "propertyNames", "options", "result", "propertyName", "require_iterate", "__commonJSMin", "exports", "module", "callable", "value", "bind", "call", "keys", "objPropertyIsEnumerable", "method", "defVal", "obj", "cb", "list", "thisArg", "compareFn", "key", "index", "require_for_each", "__commonJSMin", "exports", "module", "require_map", "__commonJSMin", "exports", "module", "callable", "forEach", "call", "obj", "cb", "result", "thisArg", "value", "key", "targetObj", "index", "require_auto_bind", "__commonJSMin", "exports", "module", "isValue", "ensureValue", "ensurePlainFunction", "copy", "normalizeOptions", "map", "bind", "defineProperty", "hasOwnProperty", "define", "name", "desc", "options", "value", "dgs", "props", "require_es6_iterator", "__commonJSMin", "exports", "module", "clear", "assign", "callable", "value", "d", "autoBind", "Symbol", "defineProperty", "defineProperties", "Iterator", "list", "context", "i", "index", "redo", "j", "require_array", "__commonJSMin", "exports", "module", "setPrototypeOf", "contains", "d", "Symbol", "Iterator", "defineProperty", "ArrayIterator", "arr", "kind", "i", "require_string", "__commonJSMin", "exports", "module", "setPrototypeOf", "d", "Symbol", "Iterator", "defineProperty", "StringIterator", "str", "i", "char", "code", "require_is_iterable", "__commonJSMin", "exports", "module", "isArguments", "isValue", "isString", "iteratorSymbol", "isArray", "value", "require_valid_iterable", "__commonJSMin", "exports", "module", "isIterable", "value", "require_get", "__commonJSMin", "exports", "module", "isArguments", "isString", "ArrayIterator", "StringIterator", "iterable", "iteratorSymbol", "obj", "require_for_of", "__commonJSMin", "exports", "module", "isArguments", "callable", "isString", "get", "isArray", "call", "some", "iterable", "cb", "mode", "thisArg", "result", "doBreak", "broken", "i", "length", "char", "code", "value", "require_is_native_implemented", "__commonJSMin", "exports", "module", "require_polyfill", "__commonJSMin", "exports", "module", "isValue", "setPrototypeOf", "object", "ensureValue", "randomUniq", "d", "getIterator", "forOf", "toStringTagSymbol", "isNative", "isArray", "defineProperty", "objHasOwnProperty", "getPrototypeOf", "WeakMapPoly", "iterable", "self", "val", "key", "value", "require_es6_weak_map", "__commonJSMin", "exports", "module", "require_basic", "__commonJSMin", "exports", "module", "require_html", "__commonJSMin", "exports", "module", "require_ntc", "__commonJSMin", "exports", "module", "require_pantone", "__commonJSMin", "exports", "module", "require_roygbiv", "__commonJSMin", "exports", "module", "require_x11", "__commonJSMin", "exports", "module", "require_color_namer", "__commonJSMin", "exports", "module", "chroma", "WeakMap", "lists", "cache", "namer", "color", "options", "cacheKey", "deltaE", "results", "key", "name", "a", "b", "require_listCacheClear", "__commonJSMin", "exports", "module", "listCacheClear", "require_eq", "__commonJSMin", "exports", "module", "eq", "value", "other", "require_assocIndexOf", "__commonJSMin", "exports", "module", "eq", "assocIndexOf", "array", "key", "length", "require_listCacheDelete", "__commonJSMin", "exports", "module", "assocIndexOf", "arrayProto", "splice", "listCacheDelete", "key", "data", "index", "lastIndex", "require_listCacheGet", "__commonJSMin", "exports", "module", "assocIndexOf", "listCacheGet", "key", "data", "index", "require_listCacheHas", "__commonJSMin", "exports", "module", "assocIndexOf", "listCacheHas", "key", "require_listCacheSet", "__commonJSMin", "exports", "module", "assocIndexOf", "listCacheSet", "key", "value", "data", "index", "require_ListCache", "__commonJSMin", "exports", "module", "listCacheClear", "listCacheDelete", "listCacheGet", "listCacheHas", "listCacheSet", "ListCache", "entries", "index", "length", "entry", "require_stackClear", "__commonJSMin", "exports", "module", "ListCache", "stackClear", "require_stackDelete", "__commonJSMin", "exports", "module", "stackDelete", "key", "data", "result", "require_stackGet", "__commonJSMin", "exports", "module", "stackGet", "key", "require_stackHas", "__commonJSMin", "exports", "module", "stackHas", "key", "require_freeGlobal", "__commonJSMin", "exports", "module", "freeGlobal", "require_root", "__commonJSMin", "exports", "module", "freeGlobal", "freeSelf", "root", "require_Symbol", "__commonJSMin", "exports", "module", "root", "Symbol", "require_getRawTag", "__commonJSMin", "exports", "module", "Symbol", "objectProto", "hasOwnProperty", "nativeObjectToString", "symToStringTag", "getRawTag", "value", "isOwn", "tag", "unmasked", "result", "require_objectToString", "__commonJSMin", "exports", "module", "objectProto", "nativeObjectToString", "objectToString", "value", "require_baseGetTag", "__commonJSMin", "exports", "module", "Symbol", "getRawTag", "objectToString", "nullTag", "undefinedTag", "symToStringTag", "baseGetTag", "value", "require_isObject", "__commonJSMin", "exports", "module", "isObject", "value", "type", "require_isFunction", "__commonJSMin", "exports", "module", "baseGetTag", "isObject", "asyncTag", "funcTag", "genTag", "proxyTag", "isFunction", "value", "tag", "require_coreJsData", "__commonJSMin", "exports", "module", "root", "coreJsData", "require_isMasked", "__commonJSMin", "exports", "module", "coreJsData", "maskSrcKey", "uid", "isMasked", "func", "require_toSource", "__commonJSMin", "exports", "module", "funcProto", "funcToString", "toSource", "func", "require_baseIsNative", "__commonJSMin", "exports", "module", "isFunction", "isMasked", "isObject", "toSource", "reRegExpChar", "reIsHostCtor", "funcProto", "objectProto", "funcToString", "hasOwnProperty", "reIsNative", "baseIsNative", "value", "pattern", "require_getValue", "__commonJSMin", "exports", "module", "getValue", "object", "key", "require_getNative", "__commonJSMin", "exports", "module", "baseIsNative", "getValue", "getNative", "object", "key", "value", "require_Map", "__commonJSMin", "exports", "module", "getNative", "root", "Map", "require_nativeCreate", "__commonJSMin", "exports", "module", "getNative", "nativeCreate", "require_hashClear", "__commonJSMin", "exports", "module", "nativeCreate", "hashClear", "require_hashDelete", "__commonJSMin", "exports", "module", "hashDelete", "key", "result", "require_hashGet", "__commonJSMin", "exports", "module", "nativeCreate", "HASH_UNDEFINED", "objectProto", "hasOwnProperty", "hashGet", "key", "data", "result", "require_hashHas", "__commonJSMin", "exports", "module", "nativeCreate", "objectProto", "hasOwnProperty", "hashHas", "key", "data", "require_hashSet", "__commonJSMin", "exports", "module", "nativeCreate", "HASH_UNDEFINED", "hashSet", "key", "value", "data", "require_Hash", "__commonJSMin", "exports", "module", "hashClear", "hashDelete", "hashGet", "hashHas", "hashSet", "Hash", "entries", "index", "length", "entry", "require_mapCacheClear", "__commonJSMin", "exports", "module", "Hash", "ListCache", "Map", "mapCacheClear", "require_isKeyable", "__commonJSMin", "exports", "module", "isKeyable", "value", "type", "require_getMapData", "__commonJSMin", "exports", "module", "isKeyable", "getMapData", "map", "key", "data", "require_mapCacheDelete", "__commonJSMin", "exports", "module", "getMapData", "mapCacheDelete", "key", "result", "require_mapCacheGet", "__commonJSMin", "exports", "module", "getMapData", "mapCacheGet", "key", "require_mapCacheHas", "__commonJSMin", "exports", "module", "getMapData", "mapCacheHas", "key", "require_mapCacheSet", "__commonJSMin", "exports", "module", "getMapData", "mapCacheSet", "key", "value", "data", "size", "require_MapCache", "__commonJSMin", "exports", "module", "mapCacheClear", "mapCacheDelete", "mapCacheGet", "mapCacheHas", "mapCacheSet", "MapCache", "entries", "index", "length", "entry", "require_stackSet", "__commonJSMin", "exports", "module", "ListCache", "Map", "MapCache", "LARGE_ARRAY_SIZE", "stackSet", "key", "value", "data", "pairs", "require_Stack", "__commonJSMin", "exports", "module", "ListCache", "stackClear", "stackDelete", "stackGet", "stackHas", "stackSet", "Stack", "entries", "data", "require_setCacheAdd", "__commonJSMin", "exports", "module", "HASH_UNDEFINED", "setCacheAdd", "value", "require_setCacheHas", "__commonJSMin", "exports", "module", "setCacheHas", "value", "require_SetCache", "__commonJSMin", "exports", "module", "MapCache", "setCacheAdd", "setCacheHas", "SetCache", "values", "index", "length", "require_arraySome", "__commonJSMin", "exports", "module", "arraySome", "array", "predicate", "index", "length", "require_cacheHas", "__commonJSMin", "exports", "module", "cacheHas", "cache", "key", "require_equalArrays", "__commonJSMin", "exports", "module", "SetCache", "arraySome", "cacheHas", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "equalArrays", "array", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "arrLength", "othLength", "arrStacked", "othStacked", "index", "result", "seen", "arrValue", "othValue", "compared", "othIndex", "require_Uint8Array", "__commonJSMin", "exports", "module", "root", "Uint8Array", "require_mapToArray", "__commonJSMin", "exports", "module", "mapToArray", "map", "index", "result", "value", "key", "require_setToArray", "__commonJSMin", "exports", "module", "setToArray", "set", "index", "result", "value", "require_equalByTag", "__commonJSMin", "exports", "module", "Symbol", "Uint8Array", "eq", "equalArrays", "mapToArray", "setToArray", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "boolTag", "dateTag", "errorTag", "mapTag", "numberTag", "regexpTag", "setTag", "stringTag", "symbolTag", "arrayBufferTag", "dataViewTag", "symbolProto", "symbolValueOf", "equalByTag", "object", "other", "tag", "bitmask", "customizer", "equalFunc", "stack", "convert", "isPartial", "stacked", "result", "require_arrayPush", "__commonJSMin", "exports", "module", "arrayPush", "array", "values", "index", "length", "offset", "require_isArray", "__commonJSMin", "exports", "module", "isArray", "require_baseGetAllKeys", "__commonJSMin", "exports", "module", "arrayPush", "isArray", "baseGetAllKeys", "object", "keysFunc", "symbolsFunc", "result", "require_arrayFilter", "__commonJSMin", "exports", "module", "arrayFilter", "array", "predicate", "index", "length", "resIndex", "result", "value", "require_stubArray", "__commonJSMin", "exports", "module", "stubArray", "require_getSymbols", "__commonJSMin", "exports", "module", "arrayFilter", "stubArray", "objectProto", "propertyIsEnumerable", "nativeGetSymbols", "getSymbols", "object", "symbol", "require_baseTimes", "__commonJSMin", "exports", "module", "baseTimes", "n", "iteratee", "index", "result", "require_isObjectLike", "__commonJSMin", "exports", "module", "isObjectLike", "value", "require_baseIsArguments", "__commonJSMin", "exports", "module", "baseGetTag", "isObjectLike", "argsTag", "baseIsArguments", "value", "require_isArguments", "__commonJSMin", "exports", "module", "baseIsArguments", "isObjectLike", "objectProto", "hasOwnProperty", "propertyIsEnumerable", "isArguments", "value", "require_stubFalse", "__commonJSMin", "exports", "module", "stubFalse", "require_isBuffer", "__commonJSMin", "exports", "module", "root", "stubFalse", "freeExports", "freeModule", "moduleExports", "Buffer", "nativeIsBuffer", "isBuffer", "require_isIndex", "__commonJSMin", "exports", "module", "MAX_SAFE_INTEGER", "reIsUint", "isIndex", "value", "length", "type", "require_isLength", "__commonJSMin", "exports", "module", "MAX_SAFE_INTEGER", "isLength", "value", "require_baseIsTypedArray", "__commonJSMin", "exports", "module", "baseGetTag", "isLength", "isObjectLike", "argsTag", "arrayTag", "boolTag", "dateTag", "errorTag", "funcTag", "mapTag", "numberTag", "objectTag", "regexpTag", "setTag", "stringTag", "weakMapTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "typedArrayTags", "baseIsTypedArray", "value", "require_baseUnary", "__commonJSMin", "exports", "module", "baseUnary", "func", "value", "require_nodeUtil", "__commonJSMin", "exports", "module", "freeGlobal", "freeExports", "freeModule", "moduleExports", "freeProcess", "nodeUtil", "types", "require_isTypedArray", "__commonJSMin", "exports", "module", "baseIsTypedArray", "baseUnary", "nodeUtil", "nodeIsTypedArray", "isTypedArray", "require_arrayLikeKeys", "__commonJSMin", "exports", "module", "baseTimes", "isArguments", "isArray", "isBuffer", "isIndex", "isTypedArray", "objectProto", "hasOwnProperty", "arrayLikeKeys", "value", "inherited", "isArr", "isArg", "isBuff", "isType", "skipIndexes", "result", "length", "key", "require_isPrototype", "__commonJSMin", "exports", "module", "objectProto", "isPrototype", "value", "Ctor", "proto", "require_overArg", "__commonJSMin", "exports", "module", "overArg", "func", "transform", "arg", "require_nativeKeys", "__commonJSMin", "exports", "module", "overArg", "nativeKeys", "require_baseKeys", "__commonJSMin", "exports", "module", "isPrototype", "nativeKeys", "objectProto", "hasOwnProperty", "baseKeys", "object", "result", "key", "require_isArrayLike", "__commonJSMin", "exports", "module", "isFunction", "isLength", "isArrayLike", "value", "require_keys", "__commonJSMin", "exports", "module", "arrayLikeKeys", "baseKeys", "isArrayLike", "keys", "object", "require_getAllKeys", "__commonJSMin", "exports", "module", "baseGetAllKeys", "getSymbols", "keys", "getAllKeys", "object", "require_equalObjects", "__commonJSMin", "exports", "module", "getAllKeys", "COMPARE_PARTIAL_FLAG", "objectProto", "hasOwnProperty", "equalObjects", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "objProps", "objLength", "othProps", "othLength", "index", "key", "objStacked", "othStacked", "result", "skipCtor", "objValue", "othValue", "compared", "objCtor", "othCtor", "require_DataView", "__commonJSMin", "exports", "module", "getNative", "root", "DataView", "require_Promise", "__commonJSMin", "exports", "module", "getNative", "root", "Promise", "require_Set", "__commonJSMin", "exports", "module", "getNative", "root", "Set", "require_WeakMap", "__commonJSMin", "exports", "module", "getNative", "root", "WeakMap", "require_getTag", "__commonJSMin", "exports", "module", "DataView", "Map", "Promise", "Set", "WeakMap", "baseGetTag", "toSource", "mapTag", "objectTag", "promiseTag", "setTag", "weakMapTag", "dataViewTag", "dataViewCtorString", "mapCtorString", "promiseCtorString", "setCtorString", "weakMapCtorString", "getTag", "value", "result", "Ctor", "ctorString", "require_baseIsEqualDeep", "__commonJSMin", "exports", "module", "Stack", "equalArrays", "equalByTag", "equalObjects", "getTag", "isArray", "isBuffer", "isTypedArray", "COMPARE_PARTIAL_FLAG", "argsTag", "arrayTag", "objectTag", "objectProto", "hasOwnProperty", "baseIsEqualDeep", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "objIsArr", "othIsArr", "objTag", "othTag", "objIsObj", "othIsObj", "isSameTag", "objIsWrapped", "othIsWrapped", "objUnwrapped", "othUnwrapped", "require_baseIsEqual", "__commonJSMin", "exports", "module", "baseIsEqualDeep", "isObjectLike", "baseIsEqual", "value", "other", "bitmask", "customizer", "stack", "require_baseIsMatch", "__commonJSMin", "exports", "module", "Stack", "baseIsEqual", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseIsMatch", "object", "source", "matchData", "customizer", "index", "length", "noCustomizer", "data", "key", "objValue", "srcValue", "stack", "result", "require_isStrictComparable", "__commonJSMin", "exports", "module", "isObject", "isStrictComparable", "value", "require_getMatchData", "__commonJSMin", "exports", "module", "isStrictComparable", "keys", "getMatchData", "object", "result", "length", "key", "value", "require_matchesStrictComparable", "__commonJSMin", "exports", "module", "matchesStrictComparable", "key", "srcValue", "object", "require_baseMatches", "__commonJSMin", "exports", "module", "baseIsMatch", "getMatchData", "matchesStrictComparable", "baseMatches", "source", "matchData", "object", "require_isSymbol", "__commonJSMin", "exports", "module", "baseGetTag", "isObjectLike", "symbolTag", "isSymbol", "value", "require_isKey", "__commonJSMin", "exports", "module", "isArray", "isSymbol", "reIsDeepProp", "reIsPlainProp", "isKey", "value", "object", "type", "require_memoize", "__commonJSMin", "exports", "module", "MapCache", "FUNC_ERROR_TEXT", "memoize", "func", "resolver", "memoized", "args", "key", "cache", "result", "require_memoizeCapped", "__commonJSMin", "exports", "module", "memoize", "MAX_MEMOIZE_SIZE", "memoizeCapped", "func", "result", "key", "cache", "require_stringToPath", "__commonJSMin", "exports", "module", "memoizeCapped", "rePropName", "reEscapeChar", "stringToPath", "string", "result", "match", "number", "quote", "subString", "require_arrayMap", "__commonJSMin", "exports", "module", "arrayMap", "array", "iteratee", "index", "length", "result", "require_baseToString", "__commonJSMin", "exports", "module", "Symbol", "arrayMap", "isArray", "isSymbol", "INFINITY", "symbolProto", "symbolToString", "baseToString", "value", "result", "require_toString", "__commonJSMin", "exports", "module", "baseToString", "toString", "value", "require_castPath", "__commonJSMin", "exports", "module", "isArray", "isKey", "stringToPath", "toString", "castPath", "value", "object", "require_toKey", "__commonJSMin", "exports", "module", "isSymbol", "INFINITY", "toKey", "value", "result", "require_baseGet", "__commonJSMin", "exports", "module", "castPath", "toKey", "baseGet", "object", "path", "index", "length", "require_get", "__commonJSMin", "exports", "module", "baseGet", "get", "object", "path", "defaultValue", "result", "require_baseHasIn", "__commonJSMin", "exports", "module", "baseHasIn", "object", "key", "require_hasPath", "__commonJSMin", "exports", "module", "castPath", "isArguments", "isArray", "isIndex", "isLength", "toKey", "hasPath", "object", "path", "hasFunc", "index", "length", "result", "key", "require_hasIn", "__commonJSMin", "exports", "module", "baseHasIn", "hasPath", "hasIn", "object", "path", "require_baseMatchesProperty", "__commonJSMin", "exports", "module", "baseIsEqual", "get", "hasIn", "isKey", "isStrictComparable", "matchesStrictComparable", "toKey", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseMatchesProperty", "path", "srcValue", "object", "objValue", "require_identity", "__commonJSMin", "exports", "module", "identity", "value", "require_baseProperty", "__commonJSMin", "exports", "module", "baseProperty", "key", "object", "require_basePropertyDeep", "__commonJSMin", "exports", "module", "baseGet", "basePropertyDeep", "path", "object", "require_property", "__commonJSMin", "exports", "module", "baseProperty", "basePropertyDeep", "isKey", "toKey", "property", "path", "require_baseIteratee", "__commonJSMin", "exports", "module", "baseMatches", "baseMatchesProperty", "identity", "isArray", "property", "baseIteratee", "value", "require_baseFindIndex", "__commonJSMin", "exports", "module", "baseFindIndex", "array", "predicate", "fromIndex", "fromRight", "length", "index", "require_baseIsNaN", "__commonJSMin", "exports", "module", "baseIsNaN", "value", "require_strictIndexOf", "__commonJSMin", "exports", "module", "strictIndexOf", "array", "value", "fromIndex", "index", "length", "require_baseIndexOf", "__commonJSMin", "exports", "module", "baseFindIndex", "baseIsNaN", "strictIndexOf", "baseIndexOf", "array", "value", "fromIndex", "require_arrayIncludes", "__commonJSMin", "exports", "module", "baseIndexOf", "arrayIncludes", "array", "value", "length", "require_arrayIncludesWith", "__commonJSMin", "exports", "module", "arrayIncludesWith", "array", "value", "comparator", "index", "length", "require_noop", "__commonJSMin", "exports", "module", "noop", "require_createSet", "__commonJSMin", "exports", "module", "Set", "noop", "setToArray", "INFINITY", "createSet", "values", "require_baseUniq", "__commonJSMin", "exports", "module", "SetCache", "arrayIncludes", "arrayIncludesWith", "cacheHas", "createSet", "setToArray", "LARGE_ARRAY_SIZE", "baseUniq", "array", "iteratee", "comparator", "index", "includes", "length", "isCommon", "result", "seen", "set", "outer", "value", "computed", "seenIndex", "require_uniqBy", "__commonJSMin", "exports", "module", "baseIteratee", "baseUniq", "uniqBy", "array", "iteratee", "pick_color_exports", "__export", "command", "__toCommonJS", "import_api", "import_utils", "import_raycast_cross_extension", "import_color_namer", "import_api", "import_path", "import_promises", "import_child_process", "runSwiftFunction", "command", "args", "swiftPath", "resolve", "reject", "commandArgs", "arg", "k", "v", "err", "SwiftError", "child", "stdout", "stderr", "data", "code", "result", "error", "pickColor", "message", "import_api", "import_utils", "import_api", "multiplyMatrices", "A", "B", "m", "x", "p", "B_cols", "_", "i", "product", "row", "col", "ret", "c", "isString", "str", "type", "o", "serializeNumber", "n", "precision", "unit", "isNone", "toPrecision", "skipNone", "integer", "digits", "multiplier", "angleFactor", "parseFunction", "isFunctionRegex", "isNumberRegex", "unitValueRegex", "singleArgument", "parts", "args", "$0", "rawArg", "match", "arg", "unitlessArg", "last", "arr", "interpolate", "start", "end", "interpolateInv", "value", "mapRange", "from", "to", "parseCoordGrammar", "coordGrammars", "coordGrammar", "range", "clamp", "min", "val", "max", "copySign", "spow", "base", "exp", "zdiv", "d", "bisectLeft", "lo", "hi", "mid", "Hooks", "name", "callback", "first", "env", "hooks", "defaults", "msg", "WHITES", "getWhite", "adapt", "W1", "W2", "XYZ", "options", "noneTypes", "coerceCoords", "space", "format", "coords", "id", "coordMeta", "providedType", "coordName", "fromRange", "toRange", "util.mapRange", "parse", "meta", "util.parseFunction", "alternateId", "ids", "alpha", "ColorSpace", "colorSpec", "specId", "types", "didYouMean", "registryId", "cssId", "util.last", "formatId", "color", "getColor", "\u03B5", "_ColorSpace", "white", "getPath", "epsilon", "coord", "processFormat", "myPath", "otherPath", "connectionSpace", "connectionSpaceIndex", "alias", "alternatives", "ref", "workingSpace", "coordType", "normalizedCoord", "s", "coordFormats", "outputType", "suffix", "xyz_d65", "RGBColorSpace", "XYZ_D65", "rgb", "xyz", "getAll", "get", "prop", "index", "setAll", "set", "object", "XYZ_D50", "\u03B53", "\u03BA", "lab", "xyz_d50", "f", "Lab", "constrain", "angle", "adjust", "arc", "angles", "a1", "a2", "angleDiff", "lch", "L", "a", "b", "hue", "constrainAngle", "LCH", "Lightness", "Chroma", "Hue", "Gfactor", "\u03C0", "r2d", "d2r", "pow7", "x2", "deltaE2000", "sample", "kL", "kC", "kH", "L1", "b1", "C1", "L2", "b2", "C2", "Cbar", "C7", "G", "adash1", "adash2", "Cdash1", "Cdash2", "h1", "h2", "\u0394L", "\u0394C", "hdiff", "hsum", "habs", "\u0394h", "\u0394H", "Ldash", "Cdash", "Cdash7", "hdash", "lsq", "SL", "SC", "T", "SH", "\u0394\u03B8", "RC", "RT", "dE", "XYZtoLMS_M", "LMStoXYZ_M", "LMStoLab_M", "LabtoLMS_M", "OKLab", "LMSg", "LMS", "deltaEOK", "oklab", "\u0394a", "\u0394b", "inGamut", "clone", "distance", "color1", "color2", "coords1", "coords2", "acc", "c1", "c2", "deltaE76", "deltaECMC", "l", "H1", "H2", "C4", "F", "Yw", "XYZ_Abs_D65", "v", "AbsXYZ", "g", "ninv", "c3", "pinv", "d0", "XYZtoCone_M", "ConetoXYZ_M", "ConetoIab_M", "IabtoCone_M", "Jzazbz", "Xa", "Ya", "Za", "Xm", "Ym", "PQLMS", "num", "denom", "Iz", "az", "bz", "Jz", "jzczhz", "jzazbz", "deltaEJz", "Jz1", "Cz1", "Hz1", "Jz2", "Cz2", "Hz2", "\u0394J", "m1", "m2", "im1", "im2", "LMStoIPT_M", "IPTtoLMS_M", "ictcp", "LMStoICtCp", "ICtCp", "ICtCptoLMS", "deltaEITP", "I1", "T1", "P1", "I2", "T2", "P2", "adaptedCoef", "adaptedCoefInv", "tau", "cat16", "cat16Inv", "surroundMap", "hueQuadMap", "rad2deg", "deg2rad", "fl", "unadapt", "adapted", "constant", "cabs", "hueQuadrature", "h", "hp", "hii", "ei", "eii", "Hi", "t", "invHueQuadrature", "H", "Hp", "environment", "refWhite", "adaptingLuminance", "backgroundLuminance", "surround", "discounting", "xyzW", "yw", "rgbW", "k4", "rgbCW", "rgbAW", "viewingConditions", "fromCam16", "cam16", "hRad", "cosh", "sinh", "Jroot", "et", "p1", "p2", "r", "rgb_c", "toCam16", "xyzd65", "xyz100", "rgbA", "J", "Q", "C", "M", "toLstar", "y", "fromLstar", "lstar", "fromHct", "j", "threshold", "max_attempts", "attempt", "delta", "toHct", "hct", "ucsCoeff", "convertUcsAb", "hrad", "deltaEHCT", "t1", "t2", "deltaEMethods", "calcEpsilon", "jnd", "order", "GMAPPRESET", "toGamut", "method", "deltaEMethod", "blackWhiteClamp", "util.isString", "spaceColor", "toGamutCSS", "de", "clipped", "channelMeta", "channel", "util.isNone", "mapSpace", "coordId", "mappedColor", "low", "high", "bounds", "COLORS", "origin", "oklchSpace", "origin_OKLCH", "black", "clip", "_color", "destColor", "spaceCoords", "util.clamp", "min_inGamut", "current", "E", "chroma", "serialize", "customOptions", "checkInGamut", "util.serializeNumber", "strAlpha", "toXYZ_M", "fromXYZ_M", "REC2020Linear", "\u03B1", "\u03B2", "REC2020", "RGB", "P3Linear", "sRGBLinear", "KEYWORDS", "coordGrammarNumber", "sRGB", "sign", "abs", "rgba", "component", "collapse", "collapsible", "P3", "supportsNone", "display", "fallbackColor", "equals", "getLuminance", "setLuminance", "register", "Color", "contrastWCAG21", "Y1", "Y2", "normBG", "normTXT", "revTXT", "revBG", "blkThrs", "blkClmp", "loClip", "deltaYmin", "scaleBoW", "loBoWoffset", "scaleWoB", "fclamp", "Y", "linearize", "contrastAPCA", "background", "foreground", "S", "Sapc", "R", "lumTxt", "lumBg", "Ytxt", "Ybg", "BoW", "contrastMichelson", "contrastWeber", "contrastLstar", "lab_d65", "phi", "contrastDeltaPhi", "Lstr1", "Lstr2", "deltaPhiStar", "contrast", "algorithm", "rest", "algorithms", "contrastAlgorithms", "uv", "X", "Z", "xy", "sum", "deltaE", "lighten", "amount", "lightness", "darken", "mix", "steps", "colorRange", "isRange", "maxDeltaE", "maxSteps", "rangeOptions", "totalDelta", "actualSteps", "step", "maxDelta", "cur", "\u0394\u0395", "prev", "outputSpace", "progression", "premultiplied", "rangeArgs", "\u03B81", "\u03B82", "angles.adjust", "HSL", "hsl", "k", "HSV", "hsv", "hwb", "w", "gray", "A98Linear", "a98rgb", "ProPhotoLinear", "Et", "Et2", "prophoto", "oklch", "U_PRIME_WHITE", "V_PRIME_WHITE", "Luv", "up", "vp", "u", "LCHuv", "m_r0", "m_r1", "m_r2", "m_g0", "m_g1", "m_g2", "m_b0", "m_b1", "m_b2", "distanceFromOriginAngle", "slope", "intercept", "calculateBoundingLines", "sub1", "sub2", "s1r", "s2r", "s3r", "s1g", "s2g", "s3g", "s1b", "s2b", "s3b", "calcMaxChromaHsluv", "lines", "hueRad", "r0", "r1", "g0", "g1", "b0", "hsluv", "distanceFromOrigin", "calcMaxChromaHpluv", "hpluv", "minv", "rec2100Pq", "scale", "rec2100Hlg", "CATs", "defineCAT", "toCone_M", "fromCone_M", "\u03C1s", "\u03B3s", "\u03B2s", "\u03C1d", "\u03B3d", "\u03B2d", "scaled_cone_M", "ACEScg", "ACES_min_nonzero", "ACES_cc_max", "acescc", "_Color", "code", "instance", "returns", "func", "exports", "util", "key", "spaces", "addSpaceAccessors", "propId", "obj", "property", "receiver", "variations", "chromaticity", "luminance", "interpolation", "contrastMethods", "import_uniqBy", "preferences", "getFormattedColor", "_color", "format", "color", "Color", "oklchColor", "l", "c", "h", "lchColor", "getColorByProximity", "colors", "uniqBy", "x", "b", "MAX_HISTORY_LENGTH", "addToHistory", "color", "cache", "serializedHistory", "previousHistory", "newHistory", "item", "getFormattedColor", "MAX_HISTORY_LENGTH", "command", "props", "showColorName", "pickedColor", "pickColor", "addToHistory", "hex", "getFormattedColor", "formattedColor", "e", "colors", "colorNamer", "firstColorName", "getColorByProximity"]
      7 }