{"version":3,"file":"app.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/create fake namespace object","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Util.js","webpack:///./src/Client/App/.build/fable_modules/Feliz.2.7.0/Interop.fs.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Date.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Numeric.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/RegExp.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Types.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/String.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Option.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Global.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Native.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Array.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/List.js","webpack:///./src/Client/App/.build/Feliz.MaterialUI/Styles.js","webpack:///./src/Client/App/.build/Feliz.MaterialUI/Flatten.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Seq.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/FSharp.Core.js","webpack:///./src/Client/App/.build/fable_modules/Feliz.2.7.0/React.fs.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Int32.js","webpack:///./src/Client/App/.build/fable_modules/Feliz.2.7.0/ReactInterop.js","webpack:///./src/Client/App/.build/fable_modules/Feliz.Router.4.0.0/Router.fs.js","webpack:///./src/Client/App/.build/Pages.js","webpack:///./src/Client/App/.build/Feliz.MaterialUI/Mui.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Reflection.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Result.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/MapUtil.js","webpack:///./src/Client/App/.build/fable_modules/Thoth.Json.6.0.0/Types.fs.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Guid.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/BigInt.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Long.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/DateOffset.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/TimeSpan.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Map.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Set.js","webpack:///./src/Client/App/.build/fable_modules/Thoth.Json.6.0.0/Decode.fs.js","webpack:///./src/Client/App/.build/fable_modules/Thoth.Json.6.0.0/Encode.fs.js","webpack:///./src/Client/App/.build/LocalStorage.js","webpack:///./src/Client/App/.build/Disclaimer.js","webpack:///./src/Client/App/.build/Shared/ApiDataTypes.js","webpack:///./src/Client/App/.build/fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js","webpack:///./src/Client/App/.build/fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js","webpack:///./src/Client/App/.build/Utils.js","webpack:///./src/Client/App/.build/fable_modules/Fable.Promise.2.0.0/Promise.fs.js","webpack:///./src/Client/App/.build/fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js","webpack:///./src/Client/App/.build/Design.js","webpack:///./src/Client/App/.build/Shared/Shared.js","webpack:///./src/Client/App/.build/ViewHelpers.js","webpack:///./src/Client/App/.build/Content/ReportForm.js","webpack:///./src/Client/App/.build/Content/ContentParser.js","webpack:///./src/Client/App/.build/Content/CommentForm.js","webpack:///./src/Client/App/.build/Content/EditPost.js","webpack:///./src/Client/App/.build/Content/Replies.js","webpack:///./src/Client/App/.build/Content/SystemPost.js","webpack:///./src/Client/App/.build/Content/Post.js","webpack:///./src/Client/App/.build/Session.js","webpack:///./src/Client/App/.build/Asset/AssetQuote.js","webpack:///./src/Client/App/.build/Asset/AssetInsiderTrade.js","webpack:///./src/Client/App/Content/gad.js","webpack:///./src/Client/App/.build/Content/Ads.js","webpack:///./src/Client/App/.build/Asset/AssetShort.js","webpack:///./src/Client/App/.build/Content/PostForm.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/MutableSet.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Seq2.js","webpack:///./src/Client/App/.build/Helpers.js","webpack:///./src/Client/App/.build/Asset/ReviewForm.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Double.js","webpack:///./src/Client/App/.build/Content/PostFeed.js","webpack:///./src/Client/App/.build/fable_modules/Thoth.Json.6.0.0/Extra.fs.js","webpack:///./src/Client/App/.build/Promises.js","webpack:///./src/Client/App/.build/Asset/AssetTA.js","webpack:///./src/Client/App/.build/Asset/Asset.js","webpack:///./src/Client/App/.build/Market.js","webpack:///./src/Client/App/.build/Asset/Short.js","webpack:///./src/Client/App/.build/Asset/InsiderTrades.js","webpack:///./src/Client/App/.build/fable_modules/fable-library-js.4.17.0/Range.js","webpack:///./src/Client/App/.build/Content/ImageForm.js","webpack:///./src/Client/App/Content/imageresize.js","webpack:///./src/Client/App/.build/User/UserFeed.js","webpack:///./src/Client/App/.build/User/User.js","webpack:///./src/Client/App/.build/Content/PostView.js","webpack:///./src/Client/App/.build/Search.js","webpack:///./src/Client/App/.build/Notifications.js","webpack:///./src/Client/App/.build/Feed.js","webpack:///./src/Client/App/.build/Home.js","webpack:///./src/Client/App/.build/Landing.js","webpack:///./src/Client/App/.build/Client.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// tslint:disable:ban-types\nexport function isArrayLike(x) {\n return Array.isArray(x) || ArrayBuffer.isView(x);\n}\nexport function isIterable(x) {\n return x != null && typeof x === \"object\" && Symbol.iterator in x;\n}\nexport function isEnumerable(x) {\n return x != null && typeof x.GetEnumerator === \"function\";\n}\nexport function isComparer(x) {\n return x != null && typeof x.Compare === \"function\";\n}\nexport function isComparable(x) {\n return x != null && typeof x.CompareTo === \"function\";\n}\nexport function isEquatable(x) {\n return x != null && typeof x.Equals === \"function\";\n}\nexport function isHashable(x) {\n return x != null && typeof x.GetHashCode === \"function\";\n}\nexport function isDisposable(x) {\n return x != null && typeof x.Dispose === \"function\";\n}\nexport function disposeSafe(x) {\n if (isDisposable(x)) {\n x.Dispose();\n }\n}\nexport function defaultOf() {\n return null;\n}\nexport function sameConstructor(x, y) {\n return Object.getPrototypeOf(x)?.constructor === Object.getPrototypeOf(y)?.constructor;\n}\nexport class Enumerable {\n constructor(en) {\n this.en = en;\n }\n GetEnumerator() { return this.en; }\n \"System.Collections.IEnumerable.GetEnumerator\"() { return this.en; }\n [Symbol.iterator]() {\n return this;\n }\n next() {\n const hasNext = this.en[\"System.Collections.IEnumerator.MoveNext\"]();\n const current = hasNext ? this.en[\"System.Collections.Generic.IEnumerator`1.get_Current\"]() : undefined;\n return { done: !hasNext, value: current };\n }\n}\nexport class Enumerator {\n constructor(iter) {\n this.iter = iter;\n this.current = defaultOf();\n }\n [\"System.Collections.Generic.IEnumerator`1.get_Current\"]() {\n return this.current;\n }\n [\"System.Collections.IEnumerator.get_Current\"]() {\n return this.current;\n }\n [\"System.Collections.IEnumerator.MoveNext\"]() {\n const cur = this.iter.next();\n this.current = cur.value;\n return !cur.done;\n }\n [\"System.Collections.IEnumerator.Reset\"]() {\n throw new Error(\"JS iterators cannot be reset\");\n }\n Dispose() {\n return;\n }\n}\nexport function toEnumerable(e) {\n if (isEnumerable(e)) {\n return e;\n }\n else {\n return new Enumerable(new Enumerator(e[Symbol.iterator]()));\n }\n}\nexport function getEnumerator(e) {\n if (isEnumerable(e)) {\n return e.GetEnumerator();\n }\n else {\n return new Enumerator(e[Symbol.iterator]());\n }\n}\nexport function toIterator(en) {\n return {\n next() {\n const hasNext = en[\"System.Collections.IEnumerator.MoveNext\"]();\n const current = hasNext ? en[\"System.Collections.Generic.IEnumerator`1.get_Current\"]() : undefined;\n return { done: !hasNext, value: current };\n },\n };\n}\nexport function enumerableToIterator(e) {\n return toIterator(toEnumerable(e).GetEnumerator());\n}\nexport class Comparer {\n constructor(f) {\n this.Compare = f || compare;\n }\n}\nexport function comparerFromEqualityComparer(comparer) {\n // Sometimes IEqualityComparer also implements IComparer\n if (isComparer(comparer)) {\n return new Comparer(comparer.Compare);\n }\n else {\n return new Comparer((x, y) => {\n const xhash = comparer.GetHashCode(x);\n const yhash = comparer.GetHashCode(y);\n if (xhash === yhash) {\n return comparer.Equals(x, y) ? 0 : -1;\n }\n else {\n return xhash < yhash ? -1 : 1;\n }\n });\n }\n}\nexport function assertEqual(actual, expected, msg) {\n if (!equals(actual, expected)) {\n throw Object.assign(new Error(msg || `Expected: ${expected} - Actual: ${actual}`), {\n actual,\n expected,\n });\n }\n}\nexport function assertNotEqual(actual, expected, msg) {\n if (equals(actual, expected)) {\n throw Object.assign(new Error(msg || `Expected: ${expected} - Actual: ${actual}`), {\n actual,\n expected,\n });\n }\n}\nexport class Lazy {\n constructor(factory) {\n this.factory = factory;\n this.isValueCreated = false;\n }\n get Value() {\n if (!this.isValueCreated) {\n this.createdValue = this.factory();\n this.isValueCreated = true;\n }\n return this.createdValue;\n }\n get IsValueCreated() {\n return this.isValueCreated;\n }\n}\nexport function lazyFromValue(v) {\n return new Lazy(() => v);\n}\nexport function padWithZeros(i, length) {\n return i.toString(10).padStart(length, \"0\");\n}\nexport function padLeftAndRightWithZeros(i, lengthLeft, lengthRight) {\n return i.toString(10).padStart(lengthLeft, \"0\").padEnd(lengthRight, \"0\");\n}\nexport function dateOffset(date) {\n const date1 = date;\n return typeof date1.offset === \"number\"\n ? date1.offset\n : (date.kind === 1 /* DateKind.UTC */\n ? 0 : date.getTimezoneOffset() * -60000);\n}\nexport function int16ToString(i, radix) {\n i = i < 0 && radix != null && radix !== 10 ? 0xFFFF + i + 1 : i;\n return i.toString(radix);\n}\nexport function int32ToString(i, radix) {\n i = i < 0 && radix != null && radix !== 10 ? 0xFFFFFFFF + i + 1 : i;\n return i.toString(radix);\n}\nexport function int64ToString(i, radix) {\n i = i < 0 && radix != null && radix !== 10 ? 0xffffffffffffffffn + i + 1n : i;\n return i.toString(radix);\n}\nexport class ObjectRef {\n static id(o) {\n if (!ObjectRef.idMap.has(o)) {\n ObjectRef.idMap.set(o, ++ObjectRef.count);\n }\n return ObjectRef.idMap.get(o);\n }\n}\nObjectRef.idMap = new WeakMap();\nObjectRef.count = 0;\nexport function stringHash(s) {\n let i = 0;\n let h = 5381;\n const len = s.length;\n while (i < len) {\n h = (h * 33) ^ s.charCodeAt(i++);\n }\n return h;\n}\nexport function numberHash(x) {\n return x * 2654435761 | 0;\n}\nexport function bigintHash(x) {\n return stringHash(x.toString(32));\n}\n// From https://stackoverflow.com/a/37449594\nexport function combineHashCodes(hashes) {\n let h1 = 0;\n const len = hashes.length;\n for (let i = 0; i < len; i++) {\n const h2 = hashes[i];\n h1 = ((h1 << 5) + h1) ^ h2;\n }\n return h1;\n}\nexport function physicalHash(x) {\n if (x == null) {\n return 0;\n }\n switch (typeof x) {\n case \"boolean\":\n return x ? 1 : 0;\n case \"number\":\n return numberHash(x);\n case \"bigint\":\n return bigintHash(x);\n case \"string\":\n return stringHash(x);\n default:\n return numberHash(ObjectRef.id(x));\n }\n}\nexport function identityHash(x) {\n if (isHashable(x)) {\n return x.GetHashCode();\n }\n else {\n return physicalHash(x);\n }\n}\nexport function dateHash(x) {\n return x.getTime();\n}\nexport function arrayHash(x) {\n const len = x.length;\n const hashes = new Array(len);\n for (let i = 0; i < len; i++) {\n hashes[i] = structuralHash(x[i]);\n }\n return combineHashCodes(hashes);\n}\nexport function structuralHash(x) {\n if (x == null) {\n return 0;\n }\n switch (typeof x) {\n case \"boolean\":\n return x ? 1 : 0;\n case \"number\":\n return numberHash(x);\n case \"bigint\":\n return bigintHash(x);\n case \"string\":\n return stringHash(x);\n default: {\n if (isHashable(x)) {\n return x.GetHashCode();\n }\n else if (isArrayLike(x)) {\n return arrayHash(x);\n }\n else if (x instanceof Date) {\n return dateHash(x);\n }\n else if (Object.getPrototypeOf(x)?.constructor === Object) {\n // TODO: check call-stack to prevent cyclic objects?\n const hashes = Object.values(x).map((v) => structuralHash(v));\n return combineHashCodes(hashes);\n }\n else {\n // Classes don't implement GetHashCode by default, but must use identity hashing\n return numberHash(ObjectRef.id(x));\n // return stringHash(String(x));\n }\n }\n }\n}\n// Intended for custom numeric types, like long or decimal\nexport function fastStructuralHash(x) {\n return stringHash(String(x));\n}\n// Intended for declared types that may or may not implement GetHashCode\nexport function safeHash(x) {\n // return x == null ? 0 : isHashable(x) ? x.GetHashCode() : numberHash(ObjectRef.id(x));\n return identityHash(x);\n}\nexport function equalArraysWith(x, y, eq) {\n if (x == null) {\n return y == null;\n }\n if (y == null) {\n return false;\n }\n if (x.length !== y.length) {\n return false;\n }\n for (let i = 0; i < x.length; i++) {\n if (!eq(x[i], y[i])) {\n return false;\n }\n }\n return true;\n}\nexport function equalArrays(x, y) {\n return equalArraysWith(x, y, equals);\n}\nfunction equalObjects(x, y) {\n const xKeys = Object.keys(x);\n const yKeys = Object.keys(y);\n if (xKeys.length !== yKeys.length) {\n return false;\n }\n xKeys.sort();\n yKeys.sort();\n for (let i = 0; i < xKeys.length; i++) {\n if (xKeys[i] !== yKeys[i] || !equals(x[xKeys[i]], y[yKeys[i]])) {\n return false;\n }\n }\n return true;\n}\nexport function physicalEquality(x, y) {\n return x === y;\n}\nexport function equals(x, y) {\n if (x === y) {\n return true;\n }\n else if (x == null) {\n return y == null;\n }\n else if (y == null) {\n return false;\n }\n else if (isEquatable(x)) {\n return x.Equals(y);\n }\n else if (isArrayLike(x)) {\n return isArrayLike(y) && equalArrays(x, y);\n }\n else if (typeof x !== \"object\") {\n return false;\n }\n else if (x instanceof Date) {\n return (y instanceof Date) && compareDates(x, y) === 0;\n }\n else {\n return Object.getPrototypeOf(x)?.constructor === Object && equalObjects(x, y);\n }\n}\nexport function compareDates(x, y) {\n let xtime;\n let ytime;\n // DateTimeOffset and DateTime deals with equality differently.\n if (\"offset\" in x && \"offset\" in y) {\n xtime = x.getTime();\n ytime = y.getTime();\n }\n else {\n xtime = x.getTime() + dateOffset(x);\n ytime = y.getTime() + dateOffset(y);\n }\n return xtime === ytime ? 0 : (xtime < ytime ? -1 : 1);\n}\nexport function comparePrimitives(x, y) {\n return x === y ? 0 : (x < y ? -1 : 1);\n}\nexport function compareArraysWith(x, y, comp) {\n if (x == null) {\n return y == null ? 0 : 1;\n }\n if (y == null) {\n return -1;\n }\n if (x.length !== y.length) {\n return x.length < y.length ? -1 : 1;\n }\n for (let i = 0, j = 0; i < x.length; i++) {\n j = comp(x[i], y[i]);\n if (j !== 0) {\n return j;\n }\n }\n return 0;\n}\nexport function compareArrays(x, y) {\n return compareArraysWith(x, y, compare);\n}\nfunction compareObjects(x, y) {\n const xKeys = Object.keys(x);\n const yKeys = Object.keys(y);\n if (xKeys.length !== yKeys.length) {\n return xKeys.length < yKeys.length ? -1 : 1;\n }\n xKeys.sort();\n yKeys.sort();\n for (let i = 0, j = 0; i < xKeys.length; i++) {\n const key = xKeys[i];\n if (key !== yKeys[i]) {\n return key < yKeys[i] ? -1 : 1;\n }\n else {\n j = compare(x[key], y[key]);\n if (j !== 0) {\n return j;\n }\n }\n }\n return 0;\n}\nexport function compare(x, y) {\n if (x === y) {\n return 0;\n }\n else if (x == null) {\n return y == null ? 0 : -1;\n }\n else if (y == null) {\n return 1;\n }\n else if (isComparable(x)) {\n return x.CompareTo(y);\n }\n else if (isArrayLike(x)) {\n return isArrayLike(y) ? compareArrays(x, y) : -1;\n }\n else if (typeof x !== \"object\") {\n return x < y ? -1 : 1;\n }\n else if (x instanceof Date) {\n return y instanceof Date ? compareDates(x, y) : -1;\n }\n else {\n return Object.getPrototypeOf(x)?.constructor === Object ? compareObjects(x, y) : -1;\n }\n}\nexport function min(comparer, x, y) {\n return comparer(x, y) < 0 ? x : y;\n}\nexport function max(comparer, x, y) {\n return comparer(x, y) > 0 ? x : y;\n}\nexport function clamp(comparer, value, min, max) {\n return (comparer(value, min) < 0) ? min : (comparer(value, max) > 0) ? max : value;\n}\nexport function createAtom(value) {\n let atom = value;\n return (...args) => {\n if (args.length === 0) {\n return atom;\n }\n else {\n atom = args[0];\n }\n };\n}\nexport function createObj(fields) {\n const obj = {};\n for (const kv of fields) {\n obj[kv[0]] = kv[1];\n }\n return obj;\n}\nexport function jsOptions(mutator) {\n const opts = {};\n mutator(opts);\n return opts;\n}\nexport function round(value, digits = 0) {\n const m = Math.pow(10, digits);\n const n = +(digits ? value * m : value).toFixed(8);\n const i = Math.floor(n);\n const f = n - i;\n const e = 1e-8;\n const r = (f > 0.5 - e && f < 0.5 + e) ? ((i % 2 === 0) ? i : i + 1) : Math.round(n);\n return digits ? r / m : r;\n}\nexport function sign(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n}\nexport function unescapeDataString(s) {\n // https://stackoverflow.com/a/4458580/524236\n return decodeURIComponent((s).replace(/\\+/g, \"%20\"));\n}\nexport function escapeDataString(s) {\n return encodeURIComponent(s).replace(/!/g, \"%21\")\n .replace(/'/g, \"%27\")\n .replace(/\\(/g, \"%28\")\n .replace(/\\)/g, \"%29\")\n .replace(/\\*/g, \"%2A\");\n}\nexport function escapeUriString(s) {\n return encodeURI(s);\n}\n// ICollection.Clear and Count members can be called on Arrays\n// or Dictionaries so we need a runtime check (see #1120)\nexport function count(col) {\n if (isArrayLike(col)) {\n return col.length;\n }\n else {\n let count = 0;\n for (const _ of col) {\n count++;\n }\n return count;\n }\n}\nexport function clear(col) {\n if (isArrayLike(col)) {\n col.splice(0);\n }\n else {\n col.clear();\n }\n}\nconst curried = new WeakMap();\nexport function uncurry2(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2) => f(a1)(a2);\n curried.set(f2, f);\n return f2;\n}\nexport function curry2(f) {\n return curried.get(f) ?? ((a1) => (a2) => f(a1, a2));\n}\nexport function uncurry3(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3) => f(a1)(a2)(a3);\n curried.set(f2, f);\n return f2;\n}\nexport function curry3(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => f(a1, a2, a3));\n}\nexport function uncurry4(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4) => f(a1)(a2)(a3)(a4);\n curried.set(f2, f);\n return f2;\n}\nexport function curry4(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => f(a1, a2, a3, a4));\n}\nexport function uncurry5(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5) => f(a1)(a2)(a3)(a4)(a5);\n curried.set(f2, f);\n return f2;\n}\nexport function curry5(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => f(a1, a2, a3, a4, a5));\n}\nexport function uncurry6(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6) => f(a1)(a2)(a3)(a4)(a5)(a6);\n curried.set(f2, f);\n return f2;\n}\nexport function curry6(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => f(a1, a2, a3, a4, a5, a6));\n}\nexport function uncurry7(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7);\n curried.set(f2, f);\n return f2;\n}\nexport function curry7(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => f(a1, a2, a3, a4, a5, a6, a7));\n}\nexport function uncurry8(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8);\n curried.set(f2, f);\n return f2;\n}\nexport function curry8(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => f(a1, a2, a3, a4, a5, a6, a7, a8));\n}\nexport function uncurry9(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9);\n curried.set(f2, f);\n return f2;\n}\nexport function curry9(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9));\n}\nexport function uncurry10(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10);\n curried.set(f2, f);\n return f2;\n}\nexport function curry10(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10));\n}\nexport function uncurry11(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11);\n curried.set(f2, f);\n return f2;\n}\nexport function curry11(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11));\n}\nexport function uncurry12(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12);\n curried.set(f2, f);\n return f2;\n}\nexport function curry12(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12));\n}\nexport function uncurry13(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13);\n curried.set(f2, f);\n return f2;\n}\nexport function curry13(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13));\n}\nexport function uncurry14(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14);\n curried.set(f2, f);\n return f2;\n}\nexport function curry14(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => (a14) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14));\n}\nexport function uncurry15(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15);\n curried.set(f2, f);\n return f2;\n}\nexport function curry15(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => (a14) => (a15) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15));\n}\nexport function uncurry16(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16);\n curried.set(f2, f);\n return f2;\n}\nexport function curry16(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => (a14) => (a15) => (a16) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16));\n}\nexport function uncurry17(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17);\n curried.set(f2, f);\n return f2;\n}\nexport function curry17(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => (a14) => (a15) => (a16) => (a17) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17));\n}\nexport function uncurry18(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17)(a18);\n curried.set(f2, f);\n return f2;\n}\nexport function curry18(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => (a14) => (a15) => (a16) => (a17) => (a18) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18));\n}\nexport function uncurry19(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17)(a18)(a19);\n curried.set(f2, f);\n return f2;\n}\nexport function curry19(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => (a14) => (a15) => (a16) => (a17) => (a18) => (a19) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19));\n}\nexport function uncurry20(f) {\n if (f == null) {\n return null;\n }\n const f2 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) => f(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)(a15)(a16)(a17)(a18)(a19)(a20);\n curried.set(f2, f);\n return f2;\n}\nexport function curry20(f) {\n return curried.get(f)\n ?? ((a1) => (a2) => (a3) => (a4) => (a5) => (a6) => (a7) => (a8) => (a9) => (a10) => (a11) => (a12) => (a13) => (a14) => (a15) => (a16) => (a17) => (a18) => (a19) => (a20) => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20));\n}\n// More performant method to copy arrays, see #2352\nexport function copyToArray(source, sourceIndex, target, targetIndex, count) {\n if (ArrayBuffer.isView(source) && ArrayBuffer.isView(target)) {\n target.set(source.subarray(sourceIndex, sourceIndex + count), targetIndex);\n }\n else {\n for (let i = 0; i < count; ++i) {\n target[targetIndex + i] = source[sourceIndex + i];\n }\n }\n}\n","import { some } from \"../fable-library-js.4.17.0/Option.js\";\nimport { create, isLeapYear } from \"../fable-library-js.4.17.0/Date.js\";\nimport { parse } from \"../fable-library-js.4.17.0/Int32.js\";\nimport { split, isNullOrWhiteSpace } from \"../fable-library-js.4.17.0/String.js\";\nimport { item, equalsWith } from \"../fable-library-js.4.17.0/Array.js\";\nimport { defaultOf } from \"../fable-library-js.4.17.0/Util.js\";\nimport react from \"react\";\n\nexport function DateParsing_$007CBetween$007C_$007C(x, y, input) {\n if ((input >= x) && (input <= y)) {\n return some(undefined);\n }\n else {\n return undefined;\n }\n}\n\nexport function DateParsing_isLeapYear(year) {\n return isLeapYear(year);\n}\n\nexport function DateParsing_$007CInt$007C_$007C(input) {\n try {\n return parse(input, 511, false, 32);\n }\n catch (matchValue) {\n return undefined;\n }\n}\n\n/**\n * Parses a specific yyyy-MM-dd or yyyy-MM-ddTHH:mm date format that comes out of an input element with type=\"date\"\n */\nexport function DateParsing_parse(input) {\n try {\n if (isNullOrWhiteSpace(input)) {\n return undefined;\n }\n else {\n const parts = split(input, [\"-\"], undefined, 0);\n let patternInput;\n let matchResult, month, year;\n if (!equalsWith((x, y) => (x === y), parts, defaultOf()) && (parts.length === 2)) {\n const activePatternResult = DateParsing_$007CInt$007C_$007C(item(0, parts));\n if (activePatternResult != null) {\n const activePatternResult_1 = DateParsing_$007CInt$007C_$007C(item(1, parts));\n if (activePatternResult_1 != null) {\n matchResult = 0;\n month = activePatternResult_1;\n year = activePatternResult;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0: {\n patternInput = [year, month, 1, 0, 0];\n break;\n }\n default: {\n let matchResult_1, day, month_1, year_1;\n if (!equalsWith((x_1, y_1) => (x_1 === y_1), parts, defaultOf()) && (parts.length === 3)) {\n const activePatternResult_2 = DateParsing_$007CInt$007C_$007C(item(0, parts));\n if (activePatternResult_2 != null) {\n const activePatternResult_3 = DateParsing_$007CInt$007C_$007C(item(1, parts));\n if (activePatternResult_3 != null) {\n const activePatternResult_4 = DateParsing_$007CInt$007C_$007C(item(2, parts));\n if (activePatternResult_4 != null) {\n matchResult_1 = 0;\n day = activePatternResult_4;\n month_1 = activePatternResult_3;\n year_1 = activePatternResult_2;\n }\n else {\n matchResult_1 = 1;\n }\n }\n else {\n matchResult_1 = 1;\n }\n }\n else {\n matchResult_1 = 1;\n }\n }\n else {\n matchResult_1 = 1;\n }\n switch (matchResult_1) {\n case 0: {\n patternInput = [year_1, month_1, day, 0, 0];\n break;\n }\n default: {\n let matchResult_2, day_1, month_2, year_2;\n if (!equalsWith((x_2, y_2) => (x_2 === y_2), parts, defaultOf()) && (parts.length === 3)) {\n const activePatternResult_5 = DateParsing_$007CInt$007C_$007C(item(0, parts));\n if (activePatternResult_5 != null) {\n const activePatternResult_6 = DateParsing_$007CInt$007C_$007C(item(1, parts));\n if (activePatternResult_6 != null) {\n matchResult_2 = 0;\n day_1 = item(2, parts);\n month_2 = activePatternResult_6;\n year_2 = activePatternResult_5;\n }\n else {\n matchResult_2 = 1;\n }\n }\n else {\n matchResult_2 = 1;\n }\n }\n else {\n matchResult_2 = 1;\n }\n switch (matchResult_2) {\n case 0: {\n if (day_1.indexOf(\"T\") >= 0) {\n const matchValue = split(day_1, [\"T\"], undefined, 0);\n let matchResult_3, parsedDay, time;\n if (!equalsWith((x_3, y_3) => (x_3 === y_3), matchValue, defaultOf()) && (matchValue.length === 2)) {\n const activePatternResult_7 = DateParsing_$007CInt$007C_$007C(item(0, matchValue));\n if (activePatternResult_7 != null) {\n matchResult_3 = 0;\n parsedDay = activePatternResult_7;\n time = item(1, matchValue);\n }\n else {\n matchResult_3 = 1;\n }\n }\n else {\n matchResult_3 = 1;\n }\n switch (matchResult_3) {\n case 0: {\n const matchValue_1 = split(time, [\":\"], undefined, 0);\n let matchResult_4, hour, minute;\n if (!equalsWith((x_4, y_4) => (x_4 === y_4), matchValue_1, defaultOf()) && (matchValue_1.length === 2)) {\n const activePatternResult_8 = DateParsing_$007CInt$007C_$007C(item(0, matchValue_1));\n if (activePatternResult_8 != null) {\n const activePatternResult_9 = DateParsing_$007CInt$007C_$007C(item(1, matchValue_1));\n if (activePatternResult_9 != null) {\n matchResult_4 = 0;\n hour = activePatternResult_8;\n minute = activePatternResult_9;\n }\n else {\n matchResult_4 = 1;\n }\n }\n else {\n matchResult_4 = 1;\n }\n }\n else {\n matchResult_4 = 1;\n }\n switch (matchResult_4) {\n case 0: {\n let matchResult_5;\n if (DateParsing_$007CBetween$007C_$007C(0, 59, hour) != null) {\n if (DateParsing_$007CBetween$007C_$007C(0, 59, minute) != null) {\n matchResult_5 = 0;\n }\n else {\n matchResult_5 = 1;\n }\n }\n else {\n matchResult_5 = 1;\n }\n switch (matchResult_5) {\n case 0: {\n patternInput = [year_2, month_2, parsedDay, hour, minute];\n break;\n }\n default:\n patternInput = [-1, 1, 1, 0, 0];\n }\n break;\n }\n default:\n patternInput = [-1, 1, 1, 0, 0];\n }\n break;\n }\n default:\n patternInput = [-1, 1, 1, 0, 0];\n }\n }\n else {\n patternInput = [-1, 1, 1, 0, 0];\n }\n break;\n }\n default:\n patternInput = [-1, 1, 1, 0, 0];\n }\n }\n }\n }\n }\n const year_3 = patternInput[0] | 0;\n const month_3 = patternInput[1] | 0;\n const minute_1 = patternInput[4] | 0;\n const hour_1 = patternInput[3] | 0;\n const day_2 = patternInput[2] | 0;\n return (year_3 <= 0) ? undefined : ((month_3 === 2) ? ((DateParsing_$007CBetween$007C_$007C(1, 29, day_2) != null) ? (DateParsing_isLeapYear(year_3) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 2) ? ((DateParsing_$007CBetween$007C_$007C(1, 28, day_2) != null) ? (!DateParsing_isLeapYear(year_3) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined)))))))))))) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined)))))))))))) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))))))))))) : ((month_3 === 2) ? ((DateParsing_$007CBetween$007C_$007C(1, 28, day_2) != null) ? (!DateParsing_isLeapYear(year_3) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined)))))))))))) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined)))))))))))) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))))))))))) : ((month_3 === 2) ? ((DateParsing_$007CBetween$007C_$007C(1, 28, day_2) != null) ? (!DateParsing_isLeapYear(year_3) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined)))))))))))) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined)))))))))))) : ((month_3 === 1) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 3) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 5) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 7) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 8) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 10) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 12) ? ((DateParsing_$007CBetween$007C_$007C(1, 31, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined))))) : ((month_3 === 4) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 6) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 9) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : ((month_3 === 11) ? ((DateParsing_$007CBetween$007C_$007C(1, 30, day_2) != null) ? create(year_3, month_3, day_2, hour_1, minute_1, 0) : undefined) : undefined)))))))))))));\n }\n }\n catch (matchValue_4) {\n return undefined;\n }\n}\n\nexport const Interop_reactApi = react;\n\n","/**\n * DateTimeOffset functions.\n *\n * Note: Date instances are always DateObjects in local\n * timezone (because JS dates are all kinds of messed up).\n * A local date returns UTC epoch when `.getTime()` is called.\n *\n * Basically; invariant: date.getTime() always return UTC time.\n */\nimport { toInt64, toFloat64 } from \"./BigInt.js\";\nimport { compareDates, dateOffset, padWithZeros } from \"./Util.js\";\nconst shortDays = [\n \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"\n];\nconst longDays = [\n \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"\n];\nconst shortMonths = [\n \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"\n];\nconst longMonths = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n];\nfunction parseRepeatToken(format, pos, patternChar) {\n let tokenLength = 0;\n let internalPos = pos;\n while (internalPos < format.length && format[internalPos] === patternChar) {\n internalPos++;\n tokenLength++;\n }\n return tokenLength;\n}\nfunction parseNextChar(format, pos) {\n if (pos >= format.length - 1) {\n return -1;\n }\n return format.charCodeAt(pos + 1);\n}\nfunction parseQuotedString(format, pos) {\n let beginPos = pos;\n // Get the character used to quote the string\n const quoteChar = format[pos];\n let result = \"\";\n let foundQuote = false;\n while (pos < format.length) {\n pos++;\n const currentChar = format[pos];\n if (currentChar === quoteChar) {\n foundQuote = true;\n break;\n }\n else if (currentChar === \"\\\\\") {\n if (pos < format.length) {\n pos++;\n result += format[pos];\n }\n else {\n // This means that '\\' is the last character in the string.\n throw new Error(\"Invalid string format\");\n }\n }\n else {\n result += currentChar;\n }\n }\n if (!foundQuote) {\n // We could not find the matching quote\n throw new Error(`Invalid string format could not find matching quote for ${quoteChar}`);\n }\n return [result, pos - beginPos + 1];\n}\nfunction dateToStringWithCustomFormat(date, format, utc) {\n let cursorPos = 0;\n let tokenLength = 0;\n let result = \"\";\n const localizedDate = utc ? DateTime(date.getTime(), 1 /* DateKind.UTC */) : date;\n while (cursorPos < format.length) {\n const token = format[cursorPos];\n switch (token) {\n case \"d\":\n tokenLength = parseRepeatToken(format, cursorPos, \"d\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += day(localizedDate);\n break;\n case 2:\n result += padWithZeros(day(localizedDate), 2);\n break;\n case 3:\n result += shortDays[dayOfWeek(localizedDate)];\n break;\n case 4:\n result += longDays[dayOfWeek(localizedDate)];\n break;\n default:\n break;\n }\n break;\n case \"f\":\n tokenLength = parseRepeatToken(format, cursorPos, \"f\");\n cursorPos += tokenLength;\n if (tokenLength <= 3) {\n const precision = 10 ** (3 - tokenLength);\n result += padWithZeros(Math.floor(millisecond(localizedDate) / precision), tokenLength);\n }\n else if (tokenLength <= 7) {\n // JavaScript Date only support precision to the millisecond\n // so we fill the rest of the precision with 0 as if the date didn't have\n // milliseconds provided to it.\n // This is to have the same behavior as .NET when doing:\n // DateTime(1, 2, 3, 4, 5, 6, DateTimeKind.Utc).ToString(\"fffff\") => 00000\n result += (\"\" + millisecond(localizedDate)).padEnd(tokenLength, \"0\");\n }\n break;\n case \"F\":\n tokenLength = parseRepeatToken(format, cursorPos, \"F\");\n cursorPos += tokenLength;\n if (tokenLength <= 3) {\n const precision = 10 ** (3 - tokenLength);\n const value = Math.floor(millisecond(localizedDate) / precision);\n if (value != 0) {\n result += padWithZeros(value, tokenLength);\n }\n }\n else if (tokenLength <= 7) {\n // JavaScript Date only support precision to the millisecond\n // so we can't go beyond that.\n // We also need to pad start with 0 if the value is not 0\n const value = millisecond(localizedDate);\n if (value != 0) {\n result += padWithZeros(value, 3);\n }\n }\n break;\n case \"g\":\n tokenLength = parseRepeatToken(format, cursorPos, \"g\");\n cursorPos += tokenLength;\n if (tokenLength <= 2) {\n result += \"A.D.\";\n }\n break;\n case \"h\":\n tokenLength = parseRepeatToken(format, cursorPos, \"h\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += hour(localizedDate) % 12;\n break;\n case 2:\n result += padWithZeros(hour(localizedDate) % 12, 2);\n break;\n default:\n break;\n }\n break;\n case \"H\":\n tokenLength = parseRepeatToken(format, cursorPos, \"H\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += hour(localizedDate);\n break;\n case 2:\n result += padWithZeros(hour(localizedDate), 2);\n break;\n default:\n break;\n }\n break;\n case \"K\":\n tokenLength = parseRepeatToken(format, cursorPos, \"K\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n switch (kind(localizedDate)) {\n case 1 /* DateKind.UTC */:\n result += \"Z\";\n break;\n case 2 /* DateKind.Local */:\n result += dateOffsetToString(localizedDate.getTimezoneOffset() * -60000);\n break;\n case 0 /* DateKind.Unspecified */:\n break;\n }\n break;\n default:\n break;\n }\n break;\n case \"m\":\n tokenLength = parseRepeatToken(format, cursorPos, \"m\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += minute(localizedDate);\n break;\n case 2:\n result += padWithZeros(minute(localizedDate), 2);\n break;\n default:\n break;\n }\n break;\n case \"M\":\n tokenLength = parseRepeatToken(format, cursorPos, \"M\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += month(localizedDate);\n break;\n case 2:\n result += padWithZeros(month(localizedDate), 2);\n break;\n case 3:\n result += shortMonths[month(localizedDate) - 1];\n break;\n case 4:\n result += longMonths[month(localizedDate) - 1];\n break;\n default:\n break;\n }\n break;\n case \"s\":\n tokenLength = parseRepeatToken(format, cursorPos, \"s\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += second(localizedDate);\n break;\n case 2:\n result += padWithZeros(second(localizedDate), 2);\n break;\n default:\n break;\n }\n break;\n case \"t\":\n tokenLength = parseRepeatToken(format, cursorPos, \"t\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += localizedDate.getHours() < 12 ? \"A\" : \"P\";\n break;\n case 2:\n result += localizedDate.getHours() < 12 ? \"AM\" : \"PM\";\n break;\n default:\n break;\n }\n break;\n case \"y\":\n tokenLength = parseRepeatToken(format, cursorPos, \"y\");\n cursorPos += tokenLength;\n switch (tokenLength) {\n case 1:\n result += localizedDate.getFullYear() % 100;\n break;\n case 2:\n result += padWithZeros(localizedDate.getFullYear() % 100, 2);\n break;\n case 3:\n result += padWithZeros(localizedDate.getFullYear(), 3);\n break;\n case 4:\n result += padWithZeros(localizedDate.getFullYear(), 4);\n break;\n case 5:\n result += padWithZeros(localizedDate.getFullYear(), 5);\n break;\n default:\n break;\n }\n break;\n case \"z\":\n tokenLength = parseRepeatToken(format, cursorPos, \"z\");\n cursorPos += tokenLength;\n let utcOffsetText = \"\";\n switch (kind(localizedDate)) {\n case 1 /* DateKind.UTC */:\n utcOffsetText = \"+00:00\";\n break;\n case 2 /* DateKind.Local */:\n utcOffsetText = dateOffsetToString(localizedDate.getTimezoneOffset() * -60000);\n break;\n case 0 /* DateKind.Unspecified */:\n utcOffsetText = dateOffsetToString(toLocalTime(localizedDate).getTimezoneOffset() * -60000);\n break;\n }\n const sign = utcOffsetText[0] === \"-\" ? \"-\" : \"+\";\n const hours = parseInt(utcOffsetText.substring(1, 3), 10);\n const minutes = parseInt(utcOffsetText.substring(4, 6), 10);\n switch (tokenLength) {\n case 1:\n result += `${sign}${hours}`;\n break;\n case 2:\n result += `${sign}${padWithZeros(hours, 2)}`;\n break;\n default:\n result += `${sign}${padWithZeros(hours, 2)}:${padWithZeros(minutes, 2)}`;\n break;\n }\n break;\n case \":\":\n result += \":\";\n cursorPos++;\n break;\n case \"/\":\n result += \"/\";\n cursorPos++;\n break;\n case \"'\":\n case '\"':\n const [quotedString, quotedStringLenght] = parseQuotedString(format, cursorPos);\n result += quotedString;\n cursorPos += quotedStringLenght;\n break;\n case \"%\":\n const nextChar = parseNextChar(format, cursorPos);\n if (nextChar >= 0 && nextChar !== \"%\".charCodeAt(0)) {\n cursorPos += 2;\n result += dateToStringWithCustomFormat(localizedDate, String.fromCharCode(nextChar), utc);\n }\n else {\n throw new Error(\"Invalid format string\");\n }\n break;\n case \"\\\\\":\n const nextChar2 = parseNextChar(format, cursorPos);\n if (nextChar2 >= 0) {\n cursorPos += 2;\n result += String.fromCharCode(nextChar2);\n }\n else {\n throw new Error(\"Invalid format string\");\n }\n break;\n default:\n cursorPos++;\n result += token;\n break;\n }\n }\n return result;\n}\nexport function kind(value) {\n return value.kind || 0;\n}\nexport function unixEpochMillisecondsToTicks(ms, offset) {\n return toInt64(((BigInt(ms) + 62135596800000n) + BigInt(offset)) * 10000n);\n}\nexport function ticksToUnixEpochMilliseconds(ticks) {\n return Number(((BigInt(ticks) / 10000n) - 62135596800000n));\n}\nexport function dateOffsetToString(offset) {\n const isMinus = offset < 0;\n offset = Math.abs(offset);\n const hours = ~~(offset / 3600000);\n const minutes = (offset % 3600000) / 60000;\n return (isMinus ? \"-\" : \"+\") +\n padWithZeros(hours, 2) + \":\" +\n padWithZeros(minutes, 2);\n}\nexport function dateToHalfUTCString(date, half) {\n const str = date.toISOString();\n return half === \"first\"\n ? str.substring(0, str.indexOf(\"T\"))\n : str.substring(str.indexOf(\"T\") + 1, str.length - 1);\n}\nfunction dateToISOString(d, utc) {\n if (utc) {\n return d.toISOString();\n }\n else {\n // JS Date is always local\n const printOffset = d.kind == null ? true : d.kind === 2 /* DateKind.Local */;\n return padWithZeros(d.getFullYear(), 4) + \"-\" +\n padWithZeros(d.getMonth() + 1, 2) + \"-\" +\n padWithZeros(d.getDate(), 2) + \"T\" +\n padWithZeros(d.getHours(), 2) + \":\" +\n padWithZeros(d.getMinutes(), 2) + \":\" +\n padWithZeros(d.getSeconds(), 2) + \".\" +\n padWithZeros(d.getMilliseconds(), 3) +\n (printOffset ? dateOffsetToString(d.getTimezoneOffset() * -60000) : \"\");\n }\n}\nfunction dateToISOStringWithOffset(dateWithOffset, offset) {\n const str = dateWithOffset.toISOString();\n return str.substring(0, str.length - 1) + dateOffsetToString(offset);\n}\nfunction dateToStringWithOffset(date, format) {\n const d = new Date(date.getTime() + (date.offset ?? 0));\n if (typeof format !== \"string\") {\n return d.toISOString().replace(/\\.\\d+/, \"\").replace(/[A-Z]|\\.\\d+/g, \" \") + dateOffsetToString((date.offset ?? 0));\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\": return dateToHalfUTCString(d, \"first\");\n case \"T\":\n case \"t\": return dateToHalfUTCString(d, \"second\");\n case \"O\":\n case \"o\": return dateToISOStringWithOffset(d, (date.offset ?? 0));\n default: throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return dateToStringWithCustomFormat(d, format, true);\n }\n}\nfunction dateToStringWithKind(date, format) {\n const utc = date.kind === 1 /* DateKind.UTC */;\n if (typeof format !== \"string\") {\n return utc ? date.toUTCString() : date.toLocaleString();\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\":\n return utc ? dateToHalfUTCString(date, \"first\") : date.toLocaleDateString();\n case \"T\":\n case \"t\":\n return utc ? dateToHalfUTCString(date, \"second\") : date.toLocaleTimeString();\n case \"O\":\n case \"o\":\n return dateToISOString(date, utc);\n default:\n throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return dateToStringWithCustomFormat(date, format, utc);\n }\n}\nexport function toString(date, format, _provider) {\n return date.offset != null\n ? dateToStringWithOffset(date, format)\n : dateToStringWithKind(date, format);\n}\nexport function DateTime(value, kind) {\n const d = new Date(value);\n d.kind = (kind == null ? 0 /* DateKind.Unspecified */ : kind) | 0;\n return d;\n}\nexport function fromTicks(ticks, kind) {\n kind = kind != null ? kind : 2 /* DateKind.Local */; // better default than Unspecified\n let date = DateTime(ticksToUnixEpochMilliseconds(ticks), kind);\n // Ticks are local to offset (in this case, either UTC or Local/Unknown).\n // If kind is anything but UTC, that means that the tick number was not\n // in utc, thus getTime() cannot return UTC, and needs to be shifted.\n if (kind !== 1 /* DateKind.UTC */) {\n date = DateTime(date.getTime() - dateOffset(date), kind);\n }\n return date;\n}\nexport function fromDateTimeOffset(date, kind) {\n switch (kind) {\n case 1 /* DateKind.UTC */: return DateTime(date.getTime(), 1 /* DateKind.UTC */);\n case 2 /* DateKind.Local */: return DateTime(date.getTime(), 2 /* DateKind.Local */);\n default:\n const d = DateTime(date.getTime() + (date.offset ?? 0), kind);\n return DateTime(d.getTime() - dateOffset(d), kind);\n }\n}\nexport function getTicks(date) {\n return unixEpochMillisecondsToTicks(date.getTime(), dateOffset(date));\n}\nexport function minValue() {\n // This is \"0001-01-01T00:00:00.000Z\", actual JS min value is -8640000000000000\n return DateTime(-62135596800000, 0 /* DateKind.Unspecified */);\n}\nexport function maxValue() {\n // This is \"9999-12-31T23:59:59.999Z\", actual JS max value is 8640000000000000\n return DateTime(253402300799999, 0 /* DateKind.Unspecified */);\n}\nexport function parseRaw(input) {\n function fail() {\n throw new Error(`The string is not a valid Date: ${input}`);\n }\n if (input == null || input.trim() === \"\") {\n fail();\n }\n // ISO dates without TZ are parsed as UTC. Adding time without TZ keeps them local.\n if (input.length === 10 && input[4] === \"-\" && input[7] === \"-\") {\n input += \"T00:00:00\";\n }\n let date = new Date(input);\n let offset = null;\n if (isNaN(date.getTime())) {\n // Try to check strings JS Date cannot parse (see #1045, #1422)\n // tslint:disable-next-line:max-line-length\n const m = /^\\s*(\\d+[^\\w\\s:]\\d+[^\\w\\s:]\\d+)?\\s*(\\d+:\\d+(?::\\d+(?:\\.\\d+)?)?)?\\s*([AaPp][Mm])?\\s*(Z|[+-]([01]?\\d):?([0-5]?\\d)?)?\\s*$/.exec(input);\n if (m != null) {\n let baseDate;\n let timeInSeconds = 0;\n if (m[2] != null) {\n const timeParts = m[2].split(\":\");\n const hourPart = parseInt(timeParts[0], 10);\n timeInSeconds =\n hourPart * 3600 +\n parseInt(timeParts[1] || \"0\", 10) * 60 +\n parseFloat(timeParts[2] || \"0\");\n if (m[3] != null && m[3].toUpperCase() === \"PM\" && hourPart < 12) {\n timeInSeconds += 720;\n }\n }\n if (m[4] != null) { // There's an offset, parse as UTC\n if (m[1] != null) {\n baseDate = new Date(m[1] + \" UTC\");\n }\n else {\n const d = new Date();\n baseDate = new Date(d.getUTCFullYear() + \"/\" + (d.getUTCMonth() + 1) + \"/\" + d.getUTCDate());\n }\n if (m[4] === \"Z\") {\n offset = \"Z\";\n }\n else {\n let offsetInMinutes = parseInt(m[5], 10) * 60 + parseInt(m[6] || \"0\", 10);\n if (m[4][0] === \"-\") {\n offsetInMinutes *= -1;\n }\n offset = offsetInMinutes;\n timeInSeconds -= offsetInMinutes * 60;\n }\n }\n else {\n if (m[1] != null) {\n baseDate = new Date(m[1]);\n }\n else {\n const d = new Date();\n baseDate = new Date(d.getFullYear() + \"/\" + (d.getMonth() + 1) + \"/\" + d.getDate());\n }\n }\n date = new Date(baseDate.getTime() + timeInSeconds * 1000);\n // correct for daylight savings time\n date = new Date(date.getTime() + (date.getTimezoneOffset() - baseDate.getTimezoneOffset()) * 60000);\n }\n else {\n fail();\n }\n // Check again the date is valid after transformations, see #2229\n if (isNaN(date.getTime())) {\n fail();\n }\n }\n return [date, offset];\n}\nexport function parse(str, detectUTC = false) {\n const [date, offset] = parseRaw(str);\n // .NET always parses DateTime as Local if there's offset info (even \"Z\")\n // Newtonsoft.Json uses UTC if the offset is \"Z\"\n const kind = offset != null\n ? (detectUTC && offset === \"Z\" ? 1 /* DateKind.UTC */ : 2 /* DateKind.Local */)\n : 0 /* DateKind.Unspecified */;\n return DateTime(date.getTime(), kind);\n}\nexport function tryParse(v, defValue) {\n try {\n defValue.contents = parse(v);\n return true;\n }\n catch (_err) {\n return false;\n }\n}\nexport function create(year, month, day, h = 0, m = 0, s = 0, ms = 0, kind) {\n const date = kind === 1 /* DateKind.UTC */\n ? new Date(Date.UTC(year, month - 1, day, h, m, s, ms))\n : new Date(year, month - 1, day, h, m, s, ms);\n if (year <= 99) {\n if (kind === 1 /* DateKind.UTC */) {\n date.setUTCFullYear(year, month - 1, day);\n }\n else {\n date.setFullYear(year, month - 1, day);\n }\n }\n const dateValue = date.getTime();\n if (isNaN(dateValue)) {\n throw new Error(\"The parameters describe an unrepresentable Date.\");\n }\n return DateTime(dateValue, kind);\n}\nexport function now() {\n return DateTime(Date.now(), 2 /* DateKind.Local */);\n}\nexport function utcNow() {\n return DateTime(Date.now(), 1 /* DateKind.UTC */);\n}\nexport function today() {\n return date(now());\n}\nexport function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nexport function daysInMonth(year, month) {\n return month === 2\n ? (isLeapYear(year) ? 29 : 28)\n : (month >= 8 ? (month % 2 === 0 ? 31 : 30) : (month % 2 === 0 ? 30 : 31));\n}\nexport function toUniversalTime(date) {\n return date.kind === 1 /* DateKind.UTC */ ? date : DateTime(date.getTime(), 1 /* DateKind.UTC */);\n}\nexport function toLocalTime(date) {\n return date.kind === 2 /* DateKind.Local */ ? date : DateTime(date.getTime(), 2 /* DateKind.Local */);\n}\nexport function specifyKind(d, kind) {\n return create(year(d), month(d), day(d), hour(d), minute(d), second(d), millisecond(d), kind);\n}\nexport function timeOfDay(d) {\n return hour(d) * 3600000\n + minute(d) * 60000\n + second(d) * 1000\n + millisecond(d);\n}\nexport function date(d) {\n return create(year(d), month(d), day(d), 0, 0, 0, 0, d.kind);\n}\nexport function day(d) {\n return d.kind === 1 /* DateKind.UTC */ ? d.getUTCDate() : d.getDate();\n}\nexport function hour(d) {\n return d.kind === 1 /* DateKind.UTC */ ? d.getUTCHours() : d.getHours();\n}\nexport function millisecond(d) {\n return d.kind === 1 /* DateKind.UTC */ ? d.getUTCMilliseconds() : d.getMilliseconds();\n}\nexport function minute(d) {\n return d.kind === 1 /* DateKind.UTC */ ? d.getUTCMinutes() : d.getMinutes();\n}\nexport function month(d) {\n return (d.kind === 1 /* DateKind.UTC */ ? d.getUTCMonth() : d.getMonth()) + 1;\n}\nexport function second(d) {\n return d.kind === 1 /* DateKind.UTC */ ? d.getUTCSeconds() : d.getSeconds();\n}\nexport function year(d) {\n return d.kind === 1 /* DateKind.UTC */ ? d.getUTCFullYear() : d.getFullYear();\n}\nexport function dayOfWeek(d) {\n return d.kind === 1 /* DateKind.UTC */ ? d.getUTCDay() : d.getDay();\n}\nexport function dayOfYear(d) {\n const _year = year(d);\n const _month = month(d);\n let _day = day(d);\n for (let i = 1; i < _month; i++) {\n _day += daysInMonth(_year, i);\n }\n return _day;\n}\nexport function add(d, ts) {\n const newDate = DateTime(d.getTime() + ts, d.kind);\n if (d.kind !== 1 /* DateKind.UTC */) {\n const oldTzOffset = d.getTimezoneOffset();\n const newTzOffset = newDate.getTimezoneOffset();\n return oldTzOffset !== newTzOffset\n ? DateTime(newDate.getTime() + (newTzOffset - oldTzOffset) * 60000, d.kind)\n : newDate;\n }\n else {\n return newDate;\n }\n}\nexport function addDays(d, v) {\n return add(d, v * 86400000);\n}\nexport function addHours(d, v) {\n return add(d, v * 3600000);\n}\nexport function addMinutes(d, v) {\n return add(d, v * 60000);\n}\nexport function addSeconds(d, v) {\n return add(d, v * 1000);\n}\nexport function addMilliseconds(d, v) {\n return add(d, v);\n}\nexport function addTicks(d, v) {\n return add(d, toFloat64(v / 10000n));\n}\nexport function addYears(d, v) {\n const newMonth = month(d);\n const newYear = year(d) + v;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function addMonths(d, v) {\n let newMonth = month(d) + v;\n let newMonth_ = 0;\n let yearOffset = 0;\n if (newMonth > 12) {\n newMonth_ = newMonth % 12;\n yearOffset = Math.floor(newMonth / 12);\n newMonth = newMonth_;\n }\n else if (newMonth < 1) {\n newMonth_ = 12 + newMonth % 12;\n yearOffset = Math.floor(newMonth / 12) + (newMonth_ === 12 ? -1 : 0);\n newMonth = newMonth_;\n }\n const newYear = year(d) + yearOffset;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function subtract(d, that) {\n return typeof that === \"number\"\n ? add(d, -that)\n : d.getTime() - that.getTime();\n}\nexport function toLongDateString(d) {\n return d.toDateString();\n}\nexport function toShortDateString(d) {\n return d.toLocaleDateString();\n}\nexport function toLongTimeString(d) {\n return d.toLocaleTimeString();\n}\nexport function toShortTimeString(d) {\n return d.toLocaleTimeString().replace(/:\\d\\d(?!:)/, \"\");\n}\nexport function equals(d1, d2) {\n return d1.getTime() === d2.getTime();\n}\nexport const compare = compareDates;\nexport const compareTo = compareDates;\nexport function op_Addition(x, y) {\n return add(x, y);\n}\nexport function op_Subtraction(x, y) {\n return subtract(x, y);\n}\nexport function isDaylightSavingTime(x) {\n const jan = new Date(x.getFullYear(), 0, 1);\n const jul = new Date(x.getFullYear(), 6, 1);\n return isDST(jan.getTimezoneOffset(), jul.getTimezoneOffset(), x.getTimezoneOffset());\n}\nfunction isDST(janOffset, julOffset, tOffset) {\n return Math.min(janOffset, julOffset) === tOffset;\n}\nexport default DateTime;\n","export const symbol = Symbol(\"numeric\");\nexport function isNumeric(x) {\n return typeof x === \"number\" || typeof x === \"bigint\" || x?.[symbol];\n}\nexport function compare(x, y) {\n if (typeof x === \"number\") {\n return x < y ? -1 : (x > y ? 1 : 0);\n }\n else if (typeof x === \"bigint\") {\n return x < y ? -1 : (x > y ? 1 : 0);\n }\n else {\n return x.CompareTo(y);\n }\n}\nexport function multiply(x, y) {\n if (typeof x === \"number\") {\n return x * y;\n }\n else if (typeof x === \"bigint\") {\n return x * BigInt(y);\n }\n else {\n return x[symbol]().multiply(y);\n }\n}\nexport function toFixed(x, dp) {\n if (typeof x === \"number\") {\n return x.toFixed(dp);\n }\n else if (typeof x === \"bigint\") {\n return x;\n }\n else {\n return x[symbol]().toFixed(dp);\n }\n}\nexport function toPrecision(x, sd) {\n if (typeof x === \"number\") {\n return x.toPrecision(sd);\n }\n else if (typeof x === \"bigint\") {\n return x;\n }\n else {\n return x[symbol]().toPrecision(sd);\n }\n}\nexport function toExponential(x, dp) {\n if (typeof x === \"number\") {\n return x.toExponential(dp);\n }\n else if (typeof x === \"bigint\") {\n return x;\n }\n else {\n return x[symbol]().toExponential(dp);\n }\n}\nexport function toHex(x) {\n if (typeof x === \"number\") {\n return (Number(x) >>> 0).toString(16);\n }\n else if (typeof x === \"bigint\") {\n // TODO: properly handle other bit sizes\n return BigInt.asUintN(64, x).toString(16);\n }\n else {\n return x[symbol]().toHex();\n }\n}\n","export function create(pattern, options = 0) {\n // Supported RegexOptions\n // * IgnoreCase: 0x0001\n // * Multiline: 0x0002\n // * Compiled: 0x0008 (ignored)\n // * Singleline: 0x0010\n // * ECMAScript: 0x0100 (ignored)\n if ((options & ~(1 ^ 2 ^ 8 ^ 16 ^ 256)) !== 0) {\n throw new Error(\"RegexOptions only supports: IgnoreCase, Multiline, Compiled, Singleline and ECMAScript\");\n }\n // Set always global and unicode flags for compatibility with dotnet, see #2925\n let flags = \"gu\";\n flags += options & 1 ? \"i\" : \"\"; // 0x0001 RegexOptions.IgnoreCase\n flags += options & 2 ? \"m\" : \"\";\n flags += options & 16 ? \"s\" : \"\";\n return new RegExp(pattern, flags);\n}\n// From http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\nexport function escape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\nexport function unescape(str) {\n return str.replace(/\\\\([\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|])/g, \"$1\");\n}\nexport function isMatch(reg, input, startAt = 0) {\n reg.lastIndex = startAt;\n return reg.test(input);\n}\nexport function match(reg, input, startAt = 0) {\n reg.lastIndex = startAt;\n return reg.exec(input);\n}\nexport function matches(reg, input, startAt = 0) {\n if (input == null) {\n throw new Error(\"Input cannot ve null\");\n }\n if (!reg.global) {\n throw new Error(\"Non-global RegExp\"); // Prevent infinite loop\n }\n reg.lastIndex = startAt;\n const matches = [];\n let m;\n let lastMatchIndex = -1;\n // tslint:disable-next-line:no-conditional-assignment\n while ((m = reg.exec(input)) != null) {\n // It can happen even global regex get stuck, see #2845\n if (m.index === lastMatchIndex) {\n reg.lastIndex++;\n }\n else {\n lastMatchIndex = m.index;\n matches.push(m);\n }\n }\n return matches;\n}\nexport function options(reg) {\n let options = 256; // ECMAScript\n options |= reg.ignoreCase ? 1 : 0;\n options |= reg.multiline ? 2 : 0;\n return options;\n}\nexport function replace(reg, input, replacement, limit, offset = 0) {\n function replacer() {\n let res = arguments[0];\n if (limit) {\n limit--;\n const match = [];\n const len = arguments.length;\n // arguments: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_function_as_a_parameter\n // * match: matched substring\n // * p1, p2, ...: nth capture group string\n // * offset: offset of matched substring\n // * string: whole string examined\n // * groups: named capturing groups\n // ONLY if regex contains a named capture group AND browser supports named groups\n // -> last element can be groups OR input string\n // -> check if last element is string\n const withGroups = typeof arguments[len - 1] !== \"string\";\n let pLast = withGroups ? len - 3 : len - 2;\n for (let i = 0; i < pLast; i++) {\n match.push(arguments[i]);\n }\n match.index = arguments[pLast++];\n match.input = arguments[pLast++];\n if (withGroups) {\n match.groups = arguments[pLast];\n }\n res = replacement(match);\n }\n return res;\n }\n if (typeof reg === \"string\") {\n const tmp = reg;\n reg = create(input, limit ?? 0);\n input = tmp;\n limit = undefined;\n }\n if (typeof replacement === \"function\") {\n limit = limit == null ? -1 : limit;\n return input.substring(0, offset) + input.substring(offset).replace(reg, replacer);\n }\n else {\n replacement =\n replacement\n // $0 doesn't work with JS regex, see #1155\n .replace(/\\$0/g, (_s) => \"$&\")\n // named groups in replacement are `${name}` in .Net, but `$` in JS (in regex: groups are `(?...)` in both)\n .replace(/\\${([^}]+)}/g, \"\\$<$1>\");\n if (limit != null) {\n let m;\n const sub1 = input.substring(offset);\n const _matches = matches(reg, sub1);\n const sub2 = matches.length > limit ? (m = _matches[limit - 1], sub1.substring(0, m.index + m[0].length)) : sub1;\n return input.substring(0, offset) + sub2.replace(reg, replacement)\n + input.substring(offset + sub2.length);\n }\n else {\n return input.replace(reg, replacement);\n }\n }\n}\nexport function split(reg, input, limit, offset = 0) {\n if (typeof reg === \"string\") {\n const tmp = reg;\n reg = create(input, limit ?? 0);\n input = tmp;\n limit = undefined;\n }\n input = input.substring(offset);\n return input.split(reg, limit);\n}\n","import { combineHashCodes, compare, compareArrays, equalArrays, equals, sameConstructor, numberHash, structuralHash } from \"./Util.js\";\nexport function seqToString(self) {\n let count = 0;\n let str = \"[\";\n for (const x of self) {\n if (count === 0) {\n str += toString(x);\n }\n else if (count === 100) {\n str += \"; ...\";\n break;\n }\n else {\n str += \"; \" + toString(x);\n }\n count++;\n }\n return str + \"]\";\n}\nexport function toString(x, callStack = 0) {\n if (x != null && typeof x === \"object\") {\n if (typeof x.toString === \"function\") {\n return x.toString();\n }\n else if (Symbol.iterator in x) {\n return seqToString(x);\n }\n else { // TODO: Date?\n const cons = Object.getPrototypeOf(x)?.constructor;\n return cons === Object && callStack < 10\n // Same format as recordToString\n ? \"{ \" + Object.entries(x).map(([k, v]) => k + \" = \" + toString(v, callStack + 1)).join(\"\\n \") + \" }\"\n : cons?.name ?? \"\";\n }\n }\n return String(x);\n}\nexport function unionToString(name, fields) {\n if (fields.length === 0) {\n return name;\n }\n else {\n let fieldStr;\n let withParens = true;\n if (fields.length === 1) {\n fieldStr = toString(fields[0]);\n withParens = fieldStr.indexOf(\" \") >= 0;\n }\n else {\n fieldStr = fields.map((x) => toString(x)).join(\", \");\n }\n return name + (withParens ? \" (\" : \" \") + fieldStr + (withParens ? \")\" : \"\");\n }\n}\nexport class Union {\n get name() {\n return this.cases()[this.tag];\n }\n toJSON() {\n return this.fields.length === 0 ? this.name : [this.name].concat(this.fields);\n }\n toString() {\n return unionToString(this.name, this.fields);\n }\n GetHashCode() {\n const hashes = this.fields.map((x) => structuralHash(x));\n hashes.splice(0, 0, numberHash(this.tag));\n return combineHashCodes(hashes);\n }\n Equals(other) {\n if (this === other) {\n return true;\n }\n else if (!sameConstructor(this, other)) {\n return false;\n }\n else if (this.tag === other.tag) {\n return equalArrays(this.fields, other.fields);\n }\n else {\n return false;\n }\n }\n CompareTo(other) {\n if (this === other) {\n return 0;\n }\n else if (!sameConstructor(this, other)) {\n return -1;\n }\n else if (this.tag === other.tag) {\n return compareArrays(this.fields, other.fields);\n }\n else {\n return this.tag < other.tag ? -1 : 1;\n }\n }\n}\nfunction recordToJSON(self) {\n const o = {};\n const keys = Object.keys(self);\n for (let i = 0; i < keys.length; i++) {\n o[keys[i]] = self[keys[i]];\n }\n return o;\n}\nfunction recordToString(self) {\n return \"{ \" + Object.entries(self).map(([k, v]) => k + \" = \" + toString(v)).join(\"\\n \") + \" }\";\n}\nfunction recordGetHashCode(self) {\n const hashes = Object.values(self).map((v) => structuralHash(v));\n return combineHashCodes(hashes);\n}\nfunction recordEquals(self, other) {\n if (self === other) {\n return true;\n }\n else if (!sameConstructor(self, other)) {\n return false;\n }\n else {\n const thisNames = Object.keys(self);\n for (let i = 0; i < thisNames.length; i++) {\n if (!equals(self[thisNames[i]], other[thisNames[i]])) {\n return false;\n }\n }\n return true;\n }\n}\nfunction recordCompareTo(self, other) {\n if (self === other) {\n return 0;\n }\n else if (!sameConstructor(self, other)) {\n return -1;\n }\n else {\n const thisNames = Object.keys(self);\n for (let i = 0; i < thisNames.length; i++) {\n const result = compare(self[thisNames[i]], other[thisNames[i]]);\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n }\n}\nexport class Record {\n toJSON() { return recordToJSON(this); }\n toString() { return recordToString(this); }\n GetHashCode() { return recordGetHashCode(this); }\n Equals(other) { return recordEquals(this, other); }\n CompareTo(other) { return recordCompareTo(this, other); }\n}\nexport class FSharpRef {\n get contents() {\n return this.getter();\n }\n set contents(v) {\n this.setter(v);\n }\n constructor(contentsOrGetter, setter) {\n if (typeof setter === \"function\") {\n this.getter = contentsOrGetter;\n this.setter = setter;\n }\n else {\n this.getter = () => contentsOrGetter;\n this.setter = (v) => { contentsOrGetter = v; };\n }\n }\n}\n// EXCEPTIONS\n// Exception is intentionally not derived from Error, for performance reasons (see #2160)\nexport class Exception {\n constructor(message) {\n this.message = message;\n }\n}\nexport function isException(x) {\n return x instanceof Exception || x instanceof Error;\n}\nexport function isPromise(x) {\n return x instanceof Promise;\n}\nexport function ensureErrorOrException(e) {\n // Exceptionally admitting promises as errors for compatibility with React.suspense (see #3298)\n return (isException(e) || isPromise(e)) ? e : new Error(String(e));\n}\nexport class FSharpException extends Exception {\n toJSON() { return recordToJSON(this); }\n toString() { return recordToString(this); }\n GetHashCode() { return recordGetHashCode(this); }\n Equals(other) { return recordEquals(this, other); }\n CompareTo(other) { return recordCompareTo(this, other); }\n}\nexport class MatchFailureException extends FSharpException {\n constructor(arg1, arg2, arg3) {\n super();\n this.arg1 = arg1;\n this.arg2 = arg2 | 0;\n this.arg3 = arg3 | 0;\n this.message = \"The match cases were incomplete\";\n }\n}\nexport class Attribute {\n}\n","import { toString as dateToString } from \"./Date.js\";\nimport { compare as numericCompare, isNumeric, multiply, toExponential, toFixed, toHex, toPrecision } from \"./Numeric.js\";\nimport { escape } from \"./RegExp.js\";\nimport { toString } from \"./Types.js\";\nconst fsFormatRegExp = /(^|[^%])%([0+\\- ]*)(\\*|\\d+)?(?:\\.(\\d+))?(\\w)/g;\nconst interpolateRegExp = /(?:(^|[^%])%([0+\\- ]*)(\\d+)?(?:\\.(\\d+))?(\\w))?%P\\(\\)/g;\nconst formatRegExp = /\\{(\\d+)(,-?\\d+)?(?:\\:([a-zA-Z])(\\d{0,2})|\\:(.+?))?\\}/g;\nfunction isLessThan(x, y) {\n return numericCompare(x, y) < 0;\n}\nfunction cmp(x, y, ic) {\n function isIgnoreCase(i) {\n return i === true ||\n i === 1 /* StringComparison.CurrentCultureIgnoreCase */ ||\n i === 3 /* StringComparison.InvariantCultureIgnoreCase */ ||\n i === 5 /* StringComparison.OrdinalIgnoreCase */;\n }\n function isOrdinal(i) {\n return i === 4 /* StringComparison.Ordinal */ ||\n i === 5 /* StringComparison.OrdinalIgnoreCase */;\n }\n if (x == null) {\n return y == null ? 0 : -1;\n }\n if (y == null) {\n return 1;\n } // everything is bigger than null\n if (isOrdinal(ic)) {\n if (isIgnoreCase(ic)) {\n x = x.toLowerCase();\n y = y.toLowerCase();\n }\n return (x === y) ? 0 : (x < y ? -1 : 1);\n }\n else {\n if (isIgnoreCase(ic)) {\n x = x.toLocaleLowerCase();\n y = y.toLocaleLowerCase();\n }\n return x.localeCompare(y);\n }\n}\nexport function compare(...args) {\n switch (args.length) {\n case 2: return cmp(args[0], args[1], false);\n case 3: return cmp(args[0], args[1], args[2]);\n case 4: return cmp(args[0], args[1], args[2] === true);\n case 5: return cmp(args[0].substr(args[1], args[4]), args[2].substr(args[3], args[4]), false);\n case 6: return cmp(args[0].substr(args[1], args[4]), args[2].substr(args[3], args[4]), args[5]);\n case 7: return cmp(args[0].substr(args[1], args[4]), args[2].substr(args[3], args[4]), args[5] === true);\n default: throw new Error(\"String.compare: Unsupported number of parameters\");\n }\n}\nexport function compareOrdinal(x, y) {\n return cmp(x, y, 4 /* StringComparison.Ordinal */);\n}\nexport function compareTo(x, y) {\n return cmp(x, y, 0 /* StringComparison.CurrentCulture */);\n}\nexport function startsWith(str, pattern, ic) {\n if (str.length >= pattern.length) {\n return cmp(str.substr(0, pattern.length), pattern, ic) === 0;\n }\n return false;\n}\nexport function indexOfAny(str, anyOf, ...args) {\n if (str == null || str === \"\") {\n return -1;\n }\n const startIndex = (args.length > 0) ? args[0] : 0;\n if (startIndex < 0) {\n throw new Error(\"Start index cannot be negative\");\n }\n const length = (args.length > 1) ? args[1] : str.length - startIndex;\n if (length < 0) {\n throw new Error(\"Length cannot be negative\");\n }\n if (startIndex + length > str.length) {\n throw new Error(\"Invalid startIndex and length\");\n }\n const endIndex = startIndex + length;\n const anyOfAsStr = \"\".concat.apply(\"\", anyOf);\n for (let i = startIndex; i < endIndex; i++) {\n if (anyOfAsStr.indexOf(str[i]) > -1) {\n return i;\n }\n }\n return -1;\n}\nexport function printf(input) {\n return {\n input,\n cont: fsFormat(input),\n };\n}\nexport function interpolate(str, values) {\n let valIdx = 0;\n let strIdx = 0;\n let result = \"\";\n interpolateRegExp.lastIndex = 0;\n let match = interpolateRegExp.exec(str);\n while (match) {\n // The first group corresponds to the no-escape char (^|[^%]), the actual pattern starts in the next char\n // Note: we don't use negative lookbehind because some browsers don't support it yet\n const matchIndex = match.index + (match[1] || \"\").length;\n result += str.substring(strIdx, matchIndex).replace(/%%/g, \"%\");\n const [, , flags, padLength, precision, format] = match;\n // Save interpolateRegExp.lastIndex before running formatReplacement because the values\n // may also involve interpolation and make use of interpolateRegExp (see #3078)\n strIdx = interpolateRegExp.lastIndex;\n result += formatReplacement(values[valIdx++], flags, padLength, precision, format);\n // Move interpolateRegExp.lastIndex one char behind to make sure we match the no-escape char next time\n interpolateRegExp.lastIndex = strIdx - 1;\n match = interpolateRegExp.exec(str);\n }\n result += str.substring(strIdx).replace(/%%/g, \"%\");\n return result;\n}\nfunction continuePrint(cont, arg) {\n return typeof arg === \"string\" ? cont(arg) : arg.cont(cont);\n}\nexport function toConsole(arg) {\n // Don't remove the lambda here, see #1357\n return continuePrint((x) => console.log(x), arg);\n}\nexport function toConsoleError(arg) {\n return continuePrint((x) => console.error(x), arg);\n}\nexport function toText(arg) {\n return continuePrint((x) => x, arg);\n}\nexport function toFail(arg) {\n return continuePrint((x) => {\n throw new Error(x);\n }, arg);\n}\nfunction formatReplacement(rep, flags, padLength, precision, format) {\n let sign = \"\";\n flags = flags || \"\";\n format = format || \"\";\n if (isNumeric(rep)) {\n if (format.toLowerCase() !== \"x\") {\n if (isLessThan(rep, 0)) {\n rep = multiply(rep, -1);\n sign = \"-\";\n }\n else {\n if (flags.indexOf(\" \") >= 0) {\n sign = \" \";\n }\n else if (flags.indexOf(\"+\") >= 0) {\n sign = \"+\";\n }\n }\n }\n precision = precision == null ? null : parseInt(precision, 10);\n switch (format) {\n case \"f\":\n case \"F\":\n precision = precision != null ? precision : 6;\n rep = toFixed(rep, precision);\n break;\n case \"g\":\n case \"G\":\n rep = precision != null ? toPrecision(rep, precision) : toPrecision(rep);\n break;\n case \"e\":\n case \"E\":\n rep = precision != null ? toExponential(rep, precision) : toExponential(rep);\n break;\n case \"x\":\n rep = toHex(rep);\n break;\n case \"X\":\n rep = toHex(rep).toUpperCase();\n break;\n default: // AOid\n rep = String(rep);\n break;\n }\n }\n else if (rep instanceof Date) {\n rep = dateToString(rep);\n }\n else {\n rep = toString(rep);\n }\n padLength = typeof padLength === \"number\" ? padLength : parseInt(padLength, 10);\n if (!isNaN(padLength)) {\n const zeroFlag = flags.indexOf(\"0\") >= 0; // Use '0' for left padding\n const minusFlag = flags.indexOf(\"-\") >= 0; // Right padding\n const ch = minusFlag || !zeroFlag ? \" \" : \"0\";\n if (ch === \"0\") {\n rep = pad(rep, padLength - sign.length, ch, minusFlag);\n rep = sign + rep;\n }\n else {\n rep = pad(sign + rep, padLength, ch, minusFlag);\n }\n }\n else {\n rep = sign + rep;\n }\n return rep;\n}\nfunction createPrinter(cont, _strParts, _matches, _result = \"\", padArg = -1) {\n return (...args) => {\n // Make copies of the values passed by reference because the function can be used multiple times\n let result = _result;\n const strParts = _strParts.slice();\n const matches = _matches.slice();\n for (const arg of args) {\n const [, , flags, _padLength, precision, format] = matches[0];\n let padLength = _padLength;\n if (padArg >= 0) {\n padLength = padArg;\n padArg = -1;\n }\n else if (padLength === \"*\") {\n if (arg < 0) {\n throw new Error(\"Non-negative number required\");\n }\n padArg = arg;\n continue;\n }\n result += strParts[0];\n result += formatReplacement(arg, flags, padLength, precision, format);\n strParts.splice(0, 1);\n matches.splice(0, 1);\n }\n if (matches.length === 0) {\n result += strParts[0];\n return cont(result);\n }\n else {\n return createPrinter(cont, strParts, matches, result, padArg);\n }\n };\n}\nexport function fsFormat(str) {\n return (cont) => {\n fsFormatRegExp.lastIndex = 0;\n const strParts = [];\n const matches = [];\n let strIdx = 0;\n let match = fsFormatRegExp.exec(str);\n while (match) {\n // The first group corresponds to the no-escape char (^|[^%]), the actual pattern starts in the next char\n // Note: we don't use negative lookbehind because some browsers don't support it yet\n const matchIndex = match.index + (match[1] || \"\").length;\n strParts.push(str.substring(strIdx, matchIndex).replace(/%%/g, \"%\"));\n matches.push(match);\n strIdx = fsFormatRegExp.lastIndex;\n // Likewise we need to move fsFormatRegExp.lastIndex one char behind to make sure we match the no-escape char next time\n fsFormatRegExp.lastIndex -= 1;\n match = fsFormatRegExp.exec(str);\n }\n if (strParts.length === 0) {\n return cont(str.replace(/%%/g, \"%\"));\n }\n else {\n strParts.push(str.substring(strIdx).replace(/%%/g, \"%\"));\n return createPrinter(cont, strParts, matches);\n }\n };\n}\nexport function format(str, ...args) {\n let str2;\n if (typeof str === \"object\") {\n // Called with culture info\n str2 = String(args[0]);\n args.shift();\n }\n else {\n str2 = str;\n }\n return str2.replace(formatRegExp, (_, idx, padLength, format, precision, pattern) => {\n if (idx < 0 || idx >= args.length) {\n throw new Error(\"Index must be greater or equal to zero and less than the arguments' length.\");\n }\n let rep = args[idx];\n if (isNumeric(rep)) {\n precision = precision == null ? null : parseInt(precision, 10);\n switch (format) {\n case \"f\":\n case \"F\":\n precision = precision != null ? precision : 2;\n rep = toFixed(rep, precision);\n break;\n case \"g\":\n case \"G\":\n rep = precision != null ? toPrecision(rep, precision) : toPrecision(rep);\n break;\n case \"e\":\n case \"E\":\n rep = precision != null ? toExponential(rep, precision) : toExponential(rep);\n break;\n case \"p\":\n case \"P\":\n precision = precision != null ? precision : 2;\n rep = toFixed(multiply(rep, 100), precision) + \" %\";\n break;\n case \"d\":\n case \"D\":\n rep = precision != null ? padLeft(String(rep), precision, \"0\") : String(rep);\n break;\n case \"x\":\n case \"X\":\n rep = precision != null ? padLeft(toHex(rep), precision, \"0\") : toHex(rep);\n if (format === \"X\") {\n rep = rep.toUpperCase();\n }\n break;\n default:\n if (pattern) {\n let sign = \"\";\n rep = pattern.replace(/([0#,]+)(\\.[0#]+)?/, (_, intPart, decimalPart) => {\n if (isLessThan(rep, 0)) {\n rep = multiply(rep, -1);\n sign = \"-\";\n }\n decimalPart = decimalPart == null ? \"\" : decimalPart.substring(1);\n rep = toFixed(rep, Math.max(decimalPart.length, 0));\n let [repInt, repDecimal] = rep.split(\".\");\n repDecimal || (repDecimal = \"\");\n const leftZeroes = intPart.replace(/,/g, \"\").replace(/^#+/, \"\").length;\n repInt = padLeft(repInt, leftZeroes, \"0\");\n const rightZeros = decimalPart.replace(/#+$/, \"\").length;\n if (rightZeros > repDecimal.length) {\n repDecimal = padRight(repDecimal, rightZeros, \"0\");\n }\n else if (rightZeros < repDecimal.length) {\n repDecimal = repDecimal.substring(0, rightZeros) + repDecimal.substring(rightZeros).replace(/0+$/, \"\");\n }\n // Thousands separator\n if (intPart.indexOf(\",\") > 0) {\n const i = repInt.length % 3;\n const thousandGroups = Math.floor(repInt.length / 3);\n let thousands = i > 0 ? repInt.substr(0, i) + (thousandGroups > 0 ? \",\" : \"\") : \"\";\n for (let j = 0; j < thousandGroups; j++) {\n thousands += repInt.substr(i + j * 3, 3) + (j < thousandGroups - 1 ? \",\" : \"\");\n }\n repInt = thousands;\n }\n return repDecimal.length > 0 ? repInt + \".\" + repDecimal : repInt;\n });\n rep = sign + rep;\n }\n }\n }\n else if (rep instanceof Date) {\n rep = dateToString(rep, pattern || format);\n }\n else {\n rep = toString(rep);\n }\n padLength = parseInt((padLength || \" \").substring(1), 10);\n if (!isNaN(padLength)) {\n rep = pad(String(rep), Math.abs(padLength), \" \", padLength < 0);\n }\n return rep;\n });\n}\nexport function endsWith(str, search) {\n const idx = str.lastIndexOf(search);\n return idx >= 0 && idx === str.length - search.length;\n}\nexport function initialize(n, f) {\n if (n < 0) {\n throw new Error(\"String length must be non-negative\");\n }\n const xs = new Array(n);\n for (let i = 0; i < n; i++) {\n xs[i] = f(i);\n }\n return xs.join(\"\");\n}\nexport function insert(str, startIndex, value) {\n if (startIndex < 0 || startIndex > str.length) {\n throw new Error(\"startIndex is negative or greater than the length of this instance.\");\n }\n return str.substring(0, startIndex) + value + str.substring(startIndex);\n}\nexport function isNullOrEmpty(str) {\n return typeof str !== \"string\" || str.length === 0;\n}\nexport function isNullOrWhiteSpace(str) {\n return typeof str !== \"string\" || /^\\s*$/.test(str);\n}\nexport function concat(...xs) {\n return xs.map((x) => String(x)).join(\"\");\n}\nexport function join(delimiter, xs) {\n if (Array.isArray(xs)) {\n return xs.join(delimiter);\n }\n else {\n return Array.from(xs).join(delimiter);\n }\n}\nexport function joinWithIndices(delimiter, xs, startIndex, count) {\n const endIndexPlusOne = startIndex + count;\n if (endIndexPlusOne > xs.length) {\n throw new Error(\"Index and count must refer to a location within the buffer.\");\n }\n return xs.slice(startIndex, endIndexPlusOne).join(delimiter);\n}\nfunction notSupported(name) {\n throw new Error(\"The environment doesn't support '\" + name + \"', please use a polyfill.\");\n}\nexport function toBase64String(inArray) {\n let str = \"\";\n for (let i = 0; i < inArray.length; i++) {\n str += String.fromCharCode(inArray[i]);\n }\n return typeof btoa === \"function\" ? btoa(str) : notSupported(\"btoa\");\n}\nexport function fromBase64String(b64Encoded) {\n const binary = typeof atob === \"function\" ? atob(b64Encoded) : notSupported(\"atob\");\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\nfunction pad(str, len, ch, isRight) {\n ch = ch || \" \";\n len = len - str.length;\n for (let i = 0; i < len; i++) {\n str = isRight ? str + ch : ch + str;\n }\n return str;\n}\nexport function padLeft(str, len, ch) {\n return pad(str, len, ch);\n}\nexport function padRight(str, len, ch) {\n return pad(str, len, ch, true);\n}\nexport function remove(str, startIndex, count) {\n if (startIndex >= str.length) {\n throw new Error(\"startIndex must be less than length of string\");\n }\n if (typeof count === \"number\" && (startIndex + count) > str.length) {\n throw new Error(\"Index and count must refer to a location within the string.\");\n }\n return str.slice(0, startIndex) + (typeof count === \"number\" ? str.substr(startIndex + count) : \"\");\n}\nexport function replace(str, search, replace) {\n return str.replace(new RegExp(escape(search), \"g\"), replace);\n}\nexport function replicate(n, x) {\n return initialize(n, () => x);\n}\nexport function getCharAtIndex(input, index) {\n if (index < 0 || index >= input.length) {\n throw new Error(\"Index was outside the bounds of the array.\");\n }\n return input[index];\n}\nexport function split(str, splitters, count, options) {\n count = typeof count === \"number\" ? count : undefined;\n options = typeof options === \"number\" ? options : 0;\n if (count && count < 0) {\n throw new Error(\"Count cannot be less than zero\");\n }\n if (count === 0) {\n return [];\n }\n const removeEmpty = (options & 1) === 1;\n const trim = (options & 2) === 2;\n splitters = splitters || [];\n splitters = splitters.filter(x => x).map(escape);\n splitters = splitters.length > 0 ? splitters : [\"\\\\s\"];\n const splits = [];\n const reg = new RegExp(splitters.join(\"|\"), \"g\");\n let findSplits = true;\n let i = 0;\n do {\n const match = reg.exec(str);\n if (match === null) {\n const candidate = trim ? str.substring(i).trim() : str.substring(i);\n if (!removeEmpty || candidate.length > 0) {\n splits.push(candidate);\n }\n findSplits = false;\n }\n else {\n const candidate = trim ? str.substring(i, match.index).trim() : str.substring(i, match.index);\n if (!removeEmpty || candidate.length > 0) {\n if (count != null && splits.length + 1 === count) {\n splits.push(trim ? str.substring(i).trim() : str.substring(i));\n findSplits = false;\n }\n else {\n splits.push(candidate);\n }\n }\n i = reg.lastIndex;\n }\n } while (findSplits);\n return splits;\n}\nexport function trim(str, ...chars) {\n if (chars.length === 0) {\n return str.trim();\n }\n const pattern = \"[\" + escape(chars.join(\"\")) + \"]+\";\n return str.replace(new RegExp(\"^\" + pattern), \"\").replace(new RegExp(pattern + \"$\"), \"\");\n}\nexport function trimStart(str, ...chars) {\n return chars.length === 0\n ? str.trimStart()\n : str.replace(new RegExp(\"^[\" + escape(chars.join(\"\")) + \"]+\"), \"\");\n}\nexport function trimEnd(str, ...chars) {\n return chars.length === 0\n ? str.trimEnd()\n : str.replace(new RegExp(\"[\" + escape(chars.join(\"\")) + \"]+$\"), \"\");\n}\nexport function filter(pred, x) {\n return x.split(\"\").filter((c) => pred(c)).join(\"\");\n}\nexport function substring(str, startIndex, length) {\n if ((startIndex + (length || 0) > str.length)) {\n throw new Error(\"Invalid startIndex and/or length\");\n }\n return length != null ? str.substr(startIndex, length) : str.substr(startIndex);\n}\nexport function toCharArray2(str, startIndex, length) {\n return substring(str, startIndex, length).split(\"\");\n}\nexport function fmt(strs, ...args) {\n return ({ strs, args });\n}\nexport function fmtWith(fmts) {\n return (strs, ...args) => ({ strs, args, fmts });\n}\nexport function getFormat(s) {\n return s.fmts\n ? s.strs.reduce((acc, newPart, index) => acc + `{${String(index - 1) + s.fmts[index - 1]}}` + newPart)\n : s.strs.reduce((acc, newPart, index) => acc + `{${index - 1}}` + newPart);\n}\n","import { structuralHash, equals, compare } from \"./Util.js\";\n// Using a class here for better compatibility with TS files importing Some\nexport class Some {\n constructor(value) {\n this.value = value;\n }\n toJSON() {\n return this.value;\n }\n // Don't add \"Some\" for consistency with erased options\n toString() {\n return String(this.value);\n }\n GetHashCode() {\n return structuralHash(this.value);\n }\n Equals(other) {\n if (other == null) {\n return false;\n }\n else {\n return equals(this.value, other instanceof Some ? other.value : other);\n }\n }\n CompareTo(other) {\n if (other == null) {\n return 1;\n }\n else {\n return compare(this.value, other instanceof Some ? other.value : other);\n }\n }\n}\nexport function value(x) {\n if (x == null) {\n throw new Error(\"Option has no value\");\n }\n else {\n return x instanceof Some ? x.value : x;\n }\n}\nexport function unwrap(opt) {\n return opt instanceof Some ? opt.value : opt;\n}\nexport function some(x) {\n return x == null || x instanceof Some ? new Some(x) : x;\n}\nexport function ofNullable(x) {\n // This will fail with unit probably, an alternative would be:\n // return x === null ? undefined : (x === undefined ? new Some(x) : x);\n return x == null ? undefined : x;\n}\nexport function toNullable(x) {\n return x == null ? null : value(x);\n}\nexport function flatten(x) {\n return x == null ? undefined : value(x);\n}\nexport function toArray(opt) {\n return (opt == null) ? [] : [value(opt)];\n}\nexport function defaultArg(opt, defaultValue) {\n return (opt != null) ? value(opt) : defaultValue;\n}\nexport function defaultArgWith(opt, defThunk) {\n return (opt != null) ? value(opt) : defThunk();\n}\nexport function orElse(opt, ifNone) {\n return opt == null ? ifNone : opt;\n}\nexport function orElseWith(opt, ifNoneThunk) {\n return opt == null ? ifNoneThunk() : opt;\n}\nexport function filter(predicate, opt) {\n return (opt != null) ? (predicate(value(opt)) ? opt : undefined) : opt;\n}\nexport function map(mapping, opt) {\n return (opt != null) ? some(mapping(value(opt))) : undefined;\n}\nexport function map2(mapping, opt1, opt2) {\n return (opt1 != null && opt2 != null) ? mapping(value(opt1), value(opt2)) : undefined;\n}\nexport function map3(mapping, opt1, opt2, opt3) {\n return (opt1 != null && opt2 != null && opt3 != null) ? mapping(value(opt1), value(opt2), value(opt3)) : undefined;\n}\nexport function bind(binder, opt) {\n return opt != null ? binder(value(opt)) : undefined;\n}\nexport function tryOp(op, arg) {\n try {\n return some(op(arg));\n }\n catch {\n return undefined;\n }\n}\n","export const SR_indexOutOfBounds = \"The index was outside the range of elements in the collection.\";\nexport const SR_inputWasEmpty = \"Collection was empty.\";\nexport const SR_inputMustBeNonNegative = \"The input must be non-negative.\";\nexport const SR_inputSequenceEmpty = \"The input sequence was empty.\";\nexport const SR_inputSequenceTooLong = \"The input sequence contains more than one element.\";\nexport const SR_keyNotFoundAlt = \"An index satisfying the predicate was not found in the collection.\";\nexport const SR_differentLengths = \"The collections had different lengths.\";\nexport const SR_notEnoughElements = \"The input sequence has an insufficient number of elements.\";\n","export function Helpers_allocateArrayFromCons(cons, len) {\n if ((typeof cons) === \"function\") {\n return new cons(len);\n }\n else {\n return new Array(len);\n }\n}\n","import { Helpers_allocateArrayFromCons } from \"./Native.js\";\nimport { setItem as setItem_1, item as item_2 } from \"./Array.js\";\nimport { value as value_2, map as map_1, defaultArg, some } from \"./Option.js\";\nimport { min as min_1, max as max_1 } from \"./Double.js\";\nimport { equals as equals_1, disposeSafe, getEnumerator, copyToArray, defaultOf } from \"./Util.js\";\nimport { SR_indexOutOfBounds } from \"./Global.js\";\nfunction indexNotFound() {\n throw new Error(\"An index satisfying the predicate was not found in the collection.\");\n}\nfunction differentLengths() {\n throw new Error(\"Arrays had different lengths\");\n}\nexport function append(array1, array2, cons) {\n const len1 = array1.length | 0;\n const len2 = array2.length | 0;\n const newArray = Helpers_allocateArrayFromCons(cons, len1 + len2);\n for (let i = 0; i <= (len1 - 1); i++) {\n setItem_1(newArray, i, item_2(i, array1));\n }\n for (let i_1 = 0; i_1 <= (len2 - 1); i_1++) {\n setItem_1(newArray, i_1 + len1, item_2(i_1, array2));\n }\n return newArray;\n}\nexport function filter(predicate, array) {\n return array.filter(predicate);\n}\nexport function fill(target, targetIndex, count, value) {\n const start = targetIndex | 0;\n return target.fill(value, start, (start + count));\n}\nexport function getSubArray(array, start, count) {\n const start_1 = start | 0;\n return array.slice(start_1, (start_1 + count));\n}\nexport function last(array) {\n if (array.length === 0) {\n throw new Error(\"The input array was empty\\\\nParameter name: array\");\n }\n return item_2(array.length - 1, array);\n}\nexport function tryLast(array) {\n if (array.length === 0) {\n return undefined;\n }\n else {\n return some(item_2(array.length - 1, array));\n }\n}\nexport function mapIndexed(f, source, cons) {\n const len = source.length | 0;\n const target = Helpers_allocateArrayFromCons(cons, len);\n for (let i = 0; i <= (len - 1); i++) {\n setItem_1(target, i, f(i, item_2(i, source)));\n }\n return target;\n}\nexport function map(f, source, cons) {\n const len = source.length | 0;\n const target = Helpers_allocateArrayFromCons(cons, len);\n for (let i = 0; i <= (len - 1); i++) {\n setItem_1(target, i, f(item_2(i, source)));\n }\n return target;\n}\nexport function mapIndexed2(f, source1, source2, cons) {\n if (source1.length !== source2.length) {\n throw new Error(\"Arrays had different lengths\");\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n setItem_1(result, i, f(i, item_2(i, source1), item_2(i, source2)));\n }\n return result;\n}\nexport function map2(f, source1, source2, cons) {\n if (source1.length !== source2.length) {\n throw new Error(\"Arrays had different lengths\");\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n setItem_1(result, i, f(item_2(i, source1), item_2(i, source2)));\n }\n return result;\n}\nexport function mapIndexed3(f, source1, source2, source3, cons) {\n if ((source1.length !== source2.length) ? true : (source2.length !== source3.length)) {\n throw new Error(\"Arrays had different lengths\");\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n setItem_1(result, i, f(i, item_2(i, source1), item_2(i, source2), item_2(i, source3)));\n }\n return result;\n}\nexport function map3(f, source1, source2, source3, cons) {\n if ((source1.length !== source2.length) ? true : (source2.length !== source3.length)) {\n throw new Error(\"Arrays had different lengths\");\n }\n const result = Helpers_allocateArrayFromCons(cons, source1.length);\n for (let i = 0; i <= (source1.length - 1); i++) {\n setItem_1(result, i, f(item_2(i, source1), item_2(i, source2), item_2(i, source3)));\n }\n return result;\n}\nexport function mapFold(mapping, state, array, cons) {\n const matchValue = array.length | 0;\n if (matchValue === 0) {\n return [[], state];\n }\n else {\n let acc = state;\n const res = Helpers_allocateArrayFromCons(cons, matchValue);\n for (let i = 0; i <= (array.length - 1); i++) {\n const patternInput = mapping(acc, item_2(i, array));\n setItem_1(res, i, patternInput[0]);\n acc = patternInput[1];\n }\n return [res, acc];\n }\n}\nexport function mapFoldBack(mapping, array, state, cons) {\n const matchValue = array.length | 0;\n if (matchValue === 0) {\n return [[], state];\n }\n else {\n let acc = state;\n const res = Helpers_allocateArrayFromCons(cons, matchValue);\n for (let i = array.length - 1; i >= 0; i--) {\n const patternInput = mapping(item_2(i, array), acc);\n setItem_1(res, i, patternInput[0]);\n acc = patternInput[1];\n }\n return [res, acc];\n }\n}\nexport function indexed(source) {\n const len = source.length | 0;\n const target = new Array(len);\n for (let i = 0; i <= (len - 1); i++) {\n setItem_1(target, i, [i, item_2(i, source)]);\n }\n return target;\n}\nexport function truncate(count, array) {\n const count_1 = max_1(0, count) | 0;\n return array.slice(0, (0 + count_1));\n}\nexport function concat(arrays, cons) {\n const arrays_1 = Array.isArray(arrays) ? arrays : (Array.from(arrays));\n const matchValue = arrays_1.length | 0;\n switch (matchValue) {\n case 0:\n return Helpers_allocateArrayFromCons(cons, 0);\n case 1:\n return item_2(0, arrays_1);\n default: {\n let totalIdx = 0;\n let totalLength = 0;\n for (let idx = 0; idx <= (arrays_1.length - 1); idx++) {\n const arr_1 = item_2(idx, arrays_1);\n totalLength = ((totalLength + arr_1.length) | 0);\n }\n const result = Helpers_allocateArrayFromCons(cons, totalLength);\n for (let idx_1 = 0; idx_1 <= (arrays_1.length - 1); idx_1++) {\n const arr_2 = item_2(idx_1, arrays_1);\n for (let j = 0; j <= (arr_2.length - 1); j++) {\n setItem_1(result, totalIdx, item_2(j, arr_2));\n totalIdx = ((totalIdx + 1) | 0);\n }\n }\n return result;\n }\n }\n}\nexport function collect(mapping, array, cons) {\n return concat(map(mapping, array, defaultOf()), cons);\n}\nexport function where(predicate, array) {\n return array.filter(predicate);\n}\nexport function indexOf(array, item_1, start, count, eq) {\n const start_1 = defaultArg(start, 0) | 0;\n const end$0027 = defaultArg(map_1((c) => (start_1 + c), count), array.length) | 0;\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i >= end$0027) {\n return -1;\n }\n else if (eq.Equals(item_1, item_2(i, array))) {\n return i | 0;\n }\n else {\n i_mut = (i + 1);\n continue loop;\n }\n break;\n }\n };\n return loop(start_1) | 0;\n}\nexport function contains(value, array, eq) {\n return indexOf(array, value, undefined, undefined, eq) >= 0;\n}\nexport function empty(cons) {\n return Helpers_allocateArrayFromCons(cons, 0);\n}\nexport function singleton(value, cons) {\n const ar = Helpers_allocateArrayFromCons(cons, 1);\n setItem_1(ar, 0, value);\n return ar;\n}\nexport function initialize(count, initializer, cons) {\n if (count < 0) {\n throw new Error(\"The input must be non-negative\\\\nParameter name: count\");\n }\n const result = Helpers_allocateArrayFromCons(cons, count);\n for (let i = 0; i <= (count - 1); i++) {\n setItem_1(result, i, initializer(i));\n }\n return result;\n}\nexport function pairwise(array) {\n if (array.length < 2) {\n return [];\n }\n else {\n const count = (array.length - 1) | 0;\n const result = new Array(count);\n for (let i = 0; i <= (count - 1); i++) {\n setItem_1(result, i, [item_2(i, array), item_2(i + 1, array)]);\n }\n return result;\n }\n}\nexport function replicate(count, initial, cons) {\n if (count < 0) {\n throw new Error(\"The input must be non-negative\\\\nParameter name: count\");\n }\n const result = Helpers_allocateArrayFromCons(cons, count);\n for (let i = 0; i <= (result.length - 1); i++) {\n setItem_1(result, i, initial);\n }\n return result;\n}\nexport function copy(array) {\n return array.slice();\n}\nexport function copyTo(source, sourceIndex, target, targetIndex, count) {\n copyToArray(source, sourceIndex, target, targetIndex, count);\n}\nexport function reverse(array) {\n const array_2 = array.slice();\n return array_2.reverse();\n}\nexport function scan(folder, state, array, cons) {\n const res = Helpers_allocateArrayFromCons(cons, array.length + 1);\n setItem_1(res, 0, state);\n for (let i = 0; i <= (array.length - 1); i++) {\n setItem_1(res, i + 1, folder(item_2(i, res), item_2(i, array)));\n }\n return res;\n}\nexport function scanBack(folder, array, state, cons) {\n const res = Helpers_allocateArrayFromCons(cons, array.length + 1);\n setItem_1(res, array.length, state);\n for (let i = array.length - 1; i >= 0; i--) {\n setItem_1(res, i, folder(item_2(i, array), item_2(i + 1, res)));\n }\n return res;\n}\nexport function skip(count, array, cons) {\n if (count > array.length) {\n throw new Error(\"count is greater than array length\\\\nParameter name: count\");\n }\n if (count === array.length) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n const count_1 = ((count < 0) ? 0 : count) | 0;\n return array.slice(count_1);\n }\n}\nexport function skipWhile(predicate, array, cons) {\n let count = 0;\n while ((count < array.length) && predicate(item_2(count, array))) {\n count = ((count + 1) | 0);\n }\n if (count === array.length) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n const count_1 = count | 0;\n return array.slice(count_1);\n }\n}\nexport function take(count, array, cons) {\n if (count < 0) {\n throw new Error(\"The input must be non-negative\\\\nParameter name: count\");\n }\n if (count > array.length) {\n throw new Error(\"count is greater than array length\\\\nParameter name: count\");\n }\n if (count === 0) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n return array.slice(0, (0 + count));\n }\n}\nexport function takeWhile(predicate, array, cons) {\n let count = 0;\n while ((count < array.length) && predicate(item_2(count, array))) {\n count = ((count + 1) | 0);\n }\n if (count === 0) {\n return Helpers_allocateArrayFromCons(cons, 0);\n }\n else {\n const count_1 = count | 0;\n return array.slice(0, (0 + count_1));\n }\n}\nexport function addInPlace(x, array) {\n array.push(x);\n}\nexport function addRangeInPlace(range, array) {\n const enumerator = getEnumerator(range);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n addInPlace(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), array);\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n}\nexport function insertRangeInPlace(index, range, array) {\n let index_1;\n let i = index;\n const enumerator = getEnumerator(range);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n (index_1 = (i | 0), array.splice(index_1, 0, x));\n i = ((i + 1) | 0);\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n}\nexport function removeInPlace(item_1, array, eq) {\n const i = indexOf(array, item_1, undefined, undefined, eq) | 0;\n if (i > -1) {\n array.splice(i, 1);\n return true;\n }\n else {\n return false;\n }\n}\nexport function removeAllInPlace(predicate, array) {\n const countRemoveAll = (count) => {\n const i = (array.findIndex(predicate)) | 0;\n if (i > -1) {\n array.splice(i, 1);\n return (countRemoveAll(count) + 1) | 0;\n }\n else {\n return count | 0;\n }\n };\n return countRemoveAll(0) | 0;\n}\nexport function partition(f, source, cons) {\n const len = source.length | 0;\n const res1 = Helpers_allocateArrayFromCons(cons, len);\n const res2 = Helpers_allocateArrayFromCons(cons, len);\n let iTrue = 0;\n let iFalse = 0;\n for (let i = 0; i <= (len - 1); i++) {\n if (f(item_2(i, source))) {\n setItem_1(res1, iTrue, item_2(i, source));\n iTrue = ((iTrue + 1) | 0);\n }\n else {\n setItem_1(res2, iFalse, item_2(i, source));\n iFalse = ((iFalse + 1) | 0);\n }\n }\n return [truncate(iTrue, res1), truncate(iFalse, res2)];\n}\nexport function find(predicate, array) {\n const matchValue = array.find(predicate);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_2(matchValue);\n }\n}\nexport function tryFind(predicate, array) {\n return array.find(predicate);\n}\nexport function findIndex(predicate, array) {\n const matchValue = (array.findIndex(predicate)) | 0;\n if (matchValue > -1) {\n return matchValue | 0;\n }\n else {\n indexNotFound();\n return -1;\n }\n}\nexport function tryFindIndex(predicate, array) {\n const matchValue = (array.findIndex(predicate)) | 0;\n if (matchValue > -1) {\n return matchValue;\n }\n else {\n return undefined;\n }\n}\nexport function pick(chooser, array) {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i >= array.length) {\n return indexNotFound();\n }\n else {\n const matchValue = chooser(item_2(i, array));\n if (matchValue != null) {\n return value_2(matchValue);\n }\n else {\n i_mut = (i + 1);\n continue loop;\n }\n }\n break;\n }\n };\n return loop(0);\n}\nexport function tryPick(chooser, array) {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i >= array.length) {\n return undefined;\n }\n else {\n const matchValue = chooser(item_2(i, array));\n if (matchValue == null) {\n i_mut = (i + 1);\n continue loop;\n }\n else {\n return matchValue;\n }\n }\n break;\n }\n };\n return loop(0);\n}\nexport function findBack(predicate, array) {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i < 0) {\n return indexNotFound();\n }\n else if (predicate(item_2(i, array))) {\n return item_2(i, array);\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1);\n}\nexport function tryFindBack(predicate, array) {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i < 0) {\n return undefined;\n }\n else if (predicate(item_2(i, array))) {\n return some(item_2(i, array));\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1);\n}\nexport function findLastIndex(predicate, array) {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i < 0) {\n return -1;\n }\n else if (predicate(item_2(i, array))) {\n return i | 0;\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1) | 0;\n}\nexport function findIndexBack(predicate, array) {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i < 0) {\n indexNotFound();\n return -1;\n }\n else if (predicate(item_2(i, array))) {\n return i | 0;\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1) | 0;\n}\nexport function tryFindIndexBack(predicate, array) {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (i < 0) {\n return undefined;\n }\n else if (predicate(item_2(i, array))) {\n return i;\n }\n else {\n i_mut = (i - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(array.length - 1);\n}\nexport function choose(chooser, array, cons) {\n const res = [];\n for (let i = 0; i <= (array.length - 1); i++) {\n const matchValue = chooser(item_2(i, array));\n if (matchValue != null) {\n const y = value_2(matchValue);\n res.push(y);\n }\n }\n if (equals_1(cons, defaultOf())) {\n return res;\n }\n else {\n return map((x) => x, res, cons);\n }\n}\nexport function foldIndexed(folder, state, array) {\n return array.reduce(((delegateArg, delegateArg_1, delegateArg_2) => folder(delegateArg_2, delegateArg, delegateArg_1)), state);\n}\nexport function fold(folder, state, array) {\n const folder_1 = folder;\n return array.reduce((folder_1), state);\n}\nexport function iterate(action, array) {\n for (let i = 0; i <= (array.length - 1); i++) {\n action(item_2(i, array));\n }\n}\nexport function iterateIndexed(action, array) {\n for (let i = 0; i <= (array.length - 1); i++) {\n action(i, item_2(i, array));\n }\n}\nexport function iterate2(action, array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n for (let i = 0; i <= (array1.length - 1); i++) {\n action(item_2(i, array1), item_2(i, array2));\n }\n}\nexport function iterateIndexed2(action, array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n for (let i = 0; i <= (array1.length - 1); i++) {\n action(i, item_2(i, array1), item_2(i, array2));\n }\n}\nexport function isEmpty(array) {\n return array.length === 0;\n}\nexport function forAll(predicate, array) {\n return array.every(predicate);\n}\nexport function permute(f, array) {\n const size = array.length | 0;\n const res = array.slice();\n const checkFlags = new Array(size);\n iterateIndexed((i, x) => {\n const j = f(i) | 0;\n if ((j < 0) ? true : (j >= size)) {\n throw new Error(\"Not a valid permutation\");\n }\n setItem_1(res, j, x);\n setItem_1(checkFlags, j, 1);\n }, array);\n if (!(checkFlags.every((y) => (1 === y)))) {\n throw new Error(\"Not a valid permutation\");\n }\n return res;\n}\nexport function setSlice(target, lower, upper, source) {\n const lower_1 = defaultArg(lower, 0) | 0;\n const upper_1 = defaultArg(upper, -1) | 0;\n const length = (((upper_1 >= 0) ? upper_1 : (target.length - 1)) - lower_1) | 0;\n for (let i = 0; i <= length; i++) {\n setItem_1(target, i + lower_1, item_2(i, source));\n }\n}\nexport function sortInPlaceBy(projection, xs, comparer) {\n xs.sort((x, y) => comparer.Compare(projection(x), projection(y)));\n}\nexport function sortInPlace(xs, comparer) {\n xs.sort((x, y) => comparer.Compare(x, y));\n}\nexport function sort(xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort((x, y) => comparer.Compare(x, y));\n return xs_1;\n}\nexport function sortBy(projection, xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort((x, y) => comparer.Compare(projection(x), projection(y)));\n return xs_1;\n}\nexport function sortDescending(xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort((x, y) => (comparer.Compare(x, y) * -1));\n return xs_1;\n}\nexport function sortByDescending(projection, xs, comparer) {\n const xs_1 = xs.slice();\n xs_1.sort((x, y) => (comparer.Compare(projection(x), projection(y)) * -1));\n return xs_1;\n}\nexport function sortWith(comparer, xs) {\n const comparer_1 = comparer;\n const xs_1 = xs.slice();\n xs_1.sort(comparer_1);\n return xs_1;\n}\nexport function allPairs(xs, ys) {\n const len1 = xs.length | 0;\n const len2 = ys.length | 0;\n const res = new Array(len1 * len2);\n for (let i = 0; i <= (xs.length - 1); i++) {\n for (let j = 0; j <= (ys.length - 1); j++) {\n setItem_1(res, (i * len2) + j, [item_2(i, xs), item_2(j, ys)]);\n }\n }\n return res;\n}\nexport function unfold(generator, state) {\n const res = [];\n const loop = (state_1_mut) => {\n loop: while (true) {\n const state_1 = state_1_mut;\n const matchValue = generator(state_1);\n if (matchValue != null) {\n const x = value_2(matchValue)[0];\n const s = value_2(matchValue)[1];\n res.push(x);\n state_1_mut = s;\n continue loop;\n }\n break;\n }\n };\n loop(state);\n return res;\n}\nexport function unzip(array) {\n const len = array.length | 0;\n const res1 = new Array(len);\n const res2 = new Array(len);\n iterateIndexed((i, tupledArg) => {\n setItem_1(res1, i, tupledArg[0]);\n setItem_1(res2, i, tupledArg[1]);\n }, array);\n return [res1, res2];\n}\nexport function unzip3(array) {\n const len = array.length | 0;\n const res1 = new Array(len);\n const res2 = new Array(len);\n const res3 = new Array(len);\n iterateIndexed((i, tupledArg) => {\n setItem_1(res1, i, tupledArg[0]);\n setItem_1(res2, i, tupledArg[1]);\n setItem_1(res3, i, tupledArg[2]);\n }, array);\n return [res1, res2, res3];\n}\nexport function zip(array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n const result = new Array(array1.length);\n for (let i = 0; i <= (array1.length - 1); i++) {\n setItem_1(result, i, [item_2(i, array1), item_2(i, array2)]);\n }\n return result;\n}\nexport function zip3(array1, array2, array3) {\n if ((array1.length !== array2.length) ? true : (array2.length !== array3.length)) {\n differentLengths();\n }\n const result = new Array(array1.length);\n for (let i = 0; i <= (array1.length - 1); i++) {\n setItem_1(result, i, [item_2(i, array1), item_2(i, array2), item_2(i, array3)]);\n }\n return result;\n}\nexport function chunkBySize(chunkSize, array) {\n if (chunkSize < 1) {\n throw new Error(\"The input must be positive.\\\\nParameter name: size\");\n }\n if (array.length === 0) {\n return [[]];\n }\n else {\n const result = [];\n for (let x = 0; x <= (~~Math.ceil(array.length / chunkSize) - 1); x++) {\n let slice;\n const start_1 = (x * chunkSize) | 0;\n slice = (array.slice(start_1, (start_1 + chunkSize)));\n result.push(slice);\n }\n return result;\n }\n}\nexport function splitAt(index, array) {\n if ((index < 0) ? true : (index > array.length)) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return [array.slice(0, (0 + index)), array.slice(index)];\n}\nexport function compareWith(comparer, source1, source2) {\n if (source1 == null) {\n if (source2 == null) {\n return 0;\n }\n else {\n return -1;\n }\n }\n else if (source2 == null) {\n return 1;\n }\n else {\n const len1 = source1.length | 0;\n const len2 = source2.length | 0;\n const len = ((len1 < len2) ? len1 : len2) | 0;\n let i = 0;\n let res = 0;\n while ((res === 0) && (i < len)) {\n res = (comparer(item_2(i, source1), item_2(i, source2)) | 0);\n i = ((i + 1) | 0);\n }\n if (res !== 0) {\n return res | 0;\n }\n else if (len1 > len2) {\n return 1;\n }\n else if (len1 < len2) {\n return -1;\n }\n else {\n return 0;\n }\n }\n}\nexport function compareTo(comparer, source1, source2) {\n if (source1 == null) {\n if (source2 == null) {\n return 0;\n }\n else {\n return -1;\n }\n }\n else if (source2 == null) {\n return 1;\n }\n else {\n const len1 = source1.length | 0;\n const len2 = source2.length | 0;\n if (len1 > len2) {\n return 1;\n }\n else if (len1 < len2) {\n return -1;\n }\n else {\n let i = 0;\n let res = 0;\n while ((res === 0) && (i < len1)) {\n res = (comparer(item_2(i, source1), item_2(i, source2)) | 0);\n i = ((i + 1) | 0);\n }\n return res | 0;\n }\n }\n}\nexport function equalsWith(equals, array1, array2) {\n if (array1 == null) {\n if (array2 == null) {\n return true;\n }\n else {\n return false;\n }\n }\n else if (array2 == null) {\n return false;\n }\n else {\n let i = 0;\n let result = true;\n const length1 = array1.length | 0;\n const length2 = array2.length | 0;\n if (length1 > length2) {\n return false;\n }\n else if (length1 < length2) {\n return false;\n }\n else {\n while ((i < length1) && result) {\n result = equals(item_2(i, array1), item_2(i, array2));\n i = ((i + 1) | 0);\n }\n return result;\n }\n }\n}\nexport function exactlyOne(array) {\n switch (array.length) {\n case 1:\n return item_2(0, array);\n case 0:\n throw new Error(\"The input sequence was empty\\\\nParameter name: array\");\n default:\n throw new Error(\"Input array too long\\\\nParameter name: array\");\n }\n}\nexport function tryExactlyOne(array) {\n if (array.length === 1) {\n return some(item_2(0, array));\n }\n else {\n return undefined;\n }\n}\nexport function head(array) {\n if (array.length === 0) {\n throw new Error(\"The input array was empty\\\\nParameter name: array\");\n }\n else {\n return item_2(0, array);\n }\n}\nexport function tryHead(array) {\n if (array.length === 0) {\n return undefined;\n }\n else {\n return some(item_2(0, array));\n }\n}\nexport function tail(array) {\n if (array.length === 0) {\n throw new Error(\"Not enough elements\\\\nParameter name: array\");\n }\n return array.slice(1);\n}\nexport function item(index, array) {\n if ((index < 0) ? true : (index >= array.length)) {\n throw new Error(\"Index was outside the bounds of the array.\\\\nParameter name: index\");\n }\n else {\n return array[index];\n }\n}\nexport function setItem(array, index, value) {\n if ((index < 0) ? true : (index >= array.length)) {\n throw new Error(\"Index was outside the bounds of the array.\\\\nParameter name: index\");\n }\n else {\n array[index] = value;\n }\n}\nexport function tryItem(index, array) {\n if ((index < 0) ? true : (index >= array.length)) {\n return undefined;\n }\n else {\n return some(array[index]);\n }\n}\nexport function foldBackIndexed(folder, array, state) {\n return array.reduceRight(((delegateArg, delegateArg_1, delegateArg_2) => folder(delegateArg_2, delegateArg_1, delegateArg)), state);\n}\nexport function foldBack(folder, array, state) {\n return array.reduceRight(((delegateArg, delegateArg_1) => folder(delegateArg_1, delegateArg)), state);\n}\nexport function foldIndexed2(folder, state, array1, array2) {\n let acc = state;\n if (array1.length !== array2.length) {\n throw new Error(\"Arrays have different lengths\");\n }\n for (let i = 0; i <= (array1.length - 1); i++) {\n acc = folder(i, acc, item_2(i, array1), item_2(i, array2));\n }\n return acc;\n}\nexport function fold2(folder, state, array1, array2) {\n return foldIndexed2((_arg, acc, x, y) => folder(acc, x, y), state, array1, array2);\n}\nexport function foldBackIndexed2(folder, array1, array2, state) {\n let acc = state;\n if (array1.length !== array2.length) {\n differentLengths();\n }\n const size = array1.length | 0;\n for (let i = 1; i <= size; i++) {\n acc = folder(i - 1, item_2(size - i, array1), item_2(size - i, array2), acc);\n }\n return acc;\n}\nexport function foldBack2(f, array1, array2, state) {\n return foldBackIndexed2((_arg, x, y, acc) => f(x, y, acc), array1, array2, state);\n}\nexport function reduce(reduction, array) {\n if (array.length === 0) {\n throw new Error(\"The input array was empty\");\n }\n const reduction_1 = reduction;\n return array.reduce(reduction_1);\n}\nexport function reduceBack(reduction, array) {\n if (array.length === 0) {\n throw new Error(\"The input array was empty\");\n }\n const reduction_1 = reduction;\n return array.reduceRight(reduction_1);\n}\nexport function forAll2(predicate, array1, array2) {\n return fold2((acc, x, y) => (acc && predicate(x, y)), true, array1, array2);\n}\nexport function existsOffset(predicate_mut, array_mut, index_mut) {\n existsOffset: while (true) {\n const predicate = predicate_mut, array = array_mut, index = index_mut;\n if (index === array.length) {\n return false;\n }\n else if (predicate(item_2(index, array))) {\n return true;\n }\n else {\n predicate_mut = predicate;\n array_mut = array;\n index_mut = (index + 1);\n continue existsOffset;\n }\n break;\n }\n}\nexport function exists(predicate, array) {\n return existsOffset(predicate, array, 0);\n}\nexport function existsOffset2(predicate_mut, array1_mut, array2_mut, index_mut) {\n existsOffset2: while (true) {\n const predicate = predicate_mut, array1 = array1_mut, array2 = array2_mut, index = index_mut;\n if (index === array1.length) {\n return false;\n }\n else if (predicate(item_2(index, array1), item_2(index, array2))) {\n return true;\n }\n else {\n predicate_mut = predicate;\n array1_mut = array1;\n array2_mut = array2;\n index_mut = (index + 1);\n continue existsOffset2;\n }\n break;\n }\n}\nexport function exists2(predicate, array1, array2) {\n if (array1.length !== array2.length) {\n differentLengths();\n }\n return existsOffset2(predicate, array1, array2, 0);\n}\nexport function sum(array, adder) {\n let acc = adder.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n acc = adder.Add(acc, item_2(i, array));\n }\n return acc;\n}\nexport function sumBy(projection, array, adder) {\n let acc = adder.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n acc = adder.Add(acc, projection(item_2(i, array)));\n }\n return acc;\n}\nexport function maxBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? y : x), xs);\n}\nexport function max(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? y : x), xs);\n}\nexport function minBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? x : y), xs);\n}\nexport function min(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? x : y), xs);\n}\nexport function average(array, averager) {\n if (array.length === 0) {\n throw new Error(\"The input array was empty\\\\nParameter name: array\");\n }\n let total = averager.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n total = averager.Add(total, item_2(i, array));\n }\n return averager.DivideByInt(total, array.length);\n}\nexport function averageBy(projection, array, averager) {\n if (array.length === 0) {\n throw new Error(\"The input array was empty\\\\nParameter name: array\");\n }\n let total = averager.GetZero();\n for (let i = 0; i <= (array.length - 1); i++) {\n total = averager.Add(total, projection(item_2(i, array)));\n }\n return averager.DivideByInt(total, array.length);\n}\nexport function windowed(windowSize, source) {\n if (windowSize <= 0) {\n throw new Error(\"windowSize must be positive\");\n }\n let res;\n const len = max_1(0, (source.length - windowSize) + 1) | 0;\n res = (new Array(len));\n for (let i = windowSize; i <= source.length; i++) {\n setItem_1(res, i - windowSize, source.slice(i - windowSize, (i - 1) + 1));\n }\n return res;\n}\nexport function splitInto(chunks, array) {\n if (chunks < 1) {\n throw new Error(\"The input must be positive.\\\\nParameter name: chunks\");\n }\n if (array.length === 0) {\n return [[]];\n }\n else {\n const result = [];\n const chunks_1 = min_1(chunks, array.length) | 0;\n const minChunkSize = ~~(array.length / chunks_1) | 0;\n const chunksWithExtraItem = (array.length % chunks_1) | 0;\n for (let i = 0; i <= (chunks_1 - 1); i++) {\n const chunkSize = ((i < chunksWithExtraItem) ? (minChunkSize + 1) : minChunkSize) | 0;\n let slice;\n const start_1 = ((i * minChunkSize) + min_1(chunksWithExtraItem, i)) | 0;\n slice = (array.slice(start_1, (start_1 + chunkSize)));\n result.push(slice);\n }\n return result;\n }\n}\nexport function transpose(arrays, cons) {\n const arrays_1 = Array.isArray(arrays) ? arrays : (Array.from(arrays));\n const len = arrays_1.length | 0;\n if (len === 0) {\n return new Array(0);\n }\n else {\n const firstArray = item_2(0, arrays_1);\n const lenInner = firstArray.length | 0;\n if (!forAll((a) => (a.length === lenInner), arrays_1)) {\n differentLengths();\n }\n const result = new Array(lenInner);\n for (let i = 0; i <= (lenInner - 1); i++) {\n setItem_1(result, i, Helpers_allocateArrayFromCons(cons, len));\n for (let j = 0; j <= (len - 1); j++) {\n item_2(i, result)[j] = item_2(i, item_2(j, arrays_1));\n }\n }\n return result;\n }\n}\nexport function insertAt(index, y, xs, cons) {\n const len = xs.length | 0;\n if ((index < 0) ? true : (index > len)) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n const target = Helpers_allocateArrayFromCons(cons, len + 1);\n for (let i = 0; i <= (index - 1); i++) {\n setItem_1(target, i, item_2(i, xs));\n }\n setItem_1(target, index, y);\n for (let i_1 = index; i_1 <= (len - 1); i_1++) {\n setItem_1(target, i_1 + 1, item_2(i_1, xs));\n }\n return target;\n}\nexport function insertManyAt(index, ys, xs, cons) {\n const len = xs.length | 0;\n if ((index < 0) ? true : (index > len)) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n const ys_1 = Array.from(ys);\n const len2 = ys_1.length | 0;\n const target = Helpers_allocateArrayFromCons(cons, len + len2);\n for (let i = 0; i <= (index - 1); i++) {\n setItem_1(target, i, item_2(i, xs));\n }\n for (let i_1 = 0; i_1 <= (len2 - 1); i_1++) {\n setItem_1(target, index + i_1, item_2(i_1, ys_1));\n }\n for (let i_2 = index; i_2 <= (len - 1); i_2++) {\n setItem_1(target, i_2 + len2, item_2(i_2, xs));\n }\n return target;\n}\nexport function removeAt(index, xs) {\n if ((index < 0) ? true : (index >= xs.length)) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n let i = -1;\n return filter((_arg) => {\n i = ((i + 1) | 0);\n return i !== index;\n }, xs);\n}\nexport function removeManyAt(index, count, xs) {\n let i = -1;\n let status = -1;\n const ys = filter((_arg) => {\n i = ((i + 1) | 0);\n if (i === index) {\n status = 0;\n return false;\n }\n else if (i > index) {\n if (i < (index + count)) {\n return false;\n }\n else {\n status = 1;\n return true;\n }\n }\n else {\n return true;\n }\n }, xs);\n const status_1 = (((status === 0) && ((i + 1) === (index + count))) ? 1 : status) | 0;\n if (status_1 < 1) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + ((status_1 < 0) ? \"index\" : \"count\"));\n }\n return ys;\n}\nexport function updateAt(index, y, xs, cons) {\n const len = xs.length | 0;\n if ((index < 0) ? true : (index >= len)) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n const target = Helpers_allocateArrayFromCons(cons, len);\n for (let i = 0; i <= (len - 1); i++) {\n setItem_1(target, i, (i === index) ? y : item_2(i, xs));\n }\n return target;\n}\nexport function resize(xs, newSize, zero, cons) {\n let array, array_1, start_2, count_2;\n if (newSize < 0) {\n throw new Error(\"The input must be non-negative.\\\\nParameter name: newSize\");\n }\n const zero_1 = defaultArg(zero, defaultOf());\n if (xs.contents == null) {\n xs.contents = ((array = Helpers_allocateArrayFromCons(cons, newSize), array.fill(zero_1, 0, (0 + newSize))));\n }\n else {\n const len = xs.contents.length | 0;\n if (newSize < len) {\n xs.contents = ((array_1 = xs.contents, array_1.slice(0, (0 + newSize))));\n }\n else if (newSize > len) {\n const target = Helpers_allocateArrayFromCons(cons, newSize);\n if (len > 0) {\n copyTo(xs.contents, 0, target, 0, len);\n }\n xs.contents = ((start_2 = (len | 0), (count_2 = ((newSize - len) | 0), target.fill(zero_1, start_2, (start_2 + count_2)))));\n }\n }\n}\n","import { join } from \"./String.js\";\nimport { defaultArg, some, value as value_1 } from \"./Option.js\";\nimport { disposeSafe, isArrayLike, defaultOf, toIterator, getEnumerator, compare, structuralHash, equals } from \"./Util.js\";\nimport { Record } from \"./Types.js\";\nimport { class_type, record_type, option_type } from \"./Reflection.js\";\nimport { SR_inputSequenceTooLong, SR_inputSequenceEmpty, SR_inputMustBeNonNegative, SR_notEnoughElements, SR_differentLengths, SR_keyNotFoundAlt, SR_indexOutOfBounds, SR_inputWasEmpty } from \"./Global.js\";\nimport { transpose as transpose_1, splitInto as splitInto_1, windowed as windowed_1, pairwise as pairwise_1, chunkBySize as chunkBySize_1, map as map_1, permute as permute_1, tryFindIndexBack as tryFindIndexBack_1, tryFindBack as tryFindBack_1, scanBack as scanBack_1, item as item_1, foldBack2 as foldBack2_1, foldBack as foldBack_1, setItem, fill } from \"./Array.js\";\nexport class FSharpList extends Record {\n constructor(head, tail) {\n super();\n this.head = head;\n this.tail = tail;\n }\n toString() {\n const xs = this;\n return (\"[\" + join(\"; \", xs)) + \"]\";\n }\n Equals(other) {\n const xs = this;\n if (xs === other) {\n return true;\n }\n else {\n const loop = (xs_1_mut, ys_1_mut) => {\n loop: while (true) {\n const xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n const matchValue = xs_1.tail;\n const matchValue_1 = ys_1.tail;\n if (matchValue != null) {\n if (matchValue_1 != null) {\n const xt = value_1(matchValue);\n const yt = value_1(matchValue_1);\n if (equals(xs_1.head, ys_1.head)) {\n xs_1_mut = xt;\n ys_1_mut = yt;\n continue loop;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n }\n else if (matchValue_1 != null) {\n return false;\n }\n else {\n return true;\n }\n break;\n }\n };\n return loop(xs, other);\n }\n }\n GetHashCode() {\n const xs = this;\n const loop = (i_mut, h_mut, xs_1_mut) => {\n loop: while (true) {\n const i = i_mut, h = h_mut, xs_1 = xs_1_mut;\n const matchValue = xs_1.tail;\n if (matchValue != null) {\n const t = value_1(matchValue);\n if (i > 18) {\n return h | 0;\n }\n else {\n i_mut = (i + 1);\n h_mut = (((h << 1) + structuralHash(xs_1.head)) + (631 * i));\n xs_1_mut = t;\n continue loop;\n }\n }\n else {\n return h | 0;\n }\n break;\n }\n };\n return loop(0, 0, xs) | 0;\n }\n toJSON() {\n const this$ = this;\n return Array.from(this$);\n }\n CompareTo(other) {\n const xs = this;\n const loop = (xs_1_mut, ys_1_mut) => {\n loop: while (true) {\n const xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n const matchValue = xs_1.tail;\n const matchValue_1 = ys_1.tail;\n if (matchValue != null) {\n if (matchValue_1 != null) {\n const xt = value_1(matchValue);\n const yt = value_1(matchValue_1);\n const c = compare(xs_1.head, ys_1.head) | 0;\n if (c === 0) {\n xs_1_mut = xt;\n ys_1_mut = yt;\n continue loop;\n }\n else {\n return c | 0;\n }\n }\n else {\n return 1;\n }\n }\n else if (matchValue_1 != null) {\n return -1;\n }\n else {\n return 0;\n }\n break;\n }\n };\n return loop(xs, other) | 0;\n }\n GetEnumerator() {\n const xs = this;\n return ListEnumerator$1_$ctor_3002E699(xs);\n }\n [Symbol.iterator]() {\n return toIterator(getEnumerator(this));\n }\n \"System.Collections.IEnumerable.GetEnumerator\"() {\n const xs = this;\n return getEnumerator(xs);\n }\n}\nexport function FSharpList_$reflection(gen0) {\n return record_type(\"ListModule.FSharpList\", [gen0], FSharpList, () => [[\"head\", gen0], [\"tail\", option_type(FSharpList_$reflection(gen0))]]);\n}\nexport class ListEnumerator$1 {\n constructor(xs) {\n this.xs = xs;\n this.it = this.xs;\n this.current = defaultOf();\n }\n \"System.Collections.Generic.IEnumerator`1.get_Current\"() {\n const _ = this;\n return _.current;\n }\n \"System.Collections.IEnumerator.get_Current\"() {\n const _ = this;\n return _.current;\n }\n \"System.Collections.IEnumerator.MoveNext\"() {\n const _ = this;\n const matchValue = _.it.tail;\n if (matchValue != null) {\n const t = value_1(matchValue);\n _.current = _.it.head;\n _.it = t;\n return true;\n }\n else {\n return false;\n }\n }\n \"System.Collections.IEnumerator.Reset\"() {\n const _ = this;\n _.it = _.xs;\n _.current = defaultOf();\n }\n Dispose() {\n }\n}\nexport function ListEnumerator$1_$reflection(gen0) {\n return class_type(\"ListModule.ListEnumerator`1\", [gen0], ListEnumerator$1);\n}\nexport function ListEnumerator$1_$ctor_3002E699(xs) {\n return new ListEnumerator$1(xs);\n}\nexport function FSharpList_get_Empty() {\n return new FSharpList(defaultOf(), undefined);\n}\nexport function FSharpList_Cons_305B8EAC(x, xs) {\n return new FSharpList(x, xs);\n}\nexport function FSharpList__get_IsEmpty(xs) {\n return xs.tail == null;\n}\nexport function FSharpList__get_Length(xs) {\n const loop = (i_mut, xs_1_mut) => {\n loop: while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n const matchValue = xs_1.tail;\n if (matchValue != null) {\n i_mut = (i + 1);\n xs_1_mut = value_1(matchValue);\n continue loop;\n }\n else {\n return i | 0;\n }\n break;\n }\n };\n return loop(0, xs) | 0;\n}\nexport function FSharpList__get_Head(xs) {\n const matchValue = xs.tail;\n if (matchValue != null) {\n return xs.head;\n }\n else {\n throw new Error((SR_inputWasEmpty + \"\\\\nParameter name: \") + \"list\");\n }\n}\nexport function FSharpList__get_Tail(xs) {\n const matchValue = xs.tail;\n if (matchValue != null) {\n return value_1(matchValue);\n }\n else {\n throw new Error((SR_inputWasEmpty + \"\\\\nParameter name: \") + \"list\");\n }\n}\nexport function FSharpList__get_Item_Z524259A4(xs, index) {\n const loop = (i_mut, xs_1_mut) => {\n loop: while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n const matchValue = xs_1.tail;\n if (matchValue != null) {\n if (i === index) {\n return xs_1.head;\n }\n else {\n i_mut = (i + 1);\n xs_1_mut = value_1(matchValue);\n continue loop;\n }\n }\n else {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n break;\n }\n };\n return loop(0, xs);\n}\nexport function indexNotFound() {\n throw new Error(SR_keyNotFoundAlt);\n}\nexport function empty() {\n return FSharpList_get_Empty();\n}\nexport function cons(x, xs) {\n return FSharpList_Cons_305B8EAC(x, xs);\n}\nexport function singleton(x) {\n return FSharpList_Cons_305B8EAC(x, FSharpList_get_Empty());\n}\nexport function isEmpty(xs) {\n return FSharpList__get_IsEmpty(xs);\n}\nexport function length(xs) {\n return FSharpList__get_Length(xs);\n}\nexport function head(xs) {\n return FSharpList__get_Head(xs);\n}\nexport function tryHead(xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n return undefined;\n }\n else {\n return some(FSharpList__get_Head(xs));\n }\n}\nexport function tail(xs) {\n return FSharpList__get_Tail(xs);\n}\nexport function tryLast(xs_mut) {\n tryLast: while (true) {\n const xs = xs_mut;\n if (FSharpList__get_IsEmpty(xs)) {\n return undefined;\n }\n else {\n const t = FSharpList__get_Tail(xs);\n if (FSharpList__get_IsEmpty(t)) {\n return some(FSharpList__get_Head(xs));\n }\n else {\n xs_mut = t;\n continue tryLast;\n }\n }\n break;\n }\n}\nexport function last(xs) {\n const matchValue = tryLast(xs);\n if (matchValue == null) {\n throw new Error(SR_inputWasEmpty);\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function compareWith(comparer, xs, ys) {\n const loop = (xs_1_mut, ys_1_mut) => {\n loop: while (true) {\n const xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n const matchValue = FSharpList__get_IsEmpty(xs_1);\n const matchValue_1 = FSharpList__get_IsEmpty(ys_1);\n if (matchValue) {\n if (matchValue_1) {\n return 0;\n }\n else {\n return -1;\n }\n }\n else if (matchValue_1) {\n return 1;\n }\n else {\n const c = comparer(FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1)) | 0;\n if (c === 0) {\n xs_1_mut = FSharpList__get_Tail(xs_1);\n ys_1_mut = FSharpList__get_Tail(ys_1);\n continue loop;\n }\n else {\n return c | 0;\n }\n }\n break;\n }\n };\n return loop(xs, ys) | 0;\n}\nexport function toArray(xs) {\n const len = FSharpList__get_Length(xs) | 0;\n const res = fill(new Array(len), 0, len, null);\n const loop = (i_mut, xs_1_mut) => {\n loop: while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n if (!FSharpList__get_IsEmpty(xs_1)) {\n setItem(res, i, FSharpList__get_Head(xs_1));\n i_mut = (i + 1);\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n loop(0, xs);\n return res;\n}\nexport function fold(folder, state, xs) {\n let acc = state;\n let xs_1 = xs;\n while (!FSharpList__get_IsEmpty(xs_1)) {\n acc = folder(acc, head(xs_1));\n xs_1 = FSharpList__get_Tail(xs_1);\n }\n return acc;\n}\nexport function reverse(xs) {\n return fold((acc, x) => FSharpList_Cons_305B8EAC(x, acc), FSharpList_get_Empty(), xs);\n}\nexport function foldBack(folder, xs, state) {\n return foldBack_1(folder, toArray(xs), state);\n}\nexport function foldIndexed(folder, state, xs) {\n const loop = (i_mut, acc_mut, xs_1_mut) => {\n loop: while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return acc;\n }\n else {\n i_mut = (i + 1);\n acc_mut = folder(i, acc, FSharpList__get_Head(xs_1));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n return loop(0, state, xs);\n}\nexport function fold2(folder, state, xs, ys) {\n let acc = state;\n let xs_1 = xs;\n let ys_1 = ys;\n while (!FSharpList__get_IsEmpty(xs_1) && !FSharpList__get_IsEmpty(ys_1)) {\n acc = folder(acc, FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1));\n xs_1 = FSharpList__get_Tail(xs_1);\n ys_1 = FSharpList__get_Tail(ys_1);\n }\n return acc;\n}\nexport function foldBack2(folder, xs, ys, state) {\n return foldBack2_1(folder, toArray(xs), toArray(ys), state);\n}\nexport function unfold(gen, state) {\n const loop = (acc_mut, node_mut) => {\n let t;\n loop: while (true) {\n const acc = acc_mut, node = node_mut;\n const matchValue = gen(acc);\n if (matchValue != null) {\n acc_mut = value_1(matchValue)[1];\n node_mut = ((t = (new FSharpList(value_1(matchValue)[0], undefined)), (node.tail = t, t)));\n continue loop;\n }\n else {\n return node;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node_1 = loop(state, root);\n const t_2 = FSharpList_get_Empty();\n node_1.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function iterate(action, xs) {\n fold((unitVar, x) => {\n action(x);\n }, undefined, xs);\n}\nexport function iterate2(action, xs, ys) {\n fold2((unitVar, x, y) => {\n action(x, y);\n }, undefined, xs, ys);\n}\nexport function iterateIndexed(action, xs) {\n fold((i, x) => {\n action(i, x);\n return (i + 1) | 0;\n }, 0, xs);\n}\nexport function iterateIndexed2(action, xs, ys) {\n fold2((i, x, y) => {\n action(i, x, y);\n return (i + 1) | 0;\n }, 0, xs, ys);\n}\nexport function toSeq(xs) {\n return xs;\n}\nexport function ofArrayWithTail(xs, tail_1) {\n let res = tail_1;\n for (let i = xs.length - 1; i >= 0; i--) {\n res = FSharpList_Cons_305B8EAC(item_1(i, xs), res);\n }\n return res;\n}\nexport function ofArray(xs) {\n return ofArrayWithTail(xs, FSharpList_get_Empty());\n}\nexport function ofSeq(xs) {\n let xs_3, t;\n if (isArrayLike(xs)) {\n return ofArray(xs);\n }\n else if (xs instanceof FSharpList) {\n return xs;\n }\n else {\n const root = FSharpList_get_Empty();\n let node = root;\n const enumerator = getEnumerator(xs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n node = ((xs_3 = node, (t = (new FSharpList(x, undefined)), (xs_3.tail = t, t))));\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n const xs_5 = node;\n const t_2 = FSharpList_get_Empty();\n xs_5.tail = t_2;\n return FSharpList__get_Tail(root);\n }\n}\nexport function concat(lists) {\n const root = FSharpList_get_Empty();\n let node = root;\n const action = (xs) => {\n node = fold((acc, x) => {\n const t = new FSharpList(x, undefined);\n acc.tail = t;\n return t;\n }, node, xs);\n };\n if (isArrayLike(lists)) {\n const xs_3 = lists;\n xs_3.forEach(action);\n }\n else if (lists instanceof FSharpList) {\n iterate(action, lists);\n }\n else {\n const enumerator = getEnumerator(lists);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n action(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n }\n const xs_6 = node;\n const t_2 = FSharpList_get_Empty();\n xs_6.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function scan(folder, state, xs) {\n let xs_4, t_2;\n const root = FSharpList_get_Empty();\n let node;\n const t = new FSharpList(state, undefined);\n root.tail = t;\n node = t;\n let acc = state;\n let xs_3 = xs;\n while (!FSharpList__get_IsEmpty(xs_3)) {\n acc = folder(acc, FSharpList__get_Head(xs_3));\n node = ((xs_4 = node, (t_2 = (new FSharpList(acc, undefined)), (xs_4.tail = t_2, t_2))));\n xs_3 = FSharpList__get_Tail(xs_3);\n }\n const xs_6 = node;\n const t_4 = FSharpList_get_Empty();\n xs_6.tail = t_4;\n return FSharpList__get_Tail(root);\n}\nexport function scanBack(folder, xs, state) {\n return ofArray(scanBack_1(folder, toArray(xs), state));\n}\nexport function append(xs, ys) {\n return fold((acc, x) => FSharpList_Cons_305B8EAC(x, acc), ys, reverse(xs));\n}\nexport function collect(mapping, xs) {\n let xs_1, t;\n const root = FSharpList_get_Empty();\n let node = root;\n let ys = xs;\n while (!FSharpList__get_IsEmpty(ys)) {\n let zs = mapping(FSharpList__get_Head(ys));\n while (!FSharpList__get_IsEmpty(zs)) {\n node = ((xs_1 = node, (t = (new FSharpList(FSharpList__get_Head(zs), undefined)), (xs_1.tail = t, t))));\n zs = FSharpList__get_Tail(zs);\n }\n ys = FSharpList__get_Tail(ys);\n }\n const xs_3 = node;\n const t_2 = FSharpList_get_Empty();\n xs_3.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function mapIndexed(mapping, xs) {\n const root = FSharpList_get_Empty();\n const node = foldIndexed((i, acc, x) => {\n const t = new FSharpList(mapping(i, x), undefined);\n acc.tail = t;\n return t;\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function map(mapping, xs) {\n const root = FSharpList_get_Empty();\n const node = fold((acc, x) => {\n const t = new FSharpList(mapping(x), undefined);\n acc.tail = t;\n return t;\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\nexport function map2(mapping, xs, ys) {\n const root = FSharpList_get_Empty();\n const node = fold2((acc, x, y) => {\n const t = new FSharpList(mapping(x, y), undefined);\n acc.tail = t;\n return t;\n }, root, xs, ys);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function mapIndexed2(mapping, xs, ys) {\n const loop = (i_mut, acc_mut, xs_1_mut, ys_1_mut) => {\n let t;\n loop: while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut, ys_1 = ys_1_mut;\n if (FSharpList__get_IsEmpty(xs_1) ? true : FSharpList__get_IsEmpty(ys_1)) {\n return acc;\n }\n else {\n i_mut = (i + 1);\n acc_mut = ((t = (new FSharpList(mapping(i, FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1)), undefined)), (acc.tail = t, t)));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n ys_1_mut = FSharpList__get_Tail(ys_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node_1 = loop(0, root, xs, ys);\n const t_2 = FSharpList_get_Empty();\n node_1.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function map3(mapping, xs, ys, zs) {\n const loop = (acc_mut, xs_1_mut, ys_1_mut, zs_1_mut) => {\n let t;\n loop: while (true) {\n const acc = acc_mut, xs_1 = xs_1_mut, ys_1 = ys_1_mut, zs_1 = zs_1_mut;\n if ((FSharpList__get_IsEmpty(xs_1) ? true : FSharpList__get_IsEmpty(ys_1)) ? true : FSharpList__get_IsEmpty(zs_1)) {\n return acc;\n }\n else {\n acc_mut = ((t = (new FSharpList(mapping(FSharpList__get_Head(xs_1), FSharpList__get_Head(ys_1), FSharpList__get_Head(zs_1)), undefined)), (acc.tail = t, t)));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n ys_1_mut = FSharpList__get_Tail(ys_1);\n zs_1_mut = FSharpList__get_Tail(zs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node_1 = loop(root, xs, ys, zs);\n const t_2 = FSharpList_get_Empty();\n node_1.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function mapFold(mapping, state, xs) {\n const root = FSharpList_get_Empty();\n const patternInput_1 = fold((tupledArg, x) => {\n let t;\n const patternInput = mapping(tupledArg[1], x);\n return [(t = (new FSharpList(patternInput[0], undefined)), (tupledArg[0].tail = t, t)), patternInput[1]];\n }, [root, state], xs);\n const t_2 = FSharpList_get_Empty();\n patternInput_1[0].tail = t_2;\n return [FSharpList__get_Tail(root), patternInput_1[1]];\n}\nexport function mapFoldBack(mapping, xs, state) {\n return mapFold((acc, x) => mapping(x, acc), state, reverse(xs));\n}\nexport function tryPick(f, xs) {\n const loop = (xs_1_mut) => {\n loop: while (true) {\n const xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return undefined;\n }\n else {\n const matchValue = f(FSharpList__get_Head(xs_1));\n if (matchValue == null) {\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n else {\n return matchValue;\n }\n }\n break;\n }\n };\n return loop(xs);\n}\nexport function pick(f, xs) {\n const matchValue = tryPick(f, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function tryFind(f, xs) {\n return tryPick((x) => (f(x) ? some(x) : undefined), xs);\n}\nexport function find(f, xs) {\n const matchValue = tryFind(f, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function tryFindBack(f, xs) {\n return tryFindBack_1(f, toArray(xs));\n}\nexport function findBack(f, xs) {\n const matchValue = tryFindBack(f, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function tryFindIndex(f, xs) {\n const loop = (i_mut, xs_1_mut) => {\n loop: while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return undefined;\n }\n else if (f(FSharpList__get_Head(xs_1))) {\n return i;\n }\n else {\n i_mut = (i + 1);\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n return loop(0, xs);\n}\nexport function findIndex(f, xs) {\n const matchValue = tryFindIndex(f, xs);\n if (matchValue == null) {\n indexNotFound();\n return -1;\n }\n else {\n return value_1(matchValue) | 0;\n }\n}\nexport function tryFindIndexBack(f, xs) {\n return tryFindIndexBack_1(f, toArray(xs));\n}\nexport function findIndexBack(f, xs) {\n const matchValue = tryFindIndexBack(f, xs);\n if (matchValue == null) {\n indexNotFound();\n return -1;\n }\n else {\n return value_1(matchValue) | 0;\n }\n}\nexport function tryItem(n, xs) {\n const loop = (i_mut, xs_1_mut) => {\n loop: while (true) {\n const i = i_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return undefined;\n }\n else if (i === n) {\n return some(FSharpList__get_Head(xs_1));\n }\n else {\n i_mut = (i + 1);\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n return loop(0, xs);\n}\nexport function item(n, xs) {\n return FSharpList__get_Item_Z524259A4(xs, n);\n}\nexport function filter(f, xs) {\n const root = FSharpList_get_Empty();\n const node = fold((acc, x) => {\n if (f(x)) {\n const t = new FSharpList(x, undefined);\n acc.tail = t;\n return t;\n }\n else {\n return acc;\n }\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function partition(f, xs) {\n const matchValue = FSharpList_get_Empty();\n const root2 = FSharpList_get_Empty();\n const root1 = matchValue;\n const patternInput_1 = fold((tupledArg, x) => {\n let t, t_2;\n const lacc = tupledArg[0];\n const racc = tupledArg[1];\n if (f(x)) {\n return [(t = (new FSharpList(x, undefined)), (lacc.tail = t, t)), racc];\n }\n else {\n return [lacc, (t_2 = (new FSharpList(x, undefined)), (racc.tail = t_2, t_2))];\n }\n }, [root1, root2], xs);\n const t_4 = FSharpList_get_Empty();\n patternInput_1[0].tail = t_4;\n const t_5 = FSharpList_get_Empty();\n patternInput_1[1].tail = t_5;\n return [FSharpList__get_Tail(root1), FSharpList__get_Tail(root2)];\n}\nexport function choose(f, xs) {\n const root = FSharpList_get_Empty();\n const node = fold((acc, x) => {\n const matchValue = f(x);\n if (matchValue == null) {\n return acc;\n }\n else {\n const t = new FSharpList(value_1(matchValue), undefined);\n acc.tail = t;\n return t;\n }\n }, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function contains(value, xs, eq) {\n return tryFindIndex((v) => eq.Equals(value, v), xs) != null;\n}\nexport function initialize(n, f) {\n let xs, t;\n const root = FSharpList_get_Empty();\n let node = root;\n for (let i = 0; i <= (n - 1); i++) {\n node = ((xs = node, (t = (new FSharpList(f(i), undefined)), (xs.tail = t, t))));\n }\n const xs_2 = node;\n const t_2 = FSharpList_get_Empty();\n xs_2.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function replicate(n, x) {\n return initialize(n, (_arg) => x);\n}\nexport function reduce(f, xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n throw new Error(SR_inputWasEmpty);\n }\n else {\n return fold(f, head(xs), tail(xs));\n }\n}\nexport function reduceBack(f, xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n throw new Error(SR_inputWasEmpty);\n }\n else {\n return foldBack(f, tail(xs), head(xs));\n }\n}\nexport function forAll(f, xs) {\n return fold((acc, x) => (acc && f(x)), true, xs);\n}\nexport function forAll2(f, xs, ys) {\n return fold2((acc, x, y) => (acc && f(x, y)), true, xs, ys);\n}\nexport function exists(f, xs) {\n return tryFindIndex(f, xs) != null;\n}\nexport function exists2(f_mut, xs_mut, ys_mut) {\n exists2: while (true) {\n const f = f_mut, xs = xs_mut, ys = ys_mut;\n const matchValue = FSharpList__get_IsEmpty(xs);\n const matchValue_1 = FSharpList__get_IsEmpty(ys);\n let matchResult;\n if (matchValue) {\n if (matchValue_1) {\n matchResult = 0;\n }\n else {\n matchResult = 2;\n }\n }\n else if (matchValue_1) {\n matchResult = 2;\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n return false;\n case 1:\n if (f(FSharpList__get_Head(xs), FSharpList__get_Head(ys))) {\n return true;\n }\n else {\n f_mut = f;\n xs_mut = FSharpList__get_Tail(xs);\n ys_mut = FSharpList__get_Tail(ys);\n continue exists2;\n }\n default:\n throw new Error((SR_differentLengths + \"\\\\nParameter name: \") + \"list2\");\n }\n break;\n }\n}\nexport function unzip(xs) {\n return foldBack((tupledArg, tupledArg_1) => [FSharpList_Cons_305B8EAC(tupledArg[0], tupledArg_1[0]), FSharpList_Cons_305B8EAC(tupledArg[1], tupledArg_1[1])], xs, [FSharpList_get_Empty(), FSharpList_get_Empty()]);\n}\nexport function unzip3(xs) {\n return foldBack((tupledArg, tupledArg_1) => [FSharpList_Cons_305B8EAC(tupledArg[0], tupledArg_1[0]), FSharpList_Cons_305B8EAC(tupledArg[1], tupledArg_1[1]), FSharpList_Cons_305B8EAC(tupledArg[2], tupledArg_1[2])], xs, [FSharpList_get_Empty(), FSharpList_get_Empty(), FSharpList_get_Empty()]);\n}\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\nexport function sortWith(comparer, xs) {\n const arr = toArray(xs);\n arr.sort(comparer);\n return ofArray(arr);\n}\nexport function sort(xs, comparer) {\n return sortWith((x, y) => comparer.Compare(x, y), xs);\n}\nexport function sortBy(projection, xs, comparer) {\n return sortWith((x, y) => comparer.Compare(projection(x), projection(y)), xs);\n}\nexport function sortDescending(xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(x, y) * -1), xs);\n}\nexport function sortByDescending(projection, xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(projection(x), projection(y)) * -1), xs);\n}\nexport function sum(xs, adder) {\n return fold((acc, x) => adder.Add(acc, x), adder.GetZero(), xs);\n}\nexport function sumBy(f, xs, adder) {\n return fold((acc, x) => adder.Add(acc, f(x)), adder.GetZero(), xs);\n}\nexport function maxBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? y : x), xs);\n}\nexport function max(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? y : x), xs);\n}\nexport function minBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? x : y), xs);\n}\nexport function min(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? x : y), xs);\n}\nexport function average(xs, averager) {\n let count = 0;\n const total = fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, x);\n }, averager.GetZero(), xs);\n return averager.DivideByInt(total, count);\n}\nexport function averageBy(f, xs, averager) {\n let count = 0;\n const total = fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, f(x));\n }, averager.GetZero(), xs);\n return averager.DivideByInt(total, count);\n}\nexport function permute(f, xs) {\n return ofArray(permute_1(f, toArray(xs)));\n}\nexport function chunkBySize(chunkSize, xs) {\n return ofArray(map_1(ofArray, chunkBySize_1(chunkSize, toArray(xs))));\n}\nexport function allPairs(xs, ys) {\n const root = FSharpList_get_Empty();\n let node = root;\n iterate((x) => {\n iterate((y) => {\n let xs_1, t;\n node = ((xs_1 = node, (t = (new FSharpList([x, y], undefined)), (xs_1.tail = t, t))));\n }, ys);\n }, xs);\n const xs_3 = node;\n const t_2 = FSharpList_get_Empty();\n xs_3.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function skip(count_mut, xs_mut) {\n skip: while (true) {\n const count = count_mut, xs = xs_mut;\n if (count <= 0) {\n return xs;\n }\n else if (FSharpList__get_IsEmpty(xs)) {\n throw new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"list\");\n }\n else {\n count_mut = (count - 1);\n xs_mut = FSharpList__get_Tail(xs);\n continue skip;\n }\n break;\n }\n}\nexport function skipWhile(predicate_mut, xs_mut) {\n skipWhile: while (true) {\n const predicate = predicate_mut, xs = xs_mut;\n if (FSharpList__get_IsEmpty(xs)) {\n return xs;\n }\n else if (!predicate(FSharpList__get_Head(xs))) {\n return xs;\n }\n else {\n predicate_mut = predicate;\n xs_mut = FSharpList__get_Tail(xs);\n continue skipWhile;\n }\n break;\n }\n}\nexport function take(count, xs) {\n if (count < 0) {\n throw new Error((SR_inputMustBeNonNegative + \"\\\\nParameter name: \") + \"count\");\n }\n const loop = (i_mut, acc_mut, xs_1_mut) => {\n let t;\n loop: while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut;\n if (i <= 0) {\n return acc;\n }\n else if (FSharpList__get_IsEmpty(xs_1)) {\n throw new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"list\");\n }\n else {\n i_mut = (i - 1);\n acc_mut = ((t = (new FSharpList(FSharpList__get_Head(xs_1), undefined)), (acc.tail = t, t)));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node = loop(count, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function takeWhile(predicate, xs) {\n const loop = (acc_mut, xs_1_mut) => {\n let t;\n loop: while (true) {\n const acc = acc_mut, xs_1 = xs_1_mut;\n if (FSharpList__get_IsEmpty(xs_1)) {\n return acc;\n }\n else if (!predicate(FSharpList__get_Head(xs_1))) {\n return acc;\n }\n else {\n acc_mut = ((t = (new FSharpList(FSharpList__get_Head(xs_1), undefined)), (acc.tail = t, t)));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node = loop(root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function truncate(count, xs) {\n const loop = (i_mut, acc_mut, xs_1_mut) => {\n let t;\n loop: while (true) {\n const i = i_mut, acc = acc_mut, xs_1 = xs_1_mut;\n if (i <= 0) {\n return acc;\n }\n else if (FSharpList__get_IsEmpty(xs_1)) {\n return acc;\n }\n else {\n i_mut = (i - 1);\n acc_mut = ((t = (new FSharpList(FSharpList__get_Head(xs_1), undefined)), (acc.tail = t, t)));\n xs_1_mut = FSharpList__get_Tail(xs_1);\n continue loop;\n }\n break;\n }\n };\n const root = FSharpList_get_Empty();\n const node = loop(count, root, xs);\n const t_2 = FSharpList_get_Empty();\n node.tail = t_2;\n return FSharpList__get_Tail(root);\n}\nexport function getSlice(startIndex, endIndex, xs) {\n const len = length(xs) | 0;\n let startIndex_1;\n const index = defaultArg(startIndex, 0) | 0;\n startIndex_1 = ((index < 0) ? 0 : index);\n let endIndex_1;\n const index_1 = defaultArg(endIndex, len - 1) | 0;\n endIndex_1 = ((index_1 >= len) ? (len - 1) : index_1);\n if (endIndex_1 < startIndex_1) {\n return FSharpList_get_Empty();\n }\n else {\n return take((endIndex_1 - startIndex_1) + 1, skip(startIndex_1, xs));\n }\n}\nexport function splitAt(index, xs) {\n if (index < 0) {\n throw new Error((SR_inputMustBeNonNegative + \"\\\\nParameter name: \") + \"index\");\n }\n if (index > FSharpList__get_Length(xs)) {\n throw new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"index\");\n }\n return [take(index, xs), skip(index, xs)];\n}\nexport function exactlyOne(xs) {\n if (FSharpList__get_IsEmpty(xs)) {\n throw new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"list\");\n }\n else if (FSharpList__get_IsEmpty(FSharpList__get_Tail(xs))) {\n return FSharpList__get_Head(xs);\n }\n else {\n throw new Error((SR_inputSequenceTooLong + \"\\\\nParameter name: \") + \"list\");\n }\n}\nexport function tryExactlyOne(xs) {\n if (!FSharpList__get_IsEmpty(xs) && FSharpList__get_IsEmpty(FSharpList__get_Tail(xs))) {\n return some(FSharpList__get_Head(xs));\n }\n else {\n return undefined;\n }\n}\nexport function where(predicate, xs) {\n return filter(predicate, xs);\n}\nexport function pairwise(xs) {\n return ofArray(pairwise_1(toArray(xs)));\n}\nexport function windowed(windowSize, xs) {\n return ofArray(map_1(ofArray, windowed_1(windowSize, toArray(xs))));\n}\nexport function splitInto(chunks, xs) {\n return ofArray(map_1(ofArray, splitInto_1(chunks, toArray(xs))));\n}\nexport function transpose(lists) {\n return ofArray(map_1(ofArray, transpose_1(map_1(toArray, Array.from(lists)))));\n}\nexport function insertAt(index, y, xs) {\n let i = -1;\n let isDone = false;\n const result = fold((acc, x) => {\n i = ((i + 1) | 0);\n if (i === index) {\n isDone = true;\n return FSharpList_Cons_305B8EAC(x, FSharpList_Cons_305B8EAC(y, acc));\n }\n else {\n return FSharpList_Cons_305B8EAC(x, acc);\n }\n }, FSharpList_get_Empty(), xs);\n return reverse(isDone ? result : (((i + 1) === index) ? FSharpList_Cons_305B8EAC(y, result) : (() => {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n })()));\n}\nexport function insertManyAt(index, ys, xs) {\n let i = -1;\n let isDone = false;\n const ys_1 = ofSeq(ys);\n const result = fold((acc, x) => {\n i = ((i + 1) | 0);\n if (i === index) {\n isDone = true;\n return FSharpList_Cons_305B8EAC(x, append(ys_1, acc));\n }\n else {\n return FSharpList_Cons_305B8EAC(x, acc);\n }\n }, FSharpList_get_Empty(), xs);\n return reverse(isDone ? result : (((i + 1) === index) ? append(ys_1, result) : (() => {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n })()));\n}\nexport function removeAt(index, xs) {\n let i = -1;\n let isDone = false;\n const ys = filter((_arg) => {\n i = ((i + 1) | 0);\n if (i === index) {\n isDone = true;\n return false;\n }\n else {\n return true;\n }\n }, xs);\n if (!isDone) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return ys;\n}\nexport function removeManyAt(index, count, xs) {\n let i = -1;\n let status = -1;\n const ys = filter((_arg) => {\n i = ((i + 1) | 0);\n if (i === index) {\n status = 0;\n return false;\n }\n else if (i > index) {\n if (i < (index + count)) {\n return false;\n }\n else {\n status = 1;\n return true;\n }\n }\n else {\n return true;\n }\n }, xs);\n const status_1 = (((status === 0) && ((i + 1) === (index + count))) ? 1 : status) | 0;\n if (status_1 < 1) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + ((status_1 < 0) ? \"index\" : \"count\"));\n }\n return ys;\n}\nexport function updateAt(index, y, xs) {\n let isDone = false;\n const ys = mapIndexed((i, x) => {\n if (i === index) {\n isDone = true;\n return y;\n }\n else {\n return x;\n }\n }, xs);\n if (!isDone) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return ys;\n}\n","import { makeStyles } from \"@mui/styles\";\nimport { useTheme, createTheme, responsiveFontSizes } from \"@mui/material/styles\";\nimport { class_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { createObj } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\n\nexport const StyleImports_makeStyles_get = makeStyles;\n\nexport const StyleImports_makeStyles_getWithOpts = makeStyles;\n\nexport const StyleImports_makeStyles_obj = makeStyles;\n\nexport const StyleImports_makeStyles_objWithOpts = makeStyles;\n\nexport const StyleImports_responsiveFontSizes = responsiveFontSizes;\n\nexport const StyleImports_responsiveFontSizes_opts = responsiveFontSizes;\n\nexport const StyleImports_createTheme_argsArray = createTheme;\n\nexport const StyleImports_createTheme_unit = createTheme;\n\nexport const StyleImports_useTheme = useTheme;\n\nexport class StyleCreator$1 {\n constructor() {\n }\n}\n\nexport function StyleCreator$1_$reflection(gen0) {\n return class_type(\"Feliz.MaterialUI.StyleCreator`1\", [gen0], StyleCreator$1);\n}\n\nexport function StyleCreator$1_$ctor() {\n return new StyleCreator$1();\n}\n\n/**\n * Use with `makeStyles` etc. when returning an (anonymous) record of style\n * properties or functions. Simply unboxes the input to `string` (which it is\n * at runtime when returned by the JSS styling solution), so that the\n * properties can be used in `className` and `classes` props.\n */\nexport function StyleCreator$1__create_4EAC9E1E(_, styles) {\n return createObj(styles);\n}\n\n/**\n * Use with `makeStyles` etc. when returning an (anonymous) record of style\n * properties or functions. Simply unboxes the input to `string` (which it is\n * at runtime when returned by the JSS styling solution), so that the\n * properties can be used in `className` and `classes` props.\n */\nexport function StyleCreator$1__create_A7D96BD(_, getStyles) {\n return (arg_1) => createObj(getStyles(arg_1));\n}\n\n","import { substring } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { disposeSafe, getEnumerator } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\n\nexport function fromFlatEntries(kvs) {\n const setProperty = (target_mut, key_mut, value_mut) => {\n setProperty:\n while (true) {\n const target = target_mut, key = key_mut, value = value_mut;\n const matchValue = key.indexOf(\".\") | 0;\n if (matchValue === -1) {\n target[key] = value;\n }\n else {\n const sepIdx = matchValue | 0;\n const topKey = substring(key, 0, sepIdx);\n const nestedKey = substring(key, sepIdx + 1);\n if (target[topKey] === undefined) {\n target[topKey] = {};\n }\n target_mut = target[topKey];\n key_mut = nestedKey;\n value_mut = value;\n continue setProperty;\n }\n break;\n }\n };\n const target_1 = {};\n const enumerator = getEnumerator(kvs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n setProperty(target_1, forLoopVar[0], forLoopVar[1]);\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return target_1;\n}\n\n","import { clear, defaultOf, equals, isDisposable, isArrayLike, toIterator, disposeSafe, getEnumerator } from \"./Util.js\";\nimport { toString } from \"./Types.js\";\nimport { class_type } from \"./Reflection.js\";\nimport { some, value as value_1 } from \"./Option.js\";\nimport { Operators_Lock, Operators_NullArg } from \"./FSharp.Core.js\";\nimport { chunkBySize as chunkBySize_1, permute as permute_1, transpose as transpose_1, map as map_1, windowed as windowed_1, splitInto as splitInto_1, pairwise as pairwise_1, scanBack as scanBack_1, reverse as reverse_1, mapFoldBack as mapFoldBack_1, mapFold as mapFold_1, tryItem as tryItem_1, tryHead as tryHead_1, foldBack2 as foldBack2_1, foldBack as foldBack_1, tryFindIndexBack as tryFindIndexBack_1, tryFindBack as tryFindBack_1, singleton as singleton_1 } from \"./Array.js\";\nimport { length as length_1, tryItem as tryItem_2, isEmpty as isEmpty_1, tryHead as tryHead_2, ofSeq as ofSeq_1, ofArray as ofArray_1, toArray as toArray_1, FSharpList } from \"./List.js\";\nimport { SR_indexOutOfBounds } from \"./Global.js\";\nexport const SR_enumerationAlreadyFinished = \"Enumeration already finished.\";\nexport const SR_enumerationNotStarted = \"Enumeration has not started. Call MoveNext.\";\nexport const SR_inputSequenceEmpty = \"The input sequence was empty.\";\nexport const SR_inputSequenceTooLong = \"The input sequence contains more than one element.\";\nexport const SR_keyNotFoundAlt = \"An index satisfying the predicate was not found in the collection.\";\nexport const SR_notEnoughElements = \"The input sequence has an insufficient number of elements.\";\nexport const SR_resetNotSupported = \"Reset is not supported on this enumerator.\";\nexport function Enumerator_noReset() {\n throw new Error(SR_resetNotSupported);\n}\nexport function Enumerator_notStarted() {\n throw new Error(SR_enumerationNotStarted);\n}\nexport function Enumerator_alreadyFinished() {\n throw new Error(SR_enumerationAlreadyFinished);\n}\nexport class Enumerator_Seq {\n constructor(f) {\n this.f = f;\n }\n toString() {\n const xs = this;\n let i = 0;\n let str = \"seq [\";\n const e = getEnumerator(xs);\n try {\n while ((i < 4) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n if (i > 0) {\n str = (str + \"; \");\n }\n str = (str + toString(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()));\n i = ((i + 1) | 0);\n }\n if (i === 4) {\n str = (str + \"; ...\");\n }\n return str + \"]\";\n }\n finally {\n disposeSafe(e);\n }\n }\n GetEnumerator() {\n const x = this;\n return x.f();\n }\n [Symbol.iterator]() {\n return toIterator(getEnumerator(this));\n }\n \"System.Collections.IEnumerable.GetEnumerator\"() {\n const x = this;\n return x.f();\n }\n}\nexport function Enumerator_Seq_$reflection(gen0) {\n return class_type(\"SeqModule.Enumerator.Seq\", [gen0], Enumerator_Seq);\n}\nexport function Enumerator_Seq_$ctor_673A07F2(f) {\n return new Enumerator_Seq(f);\n}\nexport class Enumerator_FromFunctions$1 {\n constructor(current, next, dispose) {\n this.current = current;\n this.next = next;\n this.dispose = dispose;\n }\n \"System.Collections.Generic.IEnumerator`1.get_Current\"() {\n const _ = this;\n return _.current();\n }\n \"System.Collections.IEnumerator.get_Current\"() {\n const _ = this;\n return _.current();\n }\n \"System.Collections.IEnumerator.MoveNext\"() {\n const _ = this;\n return _.next();\n }\n \"System.Collections.IEnumerator.Reset\"() {\n Enumerator_noReset();\n }\n Dispose() {\n const _ = this;\n _.dispose();\n }\n}\nexport function Enumerator_FromFunctions$1_$reflection(gen0) {\n return class_type(\"SeqModule.Enumerator.FromFunctions`1\", [gen0], Enumerator_FromFunctions$1);\n}\nexport function Enumerator_FromFunctions$1_$ctor_58C54629(current, next, dispose) {\n return new Enumerator_FromFunctions$1(current, next, dispose);\n}\nexport function Enumerator_cast(e) {\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => e[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), () => e[\"System.Collections.IEnumerator.MoveNext\"](), () => {\n disposeSafe(e);\n });\n}\nexport function Enumerator_concat(sources) {\n let outerOpt = undefined;\n let innerOpt = undefined;\n let started = false;\n let finished = false;\n let curr = undefined;\n const finish = () => {\n finished = true;\n if (innerOpt != null) {\n const inner = value_1(innerOpt);\n try {\n disposeSafe(inner);\n }\n finally {\n innerOpt = undefined;\n }\n }\n if (outerOpt != null) {\n const outer = value_1(outerOpt);\n try {\n disposeSafe(outer);\n }\n finally {\n outerOpt = undefined;\n }\n }\n };\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => {\n if (!started) {\n Enumerator_notStarted();\n }\n else if (finished) {\n Enumerator_alreadyFinished();\n }\n if (curr != null) {\n return value_1(curr);\n }\n else {\n return Enumerator_alreadyFinished();\n }\n }, () => {\n let copyOfStruct;\n if (!started) {\n started = true;\n }\n if (finished) {\n return false;\n }\n else {\n let res = undefined;\n while (res == null) {\n const outerOpt_1 = outerOpt;\n const innerOpt_1 = innerOpt;\n if (outerOpt_1 != null) {\n if (innerOpt_1 != null) {\n const inner_1 = value_1(innerOpt_1);\n if (inner_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n curr = some(inner_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n res = true;\n }\n else {\n try {\n disposeSafe(inner_1);\n }\n finally {\n innerOpt = undefined;\n }\n }\n }\n else {\n const outer_1 = value_1(outerOpt_1);\n if (outer_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const ie = outer_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n innerOpt = ((copyOfStruct = ie, getEnumerator(copyOfStruct)));\n }\n else {\n finish();\n res = false;\n }\n }\n }\n else {\n outerOpt = getEnumerator(sources);\n }\n }\n return value_1(res);\n }\n }, () => {\n if (!finished) {\n finish();\n }\n });\n}\nexport function Enumerator_enumerateThenFinally(f, e) {\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => e[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), () => e[\"System.Collections.IEnumerator.MoveNext\"](), () => {\n try {\n disposeSafe(e);\n }\n finally {\n f();\n }\n });\n}\nexport function Enumerator_generateWhileSome(openf, compute, closef) {\n let started = false;\n let curr = undefined;\n let state = some(openf());\n const dispose = () => {\n if (state != null) {\n const x_1 = value_1(state);\n try {\n closef(x_1);\n }\n finally {\n state = undefined;\n }\n }\n };\n const finish = () => {\n try {\n dispose();\n }\n finally {\n curr = undefined;\n }\n };\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => {\n if (!started) {\n Enumerator_notStarted();\n }\n if (curr != null) {\n return value_1(curr);\n }\n else {\n return Enumerator_alreadyFinished();\n }\n }, () => {\n if (!started) {\n started = true;\n }\n if (state != null) {\n const s = value_1(state);\n let matchValue_1;\n try {\n matchValue_1 = compute(s);\n }\n catch (matchValue) {\n finish();\n throw matchValue;\n }\n if (matchValue_1 != null) {\n curr = matchValue_1;\n return true;\n }\n else {\n finish();\n return false;\n }\n }\n else {\n return false;\n }\n }, dispose);\n}\nexport function Enumerator_unfold(f, state) {\n let curr = undefined;\n let acc = state;\n return Enumerator_FromFunctions$1_$ctor_58C54629(() => {\n if (curr != null) {\n const x = value_1(curr)[0];\n const st = value_1(curr)[1];\n return x;\n }\n else {\n return Enumerator_notStarted();\n }\n }, () => {\n curr = f(acc);\n if (curr != null) {\n const x_1 = value_1(curr)[0];\n const st_1 = value_1(curr)[1];\n acc = st_1;\n return true;\n }\n else {\n return false;\n }\n }, () => {\n });\n}\nexport function indexNotFound() {\n throw new Error(SR_keyNotFoundAlt);\n}\nexport function checkNonNull(argName, arg) {\n if (arg == null) {\n Operators_NullArg(argName);\n }\n}\nexport function mkSeq(f) {\n return Enumerator_Seq_$ctor_673A07F2(f);\n}\nexport function ofSeq(xs) {\n checkNonNull(\"source\", xs);\n return getEnumerator(xs);\n}\nexport function delay(generator) {\n return mkSeq(() => getEnumerator(generator()));\n}\nexport function concat(sources) {\n return mkSeq(() => Enumerator_concat(sources));\n}\nexport function unfold(generator, state) {\n return mkSeq(() => Enumerator_unfold(generator, state));\n}\nexport function empty() {\n return delay(() => (new Array(0)));\n}\nexport function singleton(x) {\n return delay(() => singleton_1(x));\n}\nexport function ofArray(arr) {\n return arr;\n}\nexport function toArray(xs) {\n if (xs instanceof FSharpList) {\n const a = xs;\n return toArray_1(a);\n }\n else {\n return Array.from(xs);\n }\n}\nexport function ofList(xs) {\n return xs;\n}\nexport function toList(xs) {\n if (isArrayLike(xs)) {\n return ofArray_1(xs);\n }\n else if (xs instanceof FSharpList) {\n return xs;\n }\n else {\n return ofSeq_1(xs);\n }\n}\nexport function generate(create, compute, dispose) {\n return mkSeq(() => Enumerator_generateWhileSome(create, compute, dispose));\n}\nexport function generateIndexed(create, compute, dispose) {\n return mkSeq(() => {\n let i = -1;\n return Enumerator_generateWhileSome(create, (x) => {\n i = ((i + 1) | 0);\n return compute(i, x);\n }, dispose);\n });\n}\nexport function append(xs, ys) {\n return concat([xs, ys]);\n}\nexport function cast(xs) {\n return mkSeq(() => {\n checkNonNull(\"source\", xs);\n return Enumerator_cast(getEnumerator(xs));\n });\n}\nexport function choose(chooser, xs) {\n return generate(() => ofSeq(xs), (e) => {\n let curr = undefined;\n while ((curr == null) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n curr = chooser(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return curr;\n }, (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function compareWith(comparer, xs, ys) {\n const e1 = ofSeq(xs);\n try {\n const e2 = ofSeq(ys);\n try {\n let c = 0;\n let b1 = e1[\"System.Collections.IEnumerator.MoveNext\"]();\n let b2 = e2[\"System.Collections.IEnumerator.MoveNext\"]();\n while (((c === 0) && b1) && b2) {\n c = (comparer(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) | 0);\n if (c === 0) {\n b1 = e1[\"System.Collections.IEnumerator.MoveNext\"]();\n b2 = e2[\"System.Collections.IEnumerator.MoveNext\"]();\n }\n }\n return ((c !== 0) ? c : (b1 ? 1 : (b2 ? -1 : 0))) | 0;\n }\n finally {\n disposeSafe(e2);\n }\n }\n finally {\n disposeSafe(e1);\n }\n}\nexport function contains(value, xs, comparer) {\n const e = ofSeq(xs);\n try {\n let found = false;\n while (!found && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n found = comparer.Equals(value, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return found;\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function enumerateFromFunctions(create, moveNext, current) {\n return generate(create, (x) => (moveNext(x) ? some(current(x)) : undefined), (x_1) => {\n const matchValue = x_1;\n if (isDisposable(matchValue)) {\n const id = matchValue;\n disposeSafe(id);\n }\n });\n}\nexport function enumerateThenFinally(source, compensation) {\n const compensation_1 = compensation;\n return mkSeq(() => {\n try {\n return Enumerator_enumerateThenFinally(compensation_1, ofSeq(source));\n }\n catch (matchValue) {\n compensation_1();\n throw matchValue;\n }\n });\n}\nexport function enumerateUsing(resource, source) {\n const compensation = () => {\n if (equals(resource, defaultOf())) {\n }\n else {\n let copyOfStruct = resource;\n disposeSafe(copyOfStruct);\n }\n };\n return mkSeq(() => {\n try {\n return Enumerator_enumerateThenFinally(compensation, ofSeq(source(resource)));\n }\n catch (matchValue_1) {\n compensation();\n throw matchValue_1;\n }\n });\n}\nexport function enumerateWhile(guard, xs) {\n return concat(unfold((i) => (guard() ? [xs, i + 1] : undefined), 0));\n}\nexport function filter(f, xs) {\n return choose((x) => {\n if (f(x)) {\n return some(x);\n }\n else {\n return undefined;\n }\n }, xs);\n}\nexport function exists(predicate, xs) {\n const e = ofSeq(xs);\n try {\n let found = false;\n while (!found && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n found = predicate(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return found;\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function exists2(predicate, xs, ys) {\n const e1 = ofSeq(xs);\n try {\n const e2 = ofSeq(ys);\n try {\n let found = false;\n while ((!found && e1[\"System.Collections.IEnumerator.MoveNext\"]()) && e2[\"System.Collections.IEnumerator.MoveNext\"]()) {\n found = predicate(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return found;\n }\n finally {\n disposeSafe(e2);\n }\n }\n finally {\n disposeSafe(e1);\n }\n}\nexport function exactlyOne(xs) {\n const e = ofSeq(xs);\n try {\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const v = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n throw new Error((SR_inputSequenceTooLong + \"\\\\nParameter name: \") + \"source\");\n }\n else {\n return v;\n }\n }\n else {\n throw new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"source\");\n }\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function tryExactlyOne(xs) {\n const e = ofSeq(xs);\n try {\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const v = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? undefined : some(v);\n }\n else {\n return undefined;\n }\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function tryFind(predicate, xs) {\n const e = ofSeq(xs);\n try {\n let res = undefined;\n while ((res == null) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const c = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (predicate(c)) {\n res = some(c);\n }\n }\n return res;\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function find(predicate, xs) {\n const matchValue = tryFind(predicate, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function tryFindBack(predicate, xs) {\n return tryFindBack_1(predicate, toArray(xs));\n}\nexport function findBack(predicate, xs) {\n const matchValue = tryFindBack(predicate, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function tryFindIndex(predicate, xs) {\n const e = ofSeq(xs);\n try {\n const loop = (i_mut) => {\n loop: while (true) {\n const i = i_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n if (predicate(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) {\n return i;\n }\n else {\n i_mut = (i + 1);\n continue loop;\n }\n }\n else {\n return undefined;\n }\n break;\n }\n };\n return loop(0);\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function findIndex(predicate, xs) {\n const matchValue = tryFindIndex(predicate, xs);\n if (matchValue == null) {\n indexNotFound();\n return -1;\n }\n else {\n return value_1(matchValue) | 0;\n }\n}\nexport function tryFindIndexBack(predicate, xs) {\n return tryFindIndexBack_1(predicate, toArray(xs));\n}\nexport function findIndexBack(predicate, xs) {\n const matchValue = tryFindIndexBack(predicate, xs);\n if (matchValue == null) {\n indexNotFound();\n return -1;\n }\n else {\n return value_1(matchValue) | 0;\n }\n}\nexport function fold(folder, state, xs) {\n const e = ofSeq(xs);\n try {\n let acc = state;\n while (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n acc = folder(acc, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return acc;\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function foldBack(folder, xs, state) {\n return foldBack_1(folder, toArray(xs), state);\n}\nexport function fold2(folder, state, xs, ys) {\n const e1 = ofSeq(xs);\n try {\n const e2 = ofSeq(ys);\n try {\n let acc = state;\n while (e1[\"System.Collections.IEnumerator.MoveNext\"]() && e2[\"System.Collections.IEnumerator.MoveNext\"]()) {\n acc = folder(acc, e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return acc;\n }\n finally {\n disposeSafe(e2);\n }\n }\n finally {\n disposeSafe(e1);\n }\n}\nexport function foldBack2(folder, xs, ys, state) {\n return foldBack2_1(folder, toArray(xs), toArray(ys), state);\n}\nexport function forAll(predicate, xs) {\n return !exists((x) => !predicate(x), xs);\n}\nexport function forAll2(predicate, xs, ys) {\n return !exists2((x, y) => !predicate(x, y), xs, ys);\n}\nexport function tryHead(xs) {\n if (isArrayLike(xs)) {\n return tryHead_1(xs);\n }\n else if (xs instanceof FSharpList) {\n return tryHead_2(xs);\n }\n else {\n const e = ofSeq(xs);\n try {\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : undefined;\n }\n finally {\n disposeSafe(e);\n }\n }\n}\nexport function head(xs) {\n const matchValue = tryHead(xs);\n if (matchValue == null) {\n throw new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"source\");\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function initialize(count, f) {\n return unfold((i) => ((i < count) ? [f(i), i + 1] : undefined), 0);\n}\nexport function initializeInfinite(f) {\n return initialize(2147483647, f);\n}\nexport function isEmpty(xs) {\n if (isArrayLike(xs)) {\n const a = xs;\n return a.length === 0;\n }\n else if (xs instanceof FSharpList) {\n return isEmpty_1(xs);\n }\n else {\n const e = ofSeq(xs);\n try {\n return !e[\"System.Collections.IEnumerator.MoveNext\"]();\n }\n finally {\n disposeSafe(e);\n }\n }\n}\nexport function tryItem(index, xs) {\n if (isArrayLike(xs)) {\n return tryItem_1(index, xs);\n }\n else if (xs instanceof FSharpList) {\n return tryItem_2(index, xs);\n }\n else {\n const e = ofSeq(xs);\n try {\n const loop = (index_1_mut) => {\n loop: while (true) {\n const index_1 = index_1_mut;\n if (!e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return undefined;\n }\n else if (index_1 === 0) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n index_1_mut = (index_1 - 1);\n continue loop;\n }\n break;\n }\n };\n return loop(index);\n }\n finally {\n disposeSafe(e);\n }\n }\n}\nexport function item(index, xs) {\n const matchValue = tryItem(index, xs);\n if (matchValue == null) {\n throw new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"index\");\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function iterate(action, xs) {\n fold((unitVar, x) => {\n action(x);\n }, undefined, xs);\n}\nexport function iterate2(action, xs, ys) {\n fold2((unitVar, x, y) => {\n action(x, y);\n }, undefined, xs, ys);\n}\nexport function iterateIndexed(action, xs) {\n fold((i, x) => {\n action(i, x);\n return (i + 1) | 0;\n }, 0, xs);\n}\nexport function iterateIndexed2(action, xs, ys) {\n fold2((i, x, y) => {\n action(i, x, y);\n return (i + 1) | 0;\n }, 0, xs, ys);\n}\nexport function tryLast(xs) {\n const e = ofSeq(xs);\n try {\n const loop = (acc_mut) => {\n loop: while (true) {\n const acc = acc_mut;\n if (!e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return acc;\n }\n else {\n acc_mut = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n continue loop;\n }\n break;\n }\n };\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(loop(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : undefined;\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function last(xs) {\n const matchValue = tryLast(xs);\n if (matchValue == null) {\n throw new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"source\");\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function length(xs) {\n if (isArrayLike(xs)) {\n const a = xs;\n return a.length | 0;\n }\n else if (xs instanceof FSharpList) {\n return length_1(xs) | 0;\n }\n else {\n const e = ofSeq(xs);\n try {\n let count = 0;\n while (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n count = ((count + 1) | 0);\n }\n return count | 0;\n }\n finally {\n disposeSafe(e);\n }\n }\n}\nexport function map(mapping, xs) {\n return generate(() => ofSeq(xs), (e) => (e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(mapping(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : undefined), (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function mapIndexed(mapping, xs) {\n return generateIndexed(() => ofSeq(xs), (i, e) => (e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(mapping(i, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : undefined), (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\nexport function map2(mapping, xs, ys) {\n return generate(() => [ofSeq(xs), ofSeq(ys)], (tupledArg) => {\n const e1 = tupledArg[0];\n const e2 = tupledArg[1];\n return (e1[\"System.Collections.IEnumerator.MoveNext\"]() && e2[\"System.Collections.IEnumerator.MoveNext\"]()) ? some(mapping(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : undefined;\n }, (tupledArg_1) => {\n try {\n disposeSafe(tupledArg_1[0]);\n }\n finally {\n disposeSafe(tupledArg_1[1]);\n }\n });\n}\nexport function mapIndexed2(mapping, xs, ys) {\n return generateIndexed(() => [ofSeq(xs), ofSeq(ys)], (i, tupledArg) => {\n const e1 = tupledArg[0];\n const e2 = tupledArg[1];\n return (e1[\"System.Collections.IEnumerator.MoveNext\"]() && e2[\"System.Collections.IEnumerator.MoveNext\"]()) ? some(mapping(i, e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : undefined;\n }, (tupledArg_1) => {\n try {\n disposeSafe(tupledArg_1[0]);\n }\n finally {\n disposeSafe(tupledArg_1[1]);\n }\n });\n}\nexport function map3(mapping, xs, ys, zs) {\n return generate(() => [ofSeq(xs), ofSeq(ys), ofSeq(zs)], (tupledArg) => {\n const e1 = tupledArg[0];\n const e2 = tupledArg[1];\n const e3 = tupledArg[2];\n return ((e1[\"System.Collections.IEnumerator.MoveNext\"]() && e2[\"System.Collections.IEnumerator.MoveNext\"]()) && e3[\"System.Collections.IEnumerator.MoveNext\"]()) ? some(mapping(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), e3[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) : undefined;\n }, (tupledArg_1) => {\n try {\n disposeSafe(tupledArg_1[0]);\n }\n finally {\n try {\n disposeSafe(tupledArg_1[1]);\n }\n finally {\n disposeSafe(tupledArg_1[2]);\n }\n }\n });\n}\nexport function readOnly(xs) {\n checkNonNull(\"source\", xs);\n return map((x) => x, xs);\n}\nexport class CachedSeq$1 {\n constructor(cleanup, res) {\n this.cleanup = cleanup;\n this.res = res;\n }\n Dispose() {\n const _ = this;\n _.cleanup();\n }\n GetEnumerator() {\n const _ = this;\n return getEnumerator(_.res);\n }\n [Symbol.iterator]() {\n return toIterator(getEnumerator(this));\n }\n \"System.Collections.IEnumerable.GetEnumerator\"() {\n const _ = this;\n return getEnumerator(_.res);\n }\n}\nexport function CachedSeq$1_$reflection(gen0) {\n return class_type(\"SeqModule.CachedSeq`1\", [gen0], CachedSeq$1);\n}\nexport function CachedSeq$1_$ctor_Z7A8347D4(cleanup, res) {\n return new CachedSeq$1(cleanup, res);\n}\nexport function CachedSeq$1__Clear(_) {\n _.cleanup();\n}\nexport function cache(source) {\n checkNonNull(\"source\", source);\n const prefix = [];\n let enumeratorR = undefined;\n return CachedSeq$1_$ctor_Z7A8347D4(() => {\n Operators_Lock(prefix, () => {\n clear(prefix);\n let matchResult, e;\n if (enumeratorR != null) {\n if (value_1(enumeratorR) != null) {\n matchResult = 0;\n e = value_1(value_1(enumeratorR));\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0: {\n disposeSafe(e);\n break;\n }\n }\n enumeratorR = undefined;\n });\n }, unfold((i_1) => Operators_Lock(prefix, () => {\n if (i_1 < prefix.length) {\n return [prefix[i_1], i_1 + 1];\n }\n else {\n if (i_1 >= prefix.length) {\n let optEnumerator_2;\n if (enumeratorR != null) {\n optEnumerator_2 = value_1(enumeratorR);\n }\n else {\n const optEnumerator = getEnumerator(source);\n enumeratorR = some(optEnumerator);\n optEnumerator_2 = optEnumerator;\n }\n if (optEnumerator_2 == null) {\n }\n else {\n const enumerator = value_1(optEnumerator_2);\n if (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n void (prefix.push(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()));\n }\n else {\n disposeSafe(enumerator);\n enumeratorR = some(undefined);\n }\n }\n }\n if (i_1 < prefix.length) {\n return [prefix[i_1], i_1 + 1];\n }\n else {\n return undefined;\n }\n }\n }), 0));\n}\nexport function allPairs(xs, ys) {\n const ysCache = cache(ys);\n return delay(() => concat(map((x) => map((y) => [x, y], ysCache), xs)));\n}\nexport function mapFold(mapping, state, xs) {\n const patternInput = mapFold_1(mapping, state, toArray(xs));\n return [readOnly(patternInput[0]), patternInput[1]];\n}\nexport function mapFoldBack(mapping, xs, state) {\n const patternInput = mapFoldBack_1(mapping, toArray(xs), state);\n return [readOnly(patternInput[0]), patternInput[1]];\n}\nexport function tryPick(chooser, xs) {\n const e = ofSeq(xs);\n try {\n let res = undefined;\n while ((res == null) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n res = chooser(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n return res;\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function pick(chooser, xs) {\n const matchValue = tryPick(chooser, xs);\n if (matchValue == null) {\n return indexNotFound();\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function reduce(folder, xs) {\n const e = ofSeq(xs);\n try {\n const loop = (acc_mut) => {\n loop: while (true) {\n const acc = acc_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n acc_mut = folder(acc, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n continue loop;\n }\n else {\n return acc;\n }\n break;\n }\n };\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return loop(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n throw new Error(SR_inputSequenceEmpty);\n }\n }\n finally {\n disposeSafe(e);\n }\n}\nexport function reduceBack(folder, xs) {\n const arr = toArray(xs);\n if (arr.length > 0) {\n return arr.reduceRight(folder);\n }\n else {\n throw new Error(SR_inputSequenceEmpty);\n }\n}\nexport function replicate(n, x) {\n return initialize(n, (_arg) => x);\n}\nexport function reverse(xs) {\n return delay(() => ofArray(reverse_1(toArray(xs))));\n}\nexport function scan(folder, state, xs) {\n return delay(() => {\n let acc = state;\n return concat([singleton(state), map((x) => {\n acc = folder(acc, x);\n return acc;\n }, xs)]);\n });\n}\nexport function scanBack(folder, xs, state) {\n return delay(() => ofArray(scanBack_1(folder, toArray(xs), state)));\n}\nexport function skip(count, source) {\n return mkSeq(() => {\n const e = ofSeq(source);\n try {\n for (let _ = 1; _ <= count; _++) {\n if (!e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n throw new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"source\");\n }\n }\n return Enumerator_enumerateThenFinally(() => {\n }, e);\n }\n catch (matchValue) {\n disposeSafe(e);\n throw matchValue;\n }\n });\n}\nexport function skipWhile(predicate, xs) {\n return delay(() => {\n let skipped = true;\n return filter((x) => {\n if (skipped) {\n skipped = predicate(x);\n }\n return !skipped;\n }, xs);\n });\n}\nexport function tail(xs) {\n return skip(1, xs);\n}\nexport function take(count, xs) {\n return generateIndexed(() => ofSeq(xs), (i, e) => {\n if (i < count) {\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n throw new Error((SR_notEnoughElements + \"\\\\nParameter name: \") + \"source\");\n }\n }\n else {\n return undefined;\n }\n }, (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function takeWhile(predicate, xs) {\n return generate(() => ofSeq(xs), (e) => ((e[\"System.Collections.IEnumerator.MoveNext\"]() && predicate(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]())) ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : undefined), (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function truncate(count, xs) {\n return generateIndexed(() => ofSeq(xs), (i, e) => (((i < count) && e[\"System.Collections.IEnumerator.MoveNext\"]()) ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : undefined), (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\nexport function collect(mapping, xs) {\n return delay(() => concat(map(mapping, xs)));\n}\nexport function where(predicate, xs) {\n return filter(predicate, xs);\n}\nexport function pairwise(xs) {\n return delay(() => ofArray(pairwise_1(toArray(xs))));\n}\nexport function splitInto(chunks, xs) {\n return delay(() => ofArray(splitInto_1(chunks, toArray(xs))));\n}\nexport function windowed(windowSize, xs) {\n return delay(() => ofArray(windowed_1(windowSize, toArray(xs))));\n}\nexport function transpose(xss) {\n return delay(() => ofArray(map_1(ofArray, transpose_1(map_1(toArray, toArray(xss))))));\n}\nexport function sortWith(comparer, xs) {\n return delay(() => {\n const arr = toArray(xs);\n arr.sort(comparer);\n return ofArray(arr);\n });\n}\nexport function sort(xs, comparer) {\n return sortWith((x, y) => comparer.Compare(x, y), xs);\n}\nexport function sortBy(projection, xs, comparer) {\n return sortWith((x, y) => comparer.Compare(projection(x), projection(y)), xs);\n}\nexport function sortDescending(xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(x, y) * -1), xs);\n}\nexport function sortByDescending(projection, xs, comparer) {\n return sortWith((x, y) => (comparer.Compare(projection(x), projection(y)) * -1), xs);\n}\nexport function sum(xs, adder) {\n return fold((acc, x) => adder.Add(acc, x), adder.GetZero(), xs);\n}\nexport function sumBy(f, xs, adder) {\n return fold((acc, x) => adder.Add(acc, f(x)), adder.GetZero(), xs);\n}\nexport function maxBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? y : x), xs);\n}\nexport function max(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? y : x), xs);\n}\nexport function minBy(projection, xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(projection(y), projection(x)) > 0) ? x : y), xs);\n}\nexport function min(xs, comparer) {\n return reduce((x, y) => ((comparer.Compare(y, x) > 0) ? x : y), xs);\n}\nexport function average(xs, averager) {\n let count = 0;\n const total = fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, x);\n }, averager.GetZero(), xs);\n if (count === 0) {\n throw new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"source\");\n }\n else {\n return averager.DivideByInt(total, count);\n }\n}\nexport function averageBy(f, xs, averager) {\n let count = 0;\n const total = fold((acc, x) => {\n count = ((count + 1) | 0);\n return averager.Add(acc, f(x));\n }, averager.GetZero(), xs);\n if (count === 0) {\n throw new Error((SR_inputSequenceEmpty + \"\\\\nParameter name: \") + \"source\");\n }\n else {\n return averager.DivideByInt(total, count);\n }\n}\nexport function permute(f, xs) {\n return delay(() => ofArray(permute_1(f, toArray(xs))));\n}\nexport function chunkBySize(chunkSize, xs) {\n return delay(() => ofArray(chunkBySize_1(chunkSize, toArray(xs))));\n}\nexport function insertAt(index, y, xs) {\n let isDone = false;\n if (index < 0) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return generateIndexed(() => ofSeq(xs), (i, e) => {\n if ((isDone ? true : (i < index)) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else if (i === index) {\n isDone = true;\n return some(y);\n }\n else {\n if (!isDone) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return undefined;\n }\n }, (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function insertManyAt(index, ys, xs) {\n let status = -1;\n if (index < 0) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return generateIndexed(() => [ofSeq(xs), ofSeq(ys)], (i, tupledArg) => {\n const e1 = tupledArg[0];\n const e2 = tupledArg[1];\n if (i === index) {\n status = 0;\n }\n let inserted;\n if (status === 0) {\n if (e2[\"System.Collections.IEnumerator.MoveNext\"]()) {\n inserted = some(e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n status = 1;\n inserted = undefined;\n }\n }\n else {\n inserted = undefined;\n }\n if (inserted == null) {\n if (e1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return some(e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n if (status < 1) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return undefined;\n }\n }\n else {\n return some(value_1(inserted));\n }\n }, (tupledArg_1) => {\n disposeSafe(tupledArg_1[0]);\n disposeSafe(tupledArg_1[1]);\n });\n}\nexport function removeAt(index, xs) {\n let isDone = false;\n if (index < 0) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return generateIndexed(() => ofSeq(xs), (i, e) => {\n if ((isDone ? true : (i < index)) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else if ((i === index) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n isDone = true;\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : undefined;\n }\n else {\n if (!isDone) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return undefined;\n }\n }, (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function removeManyAt(index, count, xs) {\n if (index < 0) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return generateIndexed(() => ofSeq(xs), (i, e) => {\n if (i < index) {\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n }\n else {\n if (i === index) {\n for (let _ = 1; _ <= count; _++) {\n if (!e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"count\");\n }\n }\n }\n return e[\"System.Collections.IEnumerator.MoveNext\"]() ? some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]()) : undefined;\n }\n }, (e_1) => {\n disposeSafe(e_1);\n });\n}\nexport function updateAt(index, y, xs) {\n let isDone = false;\n if (index < 0) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return generateIndexed(() => ofSeq(xs), (i, e) => {\n if ((isDone ? true : (i < index)) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return some(e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n }\n else if ((i === index) && e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n isDone = true;\n return some(y);\n }\n else {\n if (!isDone) {\n throw new Error((SR_indexOutOfBounds + \"\\\\nParameter name: \") + \"index\");\n }\n return undefined;\n }\n }, (e_1) => {\n disposeSafe(e_1);\n });\n}\n","import { disposeSafe, defaultOf, structuralHash, equals } from \"./Util.js\";\nimport { HashIdentity_Structural, ComparisonIdentity_Structural } from \"./FSharp.Collections.js\";\nimport { StringBuilder__Append_Z721C83C5 } from \"./System.Text.js\";\nexport const LanguagePrimitives_GenericEqualityComparer = {\n \"System.Collections.IEqualityComparer.Equals541DA560\"(x, y) {\n return equals(x, y);\n },\n \"System.Collections.IEqualityComparer.GetHashCode4E60E31B\"(x_1) {\n return structuralHash(x_1);\n },\n};\nexport const LanguagePrimitives_GenericEqualityERComparer = {\n \"System.Collections.IEqualityComparer.Equals541DA560\"(x, y) {\n return equals(x, y);\n },\n \"System.Collections.IEqualityComparer.GetHashCode4E60E31B\"(x_1) {\n return structuralHash(x_1);\n },\n};\nexport function LanguagePrimitives_FastGenericComparer() {\n return ComparisonIdentity_Structural();\n}\nexport function LanguagePrimitives_FastGenericComparerFromTable() {\n return ComparisonIdentity_Structural();\n}\nexport function LanguagePrimitives_FastGenericEqualityComparer() {\n return HashIdentity_Structural();\n}\nexport function LanguagePrimitives_FastGenericEqualityComparerFromTable() {\n return HashIdentity_Structural();\n}\nexport function Operators_Failure(message) {\n return new Error(message);\n}\nexport function Operators_FailurePattern(exn) {\n return exn.message;\n}\nexport function Operators_NullArg(x) {\n throw new Error(x);\n}\nexport function Operators_Using(resource, action) {\n try {\n return action(resource);\n }\n finally {\n if (equals(resource, defaultOf())) {\n }\n else {\n let copyOfStruct = resource;\n disposeSafe(copyOfStruct);\n }\n }\n}\nexport function Operators_Lock(_lockObj, action) {\n return action();\n}\nexport function ExtraTopLevelOperators_LazyPattern(input) {\n return input.Value;\n}\nexport function PrintfModule_PrintFormatToStringBuilderThen(continuation, builder, format) {\n return format.cont((s) => {\n StringBuilder__Append_Z721C83C5(builder, s);\n return continuation();\n });\n}\nexport function PrintfModule_PrintFormatToStringBuilder(builder, format) {\n return PrintfModule_PrintFormatToStringBuilderThen(() => {\n }, builder, format);\n}\n","import { useLayoutEffectWithDeps, useLayoutEffect, useEffectWithDeps, useEffect, useDebugValue } from \"./ReactInterop.js\";\nimport { class_type } from \"../fable-library-js.4.17.0/Reflection.js\";\nimport { iterate } from \"../fable-library-js.4.17.0/Seq.js\";\nimport { unwrap, some, map, defaultArg, toArray } from \"../fable-library-js.4.17.0/Option.js\";\nimport { Interop_reactApi } from \"./Interop.fs.js\";\nimport { disposeSafe, defaultOf, curry2, uncurry2 } from \"../fable-library-js.4.17.0/Util.js\";\nimport { useState } from \"react\";\nimport * as react from \"react\";\n\nexport const ReactInterop_useDebugValueWithFormatter = useDebugValue;\n\nexport const ReactInterop_useEffect = useEffect;\n\nexport const ReactInterop_useEffectWithDeps = useEffectWithDeps;\n\nexport const ReactInterop_useLayoutEffect = useLayoutEffect;\n\nexport const ReactInterop_useLayoutEffectWithDeps = useLayoutEffectWithDeps;\n\nexport class Internal {\n constructor() {\n }\n}\n\nexport function Internal_$reflection() {\n return class_type(\"Feliz.Internal\", undefined, Internal);\n}\n\nexport function Internal_$ctor() {\n return new Internal();\n}\n\n\nexport function Internal_functionComponent_Z45822769(renderElement, name, withKey) {\n iterate((name_1) => {\n renderElement.displayName = name_1;\n }, toArray(name));\n return (props) => {\n const props_2 = Internal_propsWithKey(withKey, props);\n return Interop_reactApi.createElement(renderElement, props_2);\n };\n}\n\nexport function Internal_memo_Z1716C242(renderElement, name, areEqual, withKey) {\n const memoElementType = Interop_reactApi.memo(renderElement, uncurry2(defaultArg(map(curry2, areEqual), defaultOf())));\n iterate((name_1) => {\n renderElement.displayName = name_1;\n }, toArray(name));\n return (props) => {\n const props_2 = Internal_propsWithKey(withKey, props);\n return Interop_reactApi.createElement(memoElementType, props_2);\n };\n}\n\nexport function Internal_propsWithKey(withKey, props) {\n if (withKey == null) {\n return props;\n }\n else {\n const f = withKey;\n props.key = f(props);\n return props;\n }\n}\n\nexport class React {\n constructor() {\n }\n}\n\nexport function React_$reflection() {\n return class_type(\"Feliz.React\", undefined, React);\n}\n\n/**\n * Creates a disposable instance by providing the implementation of the dispose member.\n */\nexport function React_createDisposable_3A5B6456(dispose) {\n return {\n Dispose() {\n dispose();\n },\n };\n}\n\n/**\n * The `useState` hook that creates a state variable for React function components from an initialization function.\n */\nexport function useReact_useState_FCFD9EF(initializer) {\n return Interop_reactApi.useState(initializer);\n}\n\n/**\n * Accepts a reducer and returns the current state paired with a dispatch.\n */\nexport function useReact_useReducer_2B9E6EA0(update, initialState) {\n const arg = update;\n return Interop_reactApi.useReducer(arg, initialState);\n}\n\n/**\n * The `useEffect` hook that creates a disposable effect for React function components.\n * This effect has no dependencies which means the effect is re-executed on every re-render.\n * To make the effect run once (for example you subscribe once to web sockets) then provide an empty array\n * for the dependencies: `React.useEffect(disposableEffect, [| |])`.\n */\nexport function useReact_useEffect_Z5ECA432F(effect) {\n ReactInterop_useEffect(effect);\n}\n\n/**\n * The `useEffect` hook that creates a disposable effect for React function components.\n * This effect takes an array of *dependencies*.\n * Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\n * you have to explicitly provide an empty array for the dependencies: `React.useEffect(effect, [| |])`.\n */\nexport function useReact_useEffect_7331F961(effect, dependencies) {\n ReactInterop_useEffectWithDeps(effect, dependencies);\n}\n\n/**\n * The `useLayoutEffect` hook that creates a disposable effect for React function components.\n * This effect has no dependencies which means the effect is re-executed on every re-render.\n * To make the effect run once (for example you subscribe once to web sockets) then provide an empty array\n * for the dependencies: `React.useLayoutEffect(disposableEffect, [| |])`.\n * The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\n */\nexport function useReact_useLayoutEffect_Z5ECA432F(effect) {\n ReactInterop_useLayoutEffect(effect);\n}\n\n/**\n * The `useLayoutEffect` hook that creates a disposable effect for React function components.\n * This effect takes an array of *dependencies*.\n * Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\n * you have to explicitly provide an empty array for the dependencies: `React.useLayoutEffect(effect, [| |])`.\n * The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\n */\nexport function useReact_useLayoutEffect_7331F961(effect, dependencies) {\n ReactInterop_useLayoutEffectWithDeps(effect, dependencies);\n}\n\n/**\n * The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\n * This effect is executed on every (re)render\n */\nexport function useReact_useLayoutEffect_3A5B6456(effect) {\n ReactInterop_useLayoutEffect((_arg) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n });\n}\n\n/**\n * The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\n */\nexport function useReact_useLayoutEffect_311B4086(effect, dependencies) {\n ReactInterop_useLayoutEffectWithDeps((_arg) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n }, dependencies);\n}\n\n/**\n * React hook to define and use an effect only once when a function component renders for the first time.\n * This is an alias for `React.useEffect(effect, [| |])` which explicitly provides an empty array for the dependencies of the effect which means the effect will only run once.\n */\nexport function useReact_useEffectOnce_3A5B6456(effect) {\n const calledOnce = Interop_reactApi.useRef(false);\n useReact_useEffect_311B4086(() => {\n if (calledOnce.current) {\n }\n else {\n calledOnce.current = true;\n effect();\n }\n }, []);\n}\n\n/**\n * React hook to define and use a disposable effect only once when a function component renders for the first time.\n * This is an alias for `React.useEffect(effect, [| |])` which explicitly provides an empty array for the dependencies of the effect which means the effect will only run once.\n */\nexport function useReact_useEffectOnce_Z5ECA432F(effect) {\n const destroyFunc = Interop_reactApi.useRef(undefined);\n const calledOnce = Interop_reactApi.useRef(false);\n const renderAfterCalled = Interop_reactApi.useRef(false);\n if (calledOnce.current) {\n renderAfterCalled.current = true;\n }\n useReact_useEffect_7331F961(() => {\n let disposeOption;\n if (calledOnce.current) {\n disposeOption = undefined;\n }\n else {\n calledOnce.current = true;\n destroyFunc.current = some(effect());\n disposeOption = (renderAfterCalled.current ? destroyFunc.current : undefined);\n }\n return {\n Dispose() {\n iterate((d) => {\n let copyOfStruct = d;\n disposeSafe(copyOfStruct);\n }, toArray(disposeOption));\n },\n };\n }, []);\n}\n\n/**\n * React hook to define and use a disposable effect only once when a function component renders for the first time.\n * This is an alias for `React.useEffect(effect, [| |])` which explicitly provide an empty array for the dependencies of the effect which means the effect will only run once.\n */\nexport function useReact_useEffectOnce_69320292(effect) {\n const destroyFunc = Interop_reactApi.useRef(undefined);\n const calledOnce = Interop_reactApi.useRef(false);\n const renderAfterCalled = Interop_reactApi.useRef(false);\n if (calledOnce.current) {\n renderAfterCalled.current = true;\n }\n useReact_useEffect_7331F961(() => {\n let disposeOption;\n if (calledOnce.current) {\n disposeOption = undefined;\n }\n else {\n calledOnce.current = true;\n destroyFunc.current = effect();\n disposeOption = (renderAfterCalled.current ? destroyFunc.current : undefined);\n }\n return {\n Dispose() {\n iterate((d) => {\n let copyOfStruct = d;\n disposeSafe(copyOfStruct);\n }, toArray(disposeOption));\n },\n };\n }, []);\n}\n\n/**\n * The `useEffect` hook that creates an effect for React function components.\n * This effect is executed *every time* the function component re-renders.\n * \n * To make the effect run only once, write: `React.useEffect(effect, [| |])` which explicitly states\n * that this effect has no dependencies and should only run once on initial render.\n */\nexport function useReact_useEffect_3A5B6456(effect) {\n ReactInterop_useEffect((_arg) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n });\n}\n\n/**\n * The `useEffect` hook that creates an effect for React function components. This effect takes an array of *dependencies*.\n * Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\n * you have to explicitly provide an empty array for the dependencies: `React.useEffect(effect, [| |])`.\n */\nexport function useReact_useEffect_311B4086(effect, dependencies) {\n ReactInterop_useEffectWithDeps((_arg) => {\n effect();\n return React_createDisposable_3A5B6456(() => {\n });\n }, dependencies);\n}\n\n/**\n * Can be used to display a label for custom hooks in React DevTools.\n */\nexport function useReact_useDebugValue_Z721C83C5(value) {\n ReactInterop_useDebugValueWithFormatter(value, (x) => x);\n}\n\n/**\n * Can be used to display a label for custom hooks in React DevTools.\n */\nexport function useReact_useDebugValue_77A55D6D(value, formatter) {\n ReactInterop_useDebugValueWithFormatter(value, formatter);\n}\n\n/**\n * The `useCallback` hook. Returns a memoized callback. Pass an inline callback and an array of dependencies.\n * `useCallback` will return a memoized version of the callback that only changes if one of the dependencies has changed.\n */\nexport function useReact_useCallback_1CA17B65(callbackFunction, dependencies) {\n const dependencies_1 = defaultArg(dependencies, []);\n return Interop_reactApi.useCallback(callbackFunction, dependencies_1);\n}\n\n/**\n * Returns a mutable ref object whose .current property is initialized to the passed argument (initialValue). The returned object will persist for the full lifetime of the component.\n * \n * Essentially, useRef is like a container that can hold a mutable value in its .current property.\n */\nexport function useReact_useRef_1505(initialValue) {\n return Interop_reactApi.useRef(initialValue);\n}\n\n/**\n * A specialized version of React.useRef() that creates a reference to an input element.\n * \n * Useful for controlling the internal properties and methods of that element, for example to enable focus().\n */\nexport function useReact_useInputRef() {\n return useReact_useRef_1505(undefined);\n}\n\n/**\n * A specialized version of React.useRef() that creates a reference to a button element.\n */\nexport function useReact_useButtonRef() {\n return useReact_useRef_1505(undefined);\n}\n\n/**\n * A specialized version of React.useRef() that creates a reference to a generic HTML element.\n * \n * Useful for controlling the internal properties and methods of that element, for integration with third-party libraries that require a Html element.\n */\nexport function useReact_useElementRef() {\n return useReact_useRef_1505(undefined);\n}\n\n/**\n * The `useMemo` hook. Returns a memoized value. Pass a \"create\" function and an array of dependencies.\n * `useMemo` will only recompute the memoized value when one of the dependencies has changed.\n */\nexport function useReact_useMemo_10C6A43C(createFunction, dependencies) {\n const dependencies_1 = defaultArg(dependencies, []);\n return Interop_reactApi.useMemo(createFunction, dependencies_1);\n}\n\n/**\n * Creates a React function component from a function that accepts a \"props\" object and renders a result.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_functionComponent_Z336EF691(render, withKey) {\n return Internal_functionComponent_Z45822769(render, undefined, unwrap(withKey));\n}\n\n/**\n * Creates a React function component from a function that accepts a \"props\" object and renders a result.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_functionComponent_50AC6514(name, render, withKey) {\n return Internal_functionComponent_Z45822769(render, name, unwrap(withKey));\n}\n\n/**\n * Creates a React function component from a function that accepts a \"props\" object and renders a result.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_functionComponent_Z552AB1C(render, withKey) {\n return Internal_functionComponent_Z45822769((arg) => {\n const xs = render(arg);\n return react.createElement(react.Fragment, {}, ...xs);\n }, undefined, unwrap(withKey));\n}\n\n/**\n * Creates a React function component from a function that accepts a \"props\" object and renders a result.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_functionComponent_Z32EE5C21(name, render, withKey) {\n return Internal_functionComponent_Z45822769((arg) => {\n const xs = render(arg);\n return react.createElement(react.Fragment, {}, ...xs);\n }, name, unwrap(withKey));\n}\n\n/**\n * `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\n * By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_memo_Z71E4ACFA(render, withKey, areEqual) {\n return Internal_memo_Z1716C242(render, undefined, unwrap(areEqual), unwrap(withKey));\n}\n\n/**\n * `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\n * By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_memo_Z496F9C23(name, render, withKey, areEqual) {\n return Internal_memo_Z1716C242(render, name, unwrap(areEqual), unwrap(withKey));\n}\n\n/**\n * `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\n * By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_memo_Z7F016AD3(render, withKey, areEqual) {\n return Internal_memo_Z1716C242((arg) => {\n const xs = render(arg);\n return react.createElement(react.Fragment, {}, ...xs);\n }, undefined, unwrap(areEqual), unwrap(withKey));\n}\n\n/**\n * `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\n * By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\n * A component key can be provided in the props object, or a custom `withKey` function can be provided.\n */\nexport function React_memo_Z4010840A(name, render, withKey, areEqual) {\n return Internal_memo_Z1716C242((arg) => {\n const xs = render(arg);\n return react.createElement(react.Fragment, {}, ...xs);\n }, name, unwrap(areEqual), unwrap(withKey));\n}\n\n/**\n * Creates a Context object. When React renders a component that subscribes to this Context object\n * it will read the current context value from the closest matching Provider above it in the tree.\n */\nexport function React_createContext_Z10F951C2(name, defaultValue) {\n const contextObject = Interop_reactApi.createContext(defaultArg(defaultValue, void 0));\n iterate((name_1) => {\n contextObject.displayName = name_1;\n }, toArray(name));\n return contextObject;\n}\n\n/**\n * A Provider component that allows consuming components to subscribe to context changes.\n */\nexport function React_contextProvider_34D9BBBD(contextObject, contextValue, child) {\n return Interop_reactApi.createElement(contextObject.Provider, {\n value: contextValue,\n }, child);\n}\n\n/**\n * A Provider component that allows consuming components to subscribe to context changes.\n */\nexport function React_contextProvider_138D2F56(contextObject, contextValue, children) {\n return Interop_reactApi.createElement(contextObject.Provider, {\n value: contextValue,\n }, ...children);\n}\n\n/**\n * A Consumer component that subscribes to context changes.\n */\nexport function React_contextConsumer_Z68910595(contextObject, render) {\n return Interop_reactApi.createElement(contextObject.Consumer, defaultOf(), render);\n}\n\n/**\n * A Consumer component that subscribes to context changes.\n */\nexport function React_contextConsumer_56D53A40(contextObject, render) {\n return Interop_reactApi.createElement(contextObject.Consumer, defaultOf(), (arg) => {\n const xs = render(arg);\n return react.createElement(react.Fragment, {}, ...xs);\n });\n}\n\n/**\n * The `useContext` hook. Accepts a context object (the value returned from React.createContext) and returns the current context value for that context.\n * The current context value is determined by the value prop of the nearest Provider component above the calling component in the tree.\n */\nexport function useReact_useContext_37FA55CF(contextObject) {\n return Interop_reactApi.useContext(contextObject);\n}\n\n/**\n * Creates a callback that keeps the same reference during the entire lifecycle of the component while having access to\n * the current value of the dependencies on every call.\n * \n * This hook should only be used for (like a dispatch) functions that are not used to provide information during render.\n * \n * This is not a complete replacement for the `useCallback` hook. It returns a callback that does not need explicit\n * dependency declarations and never causes a re-render.\n */\nexport function useReact_useCallbackRef_7C4B0DD6(callback) {\n const lastRenderCallbackRef = useReact_useRef_1505(callback);\n const callbackRef = useReact_useCallback_1CA17B65((arg) => lastRenderCallbackRef.current(arg), []);\n useReact_useLayoutEffect_3A5B6456(() => {\n lastRenderCallbackRef.current = callback;\n });\n return callbackRef;\n}\n\nexport const React_useStateWithUpdater_1505 = useState;\n\n/**\n * Forwards a given ref, allowing you to pass it further down to a child.\n */\nexport function React_forwardRef_3790D881(render) {\n const forwardRefType = Interop_reactApi.forwardRef((props, ref) => render([props, ref]));\n return (tupledArg) => {\n const propsObj = Object.assign({}, tupledArg[0]);\n propsObj.ref = tupledArg[1];\n return Interop_reactApi.createElement(forwardRefType, propsObj);\n };\n}\n\n/**\n * Forwards a given ref, allowing you to pass it further down to a child.\n */\nexport function React_forwardRef_7DC3DB1A(name, render) {\n const forwardRefType = Interop_reactApi.forwardRef((props, ref) => render([props, ref]));\n render.displayName = name;\n return (tupledArg) => {\n const propsObj = Object.assign({}, tupledArg[0]);\n propsObj.ref = tupledArg[1];\n return Interop_reactApi.createElement(forwardRefType, propsObj);\n };\n}\n\n/**\n * Highlights potential problems in an application by enabling additional checks\n * and warnings for descendants. As well as double rendering function components.\n * \n * This *does not do anything* in production mode. You do not need to hide it\n * with compiler directives.\n */\nexport function React_strictMode_1FEFDAB5(children) {\n return Interop_reactApi.createElement(Interop_reactApi.StrictMode, undefined, ...children);\n}\n\n/**\n * Lets you define a component that is loaded dynamically. Which helps with code splitting.\n */\nexport function React_lazy$0027_4712D3AE(dynamicImport, props) {\n return Interop_reactApi.createElement(Interop_reactApi.lazy(() => dynamicImport), props);\n}\n\n/**\n * Lets you define a component that is loaded dynamically. Which helps with code\n * splitting.\n */\nexport function React_lazy$0027_Z3D8450FC(dynamicImport, props) {\n return Interop_reactApi.createElement(Interop_reactApi.lazy(dynamicImport), props);\n}\n\n/**\n * Lets you specify a loading indicator whenever a child element is not yet ready\n * to render.\n * \n * Currently this is only usable with `React.lazy'`.\n */\nexport function React_suspense_1FEFDAB5(children) {\n let o;\n return Interop_reactApi.createElement(Interop_reactApi.Suspense, (o = {\n fallback: defaultOf(),\n }, Object.assign({}, o)), ...children);\n}\n\n/**\n * Lets you specify a loading indicator whenever a child element is not yet ready\n * to render.\n * \n * Currently this is only usable with `React.lazy'`.\n */\nexport function React_suspense_36DAE502(children, fallback) {\n let o;\n return Interop_reactApi.createElement(Interop_reactApi.Suspense, (o = {\n fallback: fallback,\n }, Object.assign({}, o)), ...children);\n}\n\n/**\n * Allows you to override the behavior of a given ref.\n */\nexport function useReact_useImperativeHandle_596DDC25(ref, createHandle) {\n Interop_reactApi.useImperativeHandle(ref, createHandle);\n}\n\n/**\n * Lets you specify a loading indicator whenever a child element is not yet ready\n * to render.\n * \n * Currently this is only usable with `React.lazy'`.\n */\nexport function useReact_useImperativeHandle_33F5CF55(ref, createHandle, dependencies) {\n Interop_reactApi.useImperativeHandle(ref, createHandle, dependencies);\n}\n\n/**\n * The `useState` hook that creates a state variable for React function components.\n */\nexport function useFeliz_React__React_useState_Static_1505(initial) {\n return Interop_reactApi.useState(initial);\n}\n\nexport const Feliz_React__React_useStateWithUpdater_Static_FCFD9EF = useState;\n\n","export var NumberStyles;\n(function (NumberStyles) {\n // None = 0x00000000,\n // AllowLeadingWhite = 0x00000001,\n // AllowTrailingWhite = 0x00000002,\n // AllowLeadingSign = 0x00000004,\n // AllowTrailingSign = 0x00000008,\n // AllowParentheses = 0x00000010,\n // AllowDecimalPoint = 0x00000020,\n // AllowThousands = 0x00000040,\n // AllowExponent = 0x00000080,\n // AllowCurrencySymbol = 0x00000100,\n NumberStyles[NumberStyles[\"AllowHexSpecifier\"] = 512] = \"AllowHexSpecifier\";\n // Integer = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign,\n // HexNumber = AllowLeadingWhite | AllowTrailingWhite | AllowHexSpecifier,\n // Number = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign |\n // AllowTrailingSign | AllowDecimalPoint | AllowThousands,\n // Float = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign |\n // AllowDecimalPoint | AllowExponent,\n // Currency = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowTrailingSign |\n // AllowParentheses | AllowDecimalPoint | AllowThousands | AllowCurrencySymbol,\n // Any = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowTrailingSign |\n // AllowParentheses | AllowDecimalPoint | AllowThousands | AllowCurrencySymbol | AllowExponent,\n})(NumberStyles || (NumberStyles = {}));\nfunction validResponse(regexMatch, radix) {\n const [/*all*/ , sign, prefix, digits] = regexMatch;\n return {\n sign: sign || \"\",\n prefix: prefix || \"\",\n digits,\n radix,\n };\n}\nfunction getRange(unsigned, bitsize) {\n switch (bitsize) {\n case 8: return unsigned ? [0, 255] : [-128, 127];\n case 16: return unsigned ? [0, 65535] : [-32768, 32767];\n case 32: return unsigned ? [0, 4294967295] : [-2147483648, 2147483647];\n default: throw new Error(\"Invalid bit size.\");\n }\n}\nfunction getInvalidDigits(radix) {\n switch (radix) {\n case 2: return /[^0-1]/;\n case 8: return /[^0-7]/;\n case 10: return /[^0-9]/;\n case 16: return /[^0-9a-fA-F]/;\n default:\n throw new Error(\"Invalid Base.\");\n }\n}\nexport function getPrefix(radix) {\n switch (radix) {\n case 2: return \"0b\";\n case 8: return \"0o\";\n case 10: return \"\";\n case 16: return \"0x\";\n default: return \"\";\n }\n}\nexport function getRadix(prefix, style) {\n if (style & NumberStyles.AllowHexSpecifier) {\n return 16;\n }\n else {\n switch (prefix) {\n case \"0b\":\n case \"0B\": return 2;\n case \"0o\":\n case \"0O\": return 8;\n case \"0x\":\n case \"0X\": return 16;\n default: return 10;\n }\n }\n}\nexport function isValid(str, style, radix) {\n const integerRegex = /^\\s*([\\+\\-])?(0[xXoObB])?([0-9a-fA-F]+)\\s*$/;\n const res = integerRegex.exec(str.replace(/_/g, \"\"));\n if (res != null) {\n const [/*all*/ , /*sign*/ , prefix, digits] = res;\n radix = radix || getRadix(prefix, style);\n const invalidDigits = getInvalidDigits(radix);\n if (!invalidDigits.test(digits)) {\n return validResponse(res, radix);\n }\n }\n return null;\n}\nexport function parse(str, style, unsigned, bitsize, radix) {\n const res = isValid(str, style, radix);\n if (res != null) {\n let v = Number.parseInt(res.sign + res.digits, res.radix);\n if (!Number.isNaN(v)) {\n const [umin, umax] = getRange(true, bitsize);\n if (!unsigned && res.radix !== 10 && v >= umin && v <= umax) {\n v = v << (32 - bitsize) >> (32 - bitsize);\n }\n const [min, max] = getRange(unsigned, bitsize);\n if (v >= min && v <= max) {\n return v;\n }\n }\n }\n throw new Error(`The input string ${str} was not in a correct format.`);\n}\nexport function tryParse(str, style, unsigned, bitsize, defValue) {\n try {\n defValue.contents = parse(str, style, unsigned, bitsize);\n return true;\n }\n catch {\n return false;\n }\n}\nexport function op_UnaryNegation_Int8(x) {\n return x === -128 ? x : -x;\n}\nexport function op_UnaryNegation_Int16(x) {\n return x === -32768 ? x : -x;\n}\nexport function op_UnaryNegation_Int32(x) {\n return x === -2147483648 ? x : -x;\n}\nexport function divRem(x, y, out) {\n const div = ~~(x / y);\n const rem = x % y;\n if (out === void 0) {\n return [div, rem];\n }\n else {\n out.contents = rem;\n return div;\n }\n}\n","import {\n useEffect as useEffectReact,\n useLayoutEffect as useLayoutEffectReact,\n useDebugValue as useDebugValueReact } from 'react'\n\nexport const useEffect = getDisposable => {\n useEffectReact(() => {\n const disposable = getDisposable()\n return () => {\n disposable.Dispose();\n }\n })\n}\n\nexport const useEffectWithDeps = (getDisposable, deps) => {\n useEffectReact(() => {\n const disposable = getDisposable()\n return () => {\n disposable.Dispose();\n }\n }, deps)\n}\n\nexport const useLayoutEffect = getDisposable => {\n useLayoutEffectReact(() => {\n const disposable = getDisposable()\n return () => {\n disposable.Dispose();\n }\n })\n}\n\nexport const useLayoutEffectWithDeps = (getDisposable, deps) => {\n useLayoutEffectReact(() => {\n const disposable = getDisposable()\n return () => {\n disposable.Dispose();\n }\n }, deps)\n}\n\nexport const useDebugValue = (value, formatter) => useDebugValueReact(value, formatter)","import { split, trimEnd, isNullOrWhiteSpace, substring, join, endsWith } from \"../fable-library-js.4.17.0/String.js\";\nimport { ofArray, singleton, collect, head, empty, tail, isEmpty, reverse, map } from \"../fable-library-js.4.17.0/List.js\";\nimport { item, equalsWith } from \"../fable-library-js.4.17.0/Array.js\";\nimport { defaultOf } from \"../fable-library-js.4.17.0/Util.js\";\nimport { useReact_useEffectOnce_3A5B6456, React_createDisposable_3A5B6456, useReact_useEffectOnce_Z5ECA432F, useReact_useCallbackRef_7C4B0DD6, React_memo_Z71E4ACFA } from \"../Feliz.2.7.0/React.fs.js\";\nimport { defaultArg } from \"../fable-library-js.4.17.0/Option.js\";\nimport { defaultOf as defaultOf_1 } from \"../fable-library-js.4.17.0/Util.js\";\nimport { tryParse } from \"../fable-library-js.4.17.0/Int32.js\";\nimport { FSharpRef } from \"../fable-library-js.4.17.0/Types.js\";\nimport { tryParse as tryParse_1 } from \"../fable-library-js.4.17.0/Long.js\";\nimport { tryParse as tryParse_2 } from \"../fable-library-js.4.17.0/Guid.js\";\nimport { tryParse as tryParse_3 } from \"../fable-library-js.4.17.0/Double.js\";\nimport { tryParse as tryParse_4 } from \"../fable-library-js.4.17.0/Decimal.js\";\nimport Decimal from \"../fable-library-js.4.17.0/Decimal.js\";\nimport { map as map_1, delay, toList } from \"../fable-library-js.4.17.0/Seq.js\";\n\nexport function RouterModule_String_$007CPrefix$007C(prefix, str) {\n if (str.indexOf(prefix) === 0) {\n return str;\n }\n else {\n return undefined;\n }\n}\n\nexport function RouterModule_String_$007CSuffix$007C(suffix, str) {\n if (endsWith(str, suffix)) {\n return str;\n }\n else {\n return undefined;\n }\n}\n\nexport function RouterModule_encodeQueryString(queryStringPairs) {\n const _arg = join(\"&\", map((tupledArg) => join(\"=\", [encodeURIComponent(tupledArg[0]), encodeURIComponent(tupledArg[1])]), queryStringPairs));\n if (_arg === \"\") {\n return \"\";\n }\n else {\n return \"?\" + _arg;\n }\n}\n\nexport function RouterModule_encodeQueryStringInts(queryStringIntPairs) {\n const _arg = join(\"&\", map((tupledArg) => join(\"=\", [encodeURIComponent(tupledArg[0]), tupledArg[1]]), queryStringIntPairs));\n if (_arg === \"\") {\n return \"\";\n }\n else {\n return \"?\" + _arg;\n }\n}\n\nfunction RouterModule_normalizeRoute(routeMode) {\n if (routeMode === 1) {\n return (_arg) => {\n let activePatternResult, path, activePatternResult_1, path_1, activePatternResult_2, path_2;\n return (activePatternResult = RouterModule_String_$007CPrefix$007C(\"/\", _arg), (activePatternResult != null) ? ((path = activePatternResult, \"#\" + path)) : ((activePatternResult_1 = RouterModule_String_$007CPrefix$007C(\"#/\", _arg), (activePatternResult_1 != null) ? ((path_1 = activePatternResult_1, path_1)) : ((activePatternResult_2 = RouterModule_String_$007CPrefix$007C(\"#\", _arg), (activePatternResult_2 != null) ? ((path_2 = activePatternResult_2, \"#/\" + substring(path_2, 1, path_2.length - 1))) : (\"#/\" + _arg))))));\n };\n }\n else {\n return (_arg_1) => {\n let activePatternResult_3, path_4;\n return (activePatternResult_3 = RouterModule_String_$007CPrefix$007C(\"/\", _arg_1), (activePatternResult_3 != null) ? ((path_4 = activePatternResult_3, path_4)) : (\"/\" + _arg_1));\n };\n }\n}\n\nexport function RouterModule_encodeParts(xs, routeMode) {\n return RouterModule_normalizeRoute(routeMode)(join(\"/\", map((part) => {\n if (((part.indexOf(\"?\") >= 0) ? true : (part.indexOf(\"#\") === 0)) ? true : (part.indexOf(\"/\") === 0)) {\n return part;\n }\n else {\n return encodeURIComponent(part);\n }\n }, xs)));\n}\n\n/**\n * Safely returns tuple of list items without last one and last item\n */\nexport function RouterModule_trySeparateLast(xs) {\n const matchValue = reverse(xs);\n if (!isEmpty(matchValue)) {\n if (isEmpty(tail(matchValue))) {\n return [empty(), head(matchValue)];\n }\n else {\n return [reverse(tail(matchValue)), head(matchValue)];\n }\n }\n else {\n return undefined;\n }\n}\n\nexport function RouterModule_nav(xs, mode, routeMode) {\n if (mode === 1) {\n history.pushState(undefined, \"\", RouterModule_encodeParts(xs, routeMode));\n }\n else {\n history.replaceState(undefined, \"\", RouterModule_encodeParts(xs, routeMode));\n }\n const ev = document.createEvent(\"CustomEvent\");\n ev.initEvent(\"CUSTOM_NAVIGATION_EVENT\", true, true);\n window.dispatchEvent(ev);\n}\n\n/**\n * Parses the URL into multiple path segments\n */\nexport function RouterModule_urlSegments(path, mode) {\n return collect((segment) => {\n if (isNullOrWhiteSpace(segment)) {\n return empty();\n }\n else {\n const segment_1 = trimEnd(segment, \"#\");\n if (segment_1 === \"?\") {\n return empty();\n }\n else if (RouterModule_String_$007CPrefix$007C(\"?\", segment_1) != null) {\n return singleton(segment_1);\n }\n else {\n const matchValue = segment_1.split(\"?\");\n if (!equalsWith((x, y) => (x === y), matchValue, defaultOf()) && (matchValue.length === 1)) {\n const value = item(0, matchValue);\n return singleton(decodeURIComponent(value));\n }\n else if (!equalsWith((x_1, y_1) => (x_1 === y_1), matchValue, defaultOf()) && (matchValue.length === 2)) {\n if (item(1, matchValue) === \"\") {\n const value_1 = item(0, matchValue);\n return singleton(decodeURIComponent(value_1));\n }\n else {\n const value_2 = item(0, matchValue);\n const query = item(1, matchValue);\n return ofArray([decodeURIComponent(value_2), \"?\" + query]);\n }\n }\n else {\n return empty();\n }\n }\n }\n }, ofArray(split((RouterModule_String_$007CPrefix$007C(\"#\", path) != null) ? substring(path, 1, path.length - 1) : ((mode === 1) ? ((RouterModule_String_$007CSuffix$007C(\"#\", path) != null) ? \"\" : ((RouterModule_String_$007CSuffix$007C(\"#/\", path) != null) ? \"\" : path)) : path), [\"/\"], undefined, 0)));\n}\n\nexport function RouterModule_onUrlChange(routeMode, urlChanged, ev) {\n return urlChanged(RouterModule_urlSegments((routeMode === 2) ? (window.location.pathname + window.location.search) : window.location.hash, routeMode));\n}\n\nexport const RouterModule_router = React_memo_Z71E4ACFA((input) => {\n const onChange = useReact_useCallbackRef_7C4B0DD6((ev) => {\n const urlChanged = defaultArg(input.onUrlChanged, (value) => {\n });\n RouterModule_onUrlChange(defaultArg(input.hashMode, 1), urlChanged, ev);\n });\n useReact_useEffectOnce_Z5ECA432F(() => {\n if (((window.navigator.userAgent).indexOf(\"Trident\") >= 0) ? true : ((window.navigator.userAgent).indexOf(\"MSIE\") >= 0)) {\n window.addEventListener(\"hashchange\", onChange);\n }\n else {\n window.addEventListener(\"popstate\", onChange);\n }\n window.addEventListener(\"CUSTOM_NAVIGATION_EVENT\", onChange);\n return React_createDisposable_3A5B6456(() => {\n if (((window.navigator.userAgent).indexOf(\"Trident\") >= 0) ? true : ((window.navigator.userAgent).indexOf(\"MSIE\") >= 0)) {\n window.removeEventListener(\"hashchange\", onChange);\n }\n else {\n window.removeEventListener(\"popstate\", onChange);\n }\n window.removeEventListener(\"CUSTOM_NAVIGATION_EVENT\", onChange);\n });\n });\n useReact_useEffectOnce_3A5B6456(() => {\n const ev_1 = document.createEvent(\"CustomEvent\");\n ev_1.initEvent(\"CUSTOM_NAVIGATION_EVENT\", true, true);\n window.dispatchEvent(ev_1);\n });\n const matchValue = input.application;\n return (matchValue == null) ? defaultOf_1() : matchValue;\n});\n\nexport function Route_$007CInt$007C_$007C(input) {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse(input, 511, false, 32, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n return undefined;\n }\n}\n\nexport function Route_$007CInt64$007C_$007C(input) {\n let matchValue;\n let outArg = 0n;\n matchValue = [tryParse_1(input, 511, false, 64, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n return undefined;\n }\n}\n\nexport function Route_$007CGuid$007C_$007C(input) {\n let matchValue;\n let outArg = \"00000000-0000-0000-0000-000000000000\";\n matchValue = [tryParse_2(input, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n return undefined;\n }\n}\n\nexport function Route_$007CNumber$007C_$007C(input) {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_3(input, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n return undefined;\n }\n}\n\nexport function Route_$007CDecimal$007C_$007C(input) {\n let matchValue;\n let outArg = new Decimal(\"0\");\n matchValue = [tryParse_4(input, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n return undefined;\n }\n}\n\nexport function Route_$007CBool$007C_$007C(input) {\n const matchValue = input.toLocaleLowerCase();\n switch (matchValue) {\n case \"1\":\n case \"true\":\n return true;\n case \"0\":\n case \"false\":\n return false;\n case \"\":\n return true;\n default:\n return undefined;\n }\n}\n\n/**\n * Used to parse the query string parameter of the route.\n * \n * For example to match against\n * \n * `/users?id={value}`\n * \n * You can pattern match:\n * \n * `[ \"users\"; Route.Query [ \"id\", value ] ] -> value`\n * \n * When `{value}` is an integer then you can pattern match:\n * \n * `[ \"users\"; Route.Query [ \"id\", Route.Int userId ] ] -> userId`\n */\nexport function Route_$007CQuery$007C_$007C(input) {\n try {\n const urlParams = new URLSearchParams(input);\n return toList(delay(() => map_1((entry) => [item(0, entry), item(1, entry)], urlParams.entries())));\n }\n catch (matchValue) {\n return undefined;\n }\n}\n\n","import { Union, Record } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { union_type, option_type, record_type, int32_type, string_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { tail, head, isEmpty } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Route_$007CInt$007C_$007C, Route_$007CQuery$007C_$007C } from \"./fable_modules/Feliz.Router.4.0.0/Router.fs.js\";\nimport { printf, toText } from \"./fable_modules/fable-library-js.4.17.0/String.js\";\n\nexport class PostProps extends Record {\n constructor(Src, SrcId) {\n super();\n this.Src = Src;\n this.SrcId = (SrcId | 0);\n }\n}\n\nexport function PostProps_$reflection() {\n return record_type(\"Investfora.Pages.PostProps\", [], PostProps, () => [[\"Src\", string_type], [\"SrcId\", int32_type]]);\n}\n\nexport function PostProps_FromParams(src, sid) {\n let matchResult, sid_1, src_1;\n if (src != null) {\n if (sid != null) {\n matchResult = 0;\n sid_1 = sid;\n src_1 = src;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n return new PostProps(src_1, sid_1);\n default:\n return undefined;\n }\n}\n\nexport class Page extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Home\", \"Stock\", \"Market\", \"InsiderTrade\", \"Short\", \"User\", \"Post\", \"Search\", \"Notifications\", \"NotFound\"];\n }\n}\n\nexport function Page_$reflection() {\n return union_type(\"Investfora.Pages.Page\", [], Page, () => [[], [[\"Item1\", string_type], [\"Item2\", string_type]], [[\"Item\", string_type]], [], [], [[\"Item\", string_type]], [[\"Item\", option_type(PostProps_$reflection())]], [], [], []]);\n}\n\nexport function Page_FromUrl_7F866359(x) {\n let matchResult, ticker, market, ticker_1, username, sid, src;\n if (!isEmpty(x)) {\n switch (head(x)) {\n case \"\": {\n if (isEmpty(tail(x))) {\n matchResult = 0;\n }\n else {\n matchResult = 7;\n }\n break;\n }\n case \"market\": {\n if (!isEmpty(tail(x))) {\n if (isEmpty(tail(tail(x)))) {\n matchResult = 1;\n ticker = head(tail(x));\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n break;\n }\n case \"stock\": {\n if (!isEmpty(tail(x))) {\n if (!isEmpty(tail(tail(x)))) {\n if (isEmpty(tail(tail(tail(x))))) {\n matchResult = 2;\n market = head(tail(x));\n ticker_1 = head(tail(tail(x)));\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n break;\n }\n case \"insider-trades\": {\n if (isEmpty(tail(x))) {\n matchResult = 3;\n }\n else {\n matchResult = 7;\n }\n break;\n }\n case \"short\": {\n if (isEmpty(tail(x))) {\n matchResult = 4;\n }\n else {\n matchResult = 7;\n }\n break;\n }\n case \"user\": {\n if (!isEmpty(tail(x))) {\n if (isEmpty(tail(tail(x)))) {\n matchResult = 5;\n username = head(tail(x));\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n break;\n }\n case \"post\": {\n if (!isEmpty(tail(x))) {\n const activePatternResult = Route_$007CQuery$007C_$007C(head(tail(x)));\n if (activePatternResult != null) {\n if (!isEmpty(activePatternResult)) {\n if (head(activePatternResult)[0] === \"src\") {\n if (!isEmpty(tail(activePatternResult))) {\n if (head(tail(activePatternResult))[0] === \"sid\") {\n const activePatternResult_1 = Route_$007CInt$007C_$007C(head(tail(activePatternResult))[1]);\n if (activePatternResult_1 != null) {\n if (isEmpty(tail(tail(activePatternResult)))) {\n if (isEmpty(tail(tail(x)))) {\n matchResult = 6;\n sid = activePatternResult_1;\n src = head(activePatternResult)[1];\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n break;\n }\n default:\n matchResult = 7;\n }\n }\n else {\n matchResult = 7;\n }\n switch (matchResult) {\n case 0:\n return new Page(0, []);\n case 1:\n return new Page(2, [ticker]);\n case 2:\n return new Page(1, [market, ticker_1]);\n case 3:\n return new Page(3, []);\n case 4:\n return new Page(4, []);\n case 5:\n return new Page(5, [username]);\n case 6:\n return new Page(6, [new PostProps(src, sid)]);\n default: {\n let matchResult_1;\n if (!isEmpty(x)) {\n switch (head(x)) {\n case \"post\": {\n if (isEmpty(tail(x))) {\n matchResult_1 = 0;\n }\n else {\n matchResult_1 = 3;\n }\n break;\n }\n case \"search\": {\n if (isEmpty(tail(x))) {\n matchResult_1 = 1;\n }\n else {\n matchResult_1 = 3;\n }\n break;\n }\n case \"notifications\": {\n if (isEmpty(tail(x))) {\n matchResult_1 = 2;\n }\n else {\n matchResult_1 = 3;\n }\n break;\n }\n default:\n matchResult_1 = 3;\n }\n }\n else {\n matchResult_1 = 3;\n }\n switch (matchResult_1) {\n case 0:\n return new Page(6, [undefined]);\n case 1:\n return new Page(7, []);\n case 2:\n return new Page(8, []);\n default:\n return new Page(9, []);\n }\n }\n }\n}\n\nexport function Page__ToUrl(this$) {\n switch (this$.tag) {\n case 2:\n return toText(printf(\"/market/%s\"))(this$.fields[0]);\n case 1:\n return toText(printf(\"/stock/%s/%s\"))(this$.fields[0])(this$.fields[1]);\n case 3:\n return \"/insider-trades\";\n case 4:\n return \"/short\";\n case 5:\n return toText(printf(\"/user/%s\"))(this$.fields[0]);\n case 6: {\n const x = this$.fields[0];\n if (x == null) {\n return toText(printf(\"/post\"));\n }\n else {\n const y = x;\n return `/post?src=${y.Src}&sid=${y.SrcId}`;\n }\n }\n case 7:\n return \"/search\";\n case 8:\n return \"/notifications\";\n case 9:\n return \"/\";\n default:\n return \"/\";\n }\n}\n\n","import { createElement } from \"react\";\nimport { fromFlatEntries } from \"./Flatten.js\";\n\nexport const MuiHelpers_reactElement = createElement;\n\nexport const MuiHelpers_reactElementTag = createElement;\n\nexport function MuiHelpers_createElement(el, properties) {\n return MuiHelpers_reactElement(el, fromFlatEntries(properties));\n}\n\nexport function MuiHelpers_createElementTag(tag, properties) {\n return MuiHelpers_reactElementTag(tag, fromFlatEntries(properties));\n}\n\n","import { Record, Union } from \"./Types.js\";\nimport { combineHashCodes, equalArraysWith, stringHash } from \"./Util.js\";\nimport Decimal from \"./Decimal.js\";\nexport class CaseInfo {\n constructor(declaringType, tag, name, fields) {\n this.declaringType = declaringType;\n this.tag = tag;\n this.name = name;\n this.fields = fields;\n }\n}\nexport class MethodInfo {\n constructor(name, parameters, returnType) {\n this.name = name;\n this.parameters = parameters;\n this.returnType = returnType;\n }\n}\nexport class TypeInfo {\n constructor(fullname, generics, construct, parent, fields, cases, enumCases) {\n this.fullname = fullname;\n this.generics = generics;\n this.construct = construct;\n this.parent = parent;\n this.fields = fields;\n this.cases = cases;\n this.enumCases = enumCases;\n }\n toString() {\n return fullName(this);\n }\n GetHashCode() {\n return getHashCode(this);\n }\n Equals(other) {\n return equals(this, other);\n }\n}\nexport class GenericParameter extends TypeInfo {\n constructor(name) {\n super(name);\n }\n}\nexport function getGenerics(t) {\n return t.generics != null ? t.generics : [];\n}\nexport function getHashCode(t) {\n const fullnameHash = stringHash(t.fullname);\n const genHashes = getGenerics(t).map(getHashCode);\n return combineHashCodes([fullnameHash, ...genHashes]);\n}\nexport function equals(t1, t2) {\n if (t1.fullname === \"\") { // Anonymous records\n return t2.fullname === \"\"\n && equalArraysWith(getRecordElements(t1), getRecordElements(t2), ([k1, v1], [k2, v2]) => k1 === k2 && equals(v1, v2));\n }\n else {\n return t1.fullname === t2.fullname\n && equalArraysWith(getGenerics(t1), getGenerics(t2), equals);\n }\n}\nexport function class_type(fullname, generics, construct, parent) {\n return new TypeInfo(fullname, generics, construct, parent);\n}\nexport function record_type(fullname, generics, construct, fields) {\n return new TypeInfo(fullname, generics, construct, undefined, fields);\n}\nexport function anonRecord_type(...fields) {\n return new TypeInfo(\"\", undefined, undefined, undefined, () => fields);\n}\nexport function union_type(fullname, generics, construct, cases) {\n const t = new TypeInfo(fullname, generics, construct, undefined, undefined, () => {\n const caseNames = construct.prototype.cases();\n return cases().map((fields, i) => new CaseInfo(t, i, caseNames[i], fields));\n });\n return t;\n}\nexport function tuple_type(...generics) {\n return new TypeInfo(\"System.Tuple`\" + generics.length, generics);\n}\nexport function delegate_type(...generics) {\n return new TypeInfo(\"System.Func`\" + generics.length, generics);\n}\nexport function lambda_type(argType, returnType) {\n return new TypeInfo(\"Microsoft.FSharp.Core.FSharpFunc`2\", [argType, returnType]);\n}\nexport function option_type(generic) {\n return new TypeInfo(\"Microsoft.FSharp.Core.FSharpOption`1\", [generic]);\n}\nexport function list_type(generic) {\n return new TypeInfo(\"Microsoft.FSharp.Collections.FSharpList`1\", [generic]);\n}\nexport function array_type(generic) {\n return new TypeInfo(\"[]\", [generic]);\n}\nexport function enum_type(fullname, underlyingType, enumCases) {\n return new TypeInfo(fullname, [underlyingType], undefined, undefined, undefined, undefined, enumCases);\n}\nexport function measure_type(fullname) {\n return new TypeInfo(fullname);\n}\nexport function generic_type(name) {\n return new GenericParameter(name);\n}\nexport const obj_type = new TypeInfo(\"System.Object\");\nexport const unit_type = new TypeInfo(\"Microsoft.FSharp.Core.Unit\");\nexport const char_type = new TypeInfo(\"System.Char\");\nexport const string_type = new TypeInfo(\"System.String\");\nexport const bool_type = new TypeInfo(\"System.Boolean\");\nexport const int8_type = new TypeInfo(\"System.SByte\");\nexport const uint8_type = new TypeInfo(\"System.Byte\");\nexport const int16_type = new TypeInfo(\"System.Int16\");\nexport const uint16_type = new TypeInfo(\"System.UInt16\");\nexport const int32_type = new TypeInfo(\"System.Int32\");\nexport const uint32_type = new TypeInfo(\"System.UInt32\");\nexport const int64_type = new TypeInfo(\"System.Int64\");\nexport const uint64_type = new TypeInfo(\"System.UInt64\");\nexport const int128_type = new TypeInfo(\"System.Int128\");\nexport const uint128_type = new TypeInfo(\"System.UInt128\");\nexport const nativeint_type = new TypeInfo(\"System.IntPtr\");\nexport const unativeint_type = new TypeInfo(\"System.UIntPtr\");\nexport const float16_type = new TypeInfo(\"System.Half\");\nexport const float32_type = new TypeInfo(\"System.Single\");\nexport const float64_type = new TypeInfo(\"System.Double\");\nexport const decimal_type = new TypeInfo(\"System.Decimal\");\nexport const bigint_type = new TypeInfo(\"System.Numerics.BigInteger\");\nexport function name(info) {\n if (Array.isArray(info)) {\n return info[0];\n }\n else if (info instanceof TypeInfo) {\n const elemType = getElementType(info);\n if (elemType != null) {\n return name(elemType) + \"[]\";\n }\n else {\n const i = info.fullname.lastIndexOf(\".\");\n return i === -1 ? info.fullname : info.fullname.substr(i + 1);\n }\n }\n else {\n return info.name;\n }\n}\nexport function fullName(t) {\n const elemType = getElementType(t);\n if (elemType != null) {\n return fullName(elemType) + \"[]\";\n }\n else if (t.generics == null || t.generics.length === 0) {\n return t.fullname;\n }\n else {\n return t.fullname + \"[\" + t.generics.map((x) => fullName(x)).join(\",\") + \"]\";\n }\n}\nexport function namespace(t) {\n const elemType = getElementType(t);\n if (elemType != null) {\n return namespace(elemType);\n }\n else {\n const i = t.fullname.lastIndexOf(\".\");\n return i === -1 ? \"\" : t.fullname.substr(0, i);\n }\n}\nexport function isArray(t) {\n return getElementType(t) != null;\n}\nexport function getElementType(t) {\n return t.fullname === \"[]\" && t.generics?.length === 1 ? t.generics[0] : undefined;\n}\nexport function isGenericType(t) {\n return t.generics != null && t.generics.length > 0;\n}\nexport function isGenericParameter(t) {\n return t instanceof GenericParameter;\n}\nexport function isEnum(t) {\n return t.enumCases != null && t.enumCases.length > 0;\n}\nexport function isSubclassOf(t1, t2) {\n return (t2.fullname === obj_type.fullname) || (t1.parent != null && (t1.parent.Equals(t2) || isSubclassOf(t1.parent, t2)));\n}\nfunction isErasedToNumber(t) {\n return isEnum(t) || [\n int8_type.fullname,\n uint8_type.fullname,\n int16_type.fullname,\n uint16_type.fullname,\n int32_type.fullname,\n uint32_type.fullname,\n float16_type.fullname,\n float32_type.fullname,\n float64_type.fullname,\n ].includes(t.fullname);\n}\nfunction isErasedToBigInt(t) {\n return isEnum(t) || [\n int64_type.fullname,\n uint64_type.fullname,\n int128_type.fullname,\n uint128_type.fullname,\n nativeint_type.fullname,\n unativeint_type.fullname,\n bigint_type.fullname,\n ].includes(t.fullname);\n}\nexport function isInstanceOfType(t, o) {\n if (t.fullname === obj_type.fullname)\n return true;\n switch (typeof o) {\n case \"boolean\":\n return t.fullname === bool_type.fullname;\n case \"string\":\n return t.fullname === string_type.fullname;\n case \"function\":\n return isFunction(t);\n case \"number\":\n return isErasedToNumber(t);\n case \"bigint\":\n return isErasedToBigInt(t);\n default:\n return t.construct != null && o instanceof t.construct;\n }\n}\n/**\n * This doesn't replace types for fields (records) or cases (unions)\n * but it should be enough for type comparison purposes\n */\nexport function getGenericTypeDefinition(t) {\n return t.generics == null ? t : new TypeInfo(t.fullname, t.generics.map(() => obj_type));\n}\nexport function getEnumUnderlyingType(t) {\n return t.generics?.[0];\n}\nexport function getEnumValues(t) {\n if (isEnum(t) && t.enumCases != null) {\n return t.enumCases.map((kv) => kv[1]);\n }\n else {\n throw new Error(`${t.fullname} is not an enum type`);\n }\n}\nexport function getEnumNames(t) {\n if (isEnum(t) && t.enumCases != null) {\n return t.enumCases.map((kv) => kv[0]);\n }\n else {\n throw new Error(`${t.fullname} is not an enum type`);\n }\n}\nfunction getEnumCase(t, v) {\n if (t.enumCases != null) {\n if (typeof v === \"string\") {\n for (const kv of t.enumCases) {\n if (kv[0] === v) {\n return kv;\n }\n }\n throw new Error(`'${v}' was not found in ${t.fullname}`);\n }\n else {\n for (const kv of t.enumCases) {\n if (kv[1] === v) {\n return kv;\n }\n }\n // .NET returns the number even if it doesn't match any of the cases\n return [\"\", v];\n }\n }\n else {\n throw new Error(`${t.fullname} is not an enum type`);\n }\n}\nexport function parseEnum(t, str) {\n // TODO: better int parsing here, parseInt ceils floats: \"4.8\" -> 4\n const value = parseInt(str, 10);\n return getEnumCase(t, isNaN(value) ? str : value)[1];\n}\nexport function tryParseEnum(t, str, defValue) {\n try {\n defValue.contents = parseEnum(t, str);\n return true;\n }\n catch {\n return false;\n }\n}\nexport function getEnumName(t, v) {\n return getEnumCase(t, v)[0];\n}\nexport function isEnumDefined(t, v) {\n try {\n const kv = getEnumCase(t, v);\n return kv[0] != null && kv[0] !== \"\";\n }\n catch {\n // supress error\n }\n return false;\n}\n// FSharpType\nexport function getUnionCases(t) {\n if (t.cases != null) {\n return t.cases();\n }\n else {\n throw new Error(`${t.fullname} is not an F# union type`);\n }\n}\nexport function getRecordElements(t) {\n if (t.fields != null) {\n return t.fields();\n }\n else {\n throw new Error(`${t.fullname} is not an F# record type`);\n }\n}\nexport function getTupleElements(t) {\n if (isTuple(t) && t.generics != null) {\n return t.generics;\n }\n else {\n throw new Error(`${t.fullname} is not a tuple type`);\n }\n}\nexport function getFunctionElements(t) {\n if (isFunction(t) && t.generics != null) {\n const gen = t.generics;\n return [gen[0], gen[1]];\n }\n else {\n throw new Error(`${t.fullname} is not an F# function type`);\n }\n}\nexport function isUnion(t) {\n return t instanceof TypeInfo ? t.cases != null : t instanceof Union;\n}\nexport function isRecord(t) {\n return t instanceof TypeInfo ? t.fields != null : t instanceof Record;\n}\nexport function isTuple(t) {\n return t.fullname.startsWith(\"System.Tuple\");\n}\n// In .NET this is false for delegates\nexport function isFunction(t) {\n return t.fullname === \"Microsoft.FSharp.Core.FSharpFunc`2\";\n}\n// FSharpValue\nexport function getUnionFields(v, t) {\n const cases = getUnionCases(t);\n const case_ = cases[v.tag];\n if (case_ == null) {\n throw new Error(`Cannot find case ${v.name} in union type`);\n }\n return [case_, v.fields];\n}\nexport function getUnionCaseFields(uci) {\n return uci.fields == null ? [] : uci.fields;\n}\n// This is used as replacement of `FSharpValue.GetRecordFields`\n// For `FSharpTypes.GetRecordFields` see `getRecordElements`\n// Object.keys returns keys in the order they were added to the object\nexport function getRecordFields(v) {\n return Object.keys(v).map((k) => v[k]);\n}\nexport function getRecordField(v, field) {\n return v[field[0]];\n}\nexport function getTupleFields(v) {\n return v;\n}\nexport function getTupleField(v, i) {\n return v[i];\n}\nexport function makeUnion(uci, values) {\n const expectedLength = (uci.fields || []).length;\n if (values.length !== expectedLength) {\n throw new Error(`Expected an array of length ${expectedLength} but got ${values.length}`);\n }\n const construct = uci.declaringType.construct;\n if (construct == null) {\n return {};\n }\n const isSingleCase = uci.declaringType.cases ? uci.declaringType.cases().length == 1 : false;\n if (isSingleCase) {\n return new construct(...values);\n }\n else {\n return new construct(uci.tag, values);\n }\n}\nexport function makeRecord(t, values) {\n const fields = getRecordElements(t);\n if (fields.length !== values.length) {\n throw new Error(`Expected an array of length ${fields.length} but got ${values.length}`);\n }\n return t.construct != null\n ? new t.construct(...values)\n : fields.reduce((obj, [key, _t], i) => {\n obj[key] = values[i];\n return obj;\n }, {});\n}\nexport function makeTuple(values, _t) {\n return values;\n}\nexport function makeGenericType(t, generics) {\n return new TypeInfo(t.fullname, generics, t.construct, t.parent, t.fields, t.cases);\n}\nexport function createInstance(t, consArgs) {\n // TODO: Check if consArgs length is same as t.construct?\n // (Arg types can still be different)\n if (typeof t.construct === \"function\") {\n return new t.construct(...(consArgs ?? []));\n }\n else if (isErasedToNumber(t)) {\n return 0;\n }\n else if (isErasedToBigInt(t)) {\n return 0n;\n }\n else {\n switch (t.fullname) {\n case obj_type.fullname:\n return {};\n case bool_type.fullname:\n return false;\n case decimal_type.fullname:\n return new Decimal(0);\n case char_type.fullname:\n // Even though char is a value type, it's erased to string, and Unchecked.defaultof is null\n return null;\n default:\n throw new Error(`Cannot access constructor of ${t.fullname}`);\n }\n }\n}\nexport function getValue(propertyInfo, v) {\n return v[propertyInfo[0]];\n}\n// Fable.Core.Reflection\nfunction assertUnion(x) {\n if (!(x instanceof Union)) {\n throw new Error(`Value is not an F# union type`);\n }\n}\nexport function getCaseTag(x) {\n assertUnion(x);\n return x.tag;\n}\nexport function getCaseName(x) {\n assertUnion(x);\n return x.cases()[x.tag];\n}\nexport function getCaseFields(x) {\n assertUnion(x);\n return x.fields;\n}\n","import { Union } from \"./Types.js\";\nimport { union_type } from \"./Reflection.js\";\nimport { equals } from \"./Util.js\";\nimport { empty, singleton } from \"./List.js\";\nimport { some } from \"./Option.js\";\nexport function FSharpResult$2_Ok(ResultValue) {\n return new FSharpResult$2(0, [ResultValue]);\n}\nexport function FSharpResult$2_Error(ErrorValue) {\n return new FSharpResult$2(1, [ErrorValue]);\n}\nexport class FSharpResult$2 extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Ok\", \"Error\"];\n }\n}\nexport function FSharpResult$2_$reflection(gen0, gen1) {\n return union_type(\"FSharp.Core.FSharpResult`2\", [gen0, gen1], FSharpResult$2, () => [[[\"ResultValue\", gen0]], [[\"ErrorValue\", gen1]]]);\n}\nexport function Result_Map(mapping, result) {\n if (result.tag === /* Ok */ 0) {\n return FSharpResult$2_Ok(mapping(result.fields[0]));\n }\n else {\n return FSharpResult$2_Error(result.fields[0]);\n }\n}\nexport function Result_MapError(mapping, result) {\n if (result.tag === /* Ok */ 0) {\n return FSharpResult$2_Ok(result.fields[0]);\n }\n else {\n return FSharpResult$2_Error(mapping(result.fields[0]));\n }\n}\nexport function Result_Bind(binder, result) {\n if (result.tag === /* Ok */ 0) {\n return binder(result.fields[0]);\n }\n else {\n return FSharpResult$2_Error(result.fields[0]);\n }\n}\nexport function Result_IsOk(result) {\n if (result.tag === /* Ok */ 0) {\n return true;\n }\n else {\n return false;\n }\n}\nexport function Result_IsError(result) {\n if (result.tag === /* Ok */ 0) {\n return false;\n }\n else {\n return true;\n }\n}\nexport function Result_Contains(value, result) {\n if (result.tag === /* Ok */ 0) {\n return equals(result.fields[0], value);\n }\n else {\n return false;\n }\n}\nexport function Result_Count(result) {\n if (result.tag === /* Ok */ 0) {\n return 1;\n }\n else {\n return 0;\n }\n}\nexport function Result_DefaultValue(defaultValue, result) {\n if (result.tag === /* Ok */ 0) {\n return result.fields[0];\n }\n else {\n return defaultValue;\n }\n}\nexport function Result_DefaultWith(defThunk, result) {\n if (result.tag === /* Ok */ 0) {\n return result.fields[0];\n }\n else {\n return defThunk(result.fields[0]);\n }\n}\nexport function Result_Exists(predicate, result) {\n if (result.tag === /* Ok */ 0) {\n return predicate(result.fields[0]);\n }\n else {\n return false;\n }\n}\nexport function Result_Fold(folder, state, result) {\n if (result.tag === /* Ok */ 0) {\n return folder(state, result.fields[0]);\n }\n else {\n return state;\n }\n}\nexport function Result_FoldBack(folder, result, state) {\n if (result.tag === /* Ok */ 0) {\n return folder(result.fields[0], state);\n }\n else {\n return state;\n }\n}\nexport function Result_ForAll(predicate, result) {\n if (result.tag === /* Ok */ 0) {\n return predicate(result.fields[0]);\n }\n else {\n return true;\n }\n}\nexport function Result_Iterate(action, result) {\n if (result.tag === /* Ok */ 0) {\n action(result.fields[0]);\n }\n}\nexport function Result_ToArray(result) {\n if (result.tag === /* Ok */ 0) {\n return [result.fields[0]];\n }\n else {\n return [];\n }\n}\nexport function Result_ToList(result) {\n if (result.tag === /* Ok */ 0) {\n return singleton(result.fields[0]);\n }\n else {\n return empty();\n }\n}\nexport function Result_ToOption(result) {\n if (result.tag === /* Ok */ 0) {\n return some(result.fields[0]);\n }\n else {\n return undefined;\n }\n}\nexport function Result_ToValueOption(result) {\n if (result.tag === /* Ok */ 0) {\n return some(result.fields[0]);\n }\n else {\n return undefined;\n }\n}\n","import { equals } from \"./Util.js\";\nimport { Union } from \"./Types.js\";\nconst CaseRules = {\n None: 0,\n LowerFirst: 1,\n SnakeCase: 2,\n SnakeCaseAllCaps: 3,\n KebabCase: 4,\n};\nfunction dashify(str, separator) {\n return str.replace(/[a-z]?[A-Z]/g, (m) => m.length === 1\n ? m.toLowerCase()\n : m.charAt(0) + separator + m.charAt(1).toLowerCase());\n}\nfunction changeCase(str, caseRule) {\n switch (caseRule) {\n case CaseRules.LowerFirst:\n return str.charAt(0).toLowerCase() + str.slice(1);\n case CaseRules.SnakeCase:\n return dashify(str, \"_\");\n case CaseRules.SnakeCaseAllCaps:\n return dashify(str, \"_\").toUpperCase();\n case CaseRules.KebabCase:\n return dashify(str, \"-\");\n case CaseRules.None:\n default:\n return str;\n }\n}\nexport function keyValueList(fields, caseRule = CaseRules.None) {\n const obj = {};\n const definedCaseRule = caseRule;\n function fail(kvPair) {\n throw new Error(\"Cannot infer key and value of \" + String(kvPair));\n }\n function assign(key, caseRule, value) {\n key = changeCase(key, caseRule);\n obj[key] = value;\n }\n for (let kvPair of fields) {\n let caseRule = CaseRules.None;\n if (kvPair == null) {\n fail(kvPair);\n }\n // Deflate unions and use the defined case rule\n if (kvPair instanceof Union) {\n const name = kvPair.cases()[kvPair.tag];\n kvPair = kvPair.fields.length === 0 ? name : [name].concat(kvPair.fields);\n caseRule = definedCaseRule;\n }\n if (Array.isArray(kvPair)) {\n switch (kvPair.length) {\n case 0:\n fail(kvPair);\n break;\n case 1:\n assign(kvPair[0], caseRule, true);\n break;\n case 2:\n const value = kvPair[1];\n assign(kvPair[0], caseRule, value);\n break;\n default:\n assign(kvPair[0], caseRule, kvPair.slice(1));\n }\n }\n else if (typeof kvPair === \"string\") {\n assign(kvPair, caseRule, true);\n }\n else {\n fail(kvPair);\n }\n }\n return obj;\n}\n// TODO: Move these methods to Map and Set modules\nexport function containsValue(v, map) {\n for (const kv of map) {\n if (equals(v, kv[1])) {\n return true;\n }\n }\n return false;\n}\nexport function tryGetValue(map, key, defaultValue) {\n if (map.has(key)) {\n defaultValue.contents = map.get(key);\n return true;\n }\n return false;\n}\nexport function addToSet(v, set) {\n if (set.has(v)) {\n return false;\n }\n set.add(v);\n return true;\n}\nexport function tryAddToDict(dict, k, v) {\n if (dict.has(k)) {\n return false;\n }\n dict.set(k, v);\n return true;\n}\nexport function addToDict(dict, k, v) {\n if (dict.has(k)) {\n throw new Error(\"An item with the same key has already been added. Key: \" + k);\n }\n dict.set(k, v);\n}\nexport function getItemFromDict(map, key) {\n if (map.has(key)) {\n return map.get(key);\n }\n else {\n throw new Error(`The given key '${key}' was not present in the dictionary.`);\n }\n}\nexport function getItemFromDictOrCreate(map, key, createValue) {\n if (map.has(key)) {\n return map.get(key);\n }\n const value = createValue(key);\n map.set(key, value);\n return value;\n}\n","import { FSharpRef, Record, Union } from \"../fable-library-js.4.17.0/Types.js\";\nimport { record_type, class_type, tuple_type, lambda_type, union_type, list_type, obj_type, string_type } from \"../fable-library-js.4.17.0/Reflection.js\";\nimport { FSharpResult$2 } from \"../fable-library-js.4.17.0/Result.js\";\nimport { defaultOf } from \"../fable-library-js.4.17.0/Util.js\";\nimport { addToDict, tryGetValue } from \"../fable-library-js.4.17.0/MapUtil.js\";\nimport { replace } from \"../fable-library-js.4.17.0/RegExp.js\";\n\nexport class ErrorReason extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"BadPrimitive\", \"BadPrimitiveExtra\", \"BadType\", \"BadField\", \"BadPath\", \"TooSmallArray\", \"FailMessage\", \"BadOneOf\"];\n }\n}\n\nexport function ErrorReason_$reflection() {\n return union_type(\"Thoth.Json.ErrorReason\", [], ErrorReason, () => [[[\"Item1\", string_type], [\"Item2\", obj_type]], [[\"Item1\", string_type], [\"Item2\", obj_type], [\"Item3\", string_type]], [[\"Item1\", string_type], [\"Item2\", obj_type]], [[\"Item1\", string_type], [\"Item2\", obj_type]], [[\"Item1\", string_type], [\"Item2\", obj_type], [\"Item3\", string_type]], [[\"Item1\", string_type], [\"Item2\", obj_type]], [[\"Item\", string_type]], [[\"Item\", list_type(string_type)]]]);\n}\n\nexport class CaseStrategy extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"PascalCase\", \"CamelCase\", \"SnakeCase\"];\n }\n}\n\nexport function CaseStrategy_$reflection() {\n return union_type(\"Thoth.Json.CaseStrategy\", [], CaseStrategy, () => [[], [], []]);\n}\n\nexport class ExtraCoders extends Record {\n constructor(Hash, Coders) {\n super();\n this.Hash = Hash;\n this.Coders = Coders;\n }\n}\n\nexport function ExtraCoders_$reflection() {\n return record_type(\"Thoth.Json.ExtraCoders\", [], ExtraCoders, () => [[\"Hash\", string_type], [\"Coders\", class_type(\"Microsoft.FSharp.Collections.FSharpMap`2\", [string_type, tuple_type(lambda_type(obj_type, obj_type), lambda_type(string_type, lambda_type(obj_type, union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [obj_type, tuple_type(string_type, ErrorReason_$reflection())], FSharpResult$2, () => [[[\"ResultValue\", obj_type]], [[\"ErrorValue\", tuple_type(string_type, ErrorReason_$reflection())]]]))))])]]);\n}\n\nexport class Util_Cache$1 {\n constructor() {\n this.cache = (new Map([]));\n }\n}\n\nexport function Util_Cache$1_$reflection(gen0) {\n return class_type(\"Thoth.Json.Util.Cache`1\", [gen0], Util_Cache$1);\n}\n\nexport function Util_Cache$1_$ctor() {\n return new Util_Cache$1();\n}\n\nexport function Util_Cache$1__GetOrAdd_43981464(__, key, factory) {\n let matchValue;\n let outArg = defaultOf();\n matchValue = [tryGetValue(__.cache, key, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return matchValue[1];\n }\n else {\n const x_1 = factory();\n addToDict(__.cache, key, x_1);\n return x_1;\n }\n}\n\nexport const Util_CachedEncoders = Util_Cache$1_$ctor();\n\nexport const Util_CachedDecoders = Util_Cache$1_$ctor();\n\nexport function Util_Casing_lowerFirst(str) {\n return str.slice(undefined, 0 + 1).toLowerCase() + str.slice(1, str.length);\n}\n\nexport function Util_Casing_convert(caseStrategy, fieldName) {\n switch (caseStrategy.tag) {\n case 2:\n return replace(Util_Casing_lowerFirst(fieldName), \"[A-Z]\", \"_$0\").toLowerCase();\n case 0:\n return fieldName;\n default:\n return Util_Casing_lowerFirst(fieldName);\n }\n}\n\n","import { trim } from \"./String.js\";\n// RFC 4122 compliant. From https://stackoverflow.com/a/13653180/3922220\n// const guidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;\n// Relax GUID parsing, see #1637\nconst guidRegex = /^[\\(\\{]{0,2}[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}[\\)\\}]{0,2}$/;\nconst guidRegexNoHyphen = /^([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})$/;\nconst guidRegexHex = /^\\{0x[0-9a-f]{8},(0x[0-9a-f]{4},){2}\\{(0x[0-9a-f]{2},){7}0x[0-9a-f]{2}\\}\\}$/;\nconst guidHexCaptures = /^([0-9a-f]{8})-(([0-9a-f]{4})-)(([0-9a-f]{4})-)([0-9a-f]{2})([0-9a-f]{2})-([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/;\nexport function toString(str, format, _provider) {\n if (format && format?.length > 0) {\n switch (format) {\n case \"N\":\n return str.replace(/-/g, '');\n case \"D\":\n return str;\n case \"B\":\n return \"{\" + str + \"}\";\n case \"P\":\n return \"(\" + str + \")\";\n case \"X\":\n return str.replace(guidHexCaptures, \"{0x$1,0x$3,0x$5,{0x$6,0x$7,0x$8,0x$9,0x$10,0x$11,0x$12,0x$13}}\");\n default:\n throw new Error(\"Unrecognized Guid print format\");\n }\n }\n else {\n return str;\n }\n}\n/** Validates UUID as specified in RFC4122 (versions 1-5). */\nexport function parse(str) {\n function hyphenateGuid(str) {\n return str.replace(guidRegexNoHyphen, \"$1-$2-$3-$4-$5\");\n }\n const wsTrimAndLowered = str.trim().toLowerCase();\n if (guidRegex.test(wsTrimAndLowered)) {\n return trim(wsTrimAndLowered, \"{\", \"}\", \"(\", \")\");\n }\n else if (guidRegexNoHyphen.test(wsTrimAndLowered)) {\n return hyphenateGuid(wsTrimAndLowered);\n }\n else if (guidRegexHex.test(wsTrimAndLowered)) {\n return hyphenateGuid(wsTrimAndLowered.replace(/[\\{\\},]|0x/g, ''));\n }\n else {\n throw new Error(\"Guid should contain 32 digits with 4 dashes: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\");\n }\n}\nexport function tryParse(str, defValue) {\n try {\n defValue.contents = parse(str);\n return true;\n }\n catch {\n return false;\n }\n}\n// From https://gist.github.com/LeverOne/1308368\nexport function newGuid() {\n let b = \"\";\n for (let a = 0; a++ < 36;) {\n b += a * 51 & 52\n ? (a ^ 15 ? 8 ^ Math.random() * (a ^ 20 ? 16 : 4) : 4).toString(16)\n : \"-\";\n }\n return b;\n}\n// Maps for number <-> hex string conversion\nlet _convertMapsInitialized = false;\nlet _byteToHex;\nlet _hexToByte;\nfunction initConvertMaps() {\n _byteToHex = new Array(256);\n _hexToByte = {};\n for (let i = 0; i < 256; i++) {\n _byteToHex[i] = (i + 0x100).toString(16).substr(1);\n _hexToByte[_byteToHex[i]] = i;\n }\n _convertMapsInitialized = true;\n}\n/** Parse a UUID into it's component bytes */\n// Adapted from https://github.com/zefferus/uuid-parse\nexport function guidToArray(s) {\n if (!_convertMapsInitialized) {\n initConvertMaps();\n }\n let i = 0;\n const buf = new Uint8Array(16);\n s.toLowerCase().replace(/[0-9a-f]{2}/g, ((oct) => {\n switch (i) {\n // .NET saves first three byte groups with different endianness\n // See https://stackoverflow.com/a/16722909/3922220\n case 0:\n case 1:\n case 2:\n case 3:\n buf[3 - i++] = _hexToByte[oct];\n break;\n case 4:\n case 5:\n buf[9 - i++] = _hexToByte[oct];\n break;\n case 6:\n case 7:\n buf[13 - i++] = _hexToByte[oct];\n break;\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n buf[i++] = _hexToByte[oct];\n break;\n }\n }));\n // Zero out remaining bytes if string was short\n while (i < 16) {\n buf[i++] = 0;\n }\n return buf;\n}\n/** Convert UUID byte array into a string */\nexport function arrayToGuid(buf) {\n if (buf.length !== 16) {\n throw new Error(\"Byte array for GUID must be exactly 16 bytes long\");\n }\n if (!_convertMapsInitialized) {\n initConvertMaps();\n }\n const guid = _byteToHex[buf[3]] + _byteToHex[buf[2]] +\n _byteToHex[buf[1]] + _byteToHex[buf[0]] + \"-\" +\n _byteToHex[buf[5]] + _byteToHex[buf[4]] + \"-\" +\n _byteToHex[buf[7]] + _byteToHex[buf[6]] + \"-\" +\n _byteToHex[buf[8]] + _byteToHex[buf[9]] + \"-\" +\n _byteToHex[buf[10]] + _byteToHex[buf[11]] +\n _byteToHex[buf[12]] + _byteToHex[buf[13]] +\n _byteToHex[buf[14]] + _byteToHex[buf[15]];\n return guid;\n}\n","import { fromParts, truncate } from \"./Decimal.js\";\nimport { bigintHash } from \"./Util.js\";\nconst isBigEndian = false;\nBigInt.prototype.toJSON = function () {\n return `${this.toString()}`;\n};\nconst zero = 0n;\nconst one = 1n;\nconst two = 2n;\nconst minusOne = -1n;\nexport function isBigInt(x) {\n return typeof x === \"bigint\";\n}\nexport function hash(x) {\n return bigintHash(x);\n}\nexport function equals(x, y) {\n return x === y;\n}\nexport function compare(x, y) {\n return x < y ? -1 : x > y ? 1 : 0;\n}\nexport function abs(x) { return x < zero ? -x : x; }\nexport function sign(x) { return x < zero ? -1 : x > zero ? 1 : 0; }\nexport function max(x, y) { return x > y ? x : y; }\nexport function min(x, y) { return x < y ? x : y; }\nexport function maxMagnitude(x, y) { return abs(x) > abs(y) ? x : y; }\nexport function minMagnitude(x, y) { return abs(x) < abs(y) ? x : y; }\nexport function clamp(x, min, max) {\n return x < min ? min : x > max ? max : x;\n}\nexport function add(x, y) { return x + y; }\nexport function subtract(x, y) { return x - y; }\nexport function multiply(x, y) { return x * y; }\nexport function divide(x, y) { return x / y; }\nexport function remainder(x, y) { return x % y; }\nexport function negate(x) { return -x; }\nexport function op_UnaryNegation(x) { return -x; }\nexport function op_LogicalNot(x) { return ~x; }\nexport function op_UnaryPlus(x) { return x; }\nexport function op_Addition(x, y) { return x + y; }\nexport function op_Subtraction(x, y) { return x - y; }\nexport function op_Multiply(x, y) { return x * y; }\nexport function op_Division(x, y) { return x / y; }\nexport function op_Modulus(x, y) { return x % y; }\nexport function op_RightShift(x, n) { return x >> BigInt(n); }\nexport function op_LeftShift(x, n) { return x << BigInt(n); }\nexport function op_BitwiseAnd(x, y) { return x & y; }\nexport function op_BitwiseOr(x, y) { return x | y; }\nexport function op_ExclusiveOr(x, y) { return x ^ y; }\nexport function op_LessThan(x, y) { return x < y; }\nexport function op_LessThanOrEqual(x, y) { return x <= y; }\nexport function op_GreaterThan(x, y) { return x > y; }\nexport function op_GreaterThanOrEqual(x, y) { return x >= y; }\nexport function op_Equality(x, y) { return x === y; }\nexport function op_Inequality(x, y) { return x !== y; }\nexport function get_Zero() { return zero; }\nexport function get_One() { return one; }\nexport function get_MinusOne() { return minusOne; }\nexport function get_IsZero(x) { return x === zero; }\nexport function get_IsOne(x) { return x === one; }\nexport function get_IsEven(x) { return isEvenInteger(x); }\nexport function get_IsPowerOfTwo(x) { return isPow2(x); }\nexport function get_Sign(x) { return sign(x); }\nexport function isNegative(x) { return x < zero; }\nexport function isPositive(x) { return x > zero; }\nexport function isEvenInteger(x) { return (x % two) === zero; }\nexport function isOddInteger(x) { return (x % two) !== zero; }\nexport function isPow2(x) { return (x & (x - one)) === zero; }\nexport function fromZero() { return zero; }\nexport function fromOne() { return one; }\nexport function fromInt8(n) { return BigInt(n); }\nexport function fromUInt8(n) { return BigInt(n); }\nexport function fromInt16(n) { return BigInt(n); }\nexport function fromUInt16(n) { return BigInt(n); }\nexport function fromInt32(n) { return BigInt(n); }\nexport function fromUInt32(n) { return BigInt(n); }\nexport function fromInt64(n) { return n; }\nexport function fromUInt64(n) { return n; }\nexport function fromInt128(n) { return n; }\nexport function fromUInt128(n) { return n; }\nexport function fromNativeInt(n) { return n; }\nexport function fromUNativeInt(n) { return n; }\nexport function fromFloat16(n) { return BigInt(Math.trunc(n)); }\nexport function fromFloat32(n) { return BigInt(Math.trunc(n)); }\nexport function fromFloat64(n) { return BigInt(Math.trunc(n)); }\nexport function fromDecimal(d) { return BigInt(truncate(d).toString()); }\nexport function fromBigInt(x) { return x; }\nexport function fromBoolean(b) { return BigInt(b); }\nexport function fromChar(c) { return BigInt(c.charCodeAt(0)); }\nexport function fromString(s) { return BigInt(s); }\nexport function fromByteArray(bytes) {\n return fromSignedBytes(bytes, isBigEndian);\n}\nexport function toByteArray(value) {\n return toSignedBytes(value, isBigEndian);\n}\nexport function toInt8(x) { return Number(BigInt.asIntN(8, x)); }\nexport function toUInt8(x) { return Number(BigInt.asUintN(8, x)); }\nexport function toInt16(x) { return Number(BigInt.asIntN(16, x)); }\nexport function toUInt16(x) { return Number(BigInt.asUintN(16, x)); }\nexport function toInt32(x) { return Number(BigInt.asIntN(32, x)); }\nexport function toUInt32(x) { return Number(BigInt.asUintN(32, x)); }\nexport function toInt64(x) { return BigInt.asIntN(64, x); }\nexport function toUInt64(x) { return BigInt.asUintN(64, x); }\nexport function toInt128(x) { return BigInt.asIntN(128, x); }\nexport function toUInt128(x) { return BigInt.asUintN(128, x); }\nexport function toNativeInt(x) { return BigInt.asIntN(64, x); }\nexport function toUNativeInt(x) { return BigInt.asUintN(64, x); }\nexport function toFloat16(x) { return Number(x); }\nexport function toFloat32(x) { return Number(x); }\nexport function toFloat64(x) { return Number(x); }\nexport function toDecimal(x) {\n const low = Number(BigInt.asUintN(32, x));\n const mid = Number(BigInt.asUintN(32, x >> 32n));\n const high = Number(BigInt.asUintN(32, x >> 64n));\n const isNegative = x < zero;\n const scale = 0;\n return fromParts(low, mid, high, isNegative, scale);\n}\nexport function toBigInt(x) { return x; }\nexport function toBoolean(x) { return x !== zero; }\nexport function toChar(x) {\n return String.fromCharCode(toUInt16(x));\n}\nexport function toString(x) { return x.toString(); }\nexport function tryParse(s, res) {\n try {\n res.contents = BigInt(s);\n return true;\n }\n catch (err) {\n return false;\n }\n}\nexport function parse(s) {\n return BigInt(s);\n}\nexport function pow(x, n) {\n return x ** BigInt(n);\n}\nexport function modPow(x, e, m) {\n return (x ** e) % m;\n}\nexport function divRem(x, y, out) {\n const div = x / y;\n const rem = x % y;\n if (out === void 0) {\n return [div, rem];\n }\n else {\n out.contents = rem;\n return div;\n }\n}\nexport function greatestCommonDivisor(x, y) {\n while (y > zero) {\n const q = x / y;\n const r = x - q * y;\n x = y;\n y = r;\n }\n return x;\n}\nexport function getBitLength(x) {\n return fromFloat64(x === zero ? 1 : log2(abs(x)) + 1);\n}\nexport function log2(x) {\n const n = Number(x);\n if (Number.isFinite(n))\n return Math.log2(n); // fast path\n if (x < zero)\n return Number.NaN;\n let shift = one;\n while (x >= (one << shift)) {\n shift = shift << one;\n }\n let log = zero;\n while (shift > one) {\n shift = shift >> one;\n if (x >= (one << shift)) {\n log = log + shift;\n x = x >> shift;\n }\n }\n return Number(log);\n}\nexport function log10(x) {\n return log2(x) * Math.log10(2);\n}\nexport function ln(x) {\n return log2(x) * Math.log(2);\n}\nexport function log(x, base) {\n return log2(x) / Math.log2(base);\n}\nexport function ilog2(x) {\n return BigInt(log2(x));\n}\n// export function copySign\n// export function createChecked\n// export function createSaturating\n// export function createTruncating\n// export function getByteCount\n// export function leadingZeroCount\n// export function popCount\n// export function rotateLeft\n// export function rotateRight\n// export function trailingZeroCount\n// export function tryFormat\n// export function tryWriteBytes\n// -------------------------------------------------\n// Binary serialization\n// -------------------------------------------------\nconst hexCodes = new Uint8Array([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102]);\nfunction fromHexCode(code) {\n if (48 <= code && code <= 57)\n return code - 48;\n if (97 <= code && code <= 102)\n return code - 97 + 10;\n if (65 <= code && code <= 70)\n return code - 65 + 10;\n throw Error(`Invalid hex code: ${code}`);\n}\nfunction toSignedBytes(x, isBigEndian) {\n const isNeg = x < 0n;\n if (isNeg) {\n const len = log2(-x);\n const bits = len + (8 - len % 8);\n const pow2 = (1n << BigInt(bits));\n x = x + pow2; // two's complement\n }\n const hex = x.toString(16);\n const len = hex.length;\n const odd = len % 2;\n const first = hex.charCodeAt(0);\n const isLow = 48 <= first && first <= 55; // 0..7\n const start = (isNeg && isLow) || (!isNeg && !isLow) ? 1 : 0;\n const bytes = new Uint8Array(start + (len + odd) / 2);\n const inc = isBigEndian ? 1 : -1;\n let pos = isBigEndian ? 0 : bytes.length - 1;\n if (start > 0) {\n bytes[pos] = isNeg ? 255 : 0;\n pos += inc;\n }\n if (odd > 0) {\n bytes[pos] = fromHexCode(first);\n pos += inc;\n }\n for (let i = odd; i < len; i += 2, pos += inc) {\n const a = fromHexCode(hex.charCodeAt(i));\n const b = fromHexCode(hex.charCodeAt(i + 1));\n bytes[pos] = (a << 4) | b;\n }\n return bytes;\n}\nfunction fromSignedBytes(bytes, isBigEndian) {\n if (bytes == null) {\n throw new Error(\"bytes is null\");\n }\n const len = bytes.length;\n const first = isBigEndian ? 0 : len - 1;\n const isNeg = bytes[first] > 127;\n const codes = new Uint16Array(len * 2 + 2);\n codes[0] = 48; // 0\n codes[1] = 120; // x\n const inc = isBigEndian ? 1 : -1;\n let pos = isBigEndian ? 0 : len - 1;\n for (let i = 0; i < bytes.length; i++, pos += inc) {\n const byte = bytes[pos];\n codes[2 * i + 2] = hexCodes[byte >> 4];\n codes[2 * i + 3] = hexCodes[byte & 15];\n }\n const str = String.fromCharCode.apply(null, codes);\n let x = BigInt(str);\n if (isNeg) {\n const bits = len * 8;\n const pow2 = (1n << BigInt(bits));\n x = x - pow2; // two's complement\n }\n return x;\n}\n","import { getPrefix, isValid } from \"./Int32.js\";\nimport { fromString } from \"./BigInt.js\";\nfunction getMaxValue(unsigned, radix, isNegative) {\n switch (radix) {\n case 2: return unsigned ?\n \"1111111111111111111111111111111111111111111111111111111111111111\" :\n (isNegative ? \"1000000000000000000000000000000000000000000000000000000000000000\"\n : \"111111111111111111111111111111111111111111111111111111111111111\");\n case 8: return unsigned ?\n \"1777777777777777777777\" :\n (isNegative ? \"1000000000000000000000\" : \"777777777777777777777\");\n case 10: return unsigned ?\n \"18446744073709551615\" :\n (isNegative ? \"9223372036854775808\" : \"9223372036854775807\");\n case 16: return unsigned ?\n \"FFFFFFFFFFFFFFFF\" :\n (isNegative ? \"8000000000000000\" : \"7FFFFFFFFFFFFFFF\");\n default: throw new Error(\"Invalid radix.\");\n }\n}\nexport function parse(str, style, unsigned, _bitsize, radix) {\n const res = isValid(str, style, radix);\n if (res != null) {\n const lessOrEqual = (x, y) => {\n const len = Math.max(x.length, y.length);\n return x.padStart(len, \"0\") <= y.padStart(len, \"0\");\n };\n const isNegative = res.sign === \"-\";\n const maxValue = getMaxValue(unsigned || res.radix !== 10, res.radix, isNegative);\n if (lessOrEqual(res.digits.toUpperCase(), maxValue)) {\n str = getPrefix(res.radix) + res.digits;\n str = isNegative ? res.sign + str : str;\n return fromString(str);\n }\n }\n throw new Error(`The input string ${str} was not in a correct format.`);\n}\nexport function tryParse(str, style, unsigned, bitsize, defValue) {\n try {\n defValue.contents = parse(str, style, unsigned, bitsize);\n return true;\n }\n catch {\n return false;\n }\n}\n","/**\n * DateTimeOffset functions.\n *\n * Note: DateOffset instances are always DateObjects in local\n * timezone (because JS dates are all kinds of messed up).\n * A local date returns UTC epoch when `.getTime()` is called.\n *\n * However, this means that in order to construct an UTC date\n * from a DateOffset with offset of +5 hours, you first need\n * to subtract those 5 hours, than add the \"local\" offset.\n * As said, all kinds of messed up.\n *\n * Basically; invariant: date.getTime() always return UTC time.\n */\nimport { fromFloat64, toFloat64 } from \"./BigInt.js\";\nimport DateTime, { create as createDate, dateOffsetToString, daysInMonth, parseRaw, ticksToUnixEpochMilliseconds, unixEpochMillisecondsToTicks } from \"./Date.js\";\nimport { compareDates, padWithZeros } from \"./Util.js\";\nexport default function DateTimeOffset(value, offset) {\n checkOffsetInRange(offset);\n const d = new Date(value);\n d.offset = offset != null ? offset : new Date().getTimezoneOffset() * -60000;\n return d;\n}\nexport function offset(value) {\n return value.offset || 0;\n}\nfunction checkOffsetInRange(offset) {\n if (offset != null && offset !== 0) {\n if (offset % 60000 !== 0) {\n throw new Error(\"Offset must be specified in whole minutes.\");\n }\n if (Math.abs(offset / 3600000) > 14) {\n throw new Error(\"Offset must be within plus or minus 14 hours.\");\n }\n }\n}\nexport function fromDate(date, offset) {\n let offset2 = 0;\n switch (date.kind) {\n case 1 /* DateKind.UTC */:\n if (offset != null && offset !== 0) {\n throw new Error(\"The UTC Offset for Utc DateTime instances must be 0.\");\n }\n offset2 = 0;\n break;\n case 2 /* DateKind.Local */:\n offset2 = date.getTimezoneOffset() * -60000;\n if (offset != null && offset !== offset2) {\n throw new Error(\"The UTC Offset of the local dateTime parameter does not match the offset argument.\");\n }\n break;\n case 0 /* DateKind.Unspecified */:\n default:\n if (offset == null) {\n offset2 = date.getTimezoneOffset() * -60000;\n }\n else {\n offset2 = offset;\n }\n break;\n }\n return DateTimeOffset(date.getTime(), offset2);\n}\nexport function fromTicks(ticks, offset) {\n const ms = ticksToUnixEpochMilliseconds(ticks) - offset;\n return DateTimeOffset(ms, offset);\n}\nexport function fromUnixTimeMilliseconds(ms) {\n return DateTimeOffset(toFloat64(ms), 0);\n}\nexport function fromUnixTimeSeconds(seconds) {\n return DateTimeOffset(toFloat64(seconds * 1000n), 0);\n}\nexport function getUtcTicks(date) {\n return unixEpochMillisecondsToTicks(date.getTime(), 0);\n}\nexport function minValue() {\n // This is \"0001-01-01T00:00:00.000Z\", actual JS min value is -8640000000000000\n return DateTimeOffset(-62135596800000, 0);\n}\nexport function maxValue() {\n // This is \"9999-12-31T23:59:59.999Z\", actual JS max value is 8640000000000000\n return DateTimeOffset(253402300799999, 0);\n}\nexport function parse(str) {\n const [date, offsetMatch] = parseRaw(str);\n const offset = offsetMatch == null\n ? date.getTimezoneOffset() * -60000\n : (offsetMatch === \"Z\" ? 0 : offsetMatch * 60000);\n return DateTimeOffset(date.getTime(), offset);\n}\nexport function tryParse(v, defValue) {\n try {\n defValue.contents = parse(v);\n return true;\n }\n catch (_err) {\n return false;\n }\n}\nexport function create(year, month, day, h, m, s, ms, offset) {\n if (offset == null) {\n offset = ms;\n ms = 0;\n }\n checkOffsetInRange(offset);\n let date;\n if (offset === 0) {\n date = new Date(Date.UTC(year, month - 1, day, h, m, s, ms));\n if (year <= 99) {\n date.setUTCFullYear(year, month - 1, day);\n }\n }\n else {\n const str = padWithZeros(year, 4) + \"-\" +\n padWithZeros(month, 2) + \"-\" +\n padWithZeros(day, 2) + \"T\" +\n padWithZeros(h, 2) + \":\" +\n padWithZeros(m, 2) + \":\" +\n padWithZeros(s, 2) + \".\" +\n padWithZeros(ms, 3) +\n dateOffsetToString(offset);\n date = new Date(str);\n }\n const dateValue = date.getTime();\n if (isNaN(dateValue)) {\n throw new Error(\"The parameters describe an unrepresentable Date\");\n }\n return DateTimeOffset(dateValue, offset);\n}\nexport function now() {\n const date = new Date();\n const offset = date.getTimezoneOffset() * -60000;\n return DateTimeOffset(date.getTime(), offset);\n}\nexport function utcNow() {\n const date = now();\n return DateTimeOffset(date.getTime(), 0);\n}\nexport function toUniversalTime(date) {\n return DateTime(date.getTime(), 1 /* DateKind.UTC */);\n}\nexport function toLocalTime(date) {\n return DateTime(date.getTime(), 2 /* DateKind.Local */);\n}\nexport function timeOfDay(d) {\n const d2 = new Date(d.getTime() + (d.offset ?? 0));\n return d2.getUTCHours() * 3600000\n + d2.getUTCMinutes() * 60000\n + d2.getUTCSeconds() * 1000\n + d2.getUTCMilliseconds();\n}\nexport function date(d) {\n const d2 = new Date(d.getTime() + (d.offset ?? 0));\n return createDate(d2.getUTCFullYear(), d2.getUTCMonth() + 1, d2.getUTCDate(), 0, 0, 0, 0);\n}\nexport function day(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCDate();\n}\nexport function hour(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCHours();\n}\nexport function millisecond(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCMilliseconds();\n}\nexport function minute(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCMinutes();\n}\nexport function month(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCMonth() + 1;\n}\nexport function second(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCSeconds();\n}\nexport function year(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCFullYear();\n}\nexport function dayOfWeek(d) {\n return new Date(d.getTime() + (d.offset ?? 0)).getUTCDay();\n}\nexport function dayOfYear(d) {\n const d2 = new Date(d.getTime() + (d.offset ?? 0));\n const _year = d2.getUTCFullYear();\n const _month = d2.getUTCMonth() + 1;\n let _day = d2.getUTCDate();\n for (let i = 1; i < _month; i++) {\n _day += daysInMonth(_year, i);\n }\n return _day;\n}\nexport function add(d, ts) {\n return DateTimeOffset(d.getTime() + ts, (d.offset ?? 0));\n}\nexport function addDays(d, v) {\n return add(d, v * 86400000);\n}\nexport function addHours(d, v) {\n return add(d, v * 3600000);\n}\nexport function addMinutes(d, v) {\n return add(d, v * 60000);\n}\nexport function addSeconds(d, v) {\n return add(d, v * 1000);\n}\nexport function addMilliseconds(d, v) {\n return add(d, v);\n}\nexport function addTicks(d, v) {\n return add(d, toFloat64(v / 10000n));\n}\nexport function addYears(d, v) {\n const newMonth = d.getUTCMonth() + 1;\n const newYear = d.getUTCFullYear() + v;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, d.getUTCDate());\n return create(newYear, newMonth, newDay, d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds(), (d.offset ?? 0));\n}\nexport function addMonths(d, v) {\n const d2 = new Date(d.getTime() + (d.offset ?? 0));\n let newMonth = d2.getUTCMonth() + 1 + v;\n let newMonth_ = 0;\n let yearOffset = 0;\n if (newMonth > 12) {\n newMonth_ = newMonth % 12;\n yearOffset = Math.floor(newMonth / 12);\n newMonth = newMonth_;\n }\n else if (newMonth < 1) {\n newMonth_ = 12 + newMonth % 12;\n yearOffset = Math.floor(newMonth / 12) + (newMonth_ === 12 ? -1 : 0);\n newMonth = newMonth_;\n }\n const newYear = d2.getUTCFullYear() + yearOffset;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, d2.getUTCDate());\n return create(newYear, newMonth, newDay, d2.getUTCHours(), d2.getUTCMinutes(), d2.getUTCSeconds(), d2.getUTCMilliseconds(), (d.offset ?? 0));\n}\nexport function subtract(d, that) {\n return typeof that === \"number\"\n ? DateTimeOffset(d.getTime() - that, (d.offset ?? 0))\n : d.getTime() - that.getTime();\n}\nexport function equals(d1, d2) {\n return d1.getTime() === d2.getTime();\n}\nexport function equalsExact(d1, d2) {\n return d1.getTime() === d2.getTime() && d1.offset === d2.offset;\n}\nexport function compare(d1, d2) {\n return compareDates(d1, d2);\n}\nexport const compareTo = compare;\nexport function op_Addition(x, y) {\n return add(x, y);\n}\nexport function op_Subtraction(x, y) {\n return subtract(x, y);\n}\nexport function toOffset(d, offset) {\n return DateTimeOffset(d.getTime(), offset);\n}\nexport function toUnixTimeMilliseconds(d) {\n return fromFloat64(d.getTime());\n}\nexport function toUnixTimeSeconds(d) {\n return fromFloat64(d.getTime() / 1000.0);\n}\n","import { comparePrimitives, padLeftAndRightWithZeros, padWithZeros } from \"./Util.js\";\nimport { toInt64 } from \"./BigInt.js\";\n/**\n * Calls:\n * - `Math.ceil` if the `value` is **negative**\n * - `Math.floor` if the `value` is **positive**\n * @param value Value to round\n */\nfunction signedRound(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n}\nexport function create(d = 0, h = 0, m = 0, s = 0, ms = 0) {\n switch (arguments.length) {\n case 1:\n // ticks\n return fromTicks(arguments[0]);\n case 3:\n // h,m,s\n d = 0, h = arguments[0], m = arguments[1], s = arguments[2], ms = 0;\n break;\n default:\n // d,h,m,s,ms\n break;\n }\n return d * 86400000 + h * 3600000 + m * 60000 + s * 1000 + ms;\n}\nexport function fromTicks(ticks) {\n return Number(BigInt(ticks) / 10000n);\n}\nexport function fromDays(d) {\n return create(d, 0, 0, 0);\n}\nexport function fromHours(h) {\n return create(h, 0, 0);\n}\nexport function fromMinutes(m) {\n return create(0, m, 0);\n}\nexport function fromSeconds(s) {\n return create(0, 0, s);\n}\nexport function days(ts) {\n return signedRound(ts / 86400000);\n}\nexport function hours(ts) {\n return signedRound(ts % 86400000 / 3600000);\n}\nexport function minutes(ts) {\n return signedRound(ts % 3600000 / 60000);\n}\nexport function seconds(ts) {\n return signedRound(ts % 60000 / 1000);\n}\nexport function milliseconds(ts) {\n return signedRound(ts % 1000);\n}\nexport function ticks(ts) {\n return toInt64(BigInt(ts) * 10000n);\n}\nexport function totalDays(ts) {\n return ts / 86400000;\n}\nexport function totalHours(ts) {\n return ts / 3600000;\n}\nexport function totalMinutes(ts) {\n return ts / 60000;\n}\nexport function totalSeconds(ts) {\n return ts / 1000;\n}\nexport function negate(ts) {\n return ts * -1;\n}\nexport function add(ts1, ts2) {\n return ts1 + ts2;\n}\nexport function subtract(ts1, ts2) {\n return ts1 - ts2;\n}\nexport function multiply(ts, factor) {\n return ts * factor;\n}\nexport function divide(ts, b) {\n return ts / b;\n}\nexport const op_Addition = add;\nexport const op_Subtraction = subtract;\nexport const op_Multiply = multiply;\nexport const op_Division = divide;\nexport const compare = comparePrimitives;\nexport const compareTo = comparePrimitives;\nexport function duration(x) {\n return Math.abs(x);\n}\nexport function toString(ts, format = \"c\", _provider) {\n if ([\"c\", \"g\", \"G\"].indexOf(format) === -1) {\n throw new Error(\"Custom formats are not supported\");\n }\n const d = Math.abs(days(ts));\n const h = Math.abs(hours(ts));\n const m = Math.abs(minutes(ts));\n const s = Math.abs(seconds(ts));\n const ms = Math.abs(milliseconds(ts));\n const sign = ts < 0 ? \"-\" : \"\";\n return `${sign}${d === 0 && (format === \"c\" || format === \"g\") ? \"\" : format === \"c\" ? d + \".\" : d + \":\"}${format === \"g\" ? h : padWithZeros(h, 2)}:${padWithZeros(m, 2)}:${padWithZeros(s, 2)}${ms === 0 && (format === \"c\" || format === \"g\") ? \"\" : format === \"g\" ? \".\" + padWithZeros(ms, 3) : \".\" + padLeftAndRightWithZeros(ms, 3, 7)}`;\n}\nexport function parse(str) {\n const firstDot = str.search(\"\\\\.\");\n const firstColon = str.search(\"\\\\:\");\n if (firstDot === -1 && firstColon === -1) { // There is only a day ex: 4\n const d = parseInt(str, 0);\n if (isNaN(d)) {\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n }\n else {\n return create(d, 0, 0, 0, 0);\n }\n }\n if (firstColon > 0) { // process time part\n // WIP: (-?)(((\\d+)\\.)?([0-9]|0[0-9]|1[0-9]|2[0-3]):(\\d+)(:\\d+(\\.\\d{1,7})?)?|\\d+(?:(?!\\.)))\n const r = /^(-?)((\\d+)\\.)?(?:0*)([0-9]|0[0-9]|1[0-9]|2[0-3]):(?:0*)([0-5][0-9]|[0-9])(:(?:0*)([0-5][0-9]|[0-9]))?\\.?(\\d+)?$/.exec(str);\n if (r != null && r[4] != null && r[5] != null) {\n let d = 0;\n let ms = 0;\n let s = 0;\n const sign = r[1] != null && r[1] === \"-\" ? -1 : 1;\n const h = +r[4];\n const m = +r[5];\n if (r[3] != null) {\n d = +r[3];\n }\n if (r[7] != null) {\n s = +r[7];\n }\n if (r[8] != null) {\n // Depending on the number of decimals passed, we need to adapt the numbers\n switch (r[8].length) {\n case 1:\n ms = +r[8] * 100;\n break;\n case 2:\n ms = +r[8] * 10;\n break;\n case 3:\n ms = +r[8];\n break;\n case 4:\n ms = +r[8] / 10;\n break;\n case 5:\n ms = +r[8] / 100;\n break;\n case 6:\n ms = +r[8] / 1000;\n break;\n case 7:\n ms = +r[8] / 10000;\n break;\n default:\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n }\n }\n return sign * create(d, h, m, s, ms);\n }\n }\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n}\nexport function tryParse(v, defValue) {\n try {\n defValue.contents = parse(v);\n return true;\n }\n catch {\n return false;\n }\n}\n","import { record_type, bool_type, list_type, option_type, class_type } from \"./Reflection.js\";\nimport { some, value as value_1 } from \"./Option.js\";\nimport { structuralHash, compare, toIterator, equals, disposeSafe, getEnumerator, isArrayLike } from \"./Util.js\";\nimport { singleton, ofArrayWithTail, head, tail, isEmpty as isEmpty_1, fold as fold_1, empty as empty_1, FSharpList, cons } from \"./List.js\";\nimport { map as map_2, item, fill, setItem } from \"./Array.js\";\nimport { Record } from \"./Types.js\";\nimport { tryPick as tryPick_1, pick as pick_1, iterate as iterate_1, compareWith, map as map_1, unfold } from \"./Seq.js\";\nimport { format, join } from \"./String.js\";\nexport class MapTreeLeaf$2 {\n constructor(k, v) {\n this.k = k;\n this.v = v;\n }\n}\nexport function MapTreeLeaf$2_$reflection(gen0, gen1) {\n return class_type(\"Map.MapTreeLeaf`2\", [gen0, gen1], MapTreeLeaf$2);\n}\nexport function MapTreeLeaf$2_$ctor_5BDDA1(k, v) {\n return new MapTreeLeaf$2(k, v);\n}\nexport function MapTreeLeaf$2__get_Key(_) {\n return _.k;\n}\nexport function MapTreeLeaf$2__get_Value(_) {\n return _.v;\n}\nexport class MapTreeNode$2 extends MapTreeLeaf$2 {\n constructor(k, v, left, right, h) {\n super(k, v);\n this.left = left;\n this.right = right;\n this.h = (h | 0);\n }\n}\nexport function MapTreeNode$2_$reflection(gen0, gen1) {\n return class_type(\"Map.MapTreeNode`2\", [gen0, gen1], MapTreeNode$2, MapTreeLeaf$2_$reflection(gen0, gen1));\n}\nexport function MapTreeNode$2_$ctor_Z39DE9543(k, v, left, right, h) {\n return new MapTreeNode$2(k, v, left, right, h);\n}\nexport function MapTreeNode$2__get_Left(_) {\n return _.left;\n}\nexport function MapTreeNode$2__get_Right(_) {\n return _.right;\n}\nexport function MapTreeNode$2__get_Height(_) {\n return _.h;\n}\nexport function MapTreeModule_empty() {\n return undefined;\n}\nexport function MapTreeModule_sizeAux(acc_mut, m_mut) {\n MapTreeModule_sizeAux: while (true) {\n const acc = acc_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n acc_mut = MapTreeModule_sizeAux(acc + 1, MapTreeNode$2__get_Left(mn));\n m_mut = MapTreeNode$2__get_Right(mn);\n continue MapTreeModule_sizeAux;\n }\n else {\n return (acc + 1) | 0;\n }\n }\n else {\n return acc | 0;\n }\n break;\n }\n}\nexport function MapTreeModule_size(x) {\n return MapTreeModule_sizeAux(0, x);\n}\nexport function MapTreeModule_mk(l, k, v, r) {\n let mn, mn_1;\n let hl;\n const m = l;\n if (m != null) {\n const m2 = value_1(m);\n hl = ((m2 instanceof MapTreeNode$2) ? ((mn = m2, MapTreeNode$2__get_Height(mn))) : 1);\n }\n else {\n hl = 0;\n }\n let hr;\n const m_1 = r;\n if (m_1 != null) {\n const m2_1 = value_1(m_1);\n hr = ((m2_1 instanceof MapTreeNode$2) ? ((mn_1 = m2_1, MapTreeNode$2__get_Height(mn_1))) : 1);\n }\n else {\n hr = 0;\n }\n const m_2 = ((hl < hr) ? hr : hl) | 0;\n if (m_2 === 0) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, v);\n }\n else {\n return MapTreeNode$2_$ctor_Z39DE9543(k, v, l, r, m_2 + 1);\n }\n}\nexport function MapTreeModule_rebalance(t1, k, v, t2) {\n let mn, mn_1, m_2, m2_2, mn_2, m_3, m2_3, mn_3;\n let t1h;\n const m = t1;\n if (m != null) {\n const m2 = value_1(m);\n t1h = ((m2 instanceof MapTreeNode$2) ? ((mn = m2, MapTreeNode$2__get_Height(mn))) : 1);\n }\n else {\n t1h = 0;\n }\n let t2h;\n const m_1 = t2;\n if (m_1 != null) {\n const m2_1 = value_1(m_1);\n t2h = ((m2_1 instanceof MapTreeNode$2) ? ((mn_1 = m2_1, MapTreeNode$2__get_Height(mn_1))) : 1);\n }\n else {\n t2h = 0;\n }\n if (t2h > (t1h + 2)) {\n const matchValue = value_1(t2);\n if (matchValue instanceof MapTreeNode$2) {\n const t2$0027 = matchValue;\n if (((m_2 = MapTreeNode$2__get_Left(t2$0027), (m_2 != null) ? ((m2_2 = value_1(m_2), (m2_2 instanceof MapTreeNode$2) ? ((mn_2 = m2_2, MapTreeNode$2__get_Height(mn_2))) : 1)) : 0)) > (t1h + 1)) {\n const matchValue_1 = value_1(MapTreeNode$2__get_Left(t2$0027));\n if (matchValue_1 instanceof MapTreeNode$2) {\n const t2l = matchValue_1;\n return MapTreeModule_mk(MapTreeModule_mk(t1, k, v, MapTreeNode$2__get_Left(t2l)), MapTreeLeaf$2__get_Key(t2l), MapTreeLeaf$2__get_Value(t2l), MapTreeModule_mk(MapTreeNode$2__get_Right(t2l), MapTreeLeaf$2__get_Key(t2$0027), MapTreeLeaf$2__get_Value(t2$0027), MapTreeNode$2__get_Right(t2$0027)));\n }\n else {\n throw new Error(\"internal error: Map.rebalance\");\n }\n }\n else {\n return MapTreeModule_mk(MapTreeModule_mk(t1, k, v, MapTreeNode$2__get_Left(t2$0027)), MapTreeLeaf$2__get_Key(t2$0027), MapTreeLeaf$2__get_Value(t2$0027), MapTreeNode$2__get_Right(t2$0027));\n }\n }\n else {\n throw new Error(\"internal error: Map.rebalance\");\n }\n }\n else if (t1h > (t2h + 2)) {\n const matchValue_2 = value_1(t1);\n if (matchValue_2 instanceof MapTreeNode$2) {\n const t1$0027 = matchValue_2;\n if (((m_3 = MapTreeNode$2__get_Right(t1$0027), (m_3 != null) ? ((m2_3 = value_1(m_3), (m2_3 instanceof MapTreeNode$2) ? ((mn_3 = m2_3, MapTreeNode$2__get_Height(mn_3))) : 1)) : 0)) > (t2h + 1)) {\n const matchValue_3 = value_1(MapTreeNode$2__get_Right(t1$0027));\n if (matchValue_3 instanceof MapTreeNode$2) {\n const t1r = matchValue_3;\n return MapTreeModule_mk(MapTreeModule_mk(MapTreeNode$2__get_Left(t1$0027), MapTreeLeaf$2__get_Key(t1$0027), MapTreeLeaf$2__get_Value(t1$0027), MapTreeNode$2__get_Left(t1r)), MapTreeLeaf$2__get_Key(t1r), MapTreeLeaf$2__get_Value(t1r), MapTreeModule_mk(MapTreeNode$2__get_Right(t1r), k, v, t2));\n }\n else {\n throw new Error(\"internal error: Map.rebalance\");\n }\n }\n else {\n return MapTreeModule_mk(MapTreeNode$2__get_Left(t1$0027), MapTreeLeaf$2__get_Key(t1$0027), MapTreeLeaf$2__get_Value(t1$0027), MapTreeModule_mk(MapTreeNode$2__get_Right(t1$0027), k, v, t2));\n }\n }\n else {\n throw new Error(\"internal error: Map.rebalance\");\n }\n }\n else {\n return MapTreeModule_mk(t1, k, v, t2);\n }\n}\nexport function MapTreeModule_add(comparer, k, v, m) {\n if (m != null) {\n const m2 = value_1(m);\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n if (c < 0) {\n return MapTreeModule_rebalance(MapTreeModule_add(comparer, k, v, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn));\n }\n else if (c === 0) {\n return MapTreeNode$2_$ctor_Z39DE9543(k, v, MapTreeNode$2__get_Left(mn), MapTreeNode$2__get_Right(mn), MapTreeNode$2__get_Height(mn));\n }\n else {\n return MapTreeModule_rebalance(MapTreeNode$2__get_Left(mn), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeModule_add(comparer, k, v, MapTreeNode$2__get_Right(mn)));\n }\n }\n else if (c < 0) {\n return MapTreeNode$2_$ctor_Z39DE9543(k, v, MapTreeModule_empty(), m, 2);\n }\n else if (c === 0) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, v);\n }\n else {\n return MapTreeNode$2_$ctor_Z39DE9543(k, v, m, MapTreeModule_empty(), 2);\n }\n }\n else {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, v);\n }\n}\nexport function MapTreeModule_tryFind(comparer_mut, k_mut, m_mut) {\n MapTreeModule_tryFind: while (true) {\n const comparer = comparer_mut, k = k_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (c === 0) {\n return some(MapTreeLeaf$2__get_Value(m2));\n }\n else if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n comparer_mut = comparer;\n k_mut = k;\n m_mut = ((c < 0) ? MapTreeNode$2__get_Left(mn) : MapTreeNode$2__get_Right(mn));\n continue MapTreeModule_tryFind;\n }\n else {\n return undefined;\n }\n }\n else {\n return undefined;\n }\n break;\n }\n}\nexport function MapTreeModule_find(comparer, k, m) {\n const matchValue = MapTreeModule_tryFind(comparer, k, m);\n if (matchValue == null) {\n throw new Error();\n }\n else {\n return value_1(matchValue);\n }\n}\nexport function MapTreeModule_partition1(comparer, f, k, v, acc1, acc2) {\n if (f(k, v)) {\n return [MapTreeModule_add(comparer, k, v, acc1), acc2];\n }\n else {\n return [acc1, MapTreeModule_add(comparer, k, v, acc2)];\n }\n}\nexport function MapTreeModule_partitionAux(comparer_mut, f_mut, m_mut, acc__mut, acc__1_mut) {\n MapTreeModule_partitionAux: while (true) {\n const comparer = comparer_mut, f = f_mut, m = m_mut, acc_ = acc__mut, acc__1 = acc__1_mut;\n const acc = [acc_, acc__1];\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const acc_1 = MapTreeModule_partitionAux(comparer, f, MapTreeNode$2__get_Right(mn), acc[0], acc[1]);\n const acc_4 = MapTreeModule_partition1(comparer, f, MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), acc_1[0], acc_1[1]);\n comparer_mut = comparer;\n f_mut = f;\n m_mut = MapTreeNode$2__get_Left(mn);\n acc__mut = acc_4[0];\n acc__1_mut = acc_4[1];\n continue MapTreeModule_partitionAux;\n }\n else {\n return MapTreeModule_partition1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc[0], acc[1]);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function MapTreeModule_partition(comparer, f, m) {\n return MapTreeModule_partitionAux(comparer, f, m, MapTreeModule_empty(), MapTreeModule_empty());\n}\nexport function MapTreeModule_filter1(comparer, f, k, v, acc) {\n if (f(k, v)) {\n return MapTreeModule_add(comparer, k, v, acc);\n }\n else {\n return acc;\n }\n}\nexport function MapTreeModule_filterAux(comparer_mut, f_mut, m_mut, acc_mut) {\n MapTreeModule_filterAux: while (true) {\n const comparer = comparer_mut, f = f_mut, m = m_mut, acc = acc_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const acc_1 = MapTreeModule_filterAux(comparer, f, MapTreeNode$2__get_Left(mn), acc);\n const acc_2 = MapTreeModule_filter1(comparer, f, MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), acc_1);\n comparer_mut = comparer;\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(mn);\n acc_mut = acc_2;\n continue MapTreeModule_filterAux;\n }\n else {\n return MapTreeModule_filter1(comparer, f, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function MapTreeModule_filter(comparer, f, m) {\n return MapTreeModule_filterAux(comparer, f, m, MapTreeModule_empty());\n}\nexport function MapTreeModule_spliceOutSuccessor(m) {\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n if (MapTreeNode$2__get_Left(mn) == null) {\n return [MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn)];\n }\n else {\n const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Left(mn));\n return [patternInput[0], patternInput[1], MapTreeModule_mk(patternInput[2], MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn))];\n }\n }\n else {\n return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), MapTreeModule_empty()];\n }\n }\n else {\n throw new Error(\"internal error: Map.spliceOutSuccessor\");\n }\n}\nexport function MapTreeModule_remove(comparer, k, m) {\n if (m != null) {\n const m2 = value_1(m);\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n if (c < 0) {\n return MapTreeModule_rebalance(MapTreeModule_remove(comparer, k, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn));\n }\n else if (c === 0) {\n if (MapTreeNode$2__get_Left(mn) == null) {\n return MapTreeNode$2__get_Right(mn);\n }\n else if (MapTreeNode$2__get_Right(mn) == null) {\n return MapTreeNode$2__get_Left(mn);\n }\n else {\n const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Right(mn));\n return MapTreeModule_mk(MapTreeNode$2__get_Left(mn), patternInput[0], patternInput[1], patternInput[2]);\n }\n }\n else {\n return MapTreeModule_rebalance(MapTreeNode$2__get_Left(mn), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeModule_remove(comparer, k, MapTreeNode$2__get_Right(mn)));\n }\n }\n else if (c === 0) {\n return MapTreeModule_empty();\n }\n else {\n return m;\n }\n }\n else {\n return MapTreeModule_empty();\n }\n}\nexport function MapTreeModule_change(comparer, k, u, m) {\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(mn)) | 0;\n if (c < 0) {\n return MapTreeModule_rebalance(MapTreeModule_change(comparer, k, u, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeNode$2__get_Right(mn));\n }\n else if (c === 0) {\n const matchValue_1 = u(some(MapTreeLeaf$2__get_Value(mn)));\n if (matchValue_1 != null) {\n return MapTreeNode$2_$ctor_Z39DE9543(k, value_1(matchValue_1), MapTreeNode$2__get_Left(mn), MapTreeNode$2__get_Right(mn), MapTreeNode$2__get_Height(mn));\n }\n else if (MapTreeNode$2__get_Left(mn) == null) {\n return MapTreeNode$2__get_Right(mn);\n }\n else if (MapTreeNode$2__get_Right(mn) == null) {\n return MapTreeNode$2__get_Left(mn);\n }\n else {\n const patternInput = MapTreeModule_spliceOutSuccessor(MapTreeNode$2__get_Right(mn));\n return MapTreeModule_mk(MapTreeNode$2__get_Left(mn), patternInput[0], patternInput[1], patternInput[2]);\n }\n }\n else {\n return MapTreeModule_rebalance(MapTreeNode$2__get_Left(mn), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), MapTreeModule_change(comparer, k, u, MapTreeNode$2__get_Right(mn)));\n }\n }\n else {\n const c_1 = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (c_1 < 0) {\n const matchValue_2 = u(undefined);\n if (matchValue_2 != null) {\n return MapTreeNode$2_$ctor_Z39DE9543(k, value_1(matchValue_2), MapTreeModule_empty(), m, 2);\n }\n else {\n return m;\n }\n }\n else if (c_1 === 0) {\n const matchValue_3 = u(some(MapTreeLeaf$2__get_Value(m2)));\n if (matchValue_3 != null) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, value_1(matchValue_3));\n }\n else {\n return MapTreeModule_empty();\n }\n }\n else {\n const matchValue_4 = u(undefined);\n if (matchValue_4 != null) {\n return MapTreeNode$2_$ctor_Z39DE9543(k, value_1(matchValue_4), m, MapTreeModule_empty(), 2);\n }\n else {\n return m;\n }\n }\n }\n }\n else {\n const matchValue = u(undefined);\n if (matchValue != null) {\n return MapTreeLeaf$2_$ctor_5BDDA1(k, value_1(matchValue));\n }\n else {\n return m;\n }\n }\n}\nexport function MapTreeModule_mem(comparer_mut, k_mut, m_mut) {\n MapTreeModule_mem: while (true) {\n const comparer = comparer_mut, k = k_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n const c = comparer.Compare(k, MapTreeLeaf$2__get_Key(m2)) | 0;\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n if (c < 0) {\n comparer_mut = comparer;\n k_mut = k;\n m_mut = MapTreeNode$2__get_Left(mn);\n continue MapTreeModule_mem;\n }\n else if (c === 0) {\n return true;\n }\n else {\n comparer_mut = comparer;\n k_mut = k;\n m_mut = MapTreeNode$2__get_Right(mn);\n continue MapTreeModule_mem;\n }\n }\n else {\n return c === 0;\n }\n }\n else {\n return false;\n }\n break;\n }\n}\nexport function MapTreeModule_iterOpt(f_mut, m_mut) {\n MapTreeModule_iterOpt: while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n MapTreeModule_iterOpt(f, MapTreeNode$2__get_Left(mn));\n f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(mn);\n continue MapTreeModule_iterOpt;\n }\n else {\n f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n break;\n }\n}\nexport function MapTreeModule_iter(f, m) {\n MapTreeModule_iterOpt(f, m);\n}\nexport function MapTreeModule_tryPickOpt(f_mut, m_mut) {\n MapTreeModule_tryPickOpt: while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const matchValue = MapTreeModule_tryPickOpt(f, MapTreeNode$2__get_Left(mn));\n if (matchValue == null) {\n const matchValue_1 = f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));\n if (matchValue_1 == null) {\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(mn);\n continue MapTreeModule_tryPickOpt;\n }\n else {\n return matchValue_1;\n }\n }\n else {\n return matchValue;\n }\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return undefined;\n }\n break;\n }\n}\nexport function MapTreeModule_tryPick(f, m) {\n return MapTreeModule_tryPickOpt(f, m);\n}\nexport function MapTreeModule_existsOpt(f_mut, m_mut) {\n MapTreeModule_existsOpt: while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n if (MapTreeModule_existsOpt(f, MapTreeNode$2__get_Left(mn)) ? true : f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn))) {\n return true;\n }\n else {\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(mn);\n continue MapTreeModule_existsOpt;\n }\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return false;\n }\n break;\n }\n}\nexport function MapTreeModule_exists(f, m) {\n return MapTreeModule_existsOpt(f, m);\n}\nexport function MapTreeModule_forallOpt(f_mut, m_mut) {\n MapTreeModule_forallOpt: while (true) {\n const f = f_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n if (MapTreeModule_forallOpt(f, MapTreeNode$2__get_Left(mn)) && f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn))) {\n f_mut = f;\n m_mut = MapTreeNode$2__get_Right(mn);\n continue MapTreeModule_forallOpt;\n }\n else {\n return false;\n }\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return true;\n }\n break;\n }\n}\nexport function MapTreeModule_forall(f, m) {\n return MapTreeModule_forallOpt(f, m);\n}\nexport function MapTreeModule_map(f, m) {\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const l2 = MapTreeModule_map(f, MapTreeNode$2__get_Left(mn));\n const v2 = f(MapTreeLeaf$2__get_Value(mn));\n const r2 = MapTreeModule_map(f, MapTreeNode$2__get_Right(mn));\n return MapTreeNode$2_$ctor_Z39DE9543(MapTreeLeaf$2__get_Key(mn), v2, l2, r2, MapTreeNode$2__get_Height(mn));\n }\n else {\n return MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(m2), f(MapTreeLeaf$2__get_Value(m2)));\n }\n }\n else {\n return MapTreeModule_empty();\n }\n}\nexport function MapTreeModule_mapiOpt(f, m) {\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const l2 = MapTreeModule_mapiOpt(f, MapTreeNode$2__get_Left(mn));\n const v2 = f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));\n const r2 = MapTreeModule_mapiOpt(f, MapTreeNode$2__get_Right(mn));\n return MapTreeNode$2_$ctor_Z39DE9543(MapTreeLeaf$2__get_Key(mn), v2, l2, r2, MapTreeNode$2__get_Height(mn));\n }\n else {\n return MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(m2), f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)));\n }\n }\n else {\n return MapTreeModule_empty();\n }\n}\nexport function MapTreeModule_mapi(f, m) {\n return MapTreeModule_mapiOpt(f, m);\n}\nexport function MapTreeModule_foldBackOpt(f_mut, m_mut, x_mut) {\n MapTreeModule_foldBackOpt: while (true) {\n const f = f_mut, m = m_mut, x = x_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const x_1 = MapTreeModule_foldBackOpt(f, MapTreeNode$2__get_Right(mn), x);\n const x_2 = f(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), x_1);\n f_mut = f;\n m_mut = MapTreeNode$2__get_Left(mn);\n x_mut = x_2;\n continue MapTreeModule_foldBackOpt;\n }\n else {\n return f(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x);\n }\n }\n else {\n return x;\n }\n break;\n }\n}\nexport function MapTreeModule_foldBack(f, m, x) {\n return MapTreeModule_foldBackOpt(f, m, x);\n}\nexport function MapTreeModule_foldOpt(f_mut, x_mut, m_mut) {\n MapTreeModule_foldOpt: while (true) {\n const f = f_mut, x = x_mut, m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n f_mut = f;\n x_mut = f(MapTreeModule_foldOpt(f, x, MapTreeNode$2__get_Left(mn)), MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn));\n m_mut = MapTreeNode$2__get_Right(mn);\n continue MapTreeModule_foldOpt;\n }\n else {\n return f(x, MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2));\n }\n }\n else {\n return x;\n }\n break;\n }\n}\nexport function MapTreeModule_fold(f, x, m) {\n return MapTreeModule_foldOpt(f, x, m);\n}\nexport function MapTreeModule_foldSectionOpt(comparer, lo, hi, f, m, x) {\n const foldFromTo = (f_1_mut, m_1_mut, x_1_mut) => {\n foldFromTo: while (true) {\n const f_1 = f_1_mut, m_1 = m_1_mut, x_1 = x_1_mut;\n if (m_1 != null) {\n const m2 = value_1(m_1);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n const cLoKey = comparer.Compare(lo, MapTreeLeaf$2__get_Key(mn)) | 0;\n const cKeyHi = comparer.Compare(MapTreeLeaf$2__get_Key(mn), hi) | 0;\n const x_2 = (cLoKey < 0) ? foldFromTo(f_1, MapTreeNode$2__get_Left(mn), x_1) : x_1;\n const x_3 = ((cLoKey <= 0) && (cKeyHi <= 0)) ? f_1(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn), x_2) : x_2;\n if (cKeyHi < 0) {\n f_1_mut = f_1;\n m_1_mut = MapTreeNode$2__get_Right(mn);\n x_1_mut = x_3;\n continue foldFromTo;\n }\n else {\n return x_3;\n }\n }\n else if ((comparer.Compare(lo, MapTreeLeaf$2__get_Key(m2)) <= 0) && (comparer.Compare(MapTreeLeaf$2__get_Key(m2), hi) <= 0)) {\n return f_1(MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2), x_1);\n }\n else {\n return x_1;\n }\n }\n else {\n return x_1;\n }\n break;\n }\n };\n if (comparer.Compare(lo, hi) === 1) {\n return x;\n }\n else {\n return foldFromTo(f, m, x);\n }\n}\nexport function MapTreeModule_foldSection(comparer, lo, hi, f, m, x) {\n return MapTreeModule_foldSectionOpt(comparer, lo, hi, f, m, x);\n}\nexport function MapTreeModule_toList(m) {\n const loop = (m_1_mut, acc_mut) => {\n loop: while (true) {\n const m_1 = m_1_mut, acc = acc_mut;\n if (m_1 != null) {\n const m2 = value_1(m_1);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n m_1_mut = MapTreeNode$2__get_Left(mn);\n acc_mut = cons([MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn)], loop(MapTreeNode$2__get_Right(mn), acc));\n continue loop;\n }\n else {\n return cons([MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)], acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n };\n return loop(m, empty_1());\n}\nexport function MapTreeModule_copyToArray(m, arr, i) {\n let j = i;\n MapTreeModule_iter((x, y) => {\n setItem(arr, j, [x, y]);\n j = ((j + 1) | 0);\n }, m);\n}\nexport function MapTreeModule_toArray(m) {\n const n = MapTreeModule_size(m) | 0;\n const res = fill(new Array(n), 0, n, [null, null]);\n MapTreeModule_copyToArray(m, res, 0);\n return res;\n}\nexport function MapTreeModule_ofList(comparer, l) {\n return fold_1((acc, tupledArg) => MapTreeModule_add(comparer, tupledArg[0], tupledArg[1], acc), MapTreeModule_empty(), l);\n}\nexport function MapTreeModule_mkFromEnumerator(comparer_mut, acc_mut, e_mut) {\n MapTreeModule_mkFromEnumerator: while (true) {\n const comparer = comparer_mut, acc = acc_mut, e = e_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const patternInput = e[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n comparer_mut = comparer;\n acc_mut = MapTreeModule_add(comparer, patternInput[0], patternInput[1], acc);\n e_mut = e;\n continue MapTreeModule_mkFromEnumerator;\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function MapTreeModule_ofArray(comparer, arr) {\n let res = MapTreeModule_empty();\n for (let idx = 0; idx <= (arr.length - 1); idx++) {\n const forLoopVar = item(idx, arr);\n res = MapTreeModule_add(comparer, forLoopVar[0], forLoopVar[1], res);\n }\n return res;\n}\nexport function MapTreeModule_ofSeq(comparer, c) {\n if (isArrayLike(c)) {\n return MapTreeModule_ofArray(comparer, c);\n }\n else if (c instanceof FSharpList) {\n return MapTreeModule_ofList(comparer, c);\n }\n else {\n const ie = getEnumerator(c);\n try {\n return MapTreeModule_mkFromEnumerator(comparer, MapTreeModule_empty(), ie);\n }\n finally {\n disposeSafe(ie);\n }\n }\n}\nexport class MapTreeModule_MapIterator$2 extends Record {\n constructor(stack, started) {\n super();\n this.stack = stack;\n this.started = started;\n }\n}\nexport function MapTreeModule_MapIterator$2_$reflection(gen0, gen1) {\n return record_type(\"Map.MapTreeModule.MapIterator`2\", [gen0, gen1], MapTreeModule_MapIterator$2, () => [[\"stack\", list_type(option_type(MapTreeLeaf$2_$reflection(gen0, gen1)))], [\"started\", bool_type]]);\n}\nexport function MapTreeModule_collapseLHS(stack_mut) {\n MapTreeModule_collapseLHS: while (true) {\n const stack = stack_mut;\n if (!isEmpty_1(stack)) {\n const rest = tail(stack);\n const m = head(stack);\n if (m != null) {\n const m2 = value_1(m);\n if (m2 instanceof MapTreeNode$2) {\n const mn = m2;\n stack_mut = ofArrayWithTail([MapTreeNode$2__get_Left(mn), MapTreeLeaf$2_$ctor_5BDDA1(MapTreeLeaf$2__get_Key(mn), MapTreeLeaf$2__get_Value(mn)), MapTreeNode$2__get_Right(mn)], rest);\n continue MapTreeModule_collapseLHS;\n }\n else {\n return stack;\n }\n }\n else {\n stack_mut = rest;\n continue MapTreeModule_collapseLHS;\n }\n }\n else {\n return empty_1();\n }\n break;\n }\n}\nexport function MapTreeModule_mkIterator(m) {\n return new MapTreeModule_MapIterator$2(MapTreeModule_collapseLHS(singleton(m)), false);\n}\nexport function MapTreeModule_notStarted() {\n throw new Error(\"enumeration not started\");\n}\nexport function MapTreeModule_alreadyFinished() {\n throw new Error(\"enumeration already finished\");\n}\nexport function MapTreeModule_current(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (!isEmpty_1(matchValue)) {\n if (head(matchValue) != null) {\n const m = value_1(head(matchValue));\n if (m instanceof MapTreeNode$2) {\n throw new Error(\"Please report error: Map iterator, unexpected stack for current\");\n }\n else {\n return [MapTreeLeaf$2__get_Key(m), MapTreeLeaf$2__get_Value(m)];\n }\n }\n else {\n throw new Error(\"Please report error: Map iterator, unexpected stack for current\");\n }\n }\n else {\n return MapTreeModule_alreadyFinished();\n }\n }\n else {\n return MapTreeModule_notStarted();\n }\n}\nexport function MapTreeModule_moveNext(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (!isEmpty_1(matchValue)) {\n if (head(matchValue) != null) {\n const m = value_1(head(matchValue));\n if (m instanceof MapTreeNode$2) {\n throw new Error(\"Please report error: Map iterator, unexpected stack for moveNext\");\n }\n else {\n i.stack = MapTreeModule_collapseLHS(tail(matchValue));\n return !isEmpty_1(i.stack);\n }\n }\n else {\n throw new Error(\"Please report error: Map iterator, unexpected stack for moveNext\");\n }\n }\n else {\n return false;\n }\n }\n else {\n i.started = true;\n return !isEmpty_1(i.stack);\n }\n}\nexport function MapTreeModule_mkIEnumerator(m) {\n let i = MapTreeModule_mkIterator(m);\n return {\n \"System.Collections.Generic.IEnumerator`1.get_Current\"() {\n return MapTreeModule_current(i);\n },\n \"System.Collections.IEnumerator.get_Current\"() {\n return MapTreeModule_current(i);\n },\n \"System.Collections.IEnumerator.MoveNext\"() {\n return MapTreeModule_moveNext(i);\n },\n \"System.Collections.IEnumerator.Reset\"() {\n i = MapTreeModule_mkIterator(m);\n },\n Dispose() {\n },\n };\n}\nexport function MapTreeModule_toSeq(s) {\n return unfold((en_1) => {\n if (en_1[\"System.Collections.IEnumerator.MoveNext\"]()) {\n return [en_1[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), en_1];\n }\n else {\n return undefined;\n }\n }, MapTreeModule_mkIEnumerator(s));\n}\nexport function MapTreeModule_leftmost(m_mut) {\n MapTreeModule_leftmost: while (true) {\n const m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n let matchResult, nd_1;\n if (m2 instanceof MapTreeNode$2) {\n if (MapTreeNode$2__get_Height(m2) > 1) {\n matchResult = 0;\n nd_1 = m2;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n if (MapTreeNode$2__get_Left(nd_1) == null) {\n return [MapTreeLeaf$2__get_Key(nd_1), MapTreeLeaf$2__get_Value(nd_1)];\n }\n else {\n m_mut = MapTreeNode$2__get_Left(nd_1);\n continue MapTreeModule_leftmost;\n }\n default:\n return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)];\n }\n }\n else {\n throw new Error();\n }\n break;\n }\n}\nexport function MapTreeModule_rightmost(m_mut) {\n MapTreeModule_rightmost: while (true) {\n const m = m_mut;\n if (m != null) {\n const m2 = value_1(m);\n let matchResult, nd_1;\n if (m2 instanceof MapTreeNode$2) {\n if (MapTreeNode$2__get_Height(m2) > 1) {\n matchResult = 0;\n nd_1 = m2;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n if (MapTreeNode$2__get_Right(nd_1) == null) {\n return [MapTreeLeaf$2__get_Key(nd_1), MapTreeLeaf$2__get_Value(nd_1)];\n }\n else {\n m_mut = MapTreeNode$2__get_Right(nd_1);\n continue MapTreeModule_rightmost;\n }\n default:\n return [MapTreeLeaf$2__get_Key(m2), MapTreeLeaf$2__get_Value(m2)];\n }\n }\n else {\n throw new Error();\n }\n break;\n }\n}\nexport class FSharpMap {\n constructor(comparer, tree) {\n this.comparer = comparer;\n this.tree = tree;\n }\n GetHashCode() {\n const this$ = this;\n return FSharpMap__ComputeHashCode(this$) | 0;\n }\n Equals(that) {\n const this$ = this;\n if (that instanceof FSharpMap) {\n const that_1 = that;\n const e1 = getEnumerator(this$);\n try {\n const e2 = getEnumerator(that_1);\n try {\n const loop = () => {\n const m1 = e1[\"System.Collections.IEnumerator.MoveNext\"]();\n if (m1 === e2[\"System.Collections.IEnumerator.MoveNext\"]()) {\n if (!m1) {\n return true;\n }\n else {\n const e1c = e1[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n const e2c = e2[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n if (equals(e1c[0], e2c[0]) && equals(e1c[1], e2c[1])) {\n return loop();\n }\n else {\n return false;\n }\n }\n }\n else {\n return false;\n }\n };\n return loop();\n }\n finally {\n disposeSafe(e2);\n }\n }\n finally {\n disposeSafe(e1);\n }\n }\n else {\n return false;\n }\n }\n toString() {\n const this$ = this;\n return (\"map [\" + join(\"; \", map_1((kv) => format(\"({0}, {1})\", kv[0], kv[1]), this$))) + \"]\";\n }\n get [Symbol.toStringTag]() {\n return \"FSharpMap\";\n }\n toJSON() {\n const this$ = this;\n return Array.from(this$);\n }\n GetEnumerator() {\n const _ = this;\n return MapTreeModule_mkIEnumerator(_.tree);\n }\n [Symbol.iterator]() {\n return toIterator(getEnumerator(this));\n }\n \"System.Collections.IEnumerable.GetEnumerator\"() {\n const _ = this;\n return MapTreeModule_mkIEnumerator(_.tree);\n }\n CompareTo(obj) {\n const m = this;\n if (obj instanceof FSharpMap) {\n const m2 = obj;\n return compareWith((kvp1, kvp2) => {\n const c = m.comparer.Compare(kvp1[0], kvp2[0]) | 0;\n return ((c !== 0) ? c : compare(kvp1[1], kvp2[1])) | 0;\n }, m, m2) | 0;\n }\n else {\n throw new Error(\"not comparable\\\\nParameter name: obj\");\n }\n }\n \"System.Collections.Generic.ICollection`1.Add2B595\"(x) {\n throw new Error(\"Map cannot be mutated\");\n }\n \"System.Collections.Generic.ICollection`1.Clear\"() {\n throw new Error(\"Map cannot be mutated\");\n }\n \"System.Collections.Generic.ICollection`1.Remove2B595\"(x) {\n throw new Error(\"Map cannot be mutated\");\n }\n \"System.Collections.Generic.ICollection`1.Contains2B595\"(x) {\n const m = this;\n return FSharpMap__ContainsKey(m, x[0]) && equals(FSharpMap__get_Item(m, x[0]), x[1]);\n }\n \"System.Collections.Generic.ICollection`1.CopyToZ3B4C077E\"(arr, i) {\n const m = this;\n MapTreeModule_copyToArray(m.tree, arr, i);\n }\n \"System.Collections.Generic.ICollection`1.get_IsReadOnly\"() {\n return true;\n }\n \"System.Collections.Generic.ICollection`1.get_Count\"() {\n const m = this;\n return FSharpMap__get_Count(m) | 0;\n }\n \"System.Collections.Generic.IReadOnlyCollection`1.get_Count\"() {\n const m = this;\n return FSharpMap__get_Count(m) | 0;\n }\n get size() {\n const m = this;\n return FSharpMap__get_Count(m) | 0;\n }\n clear() {\n throw new Error(\"Map cannot be mutated\");\n }\n delete(_arg) {\n throw new Error(\"Map cannot be mutated\");\n return false;\n }\n entries() {\n const m = this;\n return map_1((p) => [p[0], p[1]], m);\n }\n get(k) {\n const m = this;\n return FSharpMap__get_Item(m, k);\n }\n has(k) {\n const m = this;\n return FSharpMap__ContainsKey(m, k);\n }\n keys() {\n const m = this;\n return map_1((p) => p[0], m);\n }\n set(k, v) {\n const m = this;\n throw new Error(\"Map cannot be mutated\");\n return m;\n }\n values() {\n const m = this;\n return map_1((p) => p[1], m);\n }\n forEach(f, thisArg) {\n const m = this;\n iterate_1((p) => {\n f(p[1], p[0], m);\n }, m);\n }\n}\nexport function FSharpMap_$reflection(gen0, gen1) {\n return class_type(\"Map.FSharpMap\", [gen0, gen1], FSharpMap);\n}\nexport function FSharpMap_$ctor(comparer, tree) {\n return new FSharpMap(comparer, tree);\n}\nexport function FSharpMap_Empty(comparer) {\n return FSharpMap_$ctor(comparer, MapTreeModule_empty());\n}\nexport function FSharpMap__get_Comparer(m) {\n return m.comparer;\n}\nexport function FSharpMap__get_Tree(m) {\n return m.tree;\n}\nexport function FSharpMap__Add(m, key, value) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_add(m.comparer, key, value, m.tree));\n}\nexport function FSharpMap__Change(m, key, f) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_change(m.comparer, key, f, m.tree));\n}\nexport function FSharpMap__get_IsEmpty(m) {\n return m.tree == null;\n}\nexport function FSharpMap__get_Item(m, key) {\n return MapTreeModule_find(m.comparer, key, m.tree);\n}\nexport function FSharpMap__TryPick(m, f) {\n return MapTreeModule_tryPick(f, m.tree);\n}\nexport function FSharpMap__Exists(m, predicate) {\n return MapTreeModule_exists(predicate, m.tree);\n}\nexport function FSharpMap__Filter(m, predicate) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_filter(m.comparer, predicate, m.tree));\n}\nexport function FSharpMap__ForAll(m, predicate) {\n return MapTreeModule_forall(predicate, m.tree);\n}\nexport function FSharpMap__Fold(m, f, acc) {\n return MapTreeModule_foldBack(f, m.tree, acc);\n}\nexport function FSharpMap__FoldSection(m, lo, hi, f, acc) {\n return MapTreeModule_foldSection(m.comparer, lo, hi, f, m.tree, acc);\n}\nexport function FSharpMap__Iterate(m, f) {\n MapTreeModule_iter(f, m.tree);\n}\nexport function FSharpMap__MapRange(m, f) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_map(f, m.tree));\n}\nexport function FSharpMap__Map(m, f) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_mapi(f, m.tree));\n}\nexport function FSharpMap__Partition(m, predicate) {\n const patternInput = MapTreeModule_partition(m.comparer, predicate, m.tree);\n return [FSharpMap_$ctor(m.comparer, patternInput[0]), FSharpMap_$ctor(m.comparer, patternInput[1])];\n}\nexport function FSharpMap__get_Count(m) {\n return MapTreeModule_size(m.tree);\n}\nexport function FSharpMap__ContainsKey(m, key) {\n return MapTreeModule_mem(m.comparer, key, m.tree);\n}\nexport function FSharpMap__Remove(m, key) {\n return FSharpMap_$ctor(m.comparer, MapTreeModule_remove(m.comparer, key, m.tree));\n}\nexport function FSharpMap__TryGetValue(_, key, value) {\n const matchValue = MapTreeModule_tryFind(_.comparer, key, _.tree);\n if (matchValue == null) {\n return false;\n }\n else {\n const v = value_1(matchValue);\n value.contents = v;\n return true;\n }\n}\nexport function FSharpMap__get_Keys(_) {\n return map_2((kvp) => kvp[0], MapTreeModule_toArray(_.tree));\n}\nexport function FSharpMap__get_Values(_) {\n return map_2((kvp) => kvp[1], MapTreeModule_toArray(_.tree));\n}\nexport function FSharpMap__get_MinKeyValue(m) {\n return MapTreeModule_leftmost(m.tree);\n}\nexport function FSharpMap__get_MaxKeyValue(m) {\n return MapTreeModule_rightmost(m.tree);\n}\nexport function FSharpMap__TryFind(m, key) {\n return MapTreeModule_tryFind(m.comparer, key, m.tree);\n}\nexport function FSharpMap__ToList(m) {\n return MapTreeModule_toList(m.tree);\n}\nexport function FSharpMap__ToArray(m) {\n return MapTreeModule_toArray(m.tree);\n}\nexport function FSharpMap__ComputeHashCode(this$) {\n const combineHash = (x, y) => (((x << 1) + y) + 631);\n let res = 0;\n const enumerator = getEnumerator(this$);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const activePatternResult = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n res = (combineHash(res, structuralHash(activePatternResult[0])) | 0);\n res = (combineHash(res, structuralHash(activePatternResult[1])) | 0);\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return res | 0;\n}\nexport function isEmpty(table) {\n return FSharpMap__get_IsEmpty(table);\n}\nexport function add(key, value, table) {\n return FSharpMap__Add(table, key, value);\n}\nexport function change(key, f, table) {\n return FSharpMap__Change(table, key, f);\n}\nexport function find(key, table) {\n return FSharpMap__get_Item(table, key);\n}\nexport function tryFind(key, table) {\n return FSharpMap__TryFind(table, key);\n}\nexport function remove(key, table) {\n return FSharpMap__Remove(table, key);\n}\nexport function containsKey(key, table) {\n return FSharpMap__ContainsKey(table, key);\n}\nexport function iterate(action, table) {\n FSharpMap__Iterate(table, action);\n}\nexport function tryPick(chooser, table) {\n return FSharpMap__TryPick(table, chooser);\n}\nexport function pick(chooser, table) {\n const matchValue = tryPick(chooser, table);\n if (matchValue != null) {\n return value_1(matchValue);\n }\n else {\n throw new Error();\n }\n}\nexport function exists(predicate, table) {\n return FSharpMap__Exists(table, predicate);\n}\nexport function filter(predicate, table) {\n return FSharpMap__Filter(table, predicate);\n}\nexport function partition(predicate, table) {\n return FSharpMap__Partition(table, predicate);\n}\nexport function forAll(predicate, table) {\n return FSharpMap__ForAll(table, predicate);\n}\nexport function map(mapping, table) {\n return FSharpMap__Map(table, mapping);\n}\nexport function fold(folder, state, table) {\n return MapTreeModule_fold(folder, state, FSharpMap__get_Tree(table));\n}\nexport function foldBack(folder, table, state) {\n return MapTreeModule_foldBack(folder, FSharpMap__get_Tree(table), state);\n}\nexport function toSeq(table) {\n return map_1((kvp) => [kvp[0], kvp[1]], table);\n}\nexport function findKey(predicate, table) {\n return pick_1((kvp) => {\n const k = kvp[0];\n if (predicate(k, kvp[1])) {\n return some(k);\n }\n else {\n return undefined;\n }\n }, table);\n}\nexport function tryFindKey(predicate, table) {\n return tryPick_1((kvp) => {\n const k = kvp[0];\n if (predicate(k, kvp[1])) {\n return some(k);\n }\n else {\n return undefined;\n }\n }, table);\n}\nexport function ofList(elements, comparer) {\n return FSharpMap_$ctor(comparer, MapTreeModule_ofSeq(comparer, elements));\n}\nexport function ofSeq(elements, comparer) {\n return FSharpMap_$ctor(comparer, MapTreeModule_ofSeq(comparer, elements));\n}\nexport function ofArray(elements, comparer) {\n return FSharpMap_$ctor(comparer, MapTreeModule_ofSeq(comparer, elements));\n}\nexport function toList(table) {\n return FSharpMap__ToList(table);\n}\nexport function toArray(table) {\n return FSharpMap__ToArray(table);\n}\nexport function keys(table) {\n return FSharpMap__get_Keys(table);\n}\nexport function values(table) {\n return FSharpMap__get_Values(table);\n}\nexport function minKeyValue(table) {\n return FSharpMap__get_MinKeyValue(table);\n}\nexport function maxKeyValue(table) {\n return FSharpMap__get_MaxKeyValue(table);\n}\nexport function empty(comparer) {\n return FSharpMap_Empty(comparer);\n}\nexport function count(table) {\n return FSharpMap__get_Count(table);\n}\n","import { record_type, bool_type, list_type, option_type, class_type } from \"./Reflection.js\";\nimport { some, value as value_3 } from \"./Option.js\";\nimport { structuralHash, toIterator, disposeSafe, getEnumerator, isArrayLike } from \"./Util.js\";\nimport { toString, Record } from \"./Types.js\";\nimport { fold as fold_2, cons, singleton as singleton_1, empty as empty_1, ofArrayWithTail, tail, head, isEmpty as isEmpty_1, FSharpList } from \"./List.js\";\nimport { fold as fold_1, fill, setItem } from \"./Array.js\";\nimport { join } from \"./String.js\";\nimport { exists as exists_1, cache, forAll as forAll_1, fold as fold_3, reduce, iterate as iterate_1, map as map_1 } from \"./Seq.js\";\nimport { HashSet__get_Comparer, HashSet_$ctor_Z6150332D, HashSet } from \"./MutableSet.js\";\nexport class SetTreeLeaf$1 {\n constructor(k) {\n this.k = k;\n }\n}\nexport function SetTreeLeaf$1_$reflection(gen0) {\n return class_type(\"Set.SetTreeLeaf`1\", [gen0], SetTreeLeaf$1);\n}\nexport function SetTreeLeaf$1_$ctor_2B595(k) {\n return new SetTreeLeaf$1(k);\n}\nexport function SetTreeLeaf$1__get_Key(_) {\n return _.k;\n}\nexport class SetTreeNode$1 extends SetTreeLeaf$1 {\n constructor(v, left, right, h) {\n super(v);\n this.left = left;\n this.right = right;\n this.h = (h | 0);\n }\n}\nexport function SetTreeNode$1_$reflection(gen0) {\n return class_type(\"Set.SetTreeNode`1\", [gen0], SetTreeNode$1, SetTreeLeaf$1_$reflection(gen0));\n}\nexport function SetTreeNode$1_$ctor_5F465FC9(v, left, right, h) {\n return new SetTreeNode$1(v, left, right, h);\n}\nexport function SetTreeNode$1__get_Left(_) {\n return _.left;\n}\nexport function SetTreeNode$1__get_Right(_) {\n return _.right;\n}\nexport function SetTreeNode$1__get_Height(_) {\n return _.h;\n}\nexport function SetTreeModule_empty() {\n return undefined;\n}\nexport function SetTreeModule_countAux(t_mut, acc_mut) {\n SetTreeModule_countAux: while (true) {\n const t = t_mut, acc = acc_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n t_mut = SetTreeNode$1__get_Left(tn);\n acc_mut = SetTreeModule_countAux(SetTreeNode$1__get_Right(tn), acc + 1);\n continue SetTreeModule_countAux;\n }\n else {\n return (acc + 1) | 0;\n }\n }\n else {\n return acc | 0;\n }\n break;\n }\n}\nexport function SetTreeModule_count(s) {\n return SetTreeModule_countAux(s, 0);\n}\nexport function SetTreeModule_mk(l, k, r) {\n let tn, tn_1;\n let hl;\n const t = l;\n if (t != null) {\n const t2 = value_3(t);\n hl = ((t2 instanceof SetTreeNode$1) ? ((tn = t2, SetTreeNode$1__get_Height(tn))) : 1);\n }\n else {\n hl = 0;\n }\n let hr;\n const t_1 = r;\n if (t_1 != null) {\n const t2_1 = value_3(t_1);\n hr = ((t2_1 instanceof SetTreeNode$1) ? ((tn_1 = t2_1, SetTreeNode$1__get_Height(tn_1))) : 1);\n }\n else {\n hr = 0;\n }\n const m = ((hl < hr) ? hr : hl) | 0;\n if (m === 0) {\n return SetTreeLeaf$1_$ctor_2B595(k);\n }\n else {\n return SetTreeNode$1_$ctor_5F465FC9(k, l, r, m + 1);\n }\n}\nexport function SetTreeModule_rebalance(t1, v, t2) {\n let tn, tn_1, t_2, t2_3, tn_2, t_3, t2_4, tn_3;\n let t1h;\n const t = t1;\n if (t != null) {\n const t2_1 = value_3(t);\n t1h = ((t2_1 instanceof SetTreeNode$1) ? ((tn = t2_1, SetTreeNode$1__get_Height(tn))) : 1);\n }\n else {\n t1h = 0;\n }\n let t2h;\n const t_1 = t2;\n if (t_1 != null) {\n const t2_2 = value_3(t_1);\n t2h = ((t2_2 instanceof SetTreeNode$1) ? ((tn_1 = t2_2, SetTreeNode$1__get_Height(tn_1))) : 1);\n }\n else {\n t2h = 0;\n }\n if (t2h > (t1h + 2)) {\n const matchValue = value_3(t2);\n if (matchValue instanceof SetTreeNode$1) {\n const t2$0027 = matchValue;\n if (((t_2 = SetTreeNode$1__get_Left(t2$0027), (t_2 != null) ? ((t2_3 = value_3(t_2), (t2_3 instanceof SetTreeNode$1) ? ((tn_2 = t2_3, SetTreeNode$1__get_Height(tn_2))) : 1)) : 0)) > (t1h + 1)) {\n const matchValue_1 = value_3(SetTreeNode$1__get_Left(t2$0027));\n if (matchValue_1 instanceof SetTreeNode$1) {\n const t2l = matchValue_1;\n return SetTreeModule_mk(SetTreeModule_mk(t1, v, SetTreeNode$1__get_Left(t2l)), SetTreeLeaf$1__get_Key(t2l), SetTreeModule_mk(SetTreeNode$1__get_Right(t2l), SetTreeLeaf$1__get_Key(t2$0027), SetTreeNode$1__get_Right(t2$0027)));\n }\n else {\n throw new Error(\"internal error: Set.rebalance\");\n }\n }\n else {\n return SetTreeModule_mk(SetTreeModule_mk(t1, v, SetTreeNode$1__get_Left(t2$0027)), SetTreeLeaf$1__get_Key(t2$0027), SetTreeNode$1__get_Right(t2$0027));\n }\n }\n else {\n throw new Error(\"internal error: Set.rebalance\");\n }\n }\n else if (t1h > (t2h + 2)) {\n const matchValue_2 = value_3(t1);\n if (matchValue_2 instanceof SetTreeNode$1) {\n const t1$0027 = matchValue_2;\n if (((t_3 = SetTreeNode$1__get_Right(t1$0027), (t_3 != null) ? ((t2_4 = value_3(t_3), (t2_4 instanceof SetTreeNode$1) ? ((tn_3 = t2_4, SetTreeNode$1__get_Height(tn_3))) : 1)) : 0)) > (t2h + 1)) {\n const matchValue_3 = value_3(SetTreeNode$1__get_Right(t1$0027));\n if (matchValue_3 instanceof SetTreeNode$1) {\n const t1r = matchValue_3;\n return SetTreeModule_mk(SetTreeModule_mk(SetTreeNode$1__get_Left(t1$0027), SetTreeLeaf$1__get_Key(t1$0027), SetTreeNode$1__get_Left(t1r)), SetTreeLeaf$1__get_Key(t1r), SetTreeModule_mk(SetTreeNode$1__get_Right(t1r), v, t2));\n }\n else {\n throw new Error(\"internal error: Set.rebalance\");\n }\n }\n else {\n return SetTreeModule_mk(SetTreeNode$1__get_Left(t1$0027), SetTreeLeaf$1__get_Key(t1$0027), SetTreeModule_mk(SetTreeNode$1__get_Right(t1$0027), v, t2));\n }\n }\n else {\n throw new Error(\"internal error: Set.rebalance\");\n }\n }\n else {\n return SetTreeModule_mk(t1, v, t2);\n }\n}\nexport function SetTreeModule_add(comparer, k, t) {\n if (t != null) {\n const t2 = value_3(t);\n const c = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n if (c < 0) {\n return SetTreeModule_rebalance(SetTreeModule_add(comparer, k, SetTreeNode$1__get_Left(tn)), SetTreeLeaf$1__get_Key(tn), SetTreeNode$1__get_Right(tn));\n }\n else if (c === 0) {\n return t;\n }\n else {\n return SetTreeModule_rebalance(SetTreeNode$1__get_Left(tn), SetTreeLeaf$1__get_Key(tn), SetTreeModule_add(comparer, k, SetTreeNode$1__get_Right(tn)));\n }\n }\n else {\n const c_1 = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (c_1 < 0) {\n return SetTreeNode$1_$ctor_5F465FC9(k, SetTreeModule_empty(), t, 2);\n }\n else if (c_1 === 0) {\n return t;\n }\n else {\n return SetTreeNode$1_$ctor_5F465FC9(k, t, SetTreeModule_empty(), 2);\n }\n }\n }\n else {\n return SetTreeLeaf$1_$ctor_2B595(k);\n }\n}\nexport function SetTreeModule_balance(comparer, t1, k, t2) {\n if (t1 != null) {\n const t1$0027 = value_3(t1);\n if (t2 != null) {\n const t2$0027 = value_3(t2);\n if (t1$0027 instanceof SetTreeNode$1) {\n const t1n = t1$0027;\n if (t2$0027 instanceof SetTreeNode$1) {\n const t2n = t2$0027;\n if ((SetTreeNode$1__get_Height(t1n) + 2) < SetTreeNode$1__get_Height(t2n)) {\n return SetTreeModule_rebalance(SetTreeModule_balance(comparer, t1, k, SetTreeNode$1__get_Left(t2n)), SetTreeLeaf$1__get_Key(t2n), SetTreeNode$1__get_Right(t2n));\n }\n else if ((SetTreeNode$1__get_Height(t2n) + 2) < SetTreeNode$1__get_Height(t1n)) {\n return SetTreeModule_rebalance(SetTreeNode$1__get_Left(t1n), SetTreeLeaf$1__get_Key(t1n), SetTreeModule_balance(comparer, SetTreeNode$1__get_Right(t1n), k, t2));\n }\n else {\n return SetTreeModule_mk(t1, k, t2);\n }\n }\n else {\n return SetTreeModule_add(comparer, k, SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2$0027), t1));\n }\n }\n else {\n return SetTreeModule_add(comparer, k, SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t1$0027), t2));\n }\n }\n else {\n return SetTreeModule_add(comparer, k, t1);\n }\n }\n else {\n return SetTreeModule_add(comparer, k, t2);\n }\n}\nexport function SetTreeModule_split(comparer, pivot, t) {\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n const c = comparer.Compare(pivot, SetTreeLeaf$1__get_Key(tn)) | 0;\n if (c < 0) {\n const patternInput = SetTreeModule_split(comparer, pivot, SetTreeNode$1__get_Left(tn));\n return [patternInput[0], patternInput[1], SetTreeModule_balance(comparer, patternInput[2], SetTreeLeaf$1__get_Key(tn), SetTreeNode$1__get_Right(tn))];\n }\n else if (c === 0) {\n return [SetTreeNode$1__get_Left(tn), true, SetTreeNode$1__get_Right(tn)];\n }\n else {\n const patternInput_1 = SetTreeModule_split(comparer, pivot, SetTreeNode$1__get_Right(tn));\n return [SetTreeModule_balance(comparer, SetTreeNode$1__get_Left(tn), SetTreeLeaf$1__get_Key(tn), patternInput_1[0]), patternInput_1[1], patternInput_1[2]];\n }\n }\n else {\n const c_1 = comparer.Compare(SetTreeLeaf$1__get_Key(t2), pivot) | 0;\n if (c_1 < 0) {\n return [t, false, SetTreeModule_empty()];\n }\n else if (c_1 === 0) {\n return [SetTreeModule_empty(), true, SetTreeModule_empty()];\n }\n else {\n return [SetTreeModule_empty(), false, t];\n }\n }\n }\n else {\n return [SetTreeModule_empty(), false, SetTreeModule_empty()];\n }\n}\nexport function SetTreeModule_spliceOutSuccessor(t) {\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n if (SetTreeNode$1__get_Left(tn) == null) {\n return [SetTreeLeaf$1__get_Key(tn), SetTreeNode$1__get_Right(tn)];\n }\n else {\n const patternInput = SetTreeModule_spliceOutSuccessor(SetTreeNode$1__get_Left(tn));\n return [patternInput[0], SetTreeModule_mk(patternInput[1], SetTreeLeaf$1__get_Key(tn), SetTreeNode$1__get_Right(tn))];\n }\n }\n else {\n return [SetTreeLeaf$1__get_Key(t2), SetTreeModule_empty()];\n }\n }\n else {\n throw new Error(\"internal error: Set.spliceOutSuccessor\");\n }\n}\nexport function SetTreeModule_remove(comparer, k, t) {\n if (t != null) {\n const t2 = value_3(t);\n const c = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n if (c < 0) {\n return SetTreeModule_rebalance(SetTreeModule_remove(comparer, k, SetTreeNode$1__get_Left(tn)), SetTreeLeaf$1__get_Key(tn), SetTreeNode$1__get_Right(tn));\n }\n else if (c === 0) {\n if (SetTreeNode$1__get_Left(tn) == null) {\n return SetTreeNode$1__get_Right(tn);\n }\n else if (SetTreeNode$1__get_Right(tn) == null) {\n return SetTreeNode$1__get_Left(tn);\n }\n else {\n const patternInput = SetTreeModule_spliceOutSuccessor(SetTreeNode$1__get_Right(tn));\n return SetTreeModule_mk(SetTreeNode$1__get_Left(tn), patternInput[0], patternInput[1]);\n }\n }\n else {\n return SetTreeModule_rebalance(SetTreeNode$1__get_Left(tn), SetTreeLeaf$1__get_Key(tn), SetTreeModule_remove(comparer, k, SetTreeNode$1__get_Right(tn)));\n }\n }\n else if (c === 0) {\n return SetTreeModule_empty();\n }\n else {\n return t;\n }\n }\n else {\n return t;\n }\n}\nexport function SetTreeModule_mem(comparer_mut, k_mut, t_mut) {\n SetTreeModule_mem: while (true) {\n const comparer = comparer_mut, k = k_mut, t = t_mut;\n if (t != null) {\n const t2 = value_3(t);\n const c = comparer.Compare(k, SetTreeLeaf$1__get_Key(t2)) | 0;\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n if (c < 0) {\n comparer_mut = comparer;\n k_mut = k;\n t_mut = SetTreeNode$1__get_Left(tn);\n continue SetTreeModule_mem;\n }\n else if (c === 0) {\n return true;\n }\n else {\n comparer_mut = comparer;\n k_mut = k;\n t_mut = SetTreeNode$1__get_Right(tn);\n continue SetTreeModule_mem;\n }\n }\n else {\n return c === 0;\n }\n }\n else {\n return false;\n }\n break;\n }\n}\nexport function SetTreeModule_iter(f_mut, t_mut) {\n SetTreeModule_iter: while (true) {\n const f = f_mut, t = t_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n SetTreeModule_iter(f, SetTreeNode$1__get_Left(tn));\n f(SetTreeLeaf$1__get_Key(tn));\n f_mut = f;\n t_mut = SetTreeNode$1__get_Right(tn);\n continue SetTreeModule_iter;\n }\n else {\n f(SetTreeLeaf$1__get_Key(t2));\n }\n }\n break;\n }\n}\nexport function SetTreeModule_foldBackOpt(f_mut, t_mut, x_mut) {\n SetTreeModule_foldBackOpt: while (true) {\n const f = f_mut, t = t_mut, x = x_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n f_mut = f;\n t_mut = SetTreeNode$1__get_Left(tn);\n x_mut = f(SetTreeLeaf$1__get_Key(tn), SetTreeModule_foldBackOpt(f, SetTreeNode$1__get_Right(tn), x));\n continue SetTreeModule_foldBackOpt;\n }\n else {\n return f(SetTreeLeaf$1__get_Key(t2), x);\n }\n }\n else {\n return x;\n }\n break;\n }\n}\nexport function SetTreeModule_foldBack(f, m, x) {\n return SetTreeModule_foldBackOpt(f, m, x);\n}\nexport function SetTreeModule_foldOpt(f_mut, x_mut, t_mut) {\n SetTreeModule_foldOpt: while (true) {\n const f = f_mut, x = x_mut, t = t_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n f_mut = f;\n x_mut = f(SetTreeModule_foldOpt(f, x, SetTreeNode$1__get_Left(tn)), SetTreeLeaf$1__get_Key(tn));\n t_mut = SetTreeNode$1__get_Right(tn);\n continue SetTreeModule_foldOpt;\n }\n else {\n return f(x, SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return x;\n }\n break;\n }\n}\nexport function SetTreeModule_fold(f, x, m) {\n return SetTreeModule_foldOpt(f, x, m);\n}\nexport function SetTreeModule_forall(f_mut, t_mut) {\n SetTreeModule_forall: while (true) {\n const f = f_mut, t = t_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n if (f(SetTreeLeaf$1__get_Key(tn)) && SetTreeModule_forall(f, SetTreeNode$1__get_Left(tn))) {\n f_mut = f;\n t_mut = SetTreeNode$1__get_Right(tn);\n continue SetTreeModule_forall;\n }\n else {\n return false;\n }\n }\n else {\n return f(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return true;\n }\n break;\n }\n}\nexport function SetTreeModule_exists(f_mut, t_mut) {\n SetTreeModule_exists: while (true) {\n const f = f_mut, t = t_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n if (f(SetTreeLeaf$1__get_Key(tn)) ? true : SetTreeModule_exists(f, SetTreeNode$1__get_Left(tn))) {\n return true;\n }\n else {\n f_mut = f;\n t_mut = SetTreeNode$1__get_Right(tn);\n continue SetTreeModule_exists;\n }\n }\n else {\n return f(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return false;\n }\n break;\n }\n}\nexport function SetTreeModule_subset(comparer, a, b) {\n return SetTreeModule_forall((x) => SetTreeModule_mem(comparer, x, b), a);\n}\nexport function SetTreeModule_properSubset(comparer, a, b) {\n if (SetTreeModule_forall((x) => SetTreeModule_mem(comparer, x, b), a)) {\n return SetTreeModule_exists((x_1) => !SetTreeModule_mem(comparer, x_1, a), b);\n }\n else {\n return false;\n }\n}\nexport function SetTreeModule_filterAux(comparer_mut, f_mut, t_mut, acc_mut) {\n SetTreeModule_filterAux: while (true) {\n const comparer = comparer_mut, f = f_mut, t = t_mut, acc = acc_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n const acc_1 = f(SetTreeLeaf$1__get_Key(tn)) ? SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(tn), acc) : acc;\n comparer_mut = comparer;\n f_mut = f;\n t_mut = SetTreeNode$1__get_Left(tn);\n acc_mut = SetTreeModule_filterAux(comparer, f, SetTreeNode$1__get_Right(tn), acc_1);\n continue SetTreeModule_filterAux;\n }\n else if (f(SetTreeLeaf$1__get_Key(t2))) {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2), acc);\n }\n else {\n return acc;\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function SetTreeModule_filter(comparer, f, s) {\n return SetTreeModule_filterAux(comparer, f, s, SetTreeModule_empty());\n}\nexport function SetTreeModule_diffAux(comparer_mut, t_mut, acc_mut) {\n SetTreeModule_diffAux: while (true) {\n const comparer = comparer_mut, t = t_mut, acc = acc_mut;\n if (acc == null) {\n return acc;\n }\n else if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n comparer_mut = comparer;\n t_mut = SetTreeNode$1__get_Left(tn);\n acc_mut = SetTreeModule_diffAux(comparer, SetTreeNode$1__get_Right(tn), SetTreeModule_remove(comparer, SetTreeLeaf$1__get_Key(tn), acc));\n continue SetTreeModule_diffAux;\n }\n else {\n return SetTreeModule_remove(comparer, SetTreeLeaf$1__get_Key(t2), acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function SetTreeModule_diff(comparer, a, b) {\n return SetTreeModule_diffAux(comparer, b, a);\n}\nexport function SetTreeModule_union(comparer, t1, t2) {\n if (t1 != null) {\n const t1$0027 = value_3(t1);\n if (t2 != null) {\n const t2$0027 = value_3(t2);\n if (t1$0027 instanceof SetTreeNode$1) {\n const t1n = t1$0027;\n if (t2$0027 instanceof SetTreeNode$1) {\n const t2n = t2$0027;\n if (SetTreeNode$1__get_Height(t1n) > SetTreeNode$1__get_Height(t2n)) {\n const patternInput = SetTreeModule_split(comparer, SetTreeLeaf$1__get_Key(t1n), t2);\n return SetTreeModule_balance(comparer, SetTreeModule_union(comparer, SetTreeNode$1__get_Left(t1n), patternInput[0]), SetTreeLeaf$1__get_Key(t1n), SetTreeModule_union(comparer, SetTreeNode$1__get_Right(t1n), patternInput[2]));\n }\n else {\n const patternInput_1 = SetTreeModule_split(comparer, SetTreeLeaf$1__get_Key(t2n), t1);\n return SetTreeModule_balance(comparer, SetTreeModule_union(comparer, SetTreeNode$1__get_Left(t2n), patternInput_1[0]), SetTreeLeaf$1__get_Key(t2n), SetTreeModule_union(comparer, SetTreeNode$1__get_Right(t2n), patternInput_1[2]));\n }\n }\n else {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2$0027), t1);\n }\n }\n else {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t1$0027), t2);\n }\n }\n else {\n return t1;\n }\n }\n else {\n return t2;\n }\n}\nexport function SetTreeModule_intersectionAux(comparer_mut, b_mut, t_mut, acc_mut) {\n SetTreeModule_intersectionAux: while (true) {\n const comparer = comparer_mut, b = b_mut, t = t_mut, acc = acc_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n const acc_1 = SetTreeModule_intersectionAux(comparer, b, SetTreeNode$1__get_Right(tn), acc);\n const acc_2 = SetTreeModule_mem(comparer, SetTreeLeaf$1__get_Key(tn), b) ? SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(tn), acc_1) : acc_1;\n comparer_mut = comparer;\n b_mut = b;\n t_mut = SetTreeNode$1__get_Left(tn);\n acc_mut = acc_2;\n continue SetTreeModule_intersectionAux;\n }\n else if (SetTreeModule_mem(comparer, SetTreeLeaf$1__get_Key(t2), b)) {\n return SetTreeModule_add(comparer, SetTreeLeaf$1__get_Key(t2), acc);\n }\n else {\n return acc;\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function SetTreeModule_intersection(comparer, a, b) {\n return SetTreeModule_intersectionAux(comparer, b, a, SetTreeModule_empty());\n}\nexport function SetTreeModule_partition1(comparer, f, k, acc1, acc2) {\n if (f(k)) {\n return [SetTreeModule_add(comparer, k, acc1), acc2];\n }\n else {\n return [acc1, SetTreeModule_add(comparer, k, acc2)];\n }\n}\nexport function SetTreeModule_partitionAux(comparer_mut, f_mut, t_mut, acc__mut, acc__1_mut) {\n SetTreeModule_partitionAux: while (true) {\n const comparer = comparer_mut, f = f_mut, t = t_mut, acc_ = acc__mut, acc__1 = acc__1_mut;\n const acc = [acc_, acc__1];\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n const acc_1 = SetTreeModule_partitionAux(comparer, f, SetTreeNode$1__get_Right(tn), acc[0], acc[1]);\n const acc_4 = SetTreeModule_partition1(comparer, f, SetTreeLeaf$1__get_Key(tn), acc_1[0], acc_1[1]);\n comparer_mut = comparer;\n f_mut = f;\n t_mut = SetTreeNode$1__get_Left(tn);\n acc__mut = acc_4[0];\n acc__1_mut = acc_4[1];\n continue SetTreeModule_partitionAux;\n }\n else {\n return SetTreeModule_partition1(comparer, f, SetTreeLeaf$1__get_Key(t2), acc[0], acc[1]);\n }\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function SetTreeModule_partition(comparer, f, s) {\n return SetTreeModule_partitionAux(comparer, f, s, SetTreeModule_empty(), SetTreeModule_empty());\n}\nexport function SetTreeModule_minimumElementAux(t_mut, n_mut) {\n SetTreeModule_minimumElementAux: while (true) {\n const t = t_mut, n = n_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n t_mut = SetTreeNode$1__get_Left(tn);\n n_mut = SetTreeLeaf$1__get_Key(tn);\n continue SetTreeModule_minimumElementAux;\n }\n else {\n return SetTreeLeaf$1__get_Key(t2);\n }\n }\n else {\n return n;\n }\n break;\n }\n}\nexport function SetTreeModule_minimumElementOpt(t) {\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n return some(SetTreeModule_minimumElementAux(SetTreeNode$1__get_Left(tn), SetTreeLeaf$1__get_Key(tn)));\n }\n else {\n return some(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return undefined;\n }\n}\nexport function SetTreeModule_maximumElementAux(t_mut, n_mut) {\n SetTreeModule_maximumElementAux: while (true) {\n const t = t_mut, n = n_mut;\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n t_mut = SetTreeNode$1__get_Right(tn);\n n_mut = SetTreeLeaf$1__get_Key(tn);\n continue SetTreeModule_maximumElementAux;\n }\n else {\n return SetTreeLeaf$1__get_Key(t2);\n }\n }\n else {\n return n;\n }\n break;\n }\n}\nexport function SetTreeModule_maximumElementOpt(t) {\n if (t != null) {\n const t2 = value_3(t);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n return some(SetTreeModule_maximumElementAux(SetTreeNode$1__get_Right(tn), SetTreeLeaf$1__get_Key(tn)));\n }\n else {\n return some(SetTreeLeaf$1__get_Key(t2));\n }\n }\n else {\n return undefined;\n }\n}\nexport function SetTreeModule_minimumElement(s) {\n const matchValue = SetTreeModule_minimumElementOpt(s);\n if (matchValue == null) {\n throw new Error(\"Set contains no elements\");\n }\n else {\n return value_3(matchValue);\n }\n}\nexport function SetTreeModule_maximumElement(s) {\n const matchValue = SetTreeModule_maximumElementOpt(s);\n if (matchValue == null) {\n throw new Error(\"Set contains no elements\");\n }\n else {\n return value_3(matchValue);\n }\n}\nexport class SetTreeModule_SetIterator$1 extends Record {\n constructor(stack, started) {\n super();\n this.stack = stack;\n this.started = started;\n }\n}\nexport function SetTreeModule_SetIterator$1_$reflection(gen0) {\n return record_type(\"Set.SetTreeModule.SetIterator`1\", [gen0], SetTreeModule_SetIterator$1, () => [[\"stack\", list_type(option_type(SetTreeLeaf$1_$reflection(gen0)))], [\"started\", bool_type]]);\n}\nexport function SetTreeModule_collapseLHS(stack_mut) {\n SetTreeModule_collapseLHS: while (true) {\n const stack = stack_mut;\n if (!isEmpty_1(stack)) {\n const x = head(stack);\n const rest = tail(stack);\n if (x != null) {\n const x2 = value_3(x);\n if (x2 instanceof SetTreeNode$1) {\n const xn = x2;\n stack_mut = ofArrayWithTail([SetTreeNode$1__get_Left(xn), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(xn)), SetTreeNode$1__get_Right(xn)], rest);\n continue SetTreeModule_collapseLHS;\n }\n else {\n return stack;\n }\n }\n else {\n stack_mut = rest;\n continue SetTreeModule_collapseLHS;\n }\n }\n else {\n return empty_1();\n }\n break;\n }\n}\nexport function SetTreeModule_mkIterator(s) {\n return new SetTreeModule_SetIterator$1(SetTreeModule_collapseLHS(singleton_1(s)), false);\n}\nexport function SetTreeModule_notStarted() {\n throw new Error(\"Enumeration not started\");\n}\nexport function SetTreeModule_alreadyFinished() {\n throw new Error(\"Enumeration already started\");\n}\nexport function SetTreeModule_current(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (isEmpty_1(matchValue)) {\n return SetTreeModule_alreadyFinished();\n }\n else if (head(matchValue) != null) {\n const t = value_3(head(matchValue));\n return SetTreeLeaf$1__get_Key(t);\n }\n else {\n throw new Error(\"Please report error: Set iterator, unexpected stack for current\");\n }\n }\n else {\n return SetTreeModule_notStarted();\n }\n}\nexport function SetTreeModule_moveNext(i) {\n if (i.started) {\n const matchValue = i.stack;\n if (!isEmpty_1(matchValue)) {\n if (head(matchValue) != null) {\n const t = value_3(head(matchValue));\n if (t instanceof SetTreeNode$1) {\n throw new Error(\"Please report error: Set iterator, unexpected stack for moveNext\");\n }\n else {\n i.stack = SetTreeModule_collapseLHS(tail(matchValue));\n return !isEmpty_1(i.stack);\n }\n }\n else {\n throw new Error(\"Please report error: Set iterator, unexpected stack for moveNext\");\n }\n }\n else {\n return false;\n }\n }\n else {\n i.started = true;\n return !isEmpty_1(i.stack);\n }\n}\nexport function SetTreeModule_mkIEnumerator(s) {\n let i = SetTreeModule_mkIterator(s);\n return {\n \"System.Collections.Generic.IEnumerator`1.get_Current\"() {\n return SetTreeModule_current(i);\n },\n \"System.Collections.IEnumerator.get_Current\"() {\n return SetTreeModule_current(i);\n },\n \"System.Collections.IEnumerator.MoveNext\"() {\n return SetTreeModule_moveNext(i);\n },\n \"System.Collections.IEnumerator.Reset\"() {\n i = SetTreeModule_mkIterator(s);\n },\n Dispose() {\n },\n };\n}\n/**\n * Set comparison. Note this can be expensive.\n */\nexport function SetTreeModule_compareStacks(comparer_mut, l1_mut, l2_mut) {\n SetTreeModule_compareStacks: while (true) {\n const comparer = comparer_mut, l1 = l1_mut, l2 = l2_mut;\n if (!isEmpty_1(l1)) {\n if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n if (head(l1) != null) {\n const x1_3 = value_3(head(l1));\n const x2_3 = value_3(head(l2));\n if (x1_3 instanceof SetTreeNode$1) {\n const x1n_2 = x1_3;\n if (SetTreeNode$1__get_Left(x1n_2) == null) {\n if (x2_3 instanceof SetTreeNode$1) {\n const x2n_2 = x2_3;\n if (SetTreeNode$1__get_Left(x2n_2) == null) {\n const c = comparer.Compare(SetTreeLeaf$1__get_Key(x1n_2), SetTreeLeaf$1__get_Key(x2n_2)) | 0;\n if (c !== 0) {\n return c | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = cons(SetTreeNode$1__get_Right(x1n_2), tail(l1));\n l2_mut = cons(SetTreeNode$1__get_Right(x2n_2), tail(l2));\n continue SetTreeModule_compareStacks;\n }\n }\n else {\n let matchResult, t1_6, x1_4, t2_6, x2_4;\n if (!isEmpty_1(l1)) {\n if (head(l1) != null) {\n matchResult = 0;\n t1_6 = tail(l1);\n x1_4 = value_3(head(l1));\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult = 1;\n t2_6 = tail(l2);\n x2_4 = value_3(head(l2));\n }\n else {\n matchResult = 2;\n }\n }\n else {\n matchResult = 2;\n }\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult = 1;\n t2_6 = tail(l2);\n x2_4 = value_3(head(l2));\n }\n else {\n matchResult = 2;\n }\n }\n else {\n matchResult = 2;\n }\n switch (matchResult) {\n case 0:\n if (x1_4 instanceof SetTreeNode$1) {\n const x1n_3 = x1_4;\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1n_3), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x1n_3), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1n_3), 0)], t1_6);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_4))], t1_6);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n case 1:\n if (x2_4 instanceof SetTreeNode$1) {\n const x2n_3 = x2_4;\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2n_3), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x2n_3), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2n_3), 0)], t2_6);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_4))], t2_6);\n continue SetTreeModule_compareStacks;\n }\n default:\n throw new Error(\"unexpected state in SetTree.compareStacks\");\n }\n }\n }\n else {\n const c_1 = comparer.Compare(SetTreeLeaf$1__get_Key(x1n_2), SetTreeLeaf$1__get_Key(x2_3)) | 0;\n if (c_1 !== 0) {\n return c_1 | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = cons(SetTreeNode$1__get_Right(x1n_2), tail(l1));\n l2_mut = cons(SetTreeModule_empty(), tail(l2));\n continue SetTreeModule_compareStacks;\n }\n }\n }\n else {\n let matchResult_1, t1_7, x1_5, t2_7, x2_5;\n if (!isEmpty_1(l1)) {\n if (head(l1) != null) {\n matchResult_1 = 0;\n t1_7 = tail(l1);\n x1_5 = value_3(head(l1));\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_1 = 1;\n t2_7 = tail(l2);\n x2_5 = value_3(head(l2));\n }\n else {\n matchResult_1 = 2;\n }\n }\n else {\n matchResult_1 = 2;\n }\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_1 = 1;\n t2_7 = tail(l2);\n x2_5 = value_3(head(l2));\n }\n else {\n matchResult_1 = 2;\n }\n }\n else {\n matchResult_1 = 2;\n }\n switch (matchResult_1) {\n case 0:\n if (x1_5 instanceof SetTreeNode$1) {\n const x1n_4 = x1_5;\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1n_4), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x1n_4), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1n_4), 0)], t1_7);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_5))], t1_7);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n case 1:\n if (x2_5 instanceof SetTreeNode$1) {\n const x2n_4 = x2_5;\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2n_4), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x2n_4), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2n_4), 0)], t2_7);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_5))], t2_7);\n continue SetTreeModule_compareStacks;\n }\n default:\n throw new Error(\"unexpected state in SetTree.compareStacks\");\n }\n }\n }\n else if (x2_3 instanceof SetTreeNode$1) {\n const x2n_5 = x2_3;\n if (SetTreeNode$1__get_Left(x2n_5) == null) {\n const c_2 = comparer.Compare(SetTreeLeaf$1__get_Key(x1_3), SetTreeLeaf$1__get_Key(x2n_5)) | 0;\n if (c_2 !== 0) {\n return c_2 | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = cons(SetTreeModule_empty(), tail(l1));\n l2_mut = cons(SetTreeNode$1__get_Right(x2n_5), tail(l2));\n continue SetTreeModule_compareStacks;\n }\n }\n else {\n let matchResult_2, t1_8, x1_6, t2_8, x2_6;\n if (!isEmpty_1(l1)) {\n if (head(l1) != null) {\n matchResult_2 = 0;\n t1_8 = tail(l1);\n x1_6 = value_3(head(l1));\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_2 = 1;\n t2_8 = tail(l2);\n x2_6 = value_3(head(l2));\n }\n else {\n matchResult_2 = 2;\n }\n }\n else {\n matchResult_2 = 2;\n }\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_2 = 1;\n t2_8 = tail(l2);\n x2_6 = value_3(head(l2));\n }\n else {\n matchResult_2 = 2;\n }\n }\n else {\n matchResult_2 = 2;\n }\n switch (matchResult_2) {\n case 0:\n if (x1_6 instanceof SetTreeNode$1) {\n const x1n_5 = x1_6;\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1n_5), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x1n_5), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1n_5), 0)], t1_8);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_6))], t1_8);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n case 1:\n if (x2_6 instanceof SetTreeNode$1) {\n const x2n_6 = x2_6;\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2n_6), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x2n_6), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2n_6), 0)], t2_8);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_6))], t2_8);\n continue SetTreeModule_compareStacks;\n }\n default:\n throw new Error(\"unexpected state in SetTree.compareStacks\");\n }\n }\n }\n else {\n const c_3 = comparer.Compare(SetTreeLeaf$1__get_Key(x1_3), SetTreeLeaf$1__get_Key(x2_3)) | 0;\n if (c_3 !== 0) {\n return c_3 | 0;\n }\n else {\n comparer_mut = comparer;\n l1_mut = tail(l1);\n l2_mut = tail(l2);\n continue SetTreeModule_compareStacks;\n }\n }\n }\n else {\n const x2 = value_3(head(l2));\n let matchResult_3, t1_2, x1, t2_2, x2_1;\n if (!isEmpty_1(l1)) {\n if (head(l1) != null) {\n matchResult_3 = 0;\n t1_2 = tail(l1);\n x1 = value_3(head(l1));\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_3 = 1;\n t2_2 = tail(l2);\n x2_1 = value_3(head(l2));\n }\n else {\n matchResult_3 = 2;\n }\n }\n else {\n matchResult_3 = 2;\n }\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_3 = 1;\n t2_2 = tail(l2);\n x2_1 = value_3(head(l2));\n }\n else {\n matchResult_3 = 2;\n }\n }\n else {\n matchResult_3 = 2;\n }\n switch (matchResult_3) {\n case 0:\n if (x1 instanceof SetTreeNode$1) {\n const x1n = x1;\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1n), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x1n), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1n), 0)], t1_2);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1))], t1_2);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n case 1:\n if (x2_1 instanceof SetTreeNode$1) {\n const x2n = x2_1;\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2n), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x2n), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2n), 0)], t2_2);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_1))], t2_2);\n continue SetTreeModule_compareStacks;\n }\n default:\n throw new Error(\"unexpected state in SetTree.compareStacks\");\n }\n }\n }\n else if (head(l1) != null) {\n const x1_1 = value_3(head(l1));\n let matchResult_4, t1_4, x1_2, t2_4, x2_2;\n if (!isEmpty_1(l1)) {\n if (head(l1) != null) {\n matchResult_4 = 0;\n t1_4 = tail(l1);\n x1_2 = value_3(head(l1));\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_4 = 1;\n t2_4 = tail(l2);\n x2_2 = value_3(head(l2));\n }\n else {\n matchResult_4 = 2;\n }\n }\n else {\n matchResult_4 = 2;\n }\n }\n else if (!isEmpty_1(l2)) {\n if (head(l2) != null) {\n matchResult_4 = 1;\n t2_4 = tail(l2);\n x2_2 = value_3(head(l2));\n }\n else {\n matchResult_4 = 2;\n }\n }\n else {\n matchResult_4 = 2;\n }\n switch (matchResult_4) {\n case 0:\n if (x1_2 instanceof SetTreeNode$1) {\n const x1n_1 = x1_2;\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x1n_1), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x1n_1), SetTreeModule_empty(), SetTreeNode$1__get_Right(x1n_1), 0)], t1_4);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x1_2))], t1_4);\n l2_mut = l2;\n continue SetTreeModule_compareStacks;\n }\n case 1:\n if (x2_2 instanceof SetTreeNode$1) {\n const x2n_1 = x2_2;\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeNode$1__get_Left(x2n_1), SetTreeNode$1_$ctor_5F465FC9(SetTreeLeaf$1__get_Key(x2n_1), SetTreeModule_empty(), SetTreeNode$1__get_Right(x2n_1), 0)], t2_4);\n continue SetTreeModule_compareStacks;\n }\n else {\n comparer_mut = comparer;\n l1_mut = l1;\n l2_mut = ofArrayWithTail([SetTreeModule_empty(), SetTreeLeaf$1_$ctor_2B595(SetTreeLeaf$1__get_Key(x2_2))], t2_4);\n continue SetTreeModule_compareStacks;\n }\n default:\n throw new Error(\"unexpected state in SetTree.compareStacks\");\n }\n }\n else {\n comparer_mut = comparer;\n l1_mut = tail(l1);\n l2_mut = tail(l2);\n continue SetTreeModule_compareStacks;\n }\n }\n else {\n return 1;\n }\n }\n else if (isEmpty_1(l2)) {\n return 0;\n }\n else {\n return -1;\n }\n break;\n }\n}\nexport function SetTreeModule_compare(comparer, t1, t2) {\n if (t1 == null) {\n if (t2 == null) {\n return 0;\n }\n else {\n return -1;\n }\n }\n else if (t2 == null) {\n return 1;\n }\n else {\n return SetTreeModule_compareStacks(comparer, singleton_1(t1), singleton_1(t2)) | 0;\n }\n}\nexport function SetTreeModule_choose(s) {\n return SetTreeModule_minimumElement(s);\n}\nexport function SetTreeModule_toList(t) {\n const loop = (t$0027_mut, acc_mut) => {\n loop: while (true) {\n const t$0027 = t$0027_mut, acc = acc_mut;\n if (t$0027 != null) {\n const t2 = value_3(t$0027);\n if (t2 instanceof SetTreeNode$1) {\n const tn = t2;\n t$0027_mut = SetTreeNode$1__get_Left(tn);\n acc_mut = cons(SetTreeLeaf$1__get_Key(tn), loop(SetTreeNode$1__get_Right(tn), acc));\n continue loop;\n }\n else {\n return cons(SetTreeLeaf$1__get_Key(t2), acc);\n }\n }\n else {\n return acc;\n }\n break;\n }\n };\n return loop(t, empty_1());\n}\nexport function SetTreeModule_copyToArray(s, arr, i) {\n let j = i;\n SetTreeModule_iter((x) => {\n setItem(arr, j, x);\n j = ((j + 1) | 0);\n }, s);\n}\nexport function SetTreeModule_toArray(s) {\n const n = SetTreeModule_count(s) | 0;\n const res = fill(new Array(n), 0, n, null);\n SetTreeModule_copyToArray(s, res, 0);\n return res;\n}\nexport function SetTreeModule_mkFromEnumerator(comparer_mut, acc_mut, e_mut) {\n SetTreeModule_mkFromEnumerator: while (true) {\n const comparer = comparer_mut, acc = acc_mut, e = e_mut;\n if (e[\"System.Collections.IEnumerator.MoveNext\"]()) {\n comparer_mut = comparer;\n acc_mut = SetTreeModule_add(comparer, e[\"System.Collections.Generic.IEnumerator`1.get_Current\"](), acc);\n e_mut = e;\n continue SetTreeModule_mkFromEnumerator;\n }\n else {\n return acc;\n }\n break;\n }\n}\nexport function SetTreeModule_ofArray(comparer, l) {\n return fold_1((acc, k) => SetTreeModule_add(comparer, k, acc), SetTreeModule_empty(), l);\n}\nexport function SetTreeModule_ofList(comparer, l) {\n return fold_2((acc, k) => SetTreeModule_add(comparer, k, acc), SetTreeModule_empty(), l);\n}\nexport function SetTreeModule_ofSeq(comparer, c) {\n if (isArrayLike(c)) {\n return SetTreeModule_ofArray(comparer, c);\n }\n else if (c instanceof FSharpList) {\n return SetTreeModule_ofList(comparer, c);\n }\n else {\n const ie = getEnumerator(c);\n try {\n return SetTreeModule_mkFromEnumerator(comparer, SetTreeModule_empty(), ie);\n }\n finally {\n disposeSafe(ie);\n }\n }\n}\nexport class FSharpSet {\n constructor(comparer, tree) {\n this.comparer = comparer;\n this.tree = tree;\n }\n GetHashCode() {\n const this$ = this;\n return FSharpSet__ComputeHashCode(this$) | 0;\n }\n Equals(that) {\n let that_1;\n const this$ = this;\n return (that instanceof FSharpSet) && ((that_1 = that, SetTreeModule_compare(FSharpSet__get_Comparer(this$), FSharpSet__get_Tree(this$), FSharpSet__get_Tree(that_1)) === 0));\n }\n toString() {\n const this$ = this;\n return (\"set [\" + join(\"; \", map_1((x) => {\n let copyOfStruct = x;\n return toString(copyOfStruct);\n }, this$))) + \"]\";\n }\n get [Symbol.toStringTag]() {\n return \"FSharpSet\";\n }\n toJSON() {\n const this$ = this;\n return Array.from(this$);\n }\n CompareTo(that) {\n const s = this;\n return SetTreeModule_compare(FSharpSet__get_Comparer(s), FSharpSet__get_Tree(s), FSharpSet__get_Tree(that)) | 0;\n }\n \"System.Collections.Generic.ICollection`1.Add2B595\"(x) {\n throw new Error(\"ReadOnlyCollection\");\n }\n \"System.Collections.Generic.ICollection`1.Clear\"() {\n throw new Error(\"ReadOnlyCollection\");\n }\n \"System.Collections.Generic.ICollection`1.Remove2B595\"(x) {\n throw new Error(\"ReadOnlyCollection\");\n }\n \"System.Collections.Generic.ICollection`1.Contains2B595\"(x) {\n const s = this;\n return SetTreeModule_mem(FSharpSet__get_Comparer(s), x, FSharpSet__get_Tree(s));\n }\n \"System.Collections.Generic.ICollection`1.CopyToZ3B4C077E\"(arr, i) {\n const s = this;\n SetTreeModule_copyToArray(FSharpSet__get_Tree(s), arr, i);\n }\n \"System.Collections.Generic.ICollection`1.get_IsReadOnly\"() {\n return true;\n }\n \"System.Collections.Generic.ICollection`1.get_Count\"() {\n const s = this;\n return FSharpSet__get_Count(s) | 0;\n }\n \"System.Collections.Generic.IReadOnlyCollection`1.get_Count\"() {\n const s = this;\n return FSharpSet__get_Count(s) | 0;\n }\n GetEnumerator() {\n const s = this;\n return SetTreeModule_mkIEnumerator(FSharpSet__get_Tree(s));\n }\n [Symbol.iterator]() {\n return toIterator(getEnumerator(this));\n }\n \"System.Collections.IEnumerable.GetEnumerator\"() {\n const s = this;\n return SetTreeModule_mkIEnumerator(FSharpSet__get_Tree(s));\n }\n get size() {\n const s = this;\n return FSharpSet__get_Count(s) | 0;\n }\n add(k) {\n const s = this;\n throw new Error(\"Set cannot be mutated\");\n return s;\n }\n clear() {\n throw new Error(\"Set cannot be mutated\");\n }\n delete(k) {\n throw new Error(\"Set cannot be mutated\");\n return false;\n }\n has(k) {\n const s = this;\n return FSharpSet__Contains(s, k);\n }\n keys() {\n const s = this;\n return map_1((x) => x, s);\n }\n values() {\n const s = this;\n return map_1((x) => x, s);\n }\n entries() {\n const s = this;\n return map_1((v) => [v, v], s);\n }\n forEach(f, thisArg) {\n const s = this;\n iterate_1((x) => {\n f(x, x, s);\n }, s);\n }\n}\nexport function FSharpSet_$reflection(gen0) {\n return class_type(\"Set.FSharpSet\", [gen0], FSharpSet);\n}\nexport function FSharpSet_$ctor(comparer, tree) {\n return new FSharpSet(comparer, tree);\n}\nexport function FSharpSet__get_Comparer(set$) {\n return set$.comparer;\n}\nexport function FSharpSet__get_Tree(set$) {\n return set$.tree;\n}\nexport function FSharpSet_Empty(comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_empty());\n}\nexport function FSharpSet__Add(s, value) {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(s), SetTreeModule_add(FSharpSet__get_Comparer(s), value, FSharpSet__get_Tree(s)));\n}\nexport function FSharpSet__Remove(s, value) {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(s), SetTreeModule_remove(FSharpSet__get_Comparer(s), value, FSharpSet__get_Tree(s)));\n}\nexport function FSharpSet__get_Count(s) {\n return SetTreeModule_count(FSharpSet__get_Tree(s));\n}\nexport function FSharpSet__Contains(s, value) {\n return SetTreeModule_mem(FSharpSet__get_Comparer(s), value, FSharpSet__get_Tree(s));\n}\nexport function FSharpSet__Iterate(s, x) {\n SetTreeModule_iter(x, FSharpSet__get_Tree(s));\n}\nexport function FSharpSet__Fold(s, f, z) {\n const f_1 = f;\n return SetTreeModule_fold((x, z_1) => f_1(z_1, x), z, FSharpSet__get_Tree(s));\n}\nexport function FSharpSet__get_IsEmpty(s) {\n return FSharpSet__get_Tree(s) == null;\n}\nexport function FSharpSet__Partition(s, f) {\n if (FSharpSet__get_Tree(s) == null) {\n return [s, s];\n }\n else {\n const patternInput = SetTreeModule_partition(FSharpSet__get_Comparer(s), f, FSharpSet__get_Tree(s));\n return [FSharpSet_$ctor(FSharpSet__get_Comparer(s), patternInput[0]), FSharpSet_$ctor(FSharpSet__get_Comparer(s), patternInput[1])];\n }\n}\nexport function FSharpSet__Filter(s, f) {\n if (FSharpSet__get_Tree(s) == null) {\n return s;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(s), SetTreeModule_filter(FSharpSet__get_Comparer(s), f, FSharpSet__get_Tree(s)));\n }\n}\nexport function FSharpSet__Map(s, f, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_fold((acc, k) => SetTreeModule_add(comparer, f(k), acc), SetTreeModule_empty(), FSharpSet__get_Tree(s)));\n}\nexport function FSharpSet__Exists(s, f) {\n return SetTreeModule_exists(f, FSharpSet__get_Tree(s));\n}\nexport function FSharpSet__ForAll(s, f) {\n return SetTreeModule_forall(f, FSharpSet__get_Tree(s));\n}\nexport function FSharpSet_op_Subtraction(set1, set2) {\n if (FSharpSet__get_Tree(set1) == null) {\n return set1;\n }\n else if (FSharpSet__get_Tree(set2) == null) {\n return set1;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(set1), SetTreeModule_diff(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2)));\n }\n}\nexport function FSharpSet_op_Addition(set1, set2) {\n if (FSharpSet__get_Tree(set2) == null) {\n return set1;\n }\n else if (FSharpSet__get_Tree(set1) == null) {\n return set2;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(set1), SetTreeModule_union(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2)));\n }\n}\nexport function FSharpSet_Intersection(a, b) {\n if (FSharpSet__get_Tree(b) == null) {\n return b;\n }\n else if (FSharpSet__get_Tree(a) == null) {\n return a;\n }\n else {\n return FSharpSet_$ctor(FSharpSet__get_Comparer(a), SetTreeModule_intersection(FSharpSet__get_Comparer(a), FSharpSet__get_Tree(a), FSharpSet__get_Tree(b)));\n }\n}\nexport function FSharpSet_IntersectionMany(sets) {\n return reduce(FSharpSet_Intersection, sets);\n}\nexport function FSharpSet_Equality(a, b) {\n return SetTreeModule_compare(FSharpSet__get_Comparer(a), FSharpSet__get_Tree(a), FSharpSet__get_Tree(b)) === 0;\n}\nexport function FSharpSet_Compare(a, b) {\n return SetTreeModule_compare(FSharpSet__get_Comparer(a), FSharpSet__get_Tree(a), FSharpSet__get_Tree(b));\n}\nexport function FSharpSet__get_Choose(x) {\n return SetTreeModule_choose(FSharpSet__get_Tree(x));\n}\nexport function FSharpSet__get_MinimumElement(x) {\n return SetTreeModule_minimumElement(FSharpSet__get_Tree(x));\n}\nexport function FSharpSet__get_MaximumElement(x) {\n return SetTreeModule_maximumElement(FSharpSet__get_Tree(x));\n}\nexport function FSharpSet__IsSubsetOf(x, otherSet) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(x), FSharpSet__get_Tree(otherSet));\n}\nexport function FSharpSet__IsSupersetOf(x, otherSet) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(otherSet), FSharpSet__get_Tree(x));\n}\nexport function FSharpSet__IsProperSubsetOf(x, otherSet) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(x), FSharpSet__get_Tree(otherSet));\n}\nexport function FSharpSet__IsProperSupersetOf(x, otherSet) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(x), FSharpSet__get_Tree(otherSet), FSharpSet__get_Tree(x));\n}\nexport function FSharpSet__ToList(x) {\n return SetTreeModule_toList(FSharpSet__get_Tree(x));\n}\nexport function FSharpSet__ToArray(x) {\n return SetTreeModule_toArray(FSharpSet__get_Tree(x));\n}\nexport function FSharpSet__ComputeHashCode(this$) {\n let res = 0;\n const enumerator = getEnumerator(this$);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x_1 = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n res = ((((res << 1) + structuralHash(x_1)) + 631) | 0);\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return Math.abs(res) | 0;\n}\nexport function isEmpty(set$) {\n return FSharpSet__get_IsEmpty(set$);\n}\nexport function contains(element, set$) {\n return FSharpSet__Contains(set$, element);\n}\nexport function add(value, set$) {\n return FSharpSet__Add(set$, value);\n}\nexport function singleton(value, comparer) {\n return FSharpSet__Add(FSharpSet_Empty(comparer), value);\n}\nexport function remove(value, set$) {\n return FSharpSet__Remove(set$, value);\n}\nexport function union(set1, set2) {\n return FSharpSet_op_Addition(set1, set2);\n}\nexport function unionMany(sets, comparer) {\n return fold_3(FSharpSet_op_Addition, FSharpSet_Empty(comparer), sets);\n}\nexport function intersect(set1, set2) {\n return FSharpSet_Intersection(set1, set2);\n}\nexport function intersectMany(sets) {\n return FSharpSet_IntersectionMany(sets);\n}\nexport function iterate(action, set$) {\n FSharpSet__Iterate(set$, action);\n}\nexport function empty(comparer) {\n return FSharpSet_Empty(comparer);\n}\nexport function forAll(predicate, set$) {\n return FSharpSet__ForAll(set$, predicate);\n}\nexport function exists(predicate, set$) {\n return FSharpSet__Exists(set$, predicate);\n}\nexport function filter(predicate, set$) {\n return FSharpSet__Filter(set$, predicate);\n}\nexport function partition(predicate, set$) {\n return FSharpSet__Partition(set$, predicate);\n}\nexport function fold(folder, state, set$) {\n return SetTreeModule_fold(folder, state, FSharpSet__get_Tree(set$));\n}\nexport function foldBack(folder, set$, state) {\n return SetTreeModule_foldBack(folder, FSharpSet__get_Tree(set$), state);\n}\nexport function map(mapping, set$, comparer) {\n return FSharpSet__Map(set$, mapping, comparer);\n}\nexport function count(set$) {\n return FSharpSet__get_Count(set$);\n}\nexport function ofList(elements, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_ofSeq(comparer, elements));\n}\nexport function ofArray(array, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_ofArray(comparer, array));\n}\nexport function toList(set$) {\n return FSharpSet__ToList(set$);\n}\nexport function toArray(set$) {\n return FSharpSet__ToArray(set$);\n}\nexport function toSeq(set$) {\n return map_1((x) => x, set$);\n}\nexport function ofSeq(elements, comparer) {\n return FSharpSet_$ctor(comparer, SetTreeModule_ofSeq(comparer, elements));\n}\nexport function difference(set1, set2) {\n return FSharpSet_op_Subtraction(set1, set2);\n}\nexport function isSubset(set1, set2) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2));\n}\nexport function isSuperset(set1, set2) {\n return SetTreeModule_subset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set2), FSharpSet__get_Tree(set1));\n}\nexport function isProperSubset(set1, set2) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set1), FSharpSet__get_Tree(set2));\n}\nexport function isProperSuperset(set1, set2) {\n return SetTreeModule_properSubset(FSharpSet__get_Comparer(set1), FSharpSet__get_Tree(set2), FSharpSet__get_Tree(set1));\n}\nexport function minElement(set$) {\n return FSharpSet__get_MinimumElement(set$);\n}\nexport function maxElement(set$) {\n return FSharpSet__get_MaximumElement(set$);\n}\nexport function unionWith(s1, s2) {\n return fold_3((acc, x) => acc.add(x), s1, s2);\n}\nexport function newMutableSetWith(s1, s2) {\n if (s1 instanceof HashSet) {\n const s1_1 = s1;\n return HashSet_$ctor_Z6150332D(s2, HashSet__get_Comparer(s1_1));\n }\n else {\n return new Set(s2);\n }\n}\nexport function intersectWith(s1, s2) {\n const s2_1 = newMutableSetWith(s1, s2);\n iterate_1((x) => {\n if (!s2_1.has(x)) {\n s1.delete(x);\n }\n }, s1.values());\n}\nexport function exceptWith(s1, s2) {\n iterate_1((x) => {\n s1.delete(x);\n }, s2);\n}\nexport function isSubsetOf(s1, s2) {\n const s2_1 = newMutableSetWith(s1, s2);\n return forAll_1((value) => s2_1.has(value), s1.values());\n}\nexport function isSupersetOf(s1, s2) {\n return forAll_1((value) => s1.has(value), s2);\n}\nexport function isProperSubsetOf(s1, s2) {\n const s2_1 = newMutableSetWith(s1, s2);\n if (s2_1.size > s1.size) {\n return forAll_1((value) => s2_1.has(value), s1.values());\n }\n else {\n return false;\n }\n}\nexport function isProperSupersetOf(s1, s2) {\n const s2_1 = cache(s2);\n if (exists_1((arg) => !s1.has(arg), s2_1)) {\n return forAll_1((value_2) => s1.has(value_2), s2_1);\n }\n else {\n return false;\n }\n}\n","import { toFail, printf, toText, join } from \"../fable-library-js.4.17.0/String.js\";\nimport { Result_Map, FSharpResult$2 } from \"../fable-library-js.4.17.0/Result.js\";\nimport { Util_CachedDecoders, Util_Cache$1__GetOrAdd_43981464, CaseStrategy, Util_Casing_convert, ErrorReason } from \"./Types.fs.js\";\nimport { tryParse as tryParse_2 } from \"../fable-library-js.4.17.0/Guid.js\";\nimport { toString as toString_12, FSharpRef } from \"../fable-library-js.4.17.0/Types.js\";\nimport { tryParse as tryParse_3 } from \"../fable-library-js.4.17.0/Int32.js\";\nimport { parse, fromInt32, toUInt64, fromFloat64, toInt64, toFloat64 } from \"../fable-library-js.4.17.0/BigInt.js\";\nimport { tryParse as tryParse_4 } from \"../fable-library-js.4.17.0/Long.js\";\nimport { tryParse as tryParse_5 } from \"../fable-library-js.4.17.0/Decimal.js\";\nimport Decimal from \"../fable-library-js.4.17.0/Decimal.js\";\nimport { toUniversalTime, tryParse as tryParse_6, minValue } from \"../fable-library-js.4.17.0/Date.js\";\nimport { tryParse as tryParse_7, minValue as minValue_1 } from \"../fable-library-js.4.17.0/DateOffset.js\";\nimport { tryParse as tryParse_8 } from \"../fable-library-js.4.17.0/TimeSpan.js\";\nimport { map as map_4, defaultArg, some } from \"../fable-library-js.4.17.0/Option.js\";\nimport { ofArray, toArray, map as map_1, length, singleton, append as append_1, tail as tail_1, head as head_1, isEmpty, ofSeq, empty, reverse, fold, tryLast, cons } from \"../fable-library-js.4.17.0/List.js\";\nimport { int16ToString, numberHash, compare, uncurry3, defaultOf, comparePrimitives, uncurry2, int32ToString } from \"../fable-library-js.4.17.0/Util.js\";\nimport { map as map_2, tryFind, foldBack2, foldBack, fill, setItem, fold as fold_1, item } from \"../fable-library-js.4.17.0/Array.js\";\nimport { contains, fold as fold_2, toList, append, reverse as reverse_1 } from \"../fable-library-js.4.17.0/Seq.js\";\nimport { empty as empty_1, map as map_3, tryFind as tryFind_1, add, ofSeq as ofSeq_1, ofList } from \"../fable-library-js.4.17.0/Map.js\";\nimport { getGenerics, getGenericTypeDefinition, makeTuple, getTupleElements, isTuple, isGenericType, parseEnum, getEnumValues, getEnumUnderlyingType, isEnum, getElementType, isArray, isUnion, makeRecord, getRecordElements, isRecord, fullName, getUnionCaseFields, makeUnion as makeUnion_1, getUnionCases, name as name_3, class_type } from \"../fable-library-js.4.17.0/Reflection.js\";\nimport { ofSeq as ofSeq_2 } from \"../fable-library-js.4.17.0/Set.js\";\n\nexport function Helpers_isUndefined(o) {\n return (typeof o) === \"undefined\";\n}\n\nfunction genericMsg(msg, value_1, newLine) {\n try {\n return (((\"Expecting \" + msg) + \" but instead got:\") + (newLine ? \"\\n\" : \" \")) + (JSON.stringify(value_1, null, 4) + '');\n }\n catch (matchValue) {\n return ((\"Expecting \" + msg) + \" but decoder failed. Couldn\\'t report given value due to circular structure.\") + (newLine ? \"\\n\" : \" \");\n }\n}\n\nfunction errorToString(path, error) {\n const reason_1 = (error.tag === 2) ? genericMsg(error.fields[0], error.fields[1], true) : ((error.tag === 1) ? ((genericMsg(error.fields[0], error.fields[1], false) + \"\\nReason: \") + error.fields[2]) : ((error.tag === 3) ? genericMsg(error.fields[0], error.fields[1], true) : ((error.tag === 4) ? (genericMsg(error.fields[0], error.fields[1], true) + ((\"\\nNode `\" + error.fields[2]) + \"` is unkown.\")) : ((error.tag === 5) ? (((\"Expecting \" + error.fields[0]) + \".\\n\") + (JSON.stringify(error.fields[1], null, 4) + '')) : ((error.tag === 7) ? (\"The following errors were found:\\n\\n\" + join(\"\\n\\n\", error.fields[0])) : ((error.tag === 6) ? (\"The following `failure` occurred with the decoder: \" + error.fields[0]) : genericMsg(error.fields[0], error.fields[1], false)))))));\n if (error.tag === 7) {\n return reason_1;\n }\n else {\n return ((\"Error at: `\" + path) + \"`\\n\") + reason_1;\n }\n}\n\nexport function fromValue(path, decoder, value_1) {\n const matchValue = decoder(path, value_1);\n if (matchValue.tag === 1) {\n const error = matchValue.fields[0];\n return new FSharpResult$2(1, [errorToString(error[0], error[1])]);\n }\n else {\n return new FSharpResult$2(0, [matchValue.fields[0]]);\n }\n}\n\nexport function fromString(decoder, value_1) {\n try {\n return fromValue(\"$\", decoder, JSON.parse(value_1));\n }\n catch (matchValue) {\n if (matchValue instanceof SyntaxError) {\n return new FSharpResult$2(1, [\"Given an invalid JSON: \" + matchValue.message]);\n }\n else {\n throw matchValue;\n }\n }\n}\n\nexport function unsafeFromString(decoder, value_1) {\n const matchValue = fromString(decoder, value_1);\n if (matchValue.tag === 1) {\n throw new Error(matchValue.fields[0]);\n }\n else {\n return matchValue.fields[0];\n }\n}\n\nexport function decodeValue(path, decoder) {\n const decoder_1 = decoder;\n return (value_1) => fromValue(path, decoder_1, value_1);\n}\n\nexport function decodeString(decoder) {\n const decoder_1 = decoder;\n return (value_1) => fromString(decoder_1, value_1);\n}\n\nexport function string(path, value_1) {\n if (typeof value_1 === \"string\") {\n return new FSharpResult$2(0, [value_1]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a string\", value_1])]]);\n }\n}\n\nexport function guid(path, value_1) {\n if (typeof value_1 === \"string\") {\n let matchValue;\n let outArg = \"00000000-0000-0000-0000-000000000000\";\n matchValue = [tryParse_2(value_1, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return new FSharpResult$2(0, [matchValue[1]]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a guid\", value_1])]]);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a guid\", value_1])]]);\n }\n}\n\nexport function unit(path, value_1) {\n if (value_1 == null) {\n return new FSharpResult$2(0, [undefined]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"null\", value_1])]]);\n }\n}\n\nexport const sbyte = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((-128 <= value_1_1) && (value_1_1 <= 127)) ? (new FSharpResult$2(0, [(value_1_1 + 0x80 & 0xFF) - 0x80])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"a sbyte\", value_1_1, \"Value was either too large or too small for a sbyte\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"a sbyte\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_3(value_3, 511, false, 8, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"a sbyte\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"a sbyte\", value_3])]]);\n }\n});\n\nexport const byte = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((0 <= value_1_1) && (value_1_1 <= 255)) ? (new FSharpResult$2(0, [value_1_1 & 0xFF])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"a byte\", value_1_1, \"Value was either too large or too small for a byte\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"a byte\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_3(value_3, 511, true, 8, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"a byte\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"a byte\", value_3])]]);\n }\n});\n\nexport const int16 = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((-32768 <= value_1_1) && (value_1_1 <= 32767)) ? (new FSharpResult$2(0, [(value_1_1 + 0x8000 & 0xFFFF) - 0x8000])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an int16\", value_1_1, \"Value was either too large or too small for an int16\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an int16\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_3(value_3, 511, false, 16, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an int16\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an int16\", value_3])]]);\n }\n});\n\nexport const uint16 = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((0 <= value_1_1) && (value_1_1 <= 65535)) ? (new FSharpResult$2(0, [value_1_1 & 0xFFFF])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an uint16\", value_1_1, \"Value was either too large or too small for an uint16\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an uint16\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_3(value_3, 511, true, 16, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an uint16\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an uint16\", value_3])]]);\n }\n});\n\nexport const int = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((-2147483648 <= value_1_1) && (value_1_1 <= 2147483647)) ? (new FSharpResult$2(0, [~~value_1_1])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an int\", value_1_1, \"Value was either too large or too small for an int\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an int\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_3(value_3, 511, false, 32, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an int\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an int\", value_3])]]);\n }\n});\n\nexport const uint32 = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((0 <= value_1_1) && (value_1_1 <= 4294967295)) ? (new FSharpResult$2(0, [value_1_1 >>> 0])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an uint32\", value_1_1, \"Value was either too large or too small for an uint32\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an uint32\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_3(value_3, 511, true, 32, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an uint32\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an uint32\", value_3])]]);\n }\n});\n\nexport const int64 = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((toFloat64(-9223372036854775808n) <= value_1_1) && (value_1_1 <= toFloat64(9223372036854775807n))) ? (new FSharpResult$2(0, [toInt64(fromFloat64(value_1_1))])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an int64\", value_1_1, \"Value was either too large or too small for an int64\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an int64\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0n;\n matchValue = [tryParse_4(value_3, 511, false, 64, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an int64\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an int64\", value_3])]]);\n }\n});\n\nexport const uint64 = (path) => ((value_2) => {\n const path_1 = path;\n const value_3 = value_2;\n if ((typeof value_3) === \"number\") {\n const value_1_1 = value_3;\n return (isFinite(value_1_1) && Math.floor(value_1_1) === value_1_1) ? (((toFloat64(0n) <= value_1_1) && (value_1_1 <= toFloat64(18446744073709551615n))) ? (new FSharpResult$2(0, [toUInt64(fromFloat64(value_1_1))])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an uint64\", value_1_1, \"Value was either too large or too small for an uint64\"])]]))) : (new FSharpResult$2(1, [[path_1, new ErrorReason(1, [\"an uint64\", value_1_1, \"Value is not an integral value\"])]]));\n }\n else if (typeof value_3 === \"string\") {\n let matchValue;\n let outArg = 0n;\n matchValue = [tryParse_4(value_3, 511, true, 64, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n return matchValue[0] ? (new FSharpResult$2(0, [matchValue[1]])) : (new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an uint64\", value_3])]]));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"an uint64\", value_3])]]);\n }\n});\n\nexport function bigint(path, value_1) {\n if ((typeof value_1) === \"number\") {\n return new FSharpResult$2(0, [fromInt32(value_1)]);\n }\n else if (typeof value_1 === \"string\") {\n try {\n return new FSharpResult$2(0, [parse(value_1)]);\n }\n catch (matchValue) {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a bigint\", value_1])]]);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a bigint\", value_1])]]);\n }\n}\n\nexport function bool(path, value_1) {\n if (typeof value_1 === \"boolean\") {\n return new FSharpResult$2(0, [value_1]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a boolean\", value_1])]]);\n }\n}\n\nexport function float(path, value_1) {\n if ((typeof value_1) === \"number\") {\n return new FSharpResult$2(0, [value_1]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a float\", value_1])]]);\n }\n}\n\nexport function float32(path, value_1) {\n if ((typeof value_1) === \"number\") {\n return new FSharpResult$2(0, [value_1]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a float32\", value_1])]]);\n }\n}\n\nexport function decimal(path, value_1) {\n if ((typeof value_1) === \"number\") {\n return new FSharpResult$2(0, [new Decimal(value_1)]);\n }\n else if (typeof value_1 === \"string\") {\n let matchValue;\n let outArg = new Decimal(\"0\");\n matchValue = [tryParse_5(value_1, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return new FSharpResult$2(0, [matchValue[1]]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a decimal\", value_1])]]);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a decimal\", value_1])]]);\n }\n}\n\nexport function datetime(path, value_1) {\n if (typeof value_1 === \"string\") {\n let matchValue;\n let outArg = minValue();\n matchValue = [tryParse_6(value_1, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return new FSharpResult$2(0, [toUniversalTime(matchValue[1])]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a datetime\", value_1])]]);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a datetime\", value_1])]]);\n }\n}\n\nexport function datetimeOffset(path, value_1) {\n if (typeof value_1 === \"string\") {\n let matchValue;\n let outArg = minValue_1();\n matchValue = [tryParse_7(value_1, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return new FSharpResult$2(0, [matchValue[1]]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a datetimeoffset\", value_1])]]);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a datetime\", value_1])]]);\n }\n}\n\nexport function timespan(path, value_1) {\n if (typeof value_1 === \"string\") {\n let matchValue;\n let outArg = 0;\n matchValue = [tryParse_8(value_1, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return new FSharpResult$2(0, [matchValue[1]]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a timespan\", value_1])]]);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a timespan\", value_1])]]);\n }\n}\n\nfunction decodeMaybeNull(path, decoder, value_1) {\n const matchValue = decoder(path, value_1);\n if (matchValue.tag === 1) {\n if (value_1 == null) {\n return new FSharpResult$2(0, [undefined]);\n }\n else {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n }\n else {\n return new FSharpResult$2(0, [some(matchValue.fields[0])]);\n }\n}\n\nexport function optional(fieldName, decoder, path, value_1) {\n if (value_1 === null ? false : (Object.getPrototypeOf(value_1 || false) === Object.prototype)) {\n const fieldValue = value_1[fieldName];\n if (Helpers_isUndefined(fieldValue)) {\n return new FSharpResult$2(0, [undefined]);\n }\n else {\n return decodeMaybeNull((path + \".\") + fieldName, decoder, fieldValue);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(2, [\"an object\", value_1])]]);\n }\n}\n\nfunction badPathError(fieldNames, currentPath, value_1) {\n return new FSharpResult$2(1, [[defaultArg(currentPath, join(\".\", cons(\"$\", fieldNames))), new ErrorReason(4, [(\"an object with path `\" + join(\".\", fieldNames)) + \"`\", value_1, defaultArg(tryLast(fieldNames), \"\")])]]);\n}\n\nexport function optionalAt(fieldNames, decoder, firstPath, firstValue) {\n const _arg = fold((tupledArg, field_1) => {\n const curPath = tupledArg[0];\n const curValue = tupledArg[1];\n const res = tupledArg[2];\n if (res == null) {\n if (curValue == null) {\n return [curPath, curValue, new FSharpResult$2(0, [undefined])];\n }\n else if (curValue === null ? false : (Object.getPrototypeOf(curValue || false) === Object.prototype)) {\n return [(curPath + \".\") + field_1, curValue[field_1], undefined];\n }\n else {\n return [curPath, curValue, new FSharpResult$2(1, [[curPath, new ErrorReason(2, [\"an object\", curValue])]])];\n }\n }\n else {\n return [curPath, curValue, res];\n }\n }, [firstPath, firstValue, undefined], fieldNames);\n if (_arg[2] == null) {\n const lastValue = _arg[1];\n if (Helpers_isUndefined(lastValue)) {\n return new FSharpResult$2(0, [undefined]);\n }\n else {\n return decodeMaybeNull(_arg[0], decoder, lastValue);\n }\n }\n else {\n return _arg[2];\n }\n}\n\nexport function field(fieldName, decoder, path, value_1) {\n if (value_1 === null ? false : (Object.getPrototypeOf(value_1 || false) === Object.prototype)) {\n const fieldValue = value_1[fieldName];\n if (Helpers_isUndefined(fieldValue)) {\n return new FSharpResult$2(1, [[path, new ErrorReason(3, [(\"an object with a field named `\" + fieldName) + \"`\", value_1])]]);\n }\n else {\n return decoder((path + \".\") + fieldName, fieldValue);\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(2, [\"an object\", value_1])]]);\n }\n}\n\nexport function at(fieldNames, decoder, firstPath, firstValue) {\n const _arg = fold((tupledArg, field_1) => {\n const curPath = tupledArg[0];\n const curValue = tupledArg[1];\n const res = tupledArg[2];\n if (res == null) {\n if (curValue == null) {\n return [curPath, curValue, badPathError(fieldNames, curPath, firstValue)];\n }\n else if (curValue === null ? false : (Object.getPrototypeOf(curValue || false) === Object.prototype)) {\n const curValue_1 = curValue[field_1];\n if (Helpers_isUndefined(curValue_1)) {\n return [curPath, curValue_1, badPathError(fieldNames, undefined, firstValue)];\n }\n else {\n return [(curPath + \".\") + field_1, curValue_1, undefined];\n }\n }\n else {\n return [curPath, curValue, new FSharpResult$2(1, [[curPath, new ErrorReason(2, [\"an object\", curValue])]])];\n }\n }\n else {\n return [curPath, curValue, res];\n }\n }, [firstPath, firstValue, undefined], fieldNames);\n if (_arg[2] == null) {\n return decoder(_arg[0], _arg[1]);\n }\n else {\n return _arg[2];\n }\n}\n\nexport function index(requestedIndex, decoder, path, value_1) {\n let copyOfStruct;\n const currentPath = ((path + \".[\") + int32ToString(requestedIndex)) + \"]\";\n if (Array.isArray(value_1)) {\n const vArray = value_1;\n if (requestedIndex < vArray.length) {\n return decoder(currentPath, item(requestedIndex, vArray));\n }\n else {\n return new FSharpResult$2(1, [[currentPath, new ErrorReason(5, [(((\"a longer array. Need index `\" + int32ToString(requestedIndex)) + \"` but there are only `\") + ((copyOfStruct = vArray.length, int32ToString(copyOfStruct)))) + \"` entries\", value_1])]]);\n }\n }\n else {\n return new FSharpResult$2(1, [[currentPath, new ErrorReason(0, [\"an array\", value_1])]]);\n }\n}\n\nexport function option(decoder, path, value_1) {\n if (value_1 == null) {\n return new FSharpResult$2(0, [undefined]);\n }\n else {\n return Result_Map(some, decoder(path, value_1));\n }\n}\n\nexport function list(decoder, path, value_1) {\n if (Array.isArray(value_1)) {\n let i = -1;\n return Result_Map(reverse, fold_1((acc, value_2) => {\n i = ((i + 1) | 0);\n if (acc.tag === 0) {\n const matchValue = decoder(((path + \".[\") + int32ToString(i)) + \"]\", value_2);\n if (matchValue.tag === 0) {\n return new FSharpResult$2(0, [cons(matchValue.fields[0], acc.fields[0])]);\n }\n else {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n }\n else {\n return acc;\n }\n }, new FSharpResult$2(0, [empty()]), value_1));\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a list\", value_1])]]);\n }\n}\n\nexport function seq(decoder, path, value_1) {\n if (Array.isArray(value_1)) {\n let i = -1;\n return Result_Map(reverse_1, fold_1((acc, value_2) => {\n i = ((i + 1) | 0);\n if (acc.tag === 0) {\n const matchValue = decoder(((path + \".[\") + int32ToString(i)) + \"]\", value_2);\n if (matchValue.tag === 0) {\n return new FSharpResult$2(0, [append([matchValue.fields[0]], acc.fields[0])]);\n }\n else {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n }\n else {\n return acc;\n }\n }, new FSharpResult$2(0, [[]]), value_1));\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"a seq\", value_1])]]);\n }\n}\n\nexport function array(decoder, path, value_1) {\n if (Array.isArray(value_1)) {\n let i = -1;\n const tokens = value_1;\n return fold_1((acc, value_2) => {\n i = ((i + 1) | 0);\n if (acc.tag === 0) {\n const acc_1 = acc.fields[0];\n const matchValue = decoder(((path + \".[\") + int32ToString(i)) + \"]\", value_2);\n if (matchValue.tag === 0) {\n setItem(acc_1, i, matchValue.fields[0]);\n return new FSharpResult$2(0, [acc_1]);\n }\n else {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n }\n else {\n return acc;\n }\n }, new FSharpResult$2(0, [fill(new Array(tokens.length), 0, tokens.length, null)]), tokens);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"an array\", value_1])]]);\n }\n}\n\nexport function keys(path, value_1) {\n if (value_1 === null ? false : (Object.getPrototypeOf(value_1 || false) === Object.prototype)) {\n return new FSharpResult$2(0, [ofSeq(Object.keys(value_1))]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"an object\", value_1])]]);\n }\n}\n\nexport function keyValuePairs(decoder, path, value_1) {\n const matchValue = keys(path, value_1);\n if (matchValue.tag === 1) {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n else {\n return Result_Map(reverse, fold((acc, prop) => {\n if (acc.tag === 0) {\n const matchValue_1 = decoder(path, value_1[prop]);\n if (matchValue_1.tag === 0) {\n return new FSharpResult$2(0, [cons([prop, matchValue_1.fields[0]], acc.fields[0])]);\n }\n else {\n return new FSharpResult$2(1, [matchValue_1.fields[0]]);\n }\n }\n else {\n return acc;\n }\n }, new FSharpResult$2(0, [empty()]), matchValue.fields[0]));\n }\n}\n\nexport function oneOf(decoders, path, value_1) {\n const runner = (decoders_1_mut, errors_mut) => {\n runner:\n while (true) {\n const decoders_1 = decoders_1_mut, errors = errors_mut;\n if (isEmpty(decoders_1)) {\n return new FSharpResult$2(1, [[path, new ErrorReason(7, [errors])]]);\n }\n else {\n const matchValue = fromValue(path, uncurry2(head_1(decoders_1)), value_1);\n if (matchValue.tag === 1) {\n decoders_1_mut = tail_1(decoders_1);\n errors_mut = append_1(errors, singleton(matchValue.fields[0]));\n continue runner;\n }\n else {\n return new FSharpResult$2(0, [matchValue.fields[0]]);\n }\n }\n break;\n }\n };\n return runner(decoders, empty());\n}\n\nexport function nil(output, path, value_1) {\n if (value_1 == null) {\n return new FSharpResult$2(0, [output]);\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"null\", value_1])]]);\n }\n}\n\nexport function value(_arg, v) {\n return new FSharpResult$2(0, [v]);\n}\n\nexport function succeed(output, _arg, _arg_1) {\n return new FSharpResult$2(0, [output]);\n}\n\nexport function fail(msg, path, _arg) {\n return new FSharpResult$2(1, [[path, new ErrorReason(6, [msg])]]);\n}\n\nexport function andThen(cb, decoder, path, value_1) {\n const matchValue = decoder(path, value_1);\n if (matchValue.tag === 0) {\n return cb(matchValue.fields[0], path, value_1);\n }\n else {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n}\n\nexport function all(decoders, path, value_1) {\n const runner = (decoders_1_mut, values_mut) => {\n runner:\n while (true) {\n const decoders_1 = decoders_1_mut, values = values_mut;\n if (isEmpty(decoders_1)) {\n return new FSharpResult$2(0, [values]);\n }\n else {\n const matchValue = head_1(decoders_1)(path)(value_1);\n if (matchValue.tag === 1) {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n else {\n decoders_1_mut = tail_1(decoders_1);\n values_mut = append_1(values, singleton(matchValue.fields[0]));\n continue runner;\n }\n }\n break;\n }\n };\n return runner(decoders, empty());\n}\n\nexport function map(ctor, d1, path, value_1) {\n const matchValue = d1(path, value_1);\n if (matchValue.tag === 1) {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(matchValue.fields[0])]);\n }\n}\n\nexport function map2(ctor, d1, d2, path, value_1) {\n const matchValue = d1(path, value_1);\n const matchValue_1 = d2(path, value_1);\n const copyOfStruct = matchValue;\n if (copyOfStruct.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct.fields[0]]);\n }\n else {\n const copyOfStruct_1 = matchValue_1;\n if (copyOfStruct_1.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_1.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(copyOfStruct.fields[0], copyOfStruct_1.fields[0])]);\n }\n }\n}\n\nexport function map3(ctor, d1, d2, d3, path, value_1) {\n const matchValue = d1(path, value_1);\n const matchValue_1 = d2(path, value_1);\n const matchValue_2 = d3(path, value_1);\n const copyOfStruct = matchValue;\n if (copyOfStruct.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct.fields[0]]);\n }\n else {\n const copyOfStruct_1 = matchValue_1;\n if (copyOfStruct_1.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_1.fields[0]]);\n }\n else {\n const copyOfStruct_2 = matchValue_2;\n if (copyOfStruct_2.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_2.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(copyOfStruct.fields[0], copyOfStruct_1.fields[0], copyOfStruct_2.fields[0])]);\n }\n }\n }\n}\n\nexport function map4(ctor, d1, d2, d3, d4, path, value_1) {\n const matchValue = d1(path, value_1);\n const matchValue_1 = d2(path, value_1);\n const matchValue_2 = d3(path, value_1);\n const matchValue_3 = d4(path, value_1);\n const copyOfStruct = matchValue;\n if (copyOfStruct.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct.fields[0]]);\n }\n else {\n const copyOfStruct_1 = matchValue_1;\n if (copyOfStruct_1.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_1.fields[0]]);\n }\n else {\n const copyOfStruct_2 = matchValue_2;\n if (copyOfStruct_2.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_2.fields[0]]);\n }\n else {\n const copyOfStruct_3 = matchValue_3;\n if (copyOfStruct_3.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_3.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(copyOfStruct.fields[0], copyOfStruct_1.fields[0], copyOfStruct_2.fields[0], copyOfStruct_3.fields[0])]);\n }\n }\n }\n }\n}\n\nexport function map5(ctor, d1, d2, d3, d4, d5, path, value_1) {\n const matchValue = d1(path, value_1);\n const matchValue_1 = d2(path, value_1);\n const matchValue_2 = d3(path, value_1);\n const matchValue_3 = d4(path, value_1);\n const matchValue_4 = d5(path, value_1);\n const copyOfStruct = matchValue;\n if (copyOfStruct.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct.fields[0]]);\n }\n else {\n const copyOfStruct_1 = matchValue_1;\n if (copyOfStruct_1.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_1.fields[0]]);\n }\n else {\n const copyOfStruct_2 = matchValue_2;\n if (copyOfStruct_2.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_2.fields[0]]);\n }\n else {\n const copyOfStruct_3 = matchValue_3;\n if (copyOfStruct_3.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_3.fields[0]]);\n }\n else {\n const copyOfStruct_4 = matchValue_4;\n if (copyOfStruct_4.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_4.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(copyOfStruct.fields[0], copyOfStruct_1.fields[0], copyOfStruct_2.fields[0], copyOfStruct_3.fields[0], copyOfStruct_4.fields[0])]);\n }\n }\n }\n }\n }\n}\n\nexport function map6(ctor, d1, d2, d3, d4, d5, d6, path, value_1) {\n const matchValue = d1(path, value_1);\n const matchValue_1 = d2(path, value_1);\n const matchValue_2 = d3(path, value_1);\n const matchValue_3 = d4(path, value_1);\n const matchValue_4 = d5(path, value_1);\n const matchValue_5 = d6(path, value_1);\n const copyOfStruct = matchValue;\n if (copyOfStruct.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct.fields[0]]);\n }\n else {\n const copyOfStruct_1 = matchValue_1;\n if (copyOfStruct_1.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_1.fields[0]]);\n }\n else {\n const copyOfStruct_2 = matchValue_2;\n if (copyOfStruct_2.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_2.fields[0]]);\n }\n else {\n const copyOfStruct_3 = matchValue_3;\n if (copyOfStruct_3.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_3.fields[0]]);\n }\n else {\n const copyOfStruct_4 = matchValue_4;\n if (copyOfStruct_4.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_4.fields[0]]);\n }\n else {\n const copyOfStruct_5 = matchValue_5;\n if (copyOfStruct_5.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_5.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(copyOfStruct.fields[0], copyOfStruct_1.fields[0], copyOfStruct_2.fields[0], copyOfStruct_3.fields[0], copyOfStruct_4.fields[0], copyOfStruct_5.fields[0])]);\n }\n }\n }\n }\n }\n }\n}\n\nexport function map7(ctor, d1, d2, d3, d4, d5, d6, d7, path, value_1) {\n const matchValue = d1(path, value_1);\n const matchValue_1 = d2(path, value_1);\n const matchValue_2 = d3(path, value_1);\n const matchValue_3 = d4(path, value_1);\n const matchValue_4 = d5(path, value_1);\n const matchValue_5 = d6(path, value_1);\n const matchValue_6 = d7(path, value_1);\n const copyOfStruct = matchValue;\n if (copyOfStruct.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct.fields[0]]);\n }\n else {\n const copyOfStruct_1 = matchValue_1;\n if (copyOfStruct_1.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_1.fields[0]]);\n }\n else {\n const copyOfStruct_2 = matchValue_2;\n if (copyOfStruct_2.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_2.fields[0]]);\n }\n else {\n const copyOfStruct_3 = matchValue_3;\n if (copyOfStruct_3.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_3.fields[0]]);\n }\n else {\n const copyOfStruct_4 = matchValue_4;\n if (copyOfStruct_4.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_4.fields[0]]);\n }\n else {\n const copyOfStruct_5 = matchValue_5;\n if (copyOfStruct_5.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_5.fields[0]]);\n }\n else {\n const copyOfStruct_6 = matchValue_6;\n if (copyOfStruct_6.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_6.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(copyOfStruct.fields[0], copyOfStruct_1.fields[0], copyOfStruct_2.fields[0], copyOfStruct_3.fields[0], copyOfStruct_4.fields[0], copyOfStruct_5.fields[0], copyOfStruct_6.fields[0])]);\n }\n }\n }\n }\n }\n }\n }\n}\n\nexport function map8(ctor, d1, d2, d3, d4, d5, d6, d7, d8, path, value_1) {\n const matchValue = d1(path, value_1);\n const matchValue_1 = d2(path, value_1);\n const matchValue_2 = d3(path, value_1);\n const matchValue_3 = d4(path, value_1);\n const matchValue_4 = d5(path, value_1);\n const matchValue_5 = d6(path, value_1);\n const matchValue_6 = d7(path, value_1);\n const matchValue_7 = d8(path, value_1);\n const copyOfStruct = matchValue;\n if (copyOfStruct.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct.fields[0]]);\n }\n else {\n const copyOfStruct_1 = matchValue_1;\n if (copyOfStruct_1.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_1.fields[0]]);\n }\n else {\n const copyOfStruct_2 = matchValue_2;\n if (copyOfStruct_2.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_2.fields[0]]);\n }\n else {\n const copyOfStruct_3 = matchValue_3;\n if (copyOfStruct_3.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_3.fields[0]]);\n }\n else {\n const copyOfStruct_4 = matchValue_4;\n if (copyOfStruct_4.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_4.fields[0]]);\n }\n else {\n const copyOfStruct_5 = matchValue_5;\n if (copyOfStruct_5.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_5.fields[0]]);\n }\n else {\n const copyOfStruct_6 = matchValue_6;\n if (copyOfStruct_6.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_6.fields[0]]);\n }\n else {\n const copyOfStruct_7 = matchValue_7;\n if (copyOfStruct_7.tag === 1) {\n return new FSharpResult$2(1, [copyOfStruct_7.fields[0]]);\n }\n else {\n return new FSharpResult$2(0, [ctor(copyOfStruct.fields[0], copyOfStruct_1.fields[0], copyOfStruct_2.fields[0], copyOfStruct_3.fields[0], copyOfStruct_4.fields[0], copyOfStruct_5.fields[0], copyOfStruct_6.fields[0], copyOfStruct_7.fields[0])]);\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\nexport function dict(decoder) {\n let d;\n const decoder_1 = decoder;\n d = ((path) => ((value_1) => keyValuePairs(decoder_1, path, value_1)));\n return (path_1) => ((value_2) => map((elements) => ofList(elements, {\n Compare: comparePrimitives,\n }), uncurry2(d), path_1, value_2));\n}\n\nfunction unwrapWith(errors, path, decoder, value_1) {\n const matchValue = decoder(path, value_1);\n if (matchValue.tag === 1) {\n void (errors.push(matchValue.fields[0]));\n return defaultOf();\n }\n else {\n return matchValue.fields[0];\n }\n}\n\nexport class Getters$1 {\n constructor(path, v) {\n let _this, _this_1;\n this.errors = [];\n this.required = ((_this = this, {\n Field(fieldName, decoder) {\n return unwrapWith(_this.errors, path, (path_1, value_1) => field(fieldName, decoder, path_1, value_1), v);\n },\n At(fieldNames, decoder_2) {\n return unwrapWith(_this.errors, path, (firstPath, firstValue) => at(fieldNames, decoder_2, firstPath, firstValue), v);\n },\n Raw(decoder_4) {\n return unwrapWith(_this.errors, path, decoder_4, v);\n },\n }));\n this.optional = ((_this_1 = this, {\n Field(fieldName_1, decoder_5) {\n return unwrapWith(_this_1.errors, path, (path_2, value_2) => optional(fieldName_1, decoder_5, path_2, value_2), v);\n },\n At(fieldNames_1, decoder_7) {\n return unwrapWith(_this_1.errors, path, (firstPath_1, firstValue_1) => optionalAt(fieldNames_1, decoder_7, firstPath_1, firstValue_1), v);\n },\n Raw(decoder_9) {\n const matchValue = decoder_9(path, v);\n if (matchValue.tag === 1) {\n const reason = matchValue.fields[0][1];\n const error = matchValue.fields[0];\n let matchResult, v_2;\n switch (reason.tag) {\n case 3:\n case 4: {\n matchResult = 1;\n break;\n }\n case 5:\n case 6:\n case 7: {\n matchResult = 2;\n break;\n }\n case 1: {\n matchResult = 0;\n v_2 = reason.fields[1];\n break;\n }\n case 2: {\n matchResult = 0;\n v_2 = reason.fields[1];\n break;\n }\n default: {\n matchResult = 0;\n v_2 = reason.fields[1];\n }\n }\n switch (matchResult) {\n case 0:\n if (v_2 == null) {\n return undefined;\n }\n else {\n void (_this_1.errors.push(error));\n return defaultOf();\n }\n case 1:\n return undefined;\n default: {\n void (_this_1.errors.push(error));\n return defaultOf();\n }\n }\n }\n else {\n return some(matchValue.fields[0]);\n }\n },\n }));\n }\n get Required() {\n const __ = this;\n return __.required;\n }\n get Optional() {\n const __ = this;\n return __.optional;\n }\n}\n\nexport function Getters$1_$reflection(gen0) {\n return class_type(\"Thoth.Json.Decode.Getters`1\", [gen0], Getters$1);\n}\n\nexport function Getters$1_$ctor_4A51B60E(path, v) {\n return new Getters$1(path, v);\n}\n\nexport function Getters$1__get_Errors(__) {\n return toList(__.errors);\n}\n\nexport function object(builder, path, v) {\n const getters = Getters$1_$ctor_4A51B60E(path, v);\n const result = builder(getters);\n const matchValue = Getters$1__get_Errors(getters);\n if (!isEmpty(matchValue)) {\n const errors = matchValue;\n if (length(errors) > 1) {\n return new FSharpResult$2(1, [[path, new ErrorReason(7, [map_1((tupledArg) => errorToString(tupledArg[0], tupledArg[1]), errors)])]]);\n }\n else {\n return new FSharpResult$2(1, [head_1(matchValue)]);\n }\n }\n else {\n return new FSharpResult$2(0, [result]);\n }\n}\n\nexport function tuple2(decoder1, decoder2) {\n let decoder_3;\n const decoder = decoder1;\n decoder_3 = ((path) => ((value_1) => index(0, decoder, path, value_1)));\n return (path_3) => ((value_4) => andThen(uncurry3((v1) => {\n let decoder_2;\n const decoder_1 = decoder2;\n decoder_2 = ((path_1) => ((value_2) => index(1, decoder_1, path_1, value_2)));\n return (path_2) => ((value_3) => andThen((v2, arg10$0040, arg20$0040) => succeed([v1, v2], arg10$0040, arg20$0040), uncurry2(decoder_2), path_2, value_3));\n }), uncurry2(decoder_3), path_3, value_4));\n}\n\nexport function tuple3(decoder1, decoder2, decoder3) {\n let decoder_5;\n const decoder = decoder1;\n decoder_5 = ((path) => ((value_1) => index(0, decoder, path, value_1)));\n return (path_5) => ((value_6) => andThen(uncurry3((v1) => {\n let decoder_4;\n const decoder_1 = decoder2;\n decoder_4 = ((path_1) => ((value_2) => index(1, decoder_1, path_1, value_2)));\n return (path_4) => ((value_5) => andThen(uncurry3((v2) => {\n let decoder_3;\n const decoder_2 = decoder3;\n decoder_3 = ((path_2) => ((value_3) => index(2, decoder_2, path_2, value_3)));\n return (path_3) => ((value_4) => andThen((v3, arg10$0040, arg20$0040) => succeed([v1, v2, v3], arg10$0040, arg20$0040), uncurry2(decoder_3), path_3, value_4));\n }), uncurry2(decoder_4), path_4, value_5));\n }), uncurry2(decoder_5), path_5, value_6));\n}\n\nexport function tuple4(decoder1, decoder2, decoder3, decoder4) {\n let decoder_7;\n const decoder = decoder1;\n decoder_7 = ((path) => ((value_1) => index(0, decoder, path, value_1)));\n return (path_7) => ((value_8) => andThen(uncurry3((v1) => {\n let decoder_6;\n const decoder_1 = decoder2;\n decoder_6 = ((path_1) => ((value_2) => index(1, decoder_1, path_1, value_2)));\n return (path_6) => ((value_7) => andThen(uncurry3((v2) => {\n let decoder_5;\n const decoder_2 = decoder3;\n decoder_5 = ((path_2) => ((value_3) => index(2, decoder_2, path_2, value_3)));\n return (path_5) => ((value_6) => andThen(uncurry3((v3) => {\n let decoder_4;\n const decoder_3 = decoder4;\n decoder_4 = ((path_3) => ((value_4) => index(3, decoder_3, path_3, value_4)));\n return (path_4) => ((value_5) => andThen((v4, arg10$0040, arg20$0040) => succeed([v1, v2, v3, v4], arg10$0040, arg20$0040), uncurry2(decoder_4), path_4, value_5));\n }), uncurry2(decoder_5), path_5, value_6));\n }), uncurry2(decoder_6), path_6, value_7));\n }), uncurry2(decoder_7), path_7, value_8));\n}\n\nexport function tuple5(decoder1, decoder2, decoder3, decoder4, decoder5) {\n let decoder_9;\n const decoder = decoder1;\n decoder_9 = ((path) => ((value_1) => index(0, decoder, path, value_1)));\n return (path_9) => ((value_10) => andThen(uncurry3((v1) => {\n let decoder_8;\n const decoder_1 = decoder2;\n decoder_8 = ((path_1) => ((value_2) => index(1, decoder_1, path_1, value_2)));\n return (path_8) => ((value_9) => andThen(uncurry3((v2) => {\n let decoder_7;\n const decoder_2 = decoder3;\n decoder_7 = ((path_2) => ((value_3) => index(2, decoder_2, path_2, value_3)));\n return (path_7) => ((value_8) => andThen(uncurry3((v3) => {\n let decoder_6;\n const decoder_3 = decoder4;\n decoder_6 = ((path_3) => ((value_4) => index(3, decoder_3, path_3, value_4)));\n return (path_6) => ((value_7) => andThen(uncurry3((v4) => {\n let decoder_5;\n const decoder_4 = decoder5;\n decoder_5 = ((path_4) => ((value_5) => index(4, decoder_4, path_4, value_5)));\n return (path_5) => ((value_6) => andThen((v5, arg10$0040, arg20$0040) => succeed([v1, v2, v3, v4, v5], arg10$0040, arg20$0040), uncurry2(decoder_5), path_5, value_6));\n }), uncurry2(decoder_6), path_6, value_7));\n }), uncurry2(decoder_7), path_7, value_8));\n }), uncurry2(decoder_8), path_8, value_9));\n }), uncurry2(decoder_9), path_9, value_10));\n}\n\nexport function tuple6(decoder1, decoder2, decoder3, decoder4, decoder5, decoder6) {\n let decoder_11;\n const decoder = decoder1;\n decoder_11 = ((path) => ((value_1) => index(0, decoder, path, value_1)));\n return (path_11) => ((value_12) => andThen(uncurry3((v1) => {\n let decoder_10;\n const decoder_1 = decoder2;\n decoder_10 = ((path_1) => ((value_2) => index(1, decoder_1, path_1, value_2)));\n return (path_10) => ((value_11) => andThen(uncurry3((v2) => {\n let decoder_9;\n const decoder_2 = decoder3;\n decoder_9 = ((path_2) => ((value_3) => index(2, decoder_2, path_2, value_3)));\n return (path_9) => ((value_10) => andThen(uncurry3((v3) => {\n let decoder_8;\n const decoder_3 = decoder4;\n decoder_8 = ((path_3) => ((value_4) => index(3, decoder_3, path_3, value_4)));\n return (path_8) => ((value_9) => andThen(uncurry3((v4) => {\n let decoder_7;\n const decoder_4 = decoder5;\n decoder_7 = ((path_4) => ((value_5) => index(4, decoder_4, path_4, value_5)));\n return (path_7) => ((value_8) => andThen(uncurry3((v5) => {\n let decoder_6;\n const decoder_5 = decoder6;\n decoder_6 = ((path_5) => ((value_6) => index(5, decoder_5, path_5, value_6)));\n return (path_6) => ((value_7) => andThen((v6, arg10$0040, arg20$0040) => succeed([v1, v2, v3, v4, v5, v6], arg10$0040, arg20$0040), uncurry2(decoder_6), path_6, value_7));\n }), uncurry2(decoder_7), path_7, value_8));\n }), uncurry2(decoder_8), path_8, value_9));\n }), uncurry2(decoder_9), path_9, value_10));\n }), uncurry2(decoder_10), path_10, value_11));\n }), uncurry2(decoder_11), path_11, value_12));\n}\n\nexport function tuple7(decoder1, decoder2, decoder3, decoder4, decoder5, decoder6, decoder7) {\n let decoder_13;\n const decoder = decoder1;\n decoder_13 = ((path) => ((value_1) => index(0, decoder, path, value_1)));\n return (path_13) => ((value_14) => andThen(uncurry3((v1) => {\n let decoder_12;\n const decoder_1 = decoder2;\n decoder_12 = ((path_1) => ((value_2) => index(1, decoder_1, path_1, value_2)));\n return (path_12) => ((value_13) => andThen(uncurry3((v2) => {\n let decoder_11;\n const decoder_2 = decoder3;\n decoder_11 = ((path_2) => ((value_3) => index(2, decoder_2, path_2, value_3)));\n return (path_11) => ((value_12) => andThen(uncurry3((v3) => {\n let decoder_10;\n const decoder_3 = decoder4;\n decoder_10 = ((path_3) => ((value_4) => index(3, decoder_3, path_3, value_4)));\n return (path_10) => ((value_11) => andThen(uncurry3((v4) => {\n let decoder_9;\n const decoder_4 = decoder5;\n decoder_9 = ((path_4) => ((value_5) => index(4, decoder_4, path_4, value_5)));\n return (path_9) => ((value_10) => andThen(uncurry3((v5) => {\n let decoder_8;\n const decoder_5 = decoder6;\n decoder_8 = ((path_5) => ((value_6) => index(5, decoder_5, path_5, value_6)));\n return (path_8) => ((value_9) => andThen(uncurry3((v6) => {\n let decoder_7;\n const decoder_6 = decoder7;\n decoder_7 = ((path_6) => ((value_7) => index(6, decoder_6, path_6, value_7)));\n return (path_7) => ((value_8) => andThen((v7, arg10$0040, arg20$0040) => succeed([v1, v2, v3, v4, v5, v6, v7], arg10$0040, arg20$0040), uncurry2(decoder_7), path_7, value_8));\n }), uncurry2(decoder_8), path_8, value_9));\n }), uncurry2(decoder_9), path_9, value_10));\n }), uncurry2(decoder_10), path_10, value_11));\n }), uncurry2(decoder_11), path_11, value_12));\n }), uncurry2(decoder_12), path_12, value_13));\n }), uncurry2(decoder_13), path_13, value_14));\n}\n\nexport function tuple8(decoder1, decoder2, decoder3, decoder4, decoder5, decoder6, decoder7, decoder8) {\n let decoder_15;\n const decoder = decoder1;\n decoder_15 = ((path) => ((value_1) => index(0, decoder, path, value_1)));\n return (path_15) => ((value_16) => andThen(uncurry3((v1) => {\n let decoder_14;\n const decoder_1 = decoder2;\n decoder_14 = ((path_1) => ((value_2) => index(1, decoder_1, path_1, value_2)));\n return (path_14) => ((value_15) => andThen(uncurry3((v2) => {\n let decoder_13;\n const decoder_2 = decoder3;\n decoder_13 = ((path_2) => ((value_3) => index(2, decoder_2, path_2, value_3)));\n return (path_13) => ((value_14) => andThen(uncurry3((v3) => {\n let decoder_12;\n const decoder_3 = decoder4;\n decoder_12 = ((path_3) => ((value_4) => index(3, decoder_3, path_3, value_4)));\n return (path_12) => ((value_13) => andThen(uncurry3((v4) => {\n let decoder_11;\n const decoder_4 = decoder5;\n decoder_11 = ((path_4) => ((value_5) => index(4, decoder_4, path_4, value_5)));\n return (path_11) => ((value_12) => andThen(uncurry3((v5) => {\n let decoder_10;\n const decoder_5 = decoder6;\n decoder_10 = ((path_5) => ((value_6) => index(5, decoder_5, path_5, value_6)));\n return (path_10) => ((value_11) => andThen(uncurry3((v6) => {\n let decoder_9;\n const decoder_6 = decoder7;\n decoder_9 = ((path_6) => ((value_7) => index(6, decoder_6, path_6, value_7)));\n return (path_9) => ((value_10) => andThen(uncurry3((v7) => {\n let decoder_8;\n const decoder_7 = decoder8;\n decoder_8 = ((path_7) => ((value_8) => index(7, decoder_7, path_7, value_8)));\n return (path_8) => ((value_9) => andThen((v8, arg10$0040, arg20$0040) => succeed([v1, v2, v3, v4, v5, v6, v7, v8], arg10$0040, arg20$0040), uncurry2(decoder_8), path_8, value_9));\n }), uncurry2(decoder_9), path_9, value_10));\n }), uncurry2(decoder_10), path_10, value_11));\n }), uncurry2(decoder_11), path_11, value_12));\n }), uncurry2(decoder_12), path_12, value_13));\n }), uncurry2(decoder_13), path_13, value_14));\n }), uncurry2(decoder_14), path_14, value_15));\n }), uncurry2(decoder_15), path_15, value_16));\n}\n\nfunction toMap(xs) {\n return ofSeq_1(xs, {\n Compare: compare,\n });\n}\n\nfunction toSet(xs) {\n return ofSeq_2(xs, {\n Compare: compare,\n });\n}\n\nfunction autoObject(decoderInfos, path, value_1) {\n if (!(value_1 === null ? false : (Object.getPrototypeOf(value_1 || false) === Object.prototype))) {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"an object\", value_1])]]);\n }\n else {\n return foldBack((tupledArg, acc) => {\n const name = tupledArg[0];\n if (acc.tag === 0) {\n return Result_Map((v) => cons(v, acc.fields[0]), tupledArg[1]((path + \".\") + name)(value_1[name]));\n }\n else {\n return acc;\n }\n }, decoderInfos, new FSharpResult$2(0, [empty()]));\n }\n}\n\nfunction autoObject2(keyDecoder, valueDecoder, path, value_1) {\n if (!(value_1 === null ? false : (Object.getPrototypeOf(value_1 || false) === Object.prototype))) {\n return new FSharpResult$2(1, [[path, new ErrorReason(0, [\"an object\", value_1])]]);\n }\n else {\n return fold_2((acc, name) => {\n if (acc.tag === 0) {\n const matchValue = keyDecoder(path, name);\n if (matchValue.tag === 0) {\n const _arg = valueDecoder((path + \".\") + name, value_1[name]);\n if (_arg.tag === 0) {\n return new FSharpResult$2(0, [cons([matchValue.fields[0], _arg.fields[0]], acc.fields[0])]);\n }\n else {\n return new FSharpResult$2(1, [_arg.fields[0]]);\n }\n }\n else {\n return new FSharpResult$2(1, [matchValue.fields[0]]);\n }\n }\n else {\n return acc;\n }\n }, new FSharpResult$2(0, [empty()]), Object.keys(value_1));\n }\n}\n\nfunction mixedArray(msg, decoders, path, values) {\n let arg, arg_2;\n if (decoders.length !== values.length) {\n return new FSharpResult$2(1, [[path, new ErrorReason(6, [(arg = (decoders.length | 0), (arg_2 = (values.length | 0), toText(printf(\"Expected %i %s but got %i\"))(arg)(msg)(arg_2)))])]]);\n }\n else {\n return foldBack2((value_1, decoder, acc) => {\n if (acc.tag === 0) {\n return Result_Map((v) => cons(v, acc.fields[0]), decoder(path)(value_1));\n }\n else {\n return acc;\n }\n }, values, decoders, new FSharpResult$2(0, [empty()]));\n }\n}\n\nfunction makeUnion(extra, caseStrategy, t, name, path, values) {\n const uci = tryFind((x) => (name_3(x) === name), getUnionCases(t, true));\n if (uci != null) {\n const uci_1 = uci;\n if (values.length === 0) {\n return new FSharpResult$2(0, [makeUnion_1(uci_1, [], true)]);\n }\n else {\n return Result_Map((values_1) => makeUnion_1(uci_1, toArray(values_1), true), mixedArray(\"union fields\", map_2((fi) => autoDecoder(extra, caseStrategy, false, fi[1]), getUnionCaseFields(uci_1)), path, values));\n }\n }\n else {\n return new FSharpResult$2(1, [[path, new ErrorReason(6, [((\"Cannot find case \" + name) + \" in \") + fullName(t)])]]);\n }\n}\n\nfunction autoDecodeRecordsAndUnions(extra, caseStrategy, isOptional, t) {\n let arg;\n const decoderRef = new FSharpRef(defaultOf());\n const extra_1 = add(fullName(t), decoderRef, extra);\n let decoder;\n if (isRecord(t, true)) {\n const decoders = map_2((fi) => [Util_Casing_convert(caseStrategy, name_3(fi)), autoDecoder(extra_1, caseStrategy, false, fi[1])], getRecordElements(t, true));\n decoder = ((path) => ((value_1) => Result_Map((xs) => makeRecord(t, toArray(xs), true), autoObject(decoders, path, value_1))));\n }\n else if (isUnion(t, true)) {\n decoder = ((path_1) => ((value_2) => {\n if (typeof value_2 === \"string\") {\n return makeUnion(extra_1, caseStrategy, t, value_2, path_1, []);\n }\n else if (Array.isArray(value_2)) {\n const values = value_2;\n return makeUnion(extra_1, caseStrategy, t, item(0, values), path_1, values.slice(1, values.length));\n }\n else {\n return new FSharpResult$2(1, [[path_1, new ErrorReason(0, [\"a string or array\", value_2])]]);\n }\n }));\n }\n else if (isOptional) {\n decoder = ((path_2) => ((value_3) => (new FSharpResult$2(1, [[path_2, new ErrorReason(2, [\"an extra coder for \" + fullName(t), value_3])]]))));\n }\n else {\n throw new Error((arg = fullName(t), toText(printf(\"Cannot generate auto decoder for %s. Please pass an extra decoder.\"))(arg)));\n }\n decoderRef.contents = decoder;\n return decoder;\n}\n\nfunction autoDecoder(extra, caseStrategy, isOptional, t) {\n let decoder_13, decoder_14, decoder_15;\n const fullname = fullName(t);\n const matchValue = tryFind_1(fullname, extra);\n if (matchValue == null) {\n if (isArray(t)) {\n const decoder = autoDecoder(extra, caseStrategy, false, getElementType(t));\n return (path_1) => ((value_2) => array(uncurry2(decoder), path_1, value_2));\n }\n else if (isEnum(t)) {\n const enumType = fullName(getEnumUnderlyingType(t));\n switch (enumType) {\n case \"System.SByte\":\n return (path_2) => ((value_4) => {\n const t_2 = t;\n const path_3 = path_2;\n const value_5 = value_4;\n const matchValue_1 = sbyte(path_3)(value_5);\n if (matchValue_1.tag === 1) {\n return new FSharpResult$2(1, [matchValue_1.fields[0]]);\n }\n else {\n const enumValue = matchValue_1.fields[0] | 0;\n return contains(enumValue, getEnumValues(t_2), {\n Equals: (x, y) => (x === y),\n GetHashCode: numberHash,\n }) ? (new FSharpResult$2(0, [parseEnum(t_2, enumValue.toString())])) : (new FSharpResult$2(1, [[path_3, new ErrorReason(1, [fullName(t_2), value_5, \"Unkown value provided for the enum\"])]]));\n }\n });\n case \"System.Byte\":\n return (path_4) => ((value_7) => {\n const t_3 = t;\n const path_5 = path_4;\n const value_8 = value_7;\n const matchValue_2 = byte(path_5)(value_8);\n if (matchValue_2.tag === 1) {\n return new FSharpResult$2(1, [matchValue_2.fields[0]]);\n }\n else {\n const enumValue_1 = matchValue_2.fields[0];\n return contains(enumValue_1, getEnumValues(t_3), {\n Equals: (x_1, y_1) => (x_1 === y_1),\n GetHashCode: numberHash,\n }) ? (new FSharpResult$2(0, [parseEnum(t_3, enumValue_1.toString())])) : (new FSharpResult$2(1, [[path_5, new ErrorReason(1, [fullName(t_3), value_8, \"Unkown value provided for the enum\"])]]));\n }\n });\n case \"System.Int16\":\n return (path_6) => ((value_10) => {\n const t_4 = t;\n const path_7 = path_6;\n const value_11 = value_10;\n const matchValue_3 = int16(path_7)(value_11);\n if (matchValue_3.tag === 1) {\n return new FSharpResult$2(1, [matchValue_3.fields[0]]);\n }\n else {\n const enumValue_2 = matchValue_3.fields[0] | 0;\n return contains(enumValue_2, getEnumValues(t_4), {\n Equals: (x_2, y_2) => (x_2 === y_2),\n GetHashCode: numberHash,\n }) ? (new FSharpResult$2(0, [parseEnum(t_4, int16ToString(enumValue_2))])) : (new FSharpResult$2(1, [[path_7, new ErrorReason(1, [fullName(t_4), value_11, \"Unkown value provided for the enum\"])]]));\n }\n });\n case \"System.UInt16\":\n return (path_8) => ((value_13) => {\n const t_5 = t;\n const path_9 = path_8;\n const value_14 = value_13;\n const matchValue_4 = uint16(path_9)(value_14);\n if (matchValue_4.tag === 1) {\n return new FSharpResult$2(1, [matchValue_4.fields[0]]);\n }\n else {\n const enumValue_3 = matchValue_4.fields[0];\n return contains(enumValue_3, getEnumValues(t_5), {\n Equals: (x_3, y_3) => (x_3 === y_3),\n GetHashCode: numberHash,\n }) ? (new FSharpResult$2(0, [parseEnum(t_5, enumValue_3.toString())])) : (new FSharpResult$2(1, [[path_9, new ErrorReason(1, [fullName(t_5), value_14, \"Unkown value provided for the enum\"])]]));\n }\n });\n case \"System.Int32\":\n return (path_10) => ((value_16) => {\n const t_6 = t;\n const path_11 = path_10;\n const value_17 = value_16;\n const matchValue_5 = int(path_11)(value_17);\n if (matchValue_5.tag === 1) {\n return new FSharpResult$2(1, [matchValue_5.fields[0]]);\n }\n else {\n const enumValue_4 = matchValue_5.fields[0] | 0;\n return contains(enumValue_4, getEnumValues(t_6), {\n Equals: (x_4, y_4) => (x_4 === y_4),\n GetHashCode: numberHash,\n }) ? (new FSharpResult$2(0, [parseEnum(t_6, int32ToString(enumValue_4))])) : (new FSharpResult$2(1, [[path_11, new ErrorReason(1, [fullName(t_6), value_17, \"Unkown value provided for the enum\"])]]));\n }\n });\n case \"System.UInt32\":\n return (path_12) => ((value_19) => {\n const t_7 = t;\n const path_13 = path_12;\n const value_20 = value_19;\n const matchValue_6 = uint32(path_13)(value_20);\n if (matchValue_6.tag === 1) {\n return new FSharpResult$2(1, [matchValue_6.fields[0]]);\n }\n else {\n const enumValue_5 = matchValue_6.fields[0];\n return contains(enumValue_5, getEnumValues(t_7), {\n Equals: (x_5, y_5) => (x_5 === y_5),\n GetHashCode: numberHash,\n }) ? (new FSharpResult$2(0, [parseEnum(t_7, enumValue_5.toString())])) : (new FSharpResult$2(1, [[path_13, new ErrorReason(1, [fullName(t_7), value_20, \"Unkown value provided for the enum\"])]]));\n }\n });\n default: {\n const arg = fullName(t);\n const clo_1 = toFail(printf(\"Cannot generate auto decoder for %s.\\nThoth.Json.Net only support the folluwing enum types:\\n- sbyte\\n- byte\\n- int16\\n- uint16\\n- int\\n- uint32\\nIf you can\\'t use one of these types, please pass an extra decoder.\\n \"))(arg);\n return (arg_1) => {\n const clo_2 = clo_1(arg_1);\n return clo_2;\n };\n }\n }\n }\n else if (isGenericType(t)) {\n if (isTuple(t)) {\n const decoders = map_2((t_8) => autoDecoder(extra, caseStrategy, false, t_8), getTupleElements(t));\n return (path_14) => ((value_21) => (Array.isArray(value_21) ? Result_Map((xs) => makeTuple(toArray(xs), t), mixedArray(\"tuple elements\", decoders, path_14, value_21)) : (new FSharpResult$2(1, [[path_14, new ErrorReason(0, [\"an array\", value_21])]]))));\n }\n else {\n const fullname_1 = fullName(getGenericTypeDefinition(t));\n switch (fullname_1) {\n case \"Microsoft.FSharp.Core.FSharpOption`1[System.Object]\":\n return (decoder_13 = autoDecoder(extra, caseStrategy, true, item(0, getGenerics(t))), (path_15) => ((value_22) => option(uncurry2(decoder_13), path_15, value_22)));\n case \"Microsoft.FSharp.Collections.FSharpList`1[System.Object]\":\n return (decoder_14 = autoDecoder(extra, caseStrategy, false, item(0, getGenerics(t))), (path_16) => ((value_23) => list(uncurry2(decoder_14), path_16, value_23)));\n case \"Microsoft.FSharp.Collections.FSharpMap`2[System.Object,System.Object]\": {\n const keyDecoder = autoDecoder(extra, caseStrategy, false, item(0, getGenerics(t)));\n const valueDecoder = autoDecoder(extra, caseStrategy, false, item(1, getGenerics(t)));\n let d_18;\n const decoders_1 = ofArray([(path_17) => ((value_24) => autoObject2(uncurry2(keyDecoder), uncurry2(valueDecoder), path_17, value_24)), (decoder_15 = tuple2(uncurry2(keyDecoder), uncurry2(valueDecoder)), (path_18) => ((value_25) => list(uncurry2(decoder_15), path_18, value_25)))]);\n d_18 = ((path_19) => ((value_26) => oneOf(decoders_1, path_19, value_26)));\n return (path_20) => ((value_28) => map(toMap, uncurry2(d_18), path_20, value_28));\n }\n case \"Microsoft.FSharp.Collections.FSharpSet`1[System.Object]\": {\n const decoder_16 = autoDecoder(extra, caseStrategy, false, item(0, getGenerics(t)));\n return (path_21) => ((value_29) => {\n const matchValue_7 = array(uncurry2(decoder_16), path_21, value_29);\n return (matchValue_7.tag === 0) ? (new FSharpResult$2(0, [toSet(matchValue_7.fields[0])])) : (new FSharpResult$2(1, [matchValue_7.fields[0]]));\n });\n }\n default:\n return autoDecodeRecordsAndUnions(extra, caseStrategy, isOptional, t);\n }\n }\n }\n else {\n switch (fullname) {\n case \"System.Boolean\":\n return (path_22) => ((value_31) => bool(path_22, value_31));\n case \"Microsoft.FSharp.Core.Unit\":\n return (path_23) => ((value_32) => unit(path_23, value_32));\n case \"System.String\":\n return (path_24) => ((value_33) => string(path_24, value_33));\n case \"System.SByte\":\n return sbyte;\n case \"System.Byte\":\n return byte;\n case \"System.Int16\":\n return int16;\n case \"System.UInt16\":\n return uint16;\n case \"System.Int32\":\n return int;\n case \"System.UInt32\":\n return uint32;\n case \"System.Double\":\n return (path_25) => ((value_34) => float(path_25, value_34));\n case \"System.Single\":\n return (path_26) => ((value_35) => float32(path_26, value_35));\n case \"System.DateTime\":\n return (path_27) => ((value_36) => datetime(path_27, value_36));\n case \"System.DateTimeOffset\":\n return (path_28) => ((value_37) => datetimeOffset(path_28, value_37));\n case \"System.TimeSpan\":\n return (path_29) => ((value_38) => timespan(path_29, value_38));\n case \"System.Guid\":\n return (path_30) => ((value_39) => guid(path_30, value_39));\n case \"System.Object\":\n return (_arg_6) => ((v) => (new FSharpResult$2(0, [v])));\n default:\n return autoDecodeRecordsAndUnions(extra, caseStrategy, isOptional, t);\n }\n }\n }\n else {\n const decoderRef = matchValue;\n return (path) => ((value_1) => decoderRef.contents(path)(value_1));\n }\n}\n\nfunction makeExtra(extra) {\n if (extra != null) {\n return map_3((_arg, tupledArg) => (new FSharpRef(tupledArg[1])), extra.Coders);\n }\n else {\n return empty_1({\n Compare: comparePrimitives,\n });\n }\n}\n\nexport class Auto {\n constructor() {\n }\n}\n\nexport function Auto_$reflection() {\n return class_type(\"Thoth.Json.Decode.Auto\", undefined, Auto);\n}\n\nexport function Auto_generateBoxedDecoderCached_Z6670B51(t, caseStrategy, extra) {\n let y_1, y;\n const caseStrategy_1 = defaultArg(caseStrategy, new CaseStrategy(0, []));\n return Util_Cache$1__GetOrAdd_43981464(Util_CachedDecoders, (y_1 = ((y = fullName(t), toString_12(caseStrategy_1) + y)), defaultArg(map_4((e) => e.Hash, extra), \"\") + y_1), () => autoDecoder(makeExtra(extra), caseStrategy_1, false, t));\n}\n\nexport function Auto_generateBoxedDecoder_Z6670B51(t, caseStrategy, extra) {\n const caseStrategy_1 = defaultArg(caseStrategy, new CaseStrategy(0, []));\n return autoDecoder(makeExtra(extra), caseStrategy_1, false, t);\n}\n\n","import { toString as toString_1 } from \"../fable-library-js.4.17.0/Decimal.js\";\nimport { comparePrimitives, Lazy, uncurry2, disposeSafe, getEnumerator, defaultOf } from \"../fable-library-js.4.17.0/Util.js\";\nimport { empty, map as map_3, tryFind, add, toList } from \"../fable-library-js.4.17.0/Map.js\";\nimport { toString as toString_2 } from \"../fable-library-js.4.17.0/BigInt.js\";\nimport { toString as toString_3 } from \"../fable-library-js.4.17.0/Date.js\";\nimport { toString as toString_4 } from \"../fable-library-js.4.17.0/TimeSpan.js\";\nimport { defaultArg, map, defaultArgWith, some } from \"../fable-library-js.4.17.0/Option.js\";\nimport { toString as toString_5, FSharpRef } from \"../fable-library-js.4.17.0/Types.js\";\nimport { class_type, getGenerics, getGenericTypeDefinition, getTupleFields, getTupleElements, isTuple, isGenericType, getEnumUnderlyingType, isEnum, getElementType, isArray, getUnionCaseFields, getUnionFields, isUnion, getRecordElements, getRecordField, name, isRecord, fullName } from \"../fable-library-js.4.17.0/Reflection.js\";\nimport { item, setItem, fill, map as map_1 } from \"../fable-library-js.4.17.0/Array.js\";\nimport { Util_CachedEncoders, Util_Cache$1__GetOrAdd_43981464, CaseStrategy, Util_Casing_convert } from \"./Types.fs.js\";\nimport { mapIndexed, map as map_2, fold } from \"../fable-library-js.4.17.0/Seq.js\";\nimport { toFail, printf, toText } from \"../fable-library-js.4.17.0/String.js\";\n\n/**\n * **Description**\n * Encode a GUID\n * \n * **Parameters**\n * * `value` - parameter of type `System.Guid`\n * \n * **Output Type**\n * * `Value`\n * \n * **Exceptions**\n */\nexport function guid(value) {\n return value;\n}\n\n/**\n * **Description**\n * Encode a Decimal.\n * \n * **Parameters**\n * * `value` - parameter of type `decimal`\n * \n * **Output Type**\n * * `Value`\n * \n * **Exceptions**\n */\nexport function decimal(value) {\n return toString_1(value);\n}\n\nexport const nil = defaultOf();\n\n/**\n * **Description**\n * Encode an object\n * \n * **Parameters**\n * * `values` - parameter of type `(string * Value) list`\n * \n * **Output Type**\n * * `Value`\n * \n * **Exceptions**\n */\nexport function object(values) {\n const o = {};\n const enumerator = getEnumerator(values);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const forLoopVar = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n o[forLoopVar[0]] = forLoopVar[1];\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return o;\n}\n\n/**\n * **Description**\n * Encode a list\n * **Parameters**\n * * `values` - parameter of type `Value list`\n * \n * **Output Type**\n * * `Value`\n * \n * **Exceptions**\n */\nexport function list(values) {\n return Array.from(values);\n}\n\nexport function seq(values) {\n return Array.from(values);\n}\n\n/**\n * **Description**\n * Encode a dictionary\n * **Parameters**\n * * `values` - parameter of type `Map`\n * \n * **Output Type**\n * * `Value`\n * \n * **Exceptions**\n */\nexport function dict(values) {\n return object(toList(values));\n}\n\nexport function bigint(value) {\n return toString_2(value);\n}\n\nexport function datetimeOffset(value) {\n return toString_3(value, \"O\", {});\n}\n\n/**\n * **Description**\n * Encode a timespan\n * **Parameters**\n * * `value` - parameter of type `System.TimeSpan`\n * \n * **Output Type**\n * * `Value`\n * \n * **Exceptions**\n */\nexport function timespan(value) {\n return toString_4(value);\n}\n\nexport function sbyte(value) {\n return String(value);\n}\n\nexport function byte(value) {\n return String(value);\n}\n\nexport function int16(value) {\n return String(value);\n}\n\nexport function uint16(value) {\n return String(value);\n}\n\nexport function int64(value) {\n return String(value);\n}\n\nexport function uint64(value) {\n return String(value);\n}\n\nexport function unit() {\n return defaultOf();\n}\n\nexport function tuple2(enc1, enc2, v1, v2) {\n return [enc1(v1), enc2(v2)];\n}\n\nexport function tuple3(enc1, enc2, enc3, v1, v2, v3) {\n return [enc1(v1), enc2(v2), enc3(v3)];\n}\n\nexport function tuple4(enc1, enc2, enc3, enc4, v1, v2, v3, v4) {\n return [enc1(v1), enc2(v2), enc3(v3), enc4(v4)];\n}\n\nexport function tuple5(enc1, enc2, enc3, enc4, enc5, v1, v2, v3, v4, v5) {\n return [enc1(v1), enc2(v2), enc3(v3), enc4(v4), enc5(v5)];\n}\n\nexport function tuple6(enc1, enc2, enc3, enc4, enc5, enc6, v1, v2, v3, v4, v5, v6) {\n return [enc1(v1), enc2(v2), enc3(v3), enc4(v4), enc5(v5), enc6(v6)];\n}\n\nexport function tuple7(enc1, enc2, enc3, enc4, enc5, enc6, enc7, v1, v2, v3, v4, v5, v6, v7) {\n return [enc1(v1), enc2(v2), enc3(v3), enc4(v4), enc5(v5), enc6(v6), enc7(v7)];\n}\n\nexport function tuple8(enc1, enc2, enc3, enc4, enc5, enc6, enc7, enc8, v1, v2, v3, v4, v5, v6, v7, v8) {\n return [enc1(v1), enc2(v2), enc3(v3), enc4(v4), enc5(v5), enc6(v6), enc7(v7), enc8(v8)];\n}\n\nexport function Enum_byte(value) {\n return byte(value);\n}\n\nexport function Enum_sbyte(value) {\n return sbyte(value);\n}\n\nexport function Enum_int16(value) {\n return int16(value);\n}\n\nexport function Enum_uint16(value) {\n return uint16(value);\n}\n\nexport function Enum_int(value) {\n return value;\n}\n\nexport function Enum_uint32(value) {\n return value;\n}\n\n/**\n * **Description**\n * \n * The DateTime is always encoded using UTC representation\n * \n * **Parameters**\n * * `value` - parameter of type `System.DateTime`\n * \n * **Output Type**\n * * `Value`\n * \n * **Exceptions**\n */\nexport function datetime(value) {\n return toString_3(value, \"O\", {});\n}\n\n/**\n * **Description**\n * Convert a `Value` into a prettified string.\n * **Parameters**\n * * `space` - parameter of type `int` - Amount of indentation\n * * `value` - parameter of type `obj` - Value to convert\n * \n * **Output Type**\n * * `string`\n * \n * **Exceptions**\n */\nexport function toString(space, value) {\n return JSON.stringify(value, uncurry2(defaultOf()), some(space));\n}\n\n/**\n * **Description**\n * Encode an option\n * **Parameters**\n * * `encoder` - parameter of type `'a -> Value`\n * \n * **Output Type**\n * * `'a option -> Value`\n * \n * **Exceptions**\n */\nexport function option(encoder) {\n return (arg) => defaultArgWith(map(encoder, arg), () => nil);\n}\n\nfunction autoEncodeRecordsAndUnions(extra, caseStrategy, skipNullField, t) {\n let arg;\n const encoderRef = new FSharpRef(defaultOf());\n const extra_1 = add(fullName(t), encoderRef, extra);\n let encoder;\n if (isRecord(t, true)) {\n const setters = map_1((fi) => {\n const targetKey = Util_Casing_convert(caseStrategy, name(fi));\n const encode_1 = autoEncoder(extra_1, caseStrategy, skipNullField, fi[1]);\n return (source) => ((target) => {\n const value = getRecordField(source, fi);\n if (!skipNullField ? true : (skipNullField && !(value == null))) {\n target[targetKey]=encode_1(value);\n }\n return target;\n });\n }, getRecordElements(t, true));\n encoder = ((source_1) => fold((target_1, set$) => set$(source_1)(target_1), {}, setters));\n }\n else if (isUnion(t, true)) {\n encoder = ((value_1) => {\n const patternInput = getUnionFields(value_1, t, true);\n const info = patternInput[0];\n const fields = patternInput[1];\n const matchValue = fields.length | 0;\n if (matchValue === 0) {\n return name(info);\n }\n else {\n const len = matchValue | 0;\n const fieldTypes = getUnionCaseFields(info);\n const target_2 = fill(new Array(len + 1), 0, len + 1, null);\n setItem(target_2, 0, name(info));\n for (let i = 1; i <= len; i++) {\n const encode_2 = autoEncoder(extra_1, caseStrategy, skipNullField, item(i - 1, fieldTypes)[1]);\n setItem(target_2, i, encode_2(item(i - 1, fields)));\n }\n return target_2;\n }\n });\n }\n else {\n throw new Error((arg = fullName(t), toText(printf(\"Cannot generate auto encoder for %s. Please pass an extra encoder.\"))(arg)));\n }\n encoderRef.contents = encoder;\n return encoder;\n}\n\nfunction autoEncoder(extra, caseStrategy, skipNullField, t) {\n const fullname = fullName(t);\n const matchValue = tryFind(fullname, extra);\n if (matchValue == null) {\n if (isArray(t)) {\n const encoder = autoEncoder(extra, caseStrategy, skipNullField, getElementType(t));\n return (value) => seq(map_2(encoder, value));\n }\n else if (isEnum(t)) {\n const enumType = fullName(getEnumUnderlyingType(t));\n switch (enumType) {\n case \"System.SByte\":\n return sbyte;\n case \"System.Byte\":\n return byte;\n case \"System.Int16\":\n return int16;\n case \"System.UInt16\":\n return uint16;\n case \"System.Int32\":\n return (value_5) => value_5;\n case \"System.UInt32\":\n return (value_7) => value_7;\n default: {\n const arg = fullName(t);\n const clo_1 = toFail(printf(\"Cannot generate auto encoder for %s.\\nThoth.Json.Net only support the folluwing enum types:\\n- sbyte\\n- byte\\n- int16\\n- uint16\\n- int\\n- uint32\\nIf you can\\'t use one of these types, please pass an extra encoder.\\n \"))(arg);\n return clo_1;\n }\n }\n }\n else if (isGenericType(t)) {\n if (isTuple(t)) {\n const encoders = map_1((t_2) => autoEncoder(extra, caseStrategy, skipNullField, t_2), getTupleElements(t));\n return (value_9) => seq(mapIndexed((i, x) => item(i, encoders)(x), getTupleFields(value_9)));\n }\n else {\n const fullname_1 = fullName(getGenericTypeDefinition(t));\n if (fullname_1 === \"Microsoft.FSharp.Core.FSharpOption`1[System.Object]\") {\n const encoder_2 = new Lazy(() => option(autoEncoder(extra, caseStrategy, skipNullField, item(0, getGenerics(t)))));\n return (value_10) => {\n if (value_10 == null) {\n return nil;\n }\n else {\n return encoder_2.Value(value_10);\n }\n };\n }\n else if ((fullname_1 === \"Microsoft.FSharp.Collections.FSharpList`1[System.Object]\") ? true : (fullname_1 === \"Microsoft.FSharp.Collections.FSharpSet`1[System.Object]\")) {\n const encoder_3 = autoEncoder(extra, caseStrategy, skipNullField, item(0, getGenerics(t)));\n return (value_11) => seq(map_2(encoder_3, value_11));\n }\n else if (fullname_1 === \"Microsoft.FSharp.Collections.FSharpMap`2[System.Object,System.Object]\") {\n const keyType = item(0, getGenerics(t));\n const valueEncoder = autoEncoder(extra, caseStrategy, skipNullField, item(1, getGenerics(t)));\n if ((fullName(keyType) === \"System.String\") ? true : (fullName(keyType) === \"System.Guid\")) {\n return (value_12) => fold((target, _arg) => {\n const activePatternResult = _arg;\n target[activePatternResult[0]]=valueEncoder(activePatternResult[1]);\n return target;\n }, {}, value_12);\n }\n else {\n let keyEncoder;\n const clo_2 = autoEncoder(extra, caseStrategy, skipNullField, keyType);\n keyEncoder = (clo_2);\n return (value_13) => seq(map_2((_arg_1) => {\n const activePatternResult_1 = _arg_1;\n return [keyEncoder(activePatternResult_1[0]), valueEncoder(activePatternResult_1[1])];\n }, value_13));\n }\n }\n else {\n return autoEncodeRecordsAndUnions(extra, caseStrategy, skipNullField, t);\n }\n }\n }\n else {\n switch (fullname) {\n case \"System.Boolean\":\n return (value_14) => value_14;\n case \"Microsoft.FSharp.Core.Unit\":\n return unit;\n case \"System.String\":\n return (value_16) => value_16;\n case \"System.SByte\":\n return sbyte;\n case \"System.Byte\":\n return byte;\n case \"System.Int16\":\n return int16;\n case \"System.UInt16\":\n return uint16;\n case \"System.Int32\":\n return (value_22) => value_22;\n case \"System.UInt32\":\n return (value_24) => value_24;\n case \"System.Double\":\n return (value_26) => value_26;\n case \"System.Single\":\n return (value_28) => value_28;\n case \"System.DateTime\":\n return datetime;\n case \"System.DateTimeOffset\":\n return datetimeOffset;\n case \"System.TimeSpan\":\n return timespan;\n case \"System.Guid\":\n return guid;\n case \"System.Object\":\n return (x_1) => x_1;\n default:\n return autoEncodeRecordsAndUnions(extra, caseStrategy, skipNullField, t);\n }\n }\n }\n else {\n const encoderRef = matchValue;\n return (v) => encoderRef.contents(v);\n }\n}\n\nfunction makeExtra(extra) {\n if (extra != null) {\n return map_3((_arg, tupledArg) => (new FSharpRef(tupledArg[0])), extra.Coders);\n }\n else {\n return empty({\n Compare: comparePrimitives,\n });\n }\n}\n\nexport class Auto {\n constructor() {\n }\n}\n\nexport function Auto_$reflection() {\n return class_type(\"Thoth.Json.Encode.Auto\", undefined, Auto);\n}\n\nexport function Auto_generateBoxedEncoderCached_437914C6(t, caseStrategy, extra, skipNullField) {\n let y_1, y;\n const caseStrategy_1 = defaultArg(caseStrategy, new CaseStrategy(0, []));\n const skipNullField_1 = defaultArg(skipNullField, true);\n return Util_Cache$1__GetOrAdd_43981464(Util_CachedEncoders, (y_1 = ((y = fullName(t), toString_5(caseStrategy_1) + y)), defaultArg(map((e) => e.Hash, extra), \"\") + y_1), () => autoEncoder(makeExtra(extra), caseStrategy_1, skipNullField_1, t));\n}\n\nexport function Auto_generateBoxedEncoder_437914C6(t, caseStrategy, extra, skipNullField) {\n const caseStrategy_1 = defaultArg(caseStrategy, new CaseStrategy(0, []));\n const skipNullField_1 = defaultArg(skipNullField, true);\n return autoEncoder(makeExtra(extra), caseStrategy_1, skipNullField_1, t);\n}\n\n/**\n * **Description**\n * Convert a `Value` into a prettified string.\n * **Parameters**\n * * `space` - parameter of type `int` - Amount of indentation\n * * `value` - parameter of type `obj` - Value to convert\n * \n * **Output Type**\n * * `string`\n * \n * **Exceptions**\n */\nexport function encode(space, value) {\n return toString(space, value);\n}\n\n","import { Record } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { anonRecord_type, string_type, option_type, float64_type, int32_type, record_type, bool_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { uncurry2 } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Auto_generateBoxedDecoder_Z6670B51 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { Auto_generateBoxedEncoder_437914C6, toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\n\nexport const disclaimerId = \"disclaimer\";\n\nexport class DisclaimerStorage extends Record {\n constructor(Accepted) {\n super();\n this.Accepted = Accepted;\n }\n}\n\nexport function DisclaimerStorage_$reflection() {\n return record_type(\"LocalStorage.DisclaimerStorage\", [], DisclaimerStorage, () => [[\"Accepted\", bool_type]]);\n}\n\nexport function hasAcceptedDisclaimer() {\n try {\n const x = localStorage.getItem(disclaimerId);\n const matchValue = fromString(uncurry2(Auto_generateBoxedDecoder_Z6670B51(DisclaimerStorage_$reflection(), undefined, undefined)), x);\n return (matchValue.tag === 1) ? false : matchValue.fields[0].Accepted;\n }\n catch (matchValue_1) {\n return false;\n }\n}\n\nexport function acceptDisclaimer() {\n try {\n let x;\n const value = new DisclaimerStorage(true);\n x = toString(4, Auto_generateBoxedEncoder_437914C6(DisclaimerStorage_$reflection(), undefined, undefined, undefined)(value));\n localStorage.setItem(disclaimerId, x);\n }\n catch (matchValue) {\n }\n}\n\nexport class ReviewDraft extends Record {\n constructor(Rating, TargetPrice, PeriodType, PeriodSpan, PeriodDate, PeriodAllTime, Comment$, CurrentStep, LastUpdated) {\n super();\n this.Rating = (Rating | 0);\n this.TargetPrice = TargetPrice;\n this.PeriodType = (PeriodType | 0);\n this.PeriodSpan = PeriodSpan;\n this.PeriodDate = PeriodDate;\n this.PeriodAllTime = PeriodAllTime;\n this.Comment = Comment$;\n this.CurrentStep = (CurrentStep | 0);\n this.LastUpdated = LastUpdated;\n }\n}\n\nexport function ReviewDraft_$reflection() {\n return record_type(\"LocalStorage.ReviewDraft\", [], ReviewDraft, () => [[\"Rating\", int32_type], [\"TargetPrice\", option_type(float64_type)], [\"PeriodType\", int32_type], [\"PeriodSpan\", option_type(anonRecord_type([\"Num\", int32_type], [\"Value\", string_type]))], [\"PeriodDate\", option_type(string_type)], [\"PeriodAllTime\", bool_type], [\"Comment\", string_type], [\"CurrentStep\", int32_type], [\"LastUpdated\", string_type]]);\n}\n\nfunction getDraftId(assetId) {\n return `draft-${assetId}`;\n}\n\nexport function tryGetReviewDraft(assetId) {\n try {\n const draftId = getDraftId(assetId);\n return fromString(uncurry2(Auto_generateBoxedDecoder_Z6670B51(ReviewDraft_$reflection(), undefined, undefined)), localStorage.getItem(draftId));\n }\n catch (matchValue) {\n return new FSharpResult$2(1, [\"\"]);\n }\n}\n\nexport function storeDraft(assetId, x) {\n try {\n const draftId = getDraftId(assetId);\n const x_1 = toString(2, Auto_generateBoxedEncoder_437914C6(ReviewDraft_$reflection(), undefined, undefined, undefined)(x));\n localStorage.setItem(draftId, x_1);\n }\n catch (matchValue) {\n }\n}\n\nexport function deleteDraft(assetId) {\n try {\n const key = getDraftId(assetId);\n localStorage.removeItem(key);\n }\n catch (matchValue) {\n }\n}\n\nexport class FeedPreferences extends Record {\n constructor(IncludeShort) {\n super();\n this.IncludeShort = IncludeShort;\n }\n}\n\nexport function FeedPreferences_$reflection() {\n return record_type(\"LocalStorage.FeedPreferences\", [], FeedPreferences, () => [[\"IncludeShort\", bool_type]]);\n}\n\nexport function tryGetFeedPreferences() {\n try {\n return fromString(uncurry2(Auto_generateBoxedDecoder_Z6670B51(FeedPreferences_$reflection(), undefined, undefined)), localStorage.getItem(\"aksjeio-feed-prefs\"));\n }\n catch (matchValue) {\n return new FSharpResult$2(1, [\"\"]);\n }\n}\n\nexport function storeFeedPreference(x) {\n try {\n const x_1 = toString(2, Auto_generateBoxedEncoder_437914C6(FeedPreferences_$reflection(), undefined, undefined, undefined)(x));\n localStorage.setItem(\"aksjeio-feed-prefs\", x_1);\n }\n catch (matchValue) {\n }\n}\n\nexport function deleteFeedPreference() {\n try {\n localStorage.removeItem(\"aksjeio-feed-prefs\");\n }\n catch (matchValue) {\n }\n}\n\n","import { createElement } from \"react\";\nimport React from \"react\";\nimport { useReact_useEffectOnce_3A5B6456, useFeliz_React__React_useState_Static_1505 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { acceptDisclaimer, hasAcceptedDisclaimer } from \"./LocalStorage.js\";\nimport { createObj } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { empty, singleton, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { ofArray, singleton as singleton_1 } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\n\nexport function Disclaimer() {\n let elems_2;\n const patternInput = useFeliz_React__React_useState_Static_1505(true);\n const setAccepted = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n setAccepted(hasAcceptedDisclaimer());\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_2 = toList(delay(() => {\n let elems_1, elems, value_10, children;\n return !patternInput[0] ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: \"var(--bg-normal)\",\n color: \"#FFFFFF\",\n fontSize: 0.7 + \"rem\",\n padding: 5,\n display: \"flex\",\n alignItems: \"center\",\n }], (elems_1 = [createElement(\"span\", createObj(singleton_1((elems = [(value_10 = \"Ansvarsfraskrivelse: Ved å bruke aksje.io erkjenner du at du har gjort deg kjent med og forstår vår \", value_10), createElement(\"a\", {\n href: \"/financial-disclaimer\",\n target: \"_blank\",\n style: {\n color: \"var(--text-main)\",\n textDecoration: \"underline\",\n },\n children: \"finansielle ansvarsfraskrivelse\",\n }), \" og \", createElement(\"a\", {\n href: \"/terms-of-use\",\n target: \"_blank\",\n style: {\n color: \"var(--text-main)\",\n textDecoration: \"underline\",\n },\n children: \"bruksvilkår\",\n }), \". Du risikerer å tape alt dersom du baserer dine investeringer på innhold fra aksje.io.\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])))), (children = singleton_1(createElement(\"button\", {\n className: \"pill-button-small\",\n children: \"OK\",\n onClick: (_arg_1) => {\n setAccepted(true);\n acceptDisclaimer();\n },\n })), createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))) : empty();\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n}\n\n","import { Record } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { int64_type, array_type, float64_type, anonRecord_type, int32_type, option_type, record_type, bool_type, string_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\n\nexport class LoginRequest extends Record {\n constructor(Username, Password, Persist) {\n super();\n this.Username = Username;\n this.Password = Password;\n this.Persist = Persist;\n }\n}\n\nexport function LoginRequest_$reflection() {\n return record_type(\"ApiDataTypes.LoginRequest\", [], LoginRequest, () => [[\"Username\", string_type], [\"Password\", string_type], [\"Persist\", bool_type]]);\n}\n\nexport class RegisterRequest extends Record {\n constructor(Username, Password, Email) {\n super();\n this.Username = Username;\n this.Password = Password;\n this.Email = Email;\n }\n}\n\nexport function RegisterRequest_$reflection() {\n return record_type(\"ApiDataTypes.RegisterRequest\", [], RegisterRequest, () => [[\"Username\", string_type], [\"Password\", string_type], [\"Email\", string_type]]);\n}\n\nexport class LoginResponse extends Record {\n constructor(Result, Message, BanUntil) {\n super();\n this.Result = Result;\n this.Message = Message;\n this.BanUntil = BanUntil;\n }\n}\n\nexport function LoginResponse_$reflection() {\n return record_type(\"ApiDataTypes.LoginResponse\", [], LoginResponse, () => [[\"Result\", string_type], [\"Message\", string_type], [\"BanUntil\", option_type(string_type)]]);\n}\n\nexport class OAuthAuthResponse extends Record {\n constructor(Result, Email, Token) {\n super();\n this.Result = Result;\n this.Email = Email;\n this.Token = Token;\n }\n}\n\nexport function OAuthAuthResponse_$reflection() {\n return record_type(\"ApiDataTypes.OAuthAuthResponse\", [], OAuthAuthResponse, () => [[\"Result\", LoginResponse_$reflection()], [\"Email\", string_type], [\"Token\", string_type]]);\n}\n\nexport class OAuthRegisterRequest extends Record {\n constructor(Token, Username) {\n super();\n this.Token = Token;\n this.Username = Username;\n }\n}\n\nexport function OAuthRegisterRequest_$reflection() {\n return record_type(\"ApiDataTypes.OAuthRegisterRequest\", [], OAuthRegisterRequest, () => [[\"Token\", string_type], [\"Username\", string_type]]);\n}\n\nexport class AppleAuthRequest extends Record {\n constructor(Code, IdToken, Email) {\n super();\n this.Code = Code;\n this.IdToken = IdToken;\n this.Email = Email;\n }\n}\n\nexport function AppleAuthRequest_$reflection() {\n return record_type(\"ApiDataTypes.AppleAuthRequest\", [], AppleAuthRequest, () => [[\"Code\", string_type], [\"IdToken\", string_type], [\"Email\", option_type(string_type)]]);\n}\n\nexport class Subscription extends Record {\n constructor(Expiry, AutoRenews, ProductId) {\n super();\n this.Expiry = Expiry;\n this.AutoRenews = AutoRenews;\n this.ProductId = ProductId;\n }\n}\n\nexport function Subscription_$reflection() {\n return record_type(\"ApiDataTypes.Subscription\", [], Subscription, () => [[\"Expiry\", string_type], [\"AutoRenews\", bool_type], [\"ProductId\", string_type]]);\n}\n\nexport class GenericResponse extends Record {\n constructor(Result, Message) {\n super();\n this.Result = Result;\n this.Message = Message;\n }\n}\n\nexport function GenericResponse_$reflection() {\n return record_type(\"ApiDataTypes.GenericResponse\", [], GenericResponse, () => [[\"Result\", string_type], [\"Message\", string_type]]);\n}\n\nexport class TextInput extends Record {\n constructor(Input) {\n super();\n this.Input = Input;\n }\n}\n\nexport function TextInput_$reflection() {\n return record_type(\"ApiDataTypes.TextInput\", [], TextInput, () => [[\"Input\", string_type]]);\n}\n\nexport class SearchEntry extends Record {\n constructor(Name, Extra, Type, TypeId, Link, Asset, Group) {\n super();\n this.Name = Name;\n this.Extra = Extra;\n this.Type = Type;\n this.TypeId = (TypeId | 0);\n this.Link = Link;\n this.Asset = Asset;\n this.Group = Group;\n }\n}\n\nexport function SearchEntry_$reflection() {\n return record_type(\"ApiDataTypes.SearchEntry\", [], SearchEntry, () => [[\"Name\", string_type], [\"Extra\", string_type], [\"Type\", string_type], [\"TypeId\", int32_type], [\"Link\", string_type], [\"Asset\", option_type(anonRecord_type([\"Market\", string_type], [\"Ticker\", string_type]))], [\"Group\", option_type(anonRecord_type([\"Id\", int32_type]))]]);\n}\n\nexport class Market extends Record {\n constructor(Id, Ticker, Name, Country, NumAssets) {\n super();\n this.Id = (Id | 0);\n this.Ticker = Ticker;\n this.Name = Name;\n this.Country = Country;\n this.NumAssets = (NumAssets | 0);\n }\n}\n\nexport function Market_$reflection() {\n return record_type(\"ApiDataTypes.Market\", [], Market, () => [[\"Id\", int32_type], [\"Ticker\", string_type], [\"Name\", string_type], [\"Country\", string_type], [\"NumAssets\", int32_type]]);\n}\n\nexport class Asset extends Record {\n constructor(Id, ISIN, Ticker, Name, Type, Market, Currency, Delisted) {\n super();\n this.Id = (Id | 0);\n this.ISIN = ISIN;\n this.Ticker = Ticker;\n this.Name = Name;\n this.Type = (Type | 0);\n this.Market = Market;\n this.Currency = Currency;\n this.Delisted = Delisted;\n }\n}\n\nexport function Asset_$reflection() {\n return record_type(\"ApiDataTypes.Asset\", [], Asset, () => [[\"Id\", int32_type], [\"ISIN\", string_type], [\"Ticker\", string_type], [\"Name\", string_type], [\"Type\", int32_type], [\"Market\", Market_$reflection()], [\"Currency\", string_type], [\"Delisted\", option_type(string_type)]]);\n}\n\nexport class AssetReviewForm extends Record {\n constructor(AssetId, Rating, PeriodEnd, Comment$, TargetPrice) {\n super();\n this.AssetId = (AssetId | 0);\n this.Rating = (Rating | 0);\n this.PeriodEnd = PeriodEnd;\n this.Comment = Comment$;\n this.TargetPrice = TargetPrice;\n }\n}\n\nexport function AssetReviewForm_$reflection() {\n return record_type(\"ApiDataTypes.AssetReviewForm\", [], AssetReviewForm, () => [[\"AssetId\", int32_type], [\"Rating\", int32_type], [\"PeriodEnd\", string_type], [\"Comment\", string_type], [\"TargetPrice\", option_type(float64_type)]]);\n}\n\nexport class AssetSummaryRequest extends Record {\n constructor(PeriodStart, PeriodEnd, SummaryMode) {\n super();\n this.PeriodStart = PeriodStart;\n this.PeriodEnd = PeriodEnd;\n this.SummaryMode = (SummaryMode | 0);\n }\n}\n\nexport function AssetSummaryRequest_$reflection() {\n return record_type(\"ApiDataTypes.AssetSummaryRequest\", [], AssetSummaryRequest, () => [[\"PeriodStart\", string_type], [\"PeriodEnd\", string_type], [\"SummaryMode\", int32_type]]);\n}\n\nexport class AssetSummary extends Record {\n constructor(Rating, NumBuys, NumWeakBuys, NumHolds, NumWeakSells, NumSells, NumRatings, PeriodStart, PeriodEnd, AvgPrice, NumPriced) {\n super();\n this.Rating = Rating;\n this.NumBuys = (NumBuys | 0);\n this.NumWeakBuys = (NumWeakBuys | 0);\n this.NumHolds = (NumHolds | 0);\n this.NumWeakSells = (NumWeakSells | 0);\n this.NumSells = (NumSells | 0);\n this.NumRatings = (NumRatings | 0);\n this.PeriodStart = PeriodStart;\n this.PeriodEnd = PeriodEnd;\n this.AvgPrice = AvgPrice;\n this.NumPriced = (NumPriced | 0);\n }\n}\n\nexport function AssetSummary_$reflection() {\n return record_type(\"ApiDataTypes.AssetSummary\", [], AssetSummary, () => [[\"Rating\", option_type(float64_type)], [\"NumBuys\", int32_type], [\"NumWeakBuys\", int32_type], [\"NumHolds\", int32_type], [\"NumWeakSells\", int32_type], [\"NumSells\", int32_type], [\"NumRatings\", int32_type], [\"PeriodStart\", option_type(string_type)], [\"PeriodEnd\", option_type(string_type)], [\"AvgPrice\", option_type(float64_type)], [\"NumPriced\", int32_type]]);\n}\n\nexport class User extends Record {\n constructor(Id, Username, Official) {\n super();\n this.Id = (Id | 0);\n this.Username = Username;\n this.Official = Official;\n }\n}\n\nexport function User_$reflection() {\n return record_type(\"ApiDataTypes.User\", [], User, () => [[\"Id\", int32_type], [\"Username\", string_type], [\"Official\", bool_type]]);\n}\n\nexport class Reply extends Record {\n constructor(Id, ParentId, Content, Votes, NumVotes, User, IsMine, Published, VoteState, Removed) {\n super();\n this.Id = (Id | 0);\n this.ParentId = (ParentId | 0);\n this.Content = Content;\n this.Votes = (Votes | 0);\n this.NumVotes = (NumVotes | 0);\n this.User = User;\n this.IsMine = IsMine;\n this.Published = Published;\n this.VoteState = (VoteState | 0);\n this.Removed = Removed;\n }\n}\n\nexport function Reply_$reflection() {\n return record_type(\"ApiDataTypes.Reply\", [], Reply, () => [[\"Id\", int32_type], [\"ParentId\", int32_type], [\"Content\", string_type], [\"Votes\", int32_type], [\"NumVotes\", int32_type], [\"User\", User_$reflection()], [\"IsMine\", bool_type], [\"Published\", string_type], [\"VoteState\", int32_type], [\"Removed\", bool_type]]);\n}\n\nexport class ReplyForm extends Record {\n constructor(ParentId, Reply) {\n super();\n this.ParentId = (ParentId | 0);\n this.Reply = Reply;\n }\n}\n\nexport function ReplyForm_$reflection() {\n return record_type(\"ApiDataTypes.ReplyForm\", [], ReplyForm, () => [[\"ParentId\", int32_type], [\"Reply\", string_type]]);\n}\n\nexport class RepliesResponse extends Record {\n constructor(ParentId, Replies) {\n super();\n this.ParentId = (ParentId | 0);\n this.Replies = Replies;\n }\n}\n\nexport function RepliesResponse_$reflection() {\n return record_type(\"ApiDataTypes.RepliesResponse\", [], RepliesResponse, () => [[\"ParentId\", int32_type], [\"Replies\", array_type(Reply_$reflection())]]);\n}\n\nexport class LinkPreview extends Record {\n constructor(Title, Desc, Url, ImageUrl) {\n super();\n this.Title = Title;\n this.Desc = Desc;\n this.Url = Url;\n this.ImageUrl = ImageUrl;\n }\n}\n\nexport function LinkPreview_$reflection() {\n return record_type(\"ApiDataTypes.LinkPreview\", [], LinkPreview, () => [[\"Title\", string_type], [\"Desc\", string_type], [\"Url\", string_type], [\"ImageUrl\", option_type(string_type)]]);\n}\n\nexport class QuoteEntry extends Record {\n constructor(Close, Date$) {\n super();\n this.Close = Close;\n this.Date = Date$;\n }\n}\n\nexport function QuoteEntry_$reflection() {\n return record_type(\"ApiDataTypes.QuoteEntry\", [], QuoteEntry, () => [[\"Close\", float64_type], [\"Date\", string_type]]);\n}\n\nexport class ShareSplit extends Record {\n constructor(Date$, FactorBase, FactorChange) {\n super();\n this.Date = Date$;\n this.FactorBase = (FactorBase | 0);\n this.FactorChange = (FactorChange | 0);\n }\n}\n\nexport function ShareSplit_$reflection() {\n return record_type(\"ApiDataTypes.ShareSplit\", [], ShareSplit, () => [[\"Date\", string_type], [\"FactorBase\", int32_type], [\"FactorChange\", int32_type]]);\n}\n\nexport class PreviousReviewInfo extends Record {\n constructor(Id, Rating, TargetPrice, Published) {\n super();\n this.Id = (Id | 0);\n this.Rating = (Rating | 0);\n this.TargetPrice = TargetPrice;\n this.Published = Published;\n }\n}\n\nexport function PreviousReviewInfo_$reflection() {\n return record_type(\"ApiDataTypes.PreviousReviewInfo\", [], PreviousReviewInfo, () => [[\"Id\", int32_type], [\"Rating\", int32_type], [\"TargetPrice\", option_type(float64_type)], [\"Published\", string_type]]);\n}\n\nexport class PostReviewInfo extends Record {\n constructor(Currency, TargetPrice, Until, Expired, LastClose, ClosestClose, Previous) {\n super();\n this.Currency = Currency;\n this.TargetPrice = TargetPrice;\n this.Until = Until;\n this.Expired = Expired;\n this.LastClose = LastClose;\n this.ClosestClose = ClosestClose;\n this.Previous = Previous;\n }\n}\n\nexport function PostReviewInfo_$reflection() {\n return record_type(\"ApiDataTypes.PostReviewInfo\", [], PostReviewInfo, () => [[\"Currency\", string_type], [\"TargetPrice\", option_type(float64_type)], [\"Until\", string_type], [\"Expired\", bool_type], [\"LastClose\", option_type(QuoteEntry_$reflection())], [\"ClosestClose\", option_type(QuoteEntry_$reflection())], [\"Previous\", option_type(PreviousReviewInfo_$reflection())]]);\n}\n\nexport class ShortEventPosition extends Record {\n constructor(InstitutionId, Institution, PrevNumShares, NewNumShares) {\n super();\n this.InstitutionId = (InstitutionId | 0);\n this.Institution = Institution;\n this.PrevNumShares = (PrevNumShares | 0);\n this.NewNumShares = (NewNumShares | 0);\n }\n}\n\nexport function ShortEventPosition_$reflection() {\n return record_type(\"ApiDataTypes.ShortEventPosition\", [], ShortEventPosition, () => [[\"InstitutionId\", int32_type], [\"Institution\", string_type], [\"PrevNumShares\", int32_type], [\"NewNumShares\", int32_type]]);\n}\n\nexport class PostShortInfo extends Record {\n constructor(NewPercentage, PrevPercentage, PrevNumShares, NewNumShares, PositionDate, Positions) {\n super();\n this.NewPercentage = (NewPercentage | 0);\n this.PrevPercentage = PrevPercentage;\n this.PrevNumShares = PrevNumShares;\n this.NewNumShares = (NewNumShares | 0);\n this.PositionDate = PositionDate;\n this.Positions = Positions;\n }\n}\n\nexport function PostShortInfo_$reflection() {\n return record_type(\"ApiDataTypes.PostShortInfo\", [], PostShortInfo, () => [[\"NewPercentage\", int32_type], [\"PrevPercentage\", option_type(int32_type)], [\"PrevNumShares\", option_type(int32_type)], [\"NewNumShares\", int32_type], [\"PositionDate\", string_type], [\"Positions\", array_type(ShortEventPosition_$reflection())]]);\n}\n\nexport class InsiderTradeExchangeInfo extends Record {\n constructor(AvgPrice, Currency) {\n super();\n this.AvgPrice = AvgPrice;\n this.Currency = Currency;\n }\n}\n\nexport function InsiderTradeExchangeInfo_$reflection() {\n return record_type(\"ApiDataTypes.InsiderTradeExchangeInfo\", [], InsiderTradeExchangeInfo, () => [[\"AvgPrice\", float64_type], [\"Currency\", string_type]]);\n}\n\nexport class PostInsiderInfo extends Record {\n constructor(Insider, NumShares, AvgPrice, NewTotal, Controlled, AssetSharesThousands, SourceUrl, ExchangeInfo) {\n super();\n this.Insider = Insider;\n this.NumShares = (NumShares | 0);\n this.AvgPrice = AvgPrice;\n this.NewTotal = NewTotal;\n this.Controlled = Controlled;\n this.AssetSharesThousands = (AssetSharesThousands | 0);\n this.SourceUrl = SourceUrl;\n this.ExchangeInfo = ExchangeInfo;\n }\n}\n\nexport function PostInsiderInfo_$reflection() {\n return record_type(\"ApiDataTypes.PostInsiderInfo\", [], PostInsiderInfo, () => [[\"Insider\", string_type], [\"NumShares\", int32_type], [\"AvgPrice\", option_type(float64_type)], [\"NewTotal\", option_type(int32_type)], [\"Controlled\", bool_type], [\"AssetSharesThousands\", int32_type], [\"SourceUrl\", string_type], [\"ExchangeInfo\", option_type(InsiderTradeExchangeInfo_$reflection())]]);\n}\n\nexport class Post extends Record {\n constructor(Id, Type, Content, Rating, User, Votes, NumVotes, Published, VoteState, IsMine, Replies, NumReplies, Deleted, Updated, LinkPreview, ReviewInfo, AssetInfo, GroupInfo, ShortInfo, InsiderInfo) {\n super();\n this.Id = (Id | 0);\n this.Type = Type;\n this.Content = Content;\n this.Rating = (Rating | 0);\n this.User = User;\n this.Votes = (Votes | 0);\n this.NumVotes = (NumVotes | 0);\n this.Published = Published;\n this.VoteState = (VoteState | 0);\n this.IsMine = IsMine;\n this.Replies = Replies;\n this.NumReplies = (NumReplies | 0);\n this.Deleted = Deleted;\n this.Updated = Updated;\n this.LinkPreview = LinkPreview;\n this.ReviewInfo = ReviewInfo;\n this.AssetInfo = AssetInfo;\n this.GroupInfo = GroupInfo;\n this.ShortInfo = ShortInfo;\n this.InsiderInfo = InsiderInfo;\n }\n}\n\nexport function Post_$reflection() {\n return record_type(\"ApiDataTypes.Post\", [], Post, () => [[\"Id\", int32_type], [\"Type\", string_type], [\"Content\", string_type], [\"Rating\", int32_type], [\"User\", User_$reflection()], [\"Votes\", int32_type], [\"NumVotes\", int32_type], [\"Published\", string_type], [\"VoteState\", int32_type], [\"IsMine\", bool_type], [\"Replies\", array_type(Reply_$reflection())], [\"NumReplies\", int32_type], [\"Deleted\", bool_type], [\"Updated\", option_type(anonRecord_type([\"Count\", int32_type], [\"Updated\", string_type]))], [\"LinkPreview\", option_type(LinkPreview_$reflection())], [\"ReviewInfo\", option_type(PostReviewInfo_$reflection())], [\"AssetInfo\", option_type(anonRecord_type([\"Market\", string_type], [\"Name\", string_type], [\"Ticker\", string_type], [\"Type\", int32_type]))], [\"GroupInfo\", option_type(anonRecord_type([\"Id\", int32_type], [\"Name\", string_type]))], [\"ShortInfo\", option_type(PostShortInfo_$reflection())], [\"InsiderInfo\", option_type(PostInsiderInfo_$reflection())]]);\n}\n\nexport class ReportForm extends Record {\n constructor(Target, TargetId, Reason, Comment$) {\n super();\n this.Target = Target;\n this.TargetId = (TargetId | 0);\n this.Reason = (Reason | 0);\n this.Comment = Comment$;\n }\n}\n\nexport function ReportForm_$reflection() {\n return record_type(\"ApiDataTypes.ReportForm\", [], ReportForm, () => [[\"Target\", string_type], [\"TargetId\", int32_type], [\"Reason\", int32_type], [\"Comment\", string_type]]);\n}\n\nexport class UserInfo extends Record {\n constructor(UserId, Username, Active, Joined, IsMe, Official) {\n super();\n this.UserId = (UserId | 0);\n this.Username = Username;\n this.Active = Active;\n this.Joined = Joined;\n this.IsMe = IsMe;\n this.Official = Official;\n }\n}\n\nexport function UserInfo_$reflection() {\n return record_type(\"ApiDataTypes.UserInfo\", [], UserInfo, () => [[\"UserId\", int32_type], [\"Username\", string_type], [\"Active\", bool_type], [\"Joined\", string_type], [\"IsMe\", bool_type], [\"Official\", bool_type]]);\n}\n\nexport class UserStatistics extends Record {\n constructor(NumReviews, NumReplies, Score) {\n super();\n this.NumReviews = (NumReviews | 0);\n this.NumReplies = (NumReplies | 0);\n this.Score = (Score | 0);\n }\n}\n\nexport function UserStatistics_$reflection() {\n return record_type(\"ApiDataTypes.UserStatistics\", [], UserStatistics, () => [[\"NumReviews\", int32_type], [\"NumReplies\", int32_type], [\"Score\", int32_type]]);\n}\n\nexport class UserReview extends Record {\n constructor(ReviewId, Rating, PeriodEnd, Asset, AssetType, Market) {\n super();\n this.ReviewId = (ReviewId | 0);\n this.Rating = (Rating | 0);\n this.PeriodEnd = PeriodEnd;\n this.Asset = Asset;\n this.AssetType = (AssetType | 0);\n this.Market = Market;\n }\n}\n\nexport function UserReview_$reflection() {\n return record_type(\"ApiDataTypes.UserReview\", [], UserReview, () => [[\"ReviewId\", int32_type], [\"Rating\", int32_type], [\"PeriodEnd\", string_type], [\"Asset\", string_type], [\"AssetType\", int32_type], [\"Market\", string_type]]);\n}\n\nexport class ImageForm extends Record {\n constructor(Content, Filename) {\n super();\n this.Content = Content;\n this.Filename = Filename;\n }\n}\n\nexport function ImageForm_$reflection() {\n return record_type(\"ApiDataTypes.ImageForm\", [], ImageForm, () => [[\"Content\", string_type], [\"Filename\", string_type]]);\n}\n\nexport class Account_AccountInfo extends Record {\n constructor(Username, Email, EmailVerified, EmailRegistered, GoogleRegistered, AppleRegistered, Joined, Subscription) {\n super();\n this.Username = Username;\n this.Email = Email;\n this.EmailVerified = EmailVerified;\n this.EmailRegistered = EmailRegistered;\n this.GoogleRegistered = GoogleRegistered;\n this.AppleRegistered = AppleRegistered;\n this.Joined = Joined;\n this.Subscription = Subscription;\n }\n}\n\nexport function Account_AccountInfo_$reflection() {\n return record_type(\"ApiDataTypes.Account.AccountInfo\", [], Account_AccountInfo, () => [[\"Username\", string_type], [\"Email\", string_type], [\"EmailVerified\", bool_type], [\"EmailRegistered\", bool_type], [\"GoogleRegistered\", bool_type], [\"AppleRegistered\", bool_type], [\"Joined\", string_type], [\"Subscription\", option_type(Subscription_$reflection())]]);\n}\n\nexport class Account_PublishStatus extends Record {\n constructor(CanPublish, Reason) {\n super();\n this.CanPublish = CanPublish;\n this.Reason = Reason;\n }\n}\n\nexport function Account_PublishStatus_$reflection() {\n return record_type(\"ApiDataTypes.Account.PublishStatus\", [], Account_PublishStatus, () => [[\"CanPublish\", bool_type], [\"Reason\", option_type(int32_type)]]);\n}\n\nexport class Account_SubscriptionTransaction extends Record {\n constructor(ProductId, TransactionDate, Price, Currency, StoreId, Username, Refunded) {\n super();\n this.ProductId = ProductId;\n this.TransactionDate = TransactionDate;\n this.Price = (Price | 0);\n this.Currency = Currency;\n this.StoreId = (StoreId | 0);\n this.Username = Username;\n this.Refunded = Refunded;\n }\n}\n\nexport function Account_SubscriptionTransaction_$reflection() {\n return record_type(\"ApiDataTypes.Account.SubscriptionTransaction\", [], Account_SubscriptionTransaction, () => [[\"ProductId\", string_type], [\"TransactionDate\", string_type], [\"Price\", int32_type], [\"Currency\", string_type], [\"StoreId\", int32_type], [\"Username\", string_type], [\"Refunded\", bool_type]]);\n}\n\nexport class Account_SubscriptionPurchase extends Record {\n constructor(SubscriptionId, Status, StartDate, EndDate, Username, Transactions) {\n super();\n this.SubscriptionId = SubscriptionId;\n this.Status = (Status | 0);\n this.StartDate = StartDate;\n this.EndDate = EndDate;\n this.Username = Username;\n this.Transactions = Transactions;\n }\n}\n\nexport function Account_SubscriptionPurchase_$reflection() {\n return record_type(\"ApiDataTypes.Account.SubscriptionPurchase\", [], Account_SubscriptionPurchase, () => [[\"SubscriptionId\", string_type], [\"Status\", int32_type], [\"StartDate\", string_type], [\"EndDate\", string_type], [\"Username\", string_type], [\"Transactions\", array_type(Account_SubscriptionTransaction_$reflection())]]);\n}\n\nexport class Account_FavoriteCount extends Record {\n constructor(Favorites, HasSubscription, MaxFavorites) {\n super();\n this.Favorites = (Favorites | 0);\n this.HasSubscription = HasSubscription;\n this.MaxFavorites = (MaxFavorites | 0);\n }\n}\n\nexport function Account_FavoriteCount_$reflection() {\n return record_type(\"ApiDataTypes.Account.FavoriteCount\", [], Account_FavoriteCount, () => [[\"Favorites\", int32_type], [\"HasSubscription\", bool_type], [\"MaxFavorites\", int32_type]]);\n}\n\nexport class Analytics_ReviewEntry extends Record {\n constructor(ReviewId, AssetTicker, AssetType, Username, UserId, MarketTicker, Rating, Likes, Currency, TargetPrice) {\n super();\n this.ReviewId = (ReviewId | 0);\n this.AssetTicker = AssetTicker;\n this.AssetType = (AssetType | 0);\n this.Username = Username;\n this.UserId = (UserId | 0);\n this.MarketTicker = MarketTicker;\n this.Rating = (Rating | 0);\n this.Likes = (Likes | 0);\n this.Currency = Currency;\n this.TargetPrice = TargetPrice;\n }\n}\n\nexport function Analytics_ReviewEntry_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.ReviewEntry\", [], Analytics_ReviewEntry, () => [[\"ReviewId\", int32_type], [\"AssetTicker\", string_type], [\"AssetType\", int32_type], [\"Username\", string_type], [\"UserId\", int32_type], [\"MarketTicker\", string_type], [\"Rating\", int32_type], [\"Likes\", int32_type], [\"Currency\", string_type], [\"TargetPrice\", option_type(float64_type)]]);\n}\n\nexport class Analytics_AssetCount extends Record {\n constructor(Name, AssetTicker, AssetType, MarketTicker, Num) {\n super();\n this.Name = Name;\n this.AssetTicker = AssetTicker;\n this.AssetType = (AssetType | 0);\n this.MarketTicker = MarketTicker;\n this.Num = (Num | 0);\n }\n}\n\nexport function Analytics_AssetCount_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.AssetCount\", [], Analytics_AssetCount, () => [[\"Name\", string_type], [\"AssetTicker\", string_type], [\"AssetType\", int32_type], [\"MarketTicker\", string_type], [\"Num\", int32_type]]);\n}\n\nexport class Analytics_ReviewSummary extends Record {\n constructor(Buys, WeakBuys, Holds, WeakSells, Sells) {\n super();\n this.Buys = Buys;\n this.WeakBuys = WeakBuys;\n this.Holds = Holds;\n this.WeakSells = WeakSells;\n this.Sells = Sells;\n }\n}\n\nexport function Analytics_ReviewSummary_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.ReviewSummary\", [], Analytics_ReviewSummary, () => [[\"Buys\", array_type(Analytics_AssetCount_$reflection())], [\"WeakBuys\", array_type(Analytics_AssetCount_$reflection())], [\"Holds\", array_type(Analytics_AssetCount_$reflection())], [\"WeakSells\", array_type(Analytics_AssetCount_$reflection())], [\"Sells\", array_type(Analytics_AssetCount_$reflection())]]);\n}\n\nexport class Analytics_RatingSpread extends Record {\n constructor(Buy, WeakBuy, Hold, WeakSell, Sell) {\n super();\n this.Buy = (Buy | 0);\n this.WeakBuy = (WeakBuy | 0);\n this.Hold = (Hold | 0);\n this.WeakSell = (WeakSell | 0);\n this.Sell = (Sell | 0);\n }\n}\n\nexport function Analytics_RatingSpread_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.RatingSpread\", [], Analytics_RatingSpread, () => [[\"Buy\", int32_type], [\"WeakBuy\", int32_type], [\"Hold\", int32_type], [\"WeakSell\", int32_type], [\"Sell\", int32_type]]);\n}\n\nexport class Analytics_Average extends Record {\n constructor(Average, Num) {\n super();\n this.Average = (Average | 0);\n this.Num = (Num | 0);\n }\n}\n\nexport function Analytics_Average_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.Average\", [], Analytics_Average, () => [[\"Average\", int32_type], [\"Num\", int32_type]]);\n}\n\nexport class Analytics_AssetMeta extends Record {\n constructor(Name, Ticker, Market, Type) {\n super();\n this.Name = Name;\n this.Ticker = Ticker;\n this.Market = Market;\n this.Type = (Type | 0);\n }\n}\n\nexport function Analytics_AssetMeta_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.AssetMeta\", [], Analytics_AssetMeta, () => [[\"Name\", string_type], [\"Ticker\", string_type], [\"Market\", string_type], [\"Type\", int32_type]]);\n}\n\nexport class Analytics_RatingTop extends Record {\n constructor(Buy, WeakBuy, Hold, WeakSell, Sell) {\n super();\n this.Buy = Buy;\n this.WeakBuy = WeakBuy;\n this.Hold = Hold;\n this.WeakSell = WeakSell;\n this.Sell = Sell;\n }\n}\n\nexport function Analytics_RatingTop_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.RatingTop\", [], Analytics_RatingTop, () => [[\"Buy\", option_type(Analytics_AssetMeta_$reflection())], [\"WeakBuy\", option_type(Analytics_AssetMeta_$reflection())], [\"Hold\", option_type(Analytics_AssetMeta_$reflection())], [\"WeakSell\", option_type(Analytics_AssetMeta_$reflection())], [\"Sell\", option_type(Analytics_AssetMeta_$reflection())]]);\n}\n\nexport class Analytics_TopViewEntry extends Record {\n constructor(Ticker, Market, Views, Name) {\n super();\n this.Ticker = Ticker;\n this.Market = Market;\n this.Views = (Views | 0);\n this.Name = Name;\n }\n}\n\nexport function Analytics_TopViewEntry_$reflection() {\n return record_type(\"ApiDataTypes.Analytics.TopViewEntry\", [], Analytics_TopViewEntry, () => [[\"Ticker\", string_type], [\"Market\", string_type], [\"Views\", int32_type], [\"Name\", option_type(string_type)]]);\n}\n\nexport class Notifications_EntityInfo extends Record {\n constructor(Name, Id) {\n super();\n this.Name = Name;\n this.Id = (Id | 0);\n }\n}\n\nexport function Notifications_EntityInfo_$reflection() {\n return record_type(\"ApiDataTypes.Notifications.EntityInfo\", [], Notifications_EntityInfo, () => [[\"Name\", string_type], [\"Id\", int32_type]]);\n}\n\nexport class Notifications_Notification extends Record {\n constructor(Id, Notified, Read, Blob) {\n super();\n this.Id = (Id | 0);\n this.Notified = Notified;\n this.Read = Read;\n this.Blob = Blob;\n }\n}\n\nexport function Notifications_Notification_$reflection() {\n return record_type(\"ApiDataTypes.Notifications.Notification\", [], Notifications_Notification, () => [[\"Id\", int32_type], [\"Notified\", string_type], [\"Read\", bool_type], [\"Blob\", string_type]]);\n}\n\nexport class Notifications_RSIUpdate extends Record {\n constructor(AssetId, RSI, QuoteDate) {\n super();\n this.AssetId = (AssetId | 0);\n this.RSI = RSI;\n this.QuoteDate = QuoteDate;\n }\n}\n\nexport function Notifications_RSIUpdate_$reflection() {\n return record_type(\"ApiDataTypes.Notifications.RSIUpdate\", [], Notifications_RSIUpdate, () => [[\"AssetId\", int32_type], [\"RSI\", float64_type], [\"QuoteDate\", string_type]]);\n}\n\nexport class DataServer_Quote_QuoteSummaryEntry extends Record {\n constructor(Date$, Change, VolumeChange) {\n super();\n this.Date = Date$;\n this.Change = (Change | 0);\n this.VolumeChange = (VolumeChange | 0);\n }\n}\n\nexport function DataServer_Quote_QuoteSummaryEntry_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Quote.QuoteSummaryEntry\", [], DataServer_Quote_QuoteSummaryEntry, () => [[\"Date\", string_type], [\"Change\", int32_type], [\"VolumeChange\", int32_type]]);\n}\n\nexport class DataServer_Quote_PeriodAverage extends Record {\n constructor(Avg, PeriodStart, PeriodEnd) {\n super();\n this.Avg = Avg;\n this.PeriodStart = PeriodStart;\n this.PeriodEnd = PeriodEnd;\n }\n}\n\nexport function DataServer_Quote_PeriodAverage_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Quote.PeriodAverage\", [], DataServer_Quote_PeriodAverage, () => [[\"Avg\", float64_type], [\"PeriodStart\", string_type], [\"PeriodEnd\", string_type]]);\n}\n\nexport class DataServer_Quote_QuoteSummary extends Record {\n constructor(Last, Prev, Week, Month, Quarter, Year, AvgQuoteLastTen, AvgQuotePrevTen, AvgVolumeLastTen, AvgVolumePrevTen) {\n super();\n this.Last = Last;\n this.Prev = Prev;\n this.Week = Week;\n this.Month = Month;\n this.Quarter = Quarter;\n this.Year = Year;\n this.AvgQuoteLastTen = AvgQuoteLastTen;\n this.AvgQuotePrevTen = AvgQuotePrevTen;\n this.AvgVolumeLastTen = AvgVolumeLastTen;\n this.AvgVolumePrevTen = AvgVolumePrevTen;\n }\n}\n\nexport function DataServer_Quote_QuoteSummary_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Quote.QuoteSummary\", [], DataServer_Quote_QuoteSummary, () => [[\"Last\", option_type(DataServer_Quote_QuoteSummaryEntry_$reflection())], [\"Prev\", option_type(DataServer_Quote_QuoteSummaryEntry_$reflection())], [\"Week\", option_type(DataServer_Quote_QuoteSummaryEntry_$reflection())], [\"Month\", option_type(DataServer_Quote_QuoteSummaryEntry_$reflection())], [\"Quarter\", option_type(DataServer_Quote_QuoteSummaryEntry_$reflection())], [\"Year\", option_type(DataServer_Quote_QuoteSummaryEntry_$reflection())], [\"AvgQuoteLastTen\", option_type(DataServer_Quote_PeriodAverage_$reflection())], [\"AvgQuotePrevTen\", option_type(DataServer_Quote_PeriodAverage_$reflection())], [\"AvgVolumeLastTen\", option_type(DataServer_Quote_PeriodAverage_$reflection())], [\"AvgVolumePrevTen\", option_type(DataServer_Quote_PeriodAverage_$reflection())]]);\n}\n\nexport class DataServer_Short_ShareActivityDate extends Record {\n constructor(Date$, Raises, Covers) {\n super();\n this.Date = Date$;\n this.Raises = (Raises | 0);\n this.Covers = (Covers | 0);\n }\n}\n\nexport function DataServer_Short_ShareActivityDate_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Short.ShareActivityDate\", [], DataServer_Short_ShareActivityDate, () => [[\"Date\", string_type], [\"Raises\", int32_type], [\"Covers\", int32_type]]);\n}\n\nexport class DataServer_Short_TopShortEntry extends Record {\n constructor(Ticker, Market, Name, Percentage, ShortDate) {\n super();\n this.Ticker = Ticker;\n this.Market = Market;\n this.Name = Name;\n this.Percentage = (Percentage | 0);\n this.ShortDate = ShortDate;\n }\n}\n\nexport function DataServer_Short_TopShortEntry_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Short.TopShortEntry\", [], DataServer_Short_TopShortEntry, () => [[\"Ticker\", string_type], [\"Market\", string_type], [\"Name\", string_type], [\"Percentage\", int32_type], [\"ShortDate\", string_type]]);\n}\n\nexport class DataServer_Short_LargestShortEntry extends Record {\n constructor(Ticker, Market, Name, NumShares, LastPrice, LastPriceDate, ShortDate) {\n super();\n this.Ticker = Ticker;\n this.Market = Market;\n this.Name = Name;\n this.NumShares = (NumShares | 0);\n this.LastPrice = LastPrice;\n this.LastPriceDate = LastPriceDate;\n this.ShortDate = ShortDate;\n }\n}\n\nexport function DataServer_Short_LargestShortEntry_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Short.LargestShortEntry\", [], DataServer_Short_LargestShortEntry, () => [[\"Ticker\", string_type], [\"Market\", string_type], [\"Name\", string_type], [\"NumShares\", int32_type], [\"LastPrice\", float64_type], [\"LastPriceDate\", string_type], [\"ShortDate\", string_type]]);\n}\n\nexport class DataServer_Short_ShortEvent extends Record {\n constructor(Date$, Ticker, Market, Name, ChangePercent, OldPercent, NewPercent) {\n super();\n this.Date = Date$;\n this.Ticker = Ticker;\n this.Market = Market;\n this.Name = Name;\n this.ChangePercent = ChangePercent;\n this.OldPercent = OldPercent;\n this.NewPercent = (NewPercent | 0);\n }\n}\n\nexport function DataServer_Short_ShortEvent_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Short.ShortEvent\", [], DataServer_Short_ShortEvent, () => [[\"Date\", string_type], [\"Ticker\", string_type], [\"Market\", string_type], [\"Name\", string_type], [\"ChangePercent\", option_type(int32_type)], [\"OldPercent\", option_type(int32_type)], [\"NewPercent\", int32_type]]);\n}\n\nexport class DataServer_Short_ShortPosition extends Record {\n constructor(Date$, Ticker, Market, Name, Percent, NumShares, LastClose, LastCloseDate, Institution) {\n super();\n this.Date = Date$;\n this.Ticker = Ticker;\n this.Market = Market;\n this.Name = Name;\n this.Percent = (Percent | 0);\n this.NumShares = (NumShares | 0);\n this.LastClose = LastClose;\n this.LastCloseDate = LastCloseDate;\n this.Institution = Institution;\n }\n}\n\nexport function DataServer_Short_ShortPosition_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.Short.ShortPosition\", [], DataServer_Short_ShortPosition, () => [[\"Date\", string_type], [\"Ticker\", string_type], [\"Market\", string_type], [\"Name\", string_type], [\"Percent\", int32_type], [\"NumShares\", int32_type], [\"LastClose\", float64_type], [\"LastCloseDate\", string_type], [\"Institution\", string_type]]);\n}\n\nexport class DataServer_InsiderTrade_InsiderTradeEvent extends Record {\n constructor(Id, Date$, Ticker, Market, Name, NumShares) {\n super();\n this.Id = (Id | 0);\n this.Date = Date$;\n this.Ticker = Ticker;\n this.Market = Market;\n this.Name = Name;\n this.NumShares = (NumShares | 0);\n }\n}\n\nexport function DataServer_InsiderTrade_InsiderTradeEvent_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.InsiderTrade.InsiderTradeEvent\", [], DataServer_InsiderTrade_InsiderTradeEvent, () => [[\"Id\", int32_type], [\"Date\", string_type], [\"Ticker\", string_type], [\"Market\", string_type], [\"Name\", string_type], [\"NumShares\", int32_type]]);\n}\n\nexport class DataServer_InsiderTrade_InsiderTradeEventValuation extends Record {\n constructor(Date$, Ticker, Market, Name, NumShares, EstValueKs) {\n super();\n this.Date = Date$;\n this.Ticker = Ticker;\n this.Market = Market;\n this.Name = Name;\n this.NumShares = (NumShares | 0);\n this.EstValueKs = (EstValueKs | 0);\n }\n}\n\nexport function DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.InsiderTrade.InsiderTradeEventValuation\", [], DataServer_InsiderTrade_InsiderTradeEventValuation, () => [[\"Date\", string_type], [\"Ticker\", string_type], [\"Market\", string_type], [\"Name\", string_type], [\"NumShares\", int32_type], [\"EstValueKs\", int32_type]]);\n}\n\nexport class DataServer_InsiderTrade_InsiderTradeEventPercentage extends Record {\n constructor(Date$, Ticker, Market, Name, NumShares, Percentage) {\n super();\n this.Date = Date$;\n this.Ticker = Ticker;\n this.Market = Market;\n this.Name = Name;\n this.NumShares = (NumShares | 0);\n this.Percentage = (Percentage | 0);\n }\n}\n\nexport function DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.InsiderTrade.InsiderTradeEventPercentage\", [], DataServer_InsiderTrade_InsiderTradeEventPercentage, () => [[\"Date\", string_type], [\"Ticker\", string_type], [\"Market\", string_type], [\"Name\", string_type], [\"NumShares\", int32_type], [\"Percentage\", int32_type]]);\n}\n\nexport class DataServer_InsiderTrade_InsiderTradeSummary extends Record {\n constructor(NumTrades, PrevNumTrades, NumBought, PrevNumBought, NumSold, PrevNumSold, TotalEstimatedValue, PrevTotalEstimatedValue, TotalEstimatedValueBought, PrevTotalEstimatedValueBought, TotalEstimateValueSold, PrevTotalEstimatedValueSold, MostTrades, MostBoughtByNum, MostBoughtByValue, HighestTradeValue, MostSoldByNum, MostSoldByValue) {\n super();\n this.NumTrades = (NumTrades | 0);\n this.PrevNumTrades = (PrevNumTrades | 0);\n this.NumBought = (NumBought | 0);\n this.PrevNumBought = (PrevNumBought | 0);\n this.NumSold = (NumSold | 0);\n this.PrevNumSold = (PrevNumSold | 0);\n this.TotalEstimatedValue = (TotalEstimatedValue | 0);\n this.PrevTotalEstimatedValue = (PrevTotalEstimatedValue | 0);\n this.TotalEstimatedValueBought = (TotalEstimatedValueBought | 0);\n this.PrevTotalEstimatedValueBought = (PrevTotalEstimatedValueBought | 0);\n this.TotalEstimateValueSold = (TotalEstimateValueSold | 0);\n this.PrevTotalEstimatedValueSold = (PrevTotalEstimatedValueSold | 0);\n this.MostTrades = MostTrades;\n this.MostBoughtByNum = MostBoughtByNum;\n this.MostBoughtByValue = MostBoughtByValue;\n this.HighestTradeValue = HighestTradeValue;\n this.MostSoldByNum = MostSoldByNum;\n this.MostSoldByValue = MostSoldByValue;\n }\n}\n\nexport function DataServer_InsiderTrade_InsiderTradeSummary_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.InsiderTrade.InsiderTradeSummary\", [], DataServer_InsiderTrade_InsiderTradeSummary, () => [[\"NumTrades\", int32_type], [\"PrevNumTrades\", int32_type], [\"NumBought\", int32_type], [\"PrevNumBought\", int32_type], [\"NumSold\", int32_type], [\"PrevNumSold\", int32_type], [\"TotalEstimatedValue\", int32_type], [\"PrevTotalEstimatedValue\", int32_type], [\"TotalEstimatedValueBought\", int32_type], [\"PrevTotalEstimatedValueBought\", int32_type], [\"TotalEstimateValueSold\", int32_type], [\"PrevTotalEstimatedValueSold\", int32_type], [\"MostTrades\", option_type(Analytics_AssetMeta_$reflection())], [\"MostBoughtByNum\", option_type(Analytics_AssetMeta_$reflection())], [\"MostBoughtByValue\", option_type(Analytics_AssetMeta_$reflection())], [\"HighestTradeValue\", option_type(Analytics_AssetMeta_$reflection())], [\"MostSoldByNum\", option_type(Analytics_AssetMeta_$reflection())], [\"MostSoldByValue\", option_type(Analytics_AssetMeta_$reflection())]]);\n}\n\nexport class DataServer_InsiderTrade_InsiderTradeAssetEntry extends Record {\n constructor(Date$, Insider, NumShares, AvgPrice, EstValueK) {\n super();\n this.Date = Date$;\n this.Insider = Insider;\n this.NumShares = (NumShares | 0);\n this.AvgPrice = AvgPrice;\n this.EstValueK = (EstValueK | 0);\n }\n}\n\nexport function DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection() {\n return record_type(\"ApiDataTypes.DataServer.InsiderTrade.InsiderTradeAssetEntry\", [], DataServer_InsiderTrade_InsiderTradeAssetEntry, () => [[\"Date\", string_type], [\"Insider\", string_type], [\"NumShares\", int32_type], [\"AvgPrice\", option_type(float64_type)], [\"EstValueK\", int32_type]]);\n}\n\nexport class Quote_Quote extends Record {\n constructor(Date$, Close, Volume) {\n super();\n this.Date = Date$;\n this.Close = Close;\n this.Volume = (Volume | 0);\n }\n}\n\nexport function Quote_Quote_$reflection() {\n return record_type(\"ApiDataTypes.Quote.Quote\", [], Quote_Quote, () => [[\"Date\", string_type], [\"Close\", float64_type], [\"Volume\", int32_type]]);\n}\n\nexport class Quote_MovingAverage extends Record {\n constructor(NumDays, LastQuote, MA) {\n super();\n this.NumDays = (NumDays | 0);\n this.LastQuote = LastQuote;\n this.MA = MA;\n }\n}\n\nexport function Quote_MovingAverage_$reflection() {\n return record_type(\"ApiDataTypes.Quote.MovingAverage\", [], Quote_MovingAverage, () => [[\"NumDays\", int32_type], [\"LastQuote\", QuoteEntry_$reflection()], [\"MA\", float64_type]]);\n}\n\nexport class Quote_MovingAverageSummary extends Record {\n constructor(Twenty, Fifty, Hundred, TwoHundred) {\n super();\n this.Twenty = Twenty;\n this.Fifty = Fifty;\n this.Hundred = Hundred;\n this.TwoHundred = TwoHundred;\n }\n}\n\nexport function Quote_MovingAverageSummary_$reflection() {\n return record_type(\"ApiDataTypes.Quote.MovingAverageSummary\", [], Quote_MovingAverageSummary, () => [[\"Twenty\", option_type(Quote_MovingAverage_$reflection())], [\"Fifty\", option_type(Quote_MovingAverage_$reflection())], [\"Hundred\", option_type(Quote_MovingAverage_$reflection())], [\"TwoHundred\", option_type(Quote_MovingAverage_$reflection())]]);\n}\n\nexport class Valuation_AssetKeyNumbers extends Record {\n constructor(NumShares, LastQuote, LastShort) {\n super();\n this.NumShares = NumShares;\n this.LastQuote = LastQuote;\n this.LastShort = LastShort;\n }\n}\n\nexport function Valuation_AssetKeyNumbers_$reflection() {\n return record_type(\"ApiDataTypes.Valuation.AssetKeyNumbers\", [], Valuation_AssetKeyNumbers, () => [[\"NumShares\", int64_type], [\"LastQuote\", anonRecord_type([\"Date\", string_type], [\"Price\", float64_type])], [\"LastShort\", option_type(anonRecord_type([\"Date\", string_type], [\"NumShares\", int32_type], [\"Percentage\", float64_type]))]]);\n}\n\nexport class Short_Institution extends Record {\n constructor(Id, Name) {\n super();\n this.Id = (Id | 0);\n this.Name = Name;\n }\n}\n\nexport function Short_Institution_$reflection() {\n return record_type(\"ApiDataTypes.Short.Institution\", [], Short_Institution, () => [[\"Id\", int32_type], [\"Name\", string_type]]);\n}\n\nexport class Short_ShortTop extends Record {\n constructor(Institution, Shares, Percentage) {\n super();\n this.Institution = Institution;\n this.Shares = (Shares | 0);\n this.Percentage = (Percentage | 0);\n }\n}\n\nexport function Short_ShortTop_$reflection() {\n return record_type(\"ApiDataTypes.Short.ShortTop\", [], Short_ShortTop, () => [[\"Institution\", Short_Institution_$reflection()], [\"Shares\", int32_type], [\"Percentage\", int32_type]]);\n}\n\nexport class Short_ShortSummary extends Record {\n constructor(Shares, Percentage, Top) {\n super();\n this.Shares = (Shares | 0);\n this.Percentage = (Percentage | 0);\n this.Top = Top;\n }\n}\n\nexport function Short_ShortSummary_$reflection() {\n return record_type(\"ApiDataTypes.Short.ShortSummary\", [], Short_ShortSummary, () => [[\"Shares\", int32_type], [\"Percentage\", int32_type], [\"Top\", array_type(Short_ShortTop_$reflection())]]);\n}\n\nexport class Short_Event extends Record {\n constructor(Date$, Points, Shares) {\n super();\n this.Date = Date$;\n this.Points = (Points | 0);\n this.Shares = (Shares | 0);\n }\n}\n\nexport function Short_Event_$reflection() {\n return record_type(\"ApiDataTypes.Short.Event\", [], Short_Event, () => [[\"Date\", string_type], [\"Points\", int32_type], [\"Shares\", int32_type]]);\n}\n\nexport class Alerts_InsiderTradeAlert extends Record {\n constructor(Id, Asset, Registered, MinNumShares, MinEstValueK, Expiry, OnlyOnce, Push, Email) {\n super();\n this.Id = (Id | 0);\n this.Asset = Asset;\n this.Registered = Registered;\n this.MinNumShares = MinNumShares;\n this.MinEstValueK = MinEstValueK;\n this.Expiry = Expiry;\n this.OnlyOnce = OnlyOnce;\n this.Push = Push;\n this.Email = Email;\n }\n}\n\nexport function Alerts_InsiderTradeAlert_$reflection() {\n return record_type(\"ApiDataTypes.Alerts.InsiderTradeAlert\", [], Alerts_InsiderTradeAlert, () => [[\"Id\", int32_type], [\"Asset\", Analytics_AssetMeta_$reflection()], [\"Registered\", string_type], [\"MinNumShares\", option_type(int64_type)], [\"MinEstValueK\", option_type(int32_type)], [\"Expiry\", option_type(string_type)], [\"OnlyOnce\", bool_type], [\"Push\", bool_type], [\"Email\", bool_type]]);\n}\n\nexport class Alerts_InsiderTradeAlertForm extends Record {\n constructor(AssetId, MinNumShares, MinEstValueK, Expiry, OnlyOnce, Push, Email) {\n super();\n this.AssetId = (AssetId | 0);\n this.MinNumShares = MinNumShares;\n this.MinEstValueK = MinEstValueK;\n this.Expiry = Expiry;\n this.OnlyOnce = OnlyOnce;\n this.Push = Push;\n this.Email = Email;\n }\n}\n\nexport function Alerts_InsiderTradeAlertForm_$reflection() {\n return record_type(\"ApiDataTypes.Alerts.InsiderTradeAlertForm\", [], Alerts_InsiderTradeAlertForm, () => [[\"AssetId\", int32_type], [\"MinNumShares\", option_type(int64_type)], [\"MinEstValueK\", option_type(int32_type)], [\"Expiry\", option_type(string_type)], [\"OnlyOnce\", bool_type], [\"Push\", bool_type], [\"Email\", bool_type]]);\n}\n\nexport class Alerts_ShortAlert extends Record {\n constructor(Id, Asset, Registered, MinPercentagePoints, AbovePercentage, BelowPercentage, Expiry, OnlyOnce, Push, Email) {\n super();\n this.Id = (Id | 0);\n this.Asset = Asset;\n this.Registered = Registered;\n this.MinPercentagePoints = MinPercentagePoints;\n this.AbovePercentage = AbovePercentage;\n this.BelowPercentage = BelowPercentage;\n this.Expiry = Expiry;\n this.OnlyOnce = OnlyOnce;\n this.Push = Push;\n this.Email = Email;\n }\n}\n\nexport function Alerts_ShortAlert_$reflection() {\n return record_type(\"ApiDataTypes.Alerts.ShortAlert\", [], Alerts_ShortAlert, () => [[\"Id\", int32_type], [\"Asset\", Analytics_AssetMeta_$reflection()], [\"Registered\", string_type], [\"MinPercentagePoints\", option_type(int32_type)], [\"AbovePercentage\", option_type(int32_type)], [\"BelowPercentage\", option_type(int32_type)], [\"Expiry\", option_type(string_type)], [\"OnlyOnce\", bool_type], [\"Push\", bool_type], [\"Email\", bool_type]]);\n}\n\nexport class Alerts_ShortAlertForm extends Record {\n constructor(AssetId, MinPercentagePoints, AbovePercentage, BelowPercentage, Expiry, OnlyOnce, Push, Email) {\n super();\n this.AssetId = (AssetId | 0);\n this.MinPercentagePoints = MinPercentagePoints;\n this.AbovePercentage = AbovePercentage;\n this.BelowPercentage = BelowPercentage;\n this.Expiry = Expiry;\n this.OnlyOnce = OnlyOnce;\n this.Push = Push;\n this.Email = Email;\n }\n}\n\nexport function Alerts_ShortAlertForm_$reflection() {\n return record_type(\"ApiDataTypes.Alerts.ShortAlertForm\", [], Alerts_ShortAlertForm, () => [[\"AssetId\", int32_type], [\"MinPercentagePoints\", option_type(int32_type)], [\"AbovePercentage\", option_type(int32_type)], [\"BelowPercentage\", option_type(int32_type)], [\"Expiry\", option_type(string_type)], [\"OnlyOnce\", bool_type], [\"Push\", bool_type], [\"Email\", bool_type]]);\n}\n\nexport class Alerts_RSIAlert extends Record {\n constructor(Id, Asset, Registered, AboveValue, BelowValue, Expiry, OnlyOnce, Push, Email) {\n super();\n this.Id = (Id | 0);\n this.Asset = Asset;\n this.Registered = Registered;\n this.AboveValue = AboveValue;\n this.BelowValue = BelowValue;\n this.Expiry = Expiry;\n this.OnlyOnce = OnlyOnce;\n this.Push = Push;\n this.Email = Email;\n }\n}\n\nexport function Alerts_RSIAlert_$reflection() {\n return record_type(\"ApiDataTypes.Alerts.RSIAlert\", [], Alerts_RSIAlert, () => [[\"Id\", int32_type], [\"Asset\", Analytics_AssetMeta_$reflection()], [\"Registered\", string_type], [\"AboveValue\", option_type(int32_type)], [\"BelowValue\", option_type(int32_type)], [\"Expiry\", option_type(string_type)], [\"OnlyOnce\", bool_type], [\"Push\", bool_type], [\"Email\", bool_type]]);\n}\n\nexport class Alerts_RSIAlertForm extends Record {\n constructor(AssetId, AboveValue, BelowValue, Expiry, OnlyOnce, Push, Email) {\n super();\n this.AssetId = (AssetId | 0);\n this.AboveValue = AboveValue;\n this.BelowValue = BelowValue;\n this.Expiry = Expiry;\n this.OnlyOnce = OnlyOnce;\n this.Push = Push;\n this.Email = Email;\n }\n}\n\nexport function Alerts_RSIAlertForm_$reflection() {\n return record_type(\"ApiDataTypes.Alerts.RSIAlertForm\", [], Alerts_RSIAlertForm, () => [[\"AssetId\", int32_type], [\"AboveValue\", option_type(int32_type)], [\"BelowValue\", option_type(int32_type)], [\"Expiry\", option_type(string_type)], [\"OnlyOnce\", bool_type], [\"Push\", bool_type], [\"Email\", bool_type]]);\n}\n\nexport class Alerts_AlertCount extends Record {\n constructor(Alerts, HasSubscription, MaxAlerts) {\n super();\n this.Alerts = (Alerts | 0);\n this.HasSubscription = HasSubscription;\n this.MaxAlerts = (MaxAlerts | 0);\n }\n}\n\nexport function Alerts_AlertCount_$reflection() {\n return record_type(\"ApiDataTypes.Alerts.AlertCount\", [], Alerts_AlertCount, () => [[\"Alerts\", int32_type], [\"HasSubscription\", bool_type], [\"MaxAlerts\", int32_type]]);\n}\n\n","import { Union } from \"../fable-library-js.4.17.0/Types.js\";\nimport { class_type, union_type, obj_type, int32_type, string_type } from \"../fable-library-js.4.17.0/Reflection.js\";\nimport { int32ToString } from \"../fable-library-js.4.17.0/Util.js\";\nimport { keyValueList } from \"../fable-library-js.4.17.0/MapUtil.js\";\nimport { result } from \"../Fable.Promise.2.0.0/Promise.fs.js\";\nimport { singleton } from \"../fable-library-js.4.17.0/List.js\";\n\nexport class Types_HttpRequestHeaders extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Accept\", \"Accept-Charset\", \"Accept-Encoding\", \"Accept-Language\", \"Accept-Datetime\", \"Authorization\", \"Cache-Control\", \"Connection\", \"Cookie\", \"Content-Length\", \"Content-MD5\", \"Content-Type\", \"Date\", \"Expect\", \"Forwarded\", \"From\", \"Host\", \"If-Match\", \"If-Modified-Since\", \"If-None-Match\", \"If-Range\", \"If-Unmodified-Since\", \"Max-Forwards\", \"Origin\", \"Pragma\", \"Proxy-Authorization\", \"Range\", \"Referer\", \"SOAPAction\", \"TE\", \"User-Agent\", \"Upgrade\", \"Via\", \"Warning\", \"X-Requested-With\", \"DNT\", \"X-Forwarded-For\", \"X-Forwarded-Host\", \"X-Forwarded-Proto\", \"Front-End-Https\", \"X-Http-Method-Override\", \"X-ATT-DeviceId\", \"X-Wap-Profile\", \"Proxy-Connection\", \"X-UIDH\", \"X-Csrf-Token\", \"Custom\"];\n }\n}\n\nexport function Types_HttpRequestHeaders_$reflection() {\n return union_type(\"Fetch.Types.HttpRequestHeaders\", [], Types_HttpRequestHeaders, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", int32_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"key\", string_type], [\"value\", obj_type]]]);\n}\n\nexport class Types_RequestProperties extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Method\", \"Headers\", \"Body\", \"Mode\", \"Credentials\", \"Cache\"];\n }\n}\n\nexport function Types_RequestProperties_$reflection() {\n return union_type(\"Fetch.Types.RequestProperties\", [], Types_RequestProperties, () => [[[\"Item\", string_type]], [[\"Item\", class_type(\"Fetch.Types.IHttpRequestHeaders\")]], [[\"Item\", class_type(\"Fable.Core.U3`3\", [class_type(\"Browser.Types.Blob\"), class_type(\"Browser.Types.FormData\"), string_type])]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]]]);\n}\n\nfunction errorString(response) {\n return (((int32ToString(response.status) + \" \") + (response.statusText)) + \" for URL \") + (response.url);\n}\n\n/**\n * Retrieves data from the specified resource. Fails if `response.Ok` evals to false.\n */\nexport function fetch$(url, init) {\n const pr = fetch(url, keyValueList(init, 1));\n return pr.then((response) => {\n if (response.ok) {\n return response;\n }\n else {\n throw new Error(errorString(response));\n }\n });\n}\n\nexport function tryFetch(url, init) {\n return result(fetch$(url, init));\n}\n\n/**\n * Sends a HTTP OPTIONS request.\n */\nexport function tryOptionsRequest(url) {\n return result(fetch$(url, singleton(new Types_RequestProperties(0, [\"OPTIONS\"]))));\n}\n\n","import { Union } from \"../fable-library-js.4.17.0/Types.js\";\nimport { union_type, string_type, class_type } from \"../fable-library-js.4.17.0/Reflection.js\";\nimport { keyValueList } from \"../fable-library-js.4.17.0/MapUtil.js\";\nimport { Types_HttpRequestHeaders } from \"../Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { append, cons } from \"../fable-library-js.4.17.0/List.js\";\nimport { map, defaultArg } from \"../fable-library-js.4.17.0/Option.js\";\nimport { int32ToString } from \"../fable-library-js.4.17.0/Util.js\";\n\nexport class FetchError extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"PreparingRequestFailed\", \"DecodingFailed\", \"FetchFailed\", \"NetworkError\"];\n }\n}\n\nexport function FetchError_$reflection() {\n return union_type(\"Thoth.Fetch.FetchError\", [], FetchError, () => [[[\"Item\", class_type(\"System.Exception\")]], [[\"Item\", string_type]], [[\"Item\", class_type(\"Fetch.Types.Response\")]], [[\"Item\", class_type(\"System.Exception\")]]]);\n}\n\nexport function Helper_fetch(url, init) {\n return fetch(url, keyValueList(init, 1));\n}\n\nexport function Helper_withContentTypeJson(data, headers) {\n if (data != null) {\n return cons(new Types_HttpRequestHeaders(11, [\"application/json\"]), headers);\n }\n else {\n return headers;\n }\n}\n\nexport function Helper_withProperties(custom, properties) {\n return defaultArg(map((list) => append(properties, list), custom), properties);\n}\n\nexport function Helper_message(error) {\n switch (error.tag) {\n case 1:\n return \"[Thoth.Fetch] Error while decoding the response:\\n\\n\" + error.fields[0];\n case 2: {\n const response = error.fields[0];\n return ((((\"[Thoth.Fetch] Request failed:\\n\\n\" + int32ToString(response.status)) + \" \") + (response.statusText)) + \" for URL \") + (response.url);\n }\n case 3:\n return \"[Thoth.Fetch] A network error occured:\\n\\n\" + error.fields[0].message;\n default:\n return \"[Thoth.Fetch] Request preparation failed:\\n\\n\" + error.fields[0].message;\n }\n}\n\nexport class Fetch {\n constructor() {\n }\n}\n\nexport function Fetch_$reflection() {\n return class_type(\"Thoth.Fetch.Fetch\", undefined, Fetch);\n}\n\n","import { toUniversalTime, toString, now, op_Subtraction, parse } from \"./fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { totalDays, totalMinutes } from \"./fable_modules/fable-library-js.4.17.0/TimeSpan.js\";\nimport { format, toText } from \"./fable_modules/fable-library-js.4.17.0/String.js\";\nimport { toFloat64, op_Multiply, toInt64, compare } from \"./fable_modules/fable-library-js.4.17.0/BigInt.js\";\n\nexport function utcStringToLocalTimeSpan(dt) {\n let x_2, x_3, x_4, x_5;\n try {\n const date = parse(dt);\n const matchValue = ~~totalMinutes(op_Subtraction(now(), date)) | 0;\n return (matchValue < 1) ? \"Akkurat nå\" : ((matchValue < 60) ? (`${matchValue} minutter siden`) : (((x_2 = (matchValue | 0), (x_2 >= 60) && (x_2 < 120))) ? \"~1 time siden\" : (((x_3 = (matchValue | 0), (x_3 >= 120) && (x_3 < 1440))) ? (`~${~~(matchValue / 60)} timer siden`) : (((x_4 = (matchValue | 0), (x_4 >= 1440) && (x_4 < 2880))) ? \"~1 dag siden\" : (((x_5 = (matchValue | 0), (x_5 >= 2880) && (x_5 < 4320))) ? (`~${~~(matchValue / (60 * 24))} dager siden`) : toString(date, \"dd/MM/yyyy\"))))));\n }\n catch (matchValue_1) {\n return \"\";\n }\n}\n\nexport function utcStringToLocalDaySpan(dt) {\n try {\n const date = parse(dt);\n const matchValue = totalDays(op_Subtraction(now(), date));\n return (matchValue < 1) ? \"I dag\" : ((matchValue < 2) ? \"I går\" : ((matchValue < 5) ? (`${~~matchValue} dager siden`) : toString(date, \"dd/MM/yyyy\")));\n }\n catch (matchValue_1) {\n return \"\";\n }\n}\n\nexport function utcStringToTimePeriod(dt) {\n try {\n const days = totalDays(op_Subtraction(parse(dt), now()));\n return (days < -1) ? \"\" : ((days < 0) ? \"~ i dag\" : ((days < 2) ? \"~ i morgen\" : ((days < 7) ? toText(`~${~~days} fra nå`) : ((days < 14) ? \"~1 uke fra nå\" : ((days < 31) ? (`~${~~(days / 7)} uker fra nå`) : ((days < 45) ? \"~1/2 kvartal fra nå\" : ((days < 61) ? \"~2 måneder fra nå\" : ((days < 135) ? \"~1 kvartal fra nå\" : ((days < 160) ? \"~5 måneder fra nå\" : ((days < 200) ? \"~1/2 år fra nå\" : ((days < 240) ? \"~7 måneder fra nå\" : ((days < 300) ? \"~3 kvartal fra nå\" : ((days < 400) ? \"~1 år fra nå\" : (`~${~~(days / 30)} fra nå`))))))))))))));\n }\n catch (matchValue) {\n return \"\";\n }\n}\n\nexport function utcDateToLocalDate(x) {\n try {\n return toString(parse(x), \"dd/MM/yyyy\");\n }\n catch (matchValue) {\n return x;\n }\n}\n\nexport function utcDateToLocalDayAndMonth(x) {\n try {\n return toString(parse(x), \"dd/MM\");\n }\n catch (matchValue) {\n return x;\n }\n}\n\nexport function toISO8601(dt) {\n return toString(dt, \"yyyy-MM-dd HH:mmZ\");\n}\n\nexport function parseAsUtc(dt) {\n return toUniversalTime(parse(dt));\n}\n\nexport function toShortAmount(x) {\n const x$0027 = ((x < 0) ? (x * -1) : x) | 0;\n if (x$0027 >= 1000000000) {\n const bn = x / 1000000000;\n return `${format('{0:' + \"0.0\" + '}', bn)} mrd`;\n }\n else if (x$0027 >= 1000000) {\n const mill = x / 1000000;\n return `${format('{0:' + \"0.0\" + '}', mill)}m`;\n }\n else if (x$0027 >= 1000) {\n const k = x / 1000;\n return `${format('{0:' + \"0.0\" + '}', k)}k`;\n }\n else {\n return `${x}`;\n }\n}\n\nexport function toShortAmountL(x$0027) {\n const x = (compare(x$0027, 0n) < 0) ? toInt64(op_Multiply(x$0027, -1n)) : x$0027;\n if (compare(x, 1000000000n) >= 0) {\n const bn = toFloat64(x$0027) / 1000000000;\n return `${format('{0:' + \"0.00\" + '}', bn)} mrd`;\n }\n else if (compare(x, 1000000n) >= 0) {\n const mill = toFloat64(x$0027) / 1000000;\n return `${format('{0:' + \"0.00\" + '}', mill)}m`;\n }\n else if (compare(x, 1000n) >= 0) {\n const k = toFloat64(x$0027) / 1000;\n return `${format('{0:' + \"0.0\" + '}', k)}k`;\n }\n else {\n return `${x$0027}`;\n }\n}\n\nexport function toPercentageChange(old, last) {\n return ((100 * old) / last) - 100;\n}\n\nexport function toPositivePercentageChange(old, last) {\n const change = ((100 * old) / last) - 100;\n if (change < 0) {\n return change * -1;\n }\n else {\n return change;\n }\n}\n\n/**\n * Converts a short percentage as whole hundreds to string\n */\nexport function shortPercentageToString(p) {\n const p_1 = p / 100;\n return format('{0:' + \"0.00%\" + '}', p_1);\n}\n\n/**\n * Converts a quote price to string representation\n */\nexport function quoteToString(x) {\n return format('{0:' + \"0.00\" + '}', x);\n}\n\n/**\n * Format large number values to space-seperated thousands presentation\n */\nexport function formatSpacedNumber(x) {\n return x.toLocaleString(\"fr\", {\n minimumFractionDigits: \"0\",\n maximumFractionDigits: \"2\",\n useGrouping: true,\n });\n}\n\n/**\n * Format large number values to space-seperated thousands presentation\n */\nexport function formatSpacedLong(x) {\n return x.toLocaleString(\"fr\", {\n minimumFractionDigits: \"0\",\n maximumFractionDigits: \"2\",\n useGrouping: true,\n });\n}\n\nexport function updateInputField(fieldId, newVal) {\n try {\n const entry = window.document.getElementById(fieldId);\n entry.value = newVal;\n }\n catch (matchValue) {\n }\n}\n\nexport function updateInputFieldWithOnChange(fieldId, newVal) {\n try {\n const entry = window.document.getElementById(fieldId);\n entry.value = newVal;\n const event = new EventTarget(\"change\");\n entry.dispatchEvent(event);\n }\n catch (matchValue) {\n }\n}\n\nexport function tryFocusInput(inputId) {\n try {\n window.document.getElementById(inputId).focus();\n }\n catch (matchValue) {\n }\n}\n\nexport function checkError(err) {\n let matchResult, x_1;\n if (err.tag === 2) {\n if ((err.fields[0].status) === 401) {\n matchResult = 0;\n x_1 = err.fields[0];\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0: {\n window.location.reload();\n break;\n }\n case 1: {\n break;\n }\n }\n}\n\n","import { Result_MapError, Result_Map, FSharpResult$2 } from \"../fable-library-js.4.17.0/Result.js\";\nimport { class_type } from \"../fable-library-js.4.17.0/Reflection.js\";\nimport { defaultOf, equals, disposeSafe, getEnumerator } from \"../fable-library-js.4.17.0/Util.js\";\n\n/**\n * Creates promise (in rejected state) with supplied reason.\n */\nexport function reject(reason) {\n return Promise.reject(reason);\n}\n\nexport function result(a) {\n return a.then(((arg) => (new FSharpResult$2(0, [arg]))),((arg_1) => (new FSharpResult$2(1, [arg_1]))));\n}\n\nexport function mapResult(fn, a) {\n return a.then((result_1) => Result_Map(fn, result_1));\n}\n\nexport function bindResult(fn, a) {\n return a.then((a_1) => {\n if (a_1.tag === 1) {\n return Promise.resolve(new FSharpResult$2(1, [a_1.fields[0]]));\n }\n else {\n return result(fn(a_1.fields[0]));\n }\n });\n}\n\nexport function mapResultError(fn, a) {\n return a.then((result_1) => Result_MapError(fn, result_1));\n}\n\nexport function tap(fn, a) {\n return a.then((x) => {\n fn(x);\n return x;\n });\n}\n\nexport class PromiseBuilder {\n constructor() {\n }\n}\n\nexport function PromiseBuilder_$reflection() {\n return class_type(\"Promise.PromiseBuilder\", undefined, PromiseBuilder);\n}\n\nexport function PromiseBuilder_$ctor() {\n return new PromiseBuilder();\n}\n\nexport function PromiseBuilder__For_1565554B(x, seq, body) {\n let p = Promise.resolve(undefined);\n const enumerator = getEnumerator(seq);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const a = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n p = (p.then(() => body(a)));\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return p;\n}\n\nexport function PromiseBuilder__While_2044D34(x, guard, p) {\n if (guard()) {\n return p.then(() => PromiseBuilder__While_2044D34(x, guard, p));\n }\n else {\n return Promise.resolve(undefined);\n }\n}\n\nexport function PromiseBuilder__TryFinally_7D49A2FD(x, p, compensation) {\n return p.then(((x_1) => {\n compensation();\n return x_1;\n }),((er) => {\n compensation();\n throw er;\n }));\n}\n\nexport function PromiseBuilder__Delay_62FBFDE1(x, generator) {\n return {\n then: (f1, f2) => {\n try {\n return generator().then(f1, f2);\n }\n catch (er) {\n if (equals(f2, defaultOf())) {\n return Promise.reject(er);\n }\n else {\n try {\n return Promise.resolve(f2(er));\n }\n catch (er_1) {\n return Promise.reject(er_1);\n }\n }\n }\n },\n catch: (f) => {\n try {\n return generator().catch(f);\n }\n catch (er_2) {\n try {\n return Promise.resolve(f(er_2));\n }\n catch (er_3) {\n return Promise.reject(er_3);\n }\n }\n },\n };\n}\n\nexport function PromiseBuilder__Run_212F1D4B(x, p) {\n return new Promise((success, fail) => {\n try {\n const p_1 = Promise.resolve(p);\n p_1.then(success, fail);\n }\n catch (er) {\n fail(er);\n }\n });\n}\n\nexport function PromiseBuilder__Using_74F7E79D(x, resource, binder) {\n return PromiseBuilder__TryFinally_7D49A2FD(x, binder(resource), () => {\n let copyOfStruct = resource;\n disposeSafe(copyOfStruct);\n });\n}\n\n","import { PromiseBuilder_$ctor } from \"./Promise.fs.js\";\n\nexport const promise = PromiseBuilder_$ctor();\n\n","\nexport const Dimensions_TextSmall = 0.85 + \"rem\";\n\nexport const Dimensions_TextExtraSmall = 0.7 + \"rem\";\n\nexport const Dimensions_DefaultPadding = 2 + \"vw\";\n\nexport const Dimensions_DefaultGap = 1 + \"vw\";\n\nexport const DefaultBorder = [\"border\", (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\"];\n\n","import { toString as toString_1, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { class_type, int32_type, union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { maxValue, today, date, compare, addYears, addMonths, now, addDays, toString } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { printf, toText } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\n\nexport class MembershipStatus extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"NotMember\", \"Pending\", \"Member\"];\n }\n}\n\nexport function MembershipStatus_$reflection() {\n return union_type(\"Shared.MembershipStatus\", [], MembershipStatus, () => [[], [], []]);\n}\n\nexport function MembershipStatus__ToInt(this$) {\n switch (this$.tag) {\n case 1:\n return 2;\n case 2:\n return 3;\n default:\n return 1;\n }\n}\n\nexport function MembershipStatus_FromInt_Z524259A4(x) {\n switch (x) {\n case 2:\n return new MembershipStatus(1, []);\n case 3:\n return new MembershipStatus(2, []);\n default:\n return new MembershipStatus(0, []);\n }\n}\n\nexport class SummaryMode extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Overlap\", \"PostedAfter\", \"PostedBefore\", \"PostedWithin\", \"All\"];\n }\n toString() {\n const this$ = this;\n return (this$.tag === 1) ? \"Reviews posted after\" : ((this$.tag === 2) ? \"Reviews posted before\" : ((this$.tag === 3) ? \"Reviews posted within\" : ((this$.tag === 4) ? \"All time\" : \"Overlapping reviews\")));\n }\n}\n\nexport function SummaryMode_$reflection() {\n return union_type(\"Shared.SummaryMode\", [], SummaryMode, () => [[], [], [], [], []]);\n}\n\nexport function SummaryMode__ToInt(this$) {\n switch (this$.tag) {\n case 1:\n return 2;\n case 2:\n return 3;\n case 3:\n return 4;\n case 4:\n return 5;\n default:\n return 1;\n }\n}\n\nexport function SummaryMode_FromInt_Z524259A4(x) {\n switch (x) {\n case 1:\n return new SummaryMode(0, []);\n case 2:\n return new SummaryMode(1, []);\n case 3:\n return new SummaryMode(2, []);\n case 4:\n return new SummaryMode(3, []);\n default:\n return new SummaryMode(4, []);\n }\n}\n\nexport class StockRating extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Buy\", \"WeakBuy\", \"Hold\", \"WeakSell\", \"Sell\"];\n }\n toString() {\n const this$ = this;\n return (this$.tag === 1) ? \"Svakt kjøp\" : ((this$.tag === 2) ? \"Hold\" : ((this$.tag === 3) ? \"Svakt salg\" : ((this$.tag === 4) ? \"Selg\" : \"Kjøp\")));\n }\n}\n\nexport function StockRating_$reflection() {\n return union_type(\"Shared.StockRating\", [], StockRating, () => [[], [], [], [], []]);\n}\n\nexport function StockRating__ToInt(this$) {\n switch (this$.tag) {\n case 1:\n return 70;\n case 2:\n return 50;\n case 3:\n return 30;\n case 4:\n return 10;\n default:\n return 90;\n }\n}\n\nexport function StockRating_FromInt_Z524259A4(x) {\n let y_1, y_2, y_3;\n if (x > 80) {\n return new StockRating(0, []);\n }\n else if ((y_1 = (x | 0), (y_1 <= 80) && (y_1 > 60))) {\n return new StockRating(1, []);\n }\n else if ((y_2 = (x | 0), (y_2 <= 60) && (y_2 > 40))) {\n return new StockRating(2, []);\n }\n else if ((y_3 = (x | 0), (y_3 <= 40) && (y_3 > 20))) {\n return new StockRating(3, []);\n }\n else {\n return new StockRating(4, []);\n }\n}\n\nexport function StockRating__ToColorCode(this$) {\n switch (this$.tag) {\n case 1:\n return \"#92f274\";\n case 2:\n return \"#74bef2\";\n case 3:\n return \"#f28574\";\n case 4:\n return \"#cc3608\";\n default:\n return \"#36cc08\";\n }\n}\n\nexport function StockRating__ToTextColorCode(this$) {\n switch (this$.tag) {\n case 1:\n return \"#fff\";\n case 2:\n return \"#fff\";\n case 3:\n return \"#fff\";\n case 4:\n return \"#f6f6f6\";\n default:\n return \"#f6f6f6\";\n }\n}\n\nexport function StockRating__ToThreshold(this$) {\n switch (this$.tag) {\n case 1:\n return [61, 80];\n case 2:\n return [41, 60];\n case 3:\n return [21, 40];\n case 4:\n return [0, 20];\n default:\n return [81, 100];\n }\n}\n\nexport class ReportReason extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Spam\", \"Undocumented\", \"RacistContent\", \"SexualContent\", \"Picture\", \"GroupRules\", \"Other\"];\n }\n toString() {\n const this$ = this;\n return (this$.tag === 1) ? \"Udokumenterte/falske påstander\" : ((this$.tag === 2) ? \"Rasisme/hatytringer\" : ((this$.tag === 3) ? \"Seksuelt innhold\" : ((this$.tag === 4) ? \"Upassende/seksuelt/hatfult bilde\" : ((this$.tag === 5) ? \"Brudd på grupperegler\" : ((this$.tag === 6) ? \"Annet\" : \"Spam/ikke relevant innhold\")))));\n }\n}\n\nexport function ReportReason_$reflection() {\n return union_type(\"Shared.ReportReason\", [], ReportReason, () => [[], [], [], [], [], [], []]);\n}\n\nexport function ReportReason__ToInt(this$) {\n switch (this$.tag) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 3:\n return 3;\n case 4:\n return 4;\n case 5:\n return 5;\n case 6:\n return 6;\n default:\n return 0;\n }\n}\n\nexport function ReportReason_FromInt_Z524259A4(x) {\n switch (x) {\n case 0:\n return new ReportReason(0, []);\n case 1:\n return new ReportReason(1, []);\n case 2:\n return new ReportReason(2, []);\n case 3:\n return new ReportReason(3, []);\n case 4:\n return new ReportReason(4, []);\n case 5:\n return new ReportReason(5, []);\n default:\n return new ReportReason(6, []);\n }\n}\n\nexport function ReportReason_AsArray() {\n return [new ReportReason(0, []), new ReportReason(1, []), new ReportReason(2, []), new ReportReason(3, []), new ReportReason(4, []), new ReportReason(6, [])];\n}\n\nexport function ReportReason_AsArrayGroup() {\n return [new ReportReason(0, []), new ReportReason(1, []), new ReportReason(2, []), new ReportReason(3, []), new ReportReason(4, []), new ReportReason(5, []), new ReportReason(6, [])];\n}\n\nexport class PeriodSpan extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Days\", \"Weeks\", \"Months\", \"Quarters\", \"Years\"];\n }\n toString() {\n const this$ = this;\n return (this$.tag === 1) ? (`For ${this$.fields[0]} uker`) : ((this$.tag === 2) ? (`For ${this$.fields[0]} måneder`) : ((this$.tag === 3) ? (`For ${this$.fields[0]} kvartal`) : ((this$.tag === 4) ? (`For ${this$.fields[0]} år`) : (`For ${this$.fields[0]} dager`))));\n }\n}\n\nexport function PeriodSpan_$reflection() {\n return union_type(\"Shared.PeriodSpan\", [], PeriodSpan, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]]]);\n}\n\nexport function PeriodSpan__ToValue(this$) {\n switch (this$.tag) {\n case 1:\n return \"weeks\";\n case 2:\n return \"months\";\n case 3:\n return \"quarters\";\n case 4:\n return \"years\";\n default:\n return \"days\";\n }\n}\n\nexport function PeriodSpan__ToNumber(this$) {\n switch (this$.tag) {\n case 1:\n return this$.fields[0] | 0;\n case 2:\n return this$.fields[0] | 0;\n case 3:\n return this$.fields[0] | 0;\n case 4:\n return this$.fields[0] | 0;\n default:\n return this$.fields[0] | 0;\n }\n}\n\nexport function PeriodSpan__Validate(this$) {\n switch (this$.tag) {\n case 1: {\n const x_1 = this$.fields[0] | 0;\n if (x_1 >= 1) {\n return x_1 <= 100;\n }\n else {\n return false;\n }\n }\n case 2: {\n const x_2 = this$.fields[0] | 0;\n if (x_2 >= 1) {\n return x_2 <= 100;\n }\n else {\n return false;\n }\n }\n case 3: {\n const x_3 = this$.fields[0] | 0;\n if (x_3 >= 1) {\n return x_3 <= 40;\n }\n else {\n return false;\n }\n }\n case 4: {\n const x_4 = this$.fields[0] | 0;\n if (x_4 >= 1) {\n return x_4 <= 20;\n }\n else {\n return false;\n }\n }\n default: {\n const x = this$.fields[0] | 0;\n if (x >= 1) {\n return x <= 1000;\n }\n else {\n return false;\n }\n }\n }\n}\n\nexport function PeriodSpan__ToDateString(this$) {\n switch (this$.tag) {\n case 1:\n return toString(addDays(now(), this$.fields[0] * 7), \"yyyy-MM-dd\");\n case 2:\n return toString(addMonths(now(), this$.fields[0]), \"yyyy-MM-dd\");\n case 3:\n return toString(addMonths(now(), this$.fields[0] * 3), \"yyyy-MM-dd\");\n case 4:\n return toString(addYears(now(), this$.fields[0]), \"yyyy-MM-dd\");\n default:\n return toString(addDays(now(), this$.fields[0]), \"yyyy-MM-dd\");\n }\n}\n\nexport function PeriodSpan__ToDate(this$) {\n switch (this$.tag) {\n case 1:\n return addDays(now(), this$.fields[0] * 7);\n case 2:\n return addMonths(now(), this$.fields[0]);\n case 3:\n return addMonths(now(), this$.fields[0] * 3);\n case 4:\n return addYears(now(), this$.fields[0]);\n default:\n return addDays(now(), this$.fields[0]);\n }\n}\n\nexport class PeriodType extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Span\", \"ExactDate\", \"AllTime\"];\n }\n toString() {\n const this$ = this;\n switch (this$.tag) {\n case 1: {\n const arg = toString(this$.fields[0], \"yyyy-MM-dd\");\n return toText(printf(\"til %s\"))(arg);\n }\n case 2:\n return \"All tid\";\n default:\n return toString_1(this$.fields[0]);\n }\n }\n}\n\nexport function PeriodType_$reflection() {\n return union_type(\"Shared.PeriodType\", [], PeriodType, () => [[[\"Item\", PeriodSpan_$reflection()]], [[\"Item\", class_type(\"System.DateTime\")]], []]);\n}\n\nexport function PeriodType__ToValue(this$) {\n switch (this$.tag) {\n case 1:\n return \"date\";\n case 2:\n return \"alltime\";\n default:\n return \"span\";\n }\n}\n\nexport function PeriodType__UpdateSpanLength_Z524259A4(this$, x) {\n if (this$.tag === 0) {\n const y = this$.fields[0];\n return new PeriodType(0, [(y.tag === 1) ? (new PeriodSpan(1, [x])) : ((y.tag === 2) ? (new PeriodSpan(2, [x])) : ((y.tag === 3) ? (new PeriodSpan(3, [x])) : ((y.tag === 4) ? (new PeriodSpan(4, [x])) : (new PeriodSpan(0, [x])))))]);\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__IncrementSpanLength(this$) {\n if (this$.tag === 0) {\n const y = this$.fields[0];\n return new PeriodType(0, [(y.tag === 1) ? (new PeriodSpan(1, [y.fields[0] + 1])) : ((y.tag === 2) ? (new PeriodSpan(2, [y.fields[0] + 1])) : ((y.tag === 3) ? (new PeriodSpan(3, [y.fields[0] + 1])) : ((y.tag === 4) ? (new PeriodSpan(4, [y.fields[0] + 1])) : (new PeriodSpan(0, [y.fields[0] + 1])))))]);\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__DecrementSpanLength(this$) {\n let x_1, x_2, x_3, x_4, x;\n if (this$.tag === 0) {\n const y = this$.fields[0];\n return new PeriodType(0, [(y.tag === 1) ? ((x_1 = (y.fields[0] | 0), (x_1 > 1) ? (new PeriodSpan(1, [x_1 - 1])) : (new PeriodSpan(1, [x_1])))) : ((y.tag === 2) ? ((x_2 = (y.fields[0] | 0), (x_2 > 1) ? (new PeriodSpan(2, [x_2 - 1])) : (new PeriodSpan(2, [x_2])))) : ((y.tag === 3) ? ((x_3 = (y.fields[0] | 0), (x_3 > 1) ? (new PeriodSpan(3, [x_3 - 1])) : (new PeriodSpan(3, [x_3])))) : ((y.tag === 4) ? ((x_4 = (y.fields[0] | 0), (x_4 > 1) ? (new PeriodSpan(4, [x_4 - 1])) : (new PeriodSpan(4, [x_4])))) : ((x = (y.fields[0] | 0), (x > 1) ? (new PeriodSpan(0, [x - 1])) : (new PeriodSpan(0, [x])))))))]);\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__SetExactDate_7F9DDECF(this$, x) {\n if (this$.tag === 1) {\n if (compare(date(x), today()) > 0) {\n return new PeriodType(1, [x]);\n }\n else {\n return this$;\n }\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__Morph_Z721C83C5(this$, x) {\n switch (x) {\n case \"days\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(0, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(0, [1])]);\n }\n case \"weeks\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(1, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(1, [1])]);\n }\n case \"months\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(2, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(2, [1])]);\n }\n case \"quarters\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(3, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(3, [1])]);\n }\n case \"years\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(4, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(4, [1])]);\n }\n case \"exact\":\n if (this$.tag === 1) {\n return this$;\n }\n else {\n return new PeriodType(1, [addDays(today(), 1)]);\n }\n default:\n return this$;\n }\n}\n\nexport function PeriodType__Validate(this$) {\n switch (this$.tag) {\n case 0:\n return PeriodSpan__Validate(this$.fields[0]);\n case 1:\n return compare(date(this$.fields[0]), date(addDays(now(), 1))) >= 0;\n default:\n return true;\n }\n}\n\nexport function PeriodType__ToDateString(this$) {\n switch (this$.tag) {\n case 0:\n return PeriodSpan__ToDateString(this$.fields[0]);\n case 1:\n return toString(this$.fields[0], \"yyyy-MM-dd\");\n default:\n return \"alltime\";\n }\n}\n\nexport function PeriodType__ToDate(this$) {\n switch (this$.tag) {\n case 0:\n return PeriodSpan__ToDate(this$.fields[0]);\n case 1:\n return this$.fields[0];\n default:\n return maxValue();\n }\n}\n\n","import { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { int32ToString, equals, createObj } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { ofArray } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { defaultOf } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { useFeliz_React__React_useState_Static_1505, React_createDisposable_3A5B6456, useReact_useEffect_Z5ECA432F, useReact_useRef_1505, useReact_useEffectOnce_3A5B6456 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { format, printf, toText } from \"./fable_modules/fable-library-js.4.17.0/String.js\";\nimport { empty, singleton, append, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\n\nexport function LoadingIndicator_skeleton(styles) {\n return createElement(\"div\", {\n className: \"skeleton\",\n style: createObj(styles),\n });\n}\n\nexport function LoadingIndicator_postLoadingIndicator() {\n return LoadingIndicator_skeleton(ofArray([[\"height\", 248], [\"width\", 100 + \"%\"]]));\n}\n\nexport function LoadingIndicator_loadingIndicatorSmall() {\n return createElement(\"div\", {\n className: \"loading\",\n style: {\n width: 20,\n height: 20,\n },\n });\n}\n\nexport function LoadingIndicator_loadingIndicator() {\n return createElement(\"div\", {\n className: \"loading\",\n style: {\n width: 30,\n height: 30,\n },\n });\n}\n\nexport function LoadingIndicator_assetListEntryLoading() {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-holder\"], (elems = [LoadingIndicator_skeleton(ofArray([[\"height\", \"inherit\"], [\"width\", 100 + \"%\"]]))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function Alert_alert(msg, onClose) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"alert-error\"], [\"onClick\", (_arg) => {\n onClose();\n }], (elems = [createElement(\"i\", {\n className: \"fas fa-exclamation-triangle\",\n style: {\n marginRight: 5,\n },\n }), createElement(\"span\", {\n children: [msg],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function Alert_errorAlert(errMsg, dismiss) {\n if (errMsg != null) {\n return Alert_alert(errMsg, dismiss);\n }\n else {\n return defaultOf();\n }\n}\n\nexport function Alert_SnackError(alert_SnackErrorInputProps) {\n let elems;\n const dismiss = alert_SnackErrorInputProps.dismiss;\n const errMsg = alert_SnackErrorInputProps.errMsg;\n useReact_useEffectOnce_3A5B6456(() => {\n const pr = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => ((new Promise(resolve => setTimeout(resolve, 10000))).then(() => {\n dismiss();\n return Promise.resolve();\n }))));\n pr.then();\n });\n return createElement(\"div\", createObj(ofArray([[\"className\", \"snackbar\"], [\"onClick\", (_arg_2) => {\n dismiss();\n }], (elems = [Alert_alert(errMsg, dismiss)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function Alert_snackError(errMsg, dismiss) {\n if (errMsg != null) {\n const errMsg_1 = errMsg;\n return createElement(Alert_SnackError, {\n errMsg: errMsg_1,\n dismiss: dismiss,\n });\n }\n else {\n return defaultOf();\n }\n}\n\nexport function Dialog_dialogTitle(txt) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n gap: 20 + \"px \",\n alignItems: \"center\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontSize: 1.2 + \"rem\",\n fontWeight: 500,\n },\n children: txt,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function Dialog_dialogContent(children) {\n return createElement(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: ((20 + \"px \") + 20) + \"px\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function Dialog_dialogActions(children) {\n return createElement(\"div\", {\n style: {\n display: \"flex\",\n gap: 20 + \"px \",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function Dialog_Dialog(dialog_DialogInputProps) {\n let elems_1;\n const children = dialog_DialogInputProps.children;\n const onClose = dialog_DialogInputProps.onClose;\n const ref = useReact_useRef_1505(undefined);\n const closeEffect = (event) => {\n onClose();\n };\n useReact_useEffect_Z5ECA432F(() => {\n window.addEventListener(\"onclick\", closeEffect);\n return React_createDisposable_3A5B6456(() => {\n window.removeEventListener(\"onclick\", closeEffect);\n });\n });\n return createElement(\"div\", createObj(ofArray([[\"ref\", ref], [\"className\", \"dialog-backdrop\"], [\"onClick\", (event_1) => {\n if (equals(event_1.target, ref.current)) {\n window.removeEventListener(\"onclick\", closeEffect);\n onClose();\n }\n }], (elems_1 = [createElement(\"div\", {\n className: \"dialog\",\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nexport function Tooltip_Tooltip(tooltip_TooltipInputProps) {\n let elems;\n const children = tooltip_TooltipInputProps.children;\n const txt = tooltip_TooltipInputProps.txt;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const active = patternInput[0];\n return createElement(\"div\", createObj(ofArray([[\"onClick\", (_arg) => {\n patternInput[1](!active);\n }], [\"className\", \"tooltip\"], (elems = [children, createElement(\"span\", {\n className: active ? \"tooltip-text tooltip-text-active\" : \"tooltip-text\",\n children: txt,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function Tooltip_wrapTooltip(x, y) {\n return createElement(Tooltip_Tooltip, {\n txt: x,\n children: y,\n });\n}\n\nexport function Tooltip_tooltipHeader(header, tooltipTitle) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n }], (elems = [createElement(\"span\", {\n style: {\n color: \"var(--text-main)\",\n fontStyle: \"italic\",\n paddingLeft: 7,\n },\n children: header,\n }), createElement(Tooltip_Tooltip, {\n txt: tooltipTitle,\n children: createElement(\"span\", {\n style: {\n color: \"var(--text-dim)\",\n marginLeft: 7,\n },\n className: \"fas fa-question-circle\",\n }),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function nbText(txt) {\n return createElement(\"span\", {\n style: {\n fontSize: 0.7 + \"rem\",\n fontStyle: \"italic\",\n },\n children: txt,\n });\n}\n\nexport function limitedText(txt, maxLength) {\n if (txt.length > maxLength) {\n const sub = txt.slice(0, (maxLength - 3) + 1);\n return toText(printf(\"%s...\"))(sub);\n }\n else {\n return txt;\n }\n}\n\nexport function handleNumber(num) {\n let x_1;\n if (num < 1000) {\n return int32ToString(num);\n }\n else if ((x_1 = (num | 0), (x_1 >= 1000) && (x_1 < 1000000))) {\n const y = num / 1000;\n const arg = format('{0:' + \"0.0\" + '}', y);\n return toText(printf(\"%sk\"))(arg);\n }\n else {\n const y_1 = num / 1000000;\n const arg_1 = format('{0:' + \"0.0\" + '}', y_1);\n return toText(printf(\"%sm\"))(arg_1);\n }\n}\n\nexport function textCounter(num, maxNum) {\n return createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n fontStyle: \"italic\",\n color: (num > maxNum) ? \"#cc3608\" : \"#bababa\",\n textAlign: \"left\",\n },\n children: toText(printf(\"%i/%i\"))(num)(maxNum),\n });\n}\n\nexport function smallIconButton(className, onClick) {\n let elems;\n return createElement(\"button\", createObj(ofArray([[\"style\", {\n cursor: \"pointer\",\n margin: 0,\n marginRight: 4,\n padding: 0,\n border: \"none\",\n background: \"none\",\n height: 18,\n width: 18,\n }], [\"onClick\", onClick], (elems = [createElement(\"i\", {\n className: className,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function pillButtonSmall(styles, title, onClick) {\n let elems;\n return createElement(\"button\", createObj(ofArray([[\"className\", \"pill-button-small\"], [\"style\", createObj(styles)], [\"onClick\", onClick], (elems = [createElement(\"span\", {\n style: {\n textAlign: \"center\",\n },\n children: title,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function pillButton(styles, title, onClick) {\n return createElement(\"button\", {\n onClick: onClick,\n className: \"pill-button\",\n children: title,\n });\n}\n\nexport function groupButtonLeft(isActive, onClick, children) {\n return createElement(\"button\", {\n className: isActive ? \"grouped-button-left grouped-button-active\" : \"grouped-button-left\",\n onClick: onClick,\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function groupButtonCenter(isActive, onClick, children) {\n return createElement(\"button\", {\n className: isActive ? \"grouped-button-center grouped-button-active\" : \"grouped-button-center\",\n onClick: onClick,\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function groupButtonRight(isActive, onClick, children) {\n return createElement(\"button\", {\n className: isActive ? \"grouped-button-right grouped-button-active\" : \"grouped-button-right\",\n onClick: onClick,\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function assetListHolder(children) {\n return createElement(\"div\", {\n style: {\n marginBottom: 15,\n marginRight: 15,\n maxWidth: 300,\n },\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function assetListEntry(ticker, name, link) {\n let elems_2, elems, elems_1;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-holder\"], (elems_2 = [createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-name\"], (elems = [createElement(\"a\", {\n href: link,\n children: name,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-ticker\"], (elems_1 = [createElement(\"a\", {\n href: link,\n children: ticker,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n}\n\nexport function Image_avatar(src, size) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"user-avatar\"], [\"style\", {\n width: size + \"px\",\n height: size + \"px\",\n }], (elems = [createElement(\"img\", {\n alt: \"User image\",\n src: src,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function Image_iconAvatar(size, icon) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"user-avatar\"], [\"style\", {\n width: size + \"px\",\n height: size + \"px\",\n }], (elems = [createElement(\"i\", {\n className: icon,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function Image_userCircle(userId, size, isLarge, randHash) {\n let arg_1, arg_2;\n return Image_avatar((arg_1 = (isLarge ? \"normal\" : \"small\"), (arg_2 = ((randHash != null) ? (`&r=${randHash}`) : \"\"), toText(printf(\"/api/user/image/%i?size=%s%s\"))(userId)(arg_1)(arg_2))), size);\n}\n\nexport function Image_circledImage(size, imgUrl) {\n return Image_avatar(imgUrl, size);\n}\n\nexport function User_usernameText(x, postRemoved) {\n if (!postRemoved) {\n const xs_3 = toList(delay(() => append(singleton(createElement(\"a\", {\n href: `/user/${x.Username}`,\n children: createElement(\"span\", {\n style: {\n color: \"var(--bg-dark)\",\n fontWeight: 500,\n },\n children: x.Username,\n }),\n })), delay(() => (x.Official ? singleton(createElement(\"span\", {\n style: {\n marginLeft: 5,\n color: \"var(--text-main)\",\n fontSize: 0.8 + \"rem\",\n },\n className: \"fas fa-shield-alt\",\n })) : empty())))));\n return react.createElement(react.Fragment, {}, ...xs_3);\n }\n else {\n return createElement(\"span\", {\n children: x.Username,\n });\n }\n}\n\n","import { toString, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, union_type, int32_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { ReportReason, ReportReason__ToInt, ReportReason_AsArray } from \"../Shared/Shared.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { GenericResponse_$reflection, ReportForm_$reflection, ReportForm } from \"../Shared/ApiDataTypes.js\";\nimport { Dialog_dialogActions, Alert_errorAlert, Dialog_dialogContent, Dialog_dialogTitle, Dialog_Dialog } from \"../ViewHelpers.js\";\nimport { empty as empty_1, singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { uncurry2, createObj } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { cons, empty, singleton as singleton_1, ofArray } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { TextField, MenuItem, Select, InputLabel, FormControl } from \"@mui/material\";\nimport { map } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { map as map_1, defaultArg, some, unwrap } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { FetchError } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString as toString_1 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\n\nexport class ReportObject extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"AssetReview\", \"AssetReviewComment\", \"AssetPost\", \"AssetPostComment\", \"User\"];\n }\n toString() {\n const this$ = this;\n return (this$.tag === 1) ? \"analysekommentar\" : ((this$.tag === 2) ? \"innlegg\" : ((this$.tag === 3) ? \"kommentar\" : ((this$.tag === 4) ? \"bruker\" : \"analyse\")));\n }\n}\n\nexport function ReportObject_$reflection() {\n return union_type(\"Investfora.ReportForm.ReportObject\", [], ReportObject, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]]]);\n}\n\nexport function ReportObject__ReportReasons(this$) {\n return ReportReason_AsArray();\n}\n\nexport function ReportObject__ReportUrl(this$) {\n switch (this$.tag) {\n case 1:\n return `/api/review/reply/report/${this$.fields[0]}`;\n case 2:\n return `/api/asset/post/report/${this$.fields[0]}`;\n case 3:\n return `/api/asset/post/reply/report/${this$.fields[0]}`;\n case 4:\n return `/api/user/report/${this$.fields[0]}`;\n default:\n return `/api/review/report/${this$.fields[0]}`;\n }\n}\n\nexport function Report(reportInputProps) {\n const onClose = reportInputProps.onClose;\n const target = reportInputProps.target;\n const patternInput = useFeliz_React__React_useState_Static_1505({\n Processing: false,\n Reported: false,\n });\n const updateState = patternInput[1];\n const state = patternInput[0];\n let patternInput_2;\n const patternInput_1 = (target.tag === 1) ? [\"review-comment\", target.fields[0]] : ((target.tag === 2) ? [\"asset-post\", target.fields[0]] : ((target.tag === 3) ? [\"asset-post-comment\", target.fields[0]] : ((target.tag === 4) ? [\"user\", target.fields[0]] : [\"review\", target.fields[0]])));\n patternInput_2 = useFeliz_React__React_useState_Static_1505(new ReportForm(patternInput_1[0], patternInput_1[1], ReportReason__ToInt(new ReportReason(0, [])), \"\"));\n const reportForm = patternInput_2[0];\n return createElement(Dialog_Dialog, {\n onClose: onClose,\n children: ofArray([Dialog_dialogTitle(`Rapporter ${toString(target)}`), Dialog_dialogContent(toList(delay(() => {\n let elems, elements, elems_1;\n return append(state.Reported ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n width: 100 + \"%\",\n }], (elems = [createElement(\"span\", {\n children: [\"Rapporteringen er mottatt\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))) : append(singleton(MuiHelpers_createElement(FormControl, [[\"fullWidth\", true], [\"style\", {\n marginBottom: 10,\n }], (elements = [MuiHelpers_createElement(InputLabel, [[\"id\", \"reason-select-label-id\"], [\"children\", \"Begrunnelse\"]]), MuiHelpers_createElement(Select, [[\"variant\", \"standard\"], [\"labelId\", \"reason-select-label-id\"], [\"label\", \"Begrunnelse\"], [\"fullWidth\", true], [\"onChange\", (e_1, _arg_3) => {\n patternInput_2[1](new ReportForm(reportForm.Target, reportForm.TargetId, e_1.target.value, reportForm.Comment));\n }], [\"value\", reportForm.Reason], (elems_1 = map((rr) => MuiHelpers_createElement(MenuItem, [[\"value\", ReportReason__ToInt(rr)], [\"children\", toString(rr)]]), ReportObject__ReportReasons(target)), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elements))])])), delay(() => singleton(MuiHelpers_createElement(TextField, [[\"fullWidth\", true], [\"multiline\", true], [\"label\", \"Kommentar (valgfritt)\"], [\"variant\", \"outlined\"], [\"size\", \"small\"], [\"rows\", 5]])))), delay(() => singleton(Alert_errorAlert(state.ErrorMsg, () => {\n updateState({\n Processing: state.Processing,\n Reported: state.Reported,\n });\n }))));\n }))), Dialog_dialogActions(toList(delay(() => {\n let elems_3;\n return append(singleton(createElement(\"button\", createObj(ofArray([[\"className\", \"pill-button-small\"], [\"onClick\", (_arg_5) => {\n onClose();\n }], (elems_3 = [createElement(\"span\", {\n style: {\n marginRight: 5,\n },\n className: \"fas fa-times\",\n }), \"Avbryt\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))), delay(() => {\n let elems_4;\n return !state.Reported ? singleton(createElement(\"button\", createObj(ofArray([[\"className\", \"pill-button-small\"], [\"onClick\", (_arg_6) => {\n if (!state.Processing) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n updateState({\n ErrorMsg: unwrap(state.ErrorMsg),\n Processing: true,\n Reported: state.Reported,\n });\n const requestPath = ReportObject__ReportUrl(target);\n return ((body = Auto_generateBoxedEncoder_437914C6(ReportForm_$reflection(), undefined, undefined, undefined)(reportForm), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton_1(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString_1(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n const res = _arg_2;\n if (res.tag === 0) {\n const x_1 = res.fields[0];\n if (x_1.Result === \"success\") {\n updateState({\n ErrorMsg: unwrap(state.ErrorMsg),\n Processing: false,\n Reported: true,\n });\n return Promise.resolve();\n }\n else {\n updateState({\n ErrorMsg: x_1.Message,\n Processing: false,\n Reported: state.Reported,\n });\n return Promise.resolve();\n }\n }\n else {\n updateState({\n ErrorMsg: \"Kunne ikke registrere rapportering. Vennligst prøv igjen senere.\",\n Processing: state.Processing,\n Reported: state.Reported,\n });\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n }\n }], (elems_4 = [createElement(\"span\", {\n style: {\n marginRight: 5,\n },\n className: \"fas fa-flag\",\n }), \"Rapporter\"], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))) : empty_1();\n }));\n })))]),\n });\n}\n\n","import { Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { union_type, string_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { join, replace, substring } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { map, empty, singleton, append } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { useReact_useMemo_10C6A43C } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\n\nclass ContentElement extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Text\", \"Link\"];\n }\n}\n\nfunction ContentElement_$reflection() {\n return union_type(\"ContentParser.ContentElement\", [], ContentElement, () => [[[\"Item\", string_type]], [[\"Item1\", string_type], [\"Item2\", string_type]]]);\n}\n\nfunction tryGetLink(x, tagStart, tagEnd) {\n const hrefOpen = (tagEnd + 1) | 0;\n const hrefClose = x.indexOf(\")\") | 0;\n const tagDiff = (tagEnd - tagStart) | 0;\n if ((hrefClose - hrefOpen) < 2) {\n return undefined;\n }\n else {\n const href = substring(x, hrefOpen + 1, (hrefClose - hrefOpen) - 1);\n const text = substring(x, tagStart + 1, tagDiff - 1);\n if (!((!(href.indexOf(\"(\") >= 0) && !(href.indexOf(\" \") >= 0)) && !(href.indexOf(\"\\n\") >= 0))) {\n return undefined;\n }\n else {\n return [new ContentElement(1, [href, text]), hrefClose];\n }\n }\n}\n\nfunction parseTag(x) {\n if (x.length === 0) {\n return undefined;\n }\n else if (!(x.indexOf(\"]\") >= 0)) {\n return undefined;\n }\n else {\n const closeIdx = x.indexOf(\"]\") | 0;\n const openIdx = x.indexOf(\"[\") | 0;\n const diff = (closeIdx - openIdx) | 0;\n if ((diff < 2) ? true : (closeIdx > x.length)) {\n return undefined;\n }\n else {\n const beforeOpen = (openIdx > 0) ? (new ContentElement(0, [substring(x, 0, openIdx)])) : undefined;\n const afterOpen = substring(x, openIdx, x.length - openIdx);\n if (afterOpen[diff + 1] === \"(\") {\n const matchValue = tryGetLink(afterOpen, 0, diff);\n if (matchValue != null) {\n return [matchValue[0], openIdx + matchValue[1], beforeOpen];\n }\n else {\n return undefined;\n }\n }\n else {\n return undefined;\n }\n }\n }\n}\n\nfunction parseNext(x_mut, y_mut, iter_mut) {\n parseNext:\n while (true) {\n const x = x_mut, y = y_mut, iter = iter_mut;\n if (!((x.indexOf(\"[\") >= 0) && (x.indexOf(\"]\") >= 0)) ? true : (iter > 100)) {\n return append(y, singleton(new ContentElement(0, [x])));\n }\n else {\n const matchValue = parseTag(x);\n if (matchValue != null) {\n const t = matchValue[0];\n const closeIdx = matchValue[1] | 0;\n const beforeTag = matchValue[2];\n const newList = (beforeTag != null) ? append(y, append(singleton(beforeTag), singleton(t))) : append(y, singleton(t));\n const remaining = (x.length - closeIdx) | 0;\n if (remaining < 3) {\n return append(newList, singleton(new ContentElement(0, [substring(x, closeIdx + 1, remaining - 1)])));\n }\n else {\n x_mut = substring(x, closeIdx + 1, remaining - 1);\n y_mut = newList;\n iter_mut = (iter + 1);\n continue parseNext;\n }\n }\n else {\n return append(y, singleton(new ContentElement(0, [x])));\n }\n }\n break;\n }\n}\n\nfunction parseContent(x) {\n return parseNext(replace(replace(x, \">\", \">\"), \"<\", \"<\"), empty(), 0);\n}\n\nexport function parseAsReactElements(x) {\n const xs_1 = map((y) => {\n if (y.tag === 1) {\n return createElement(\"a\", {\n href: y.fields[0],\n target: \"_blank\",\n className: \"post-link\",\n children: y.fields[1],\n });\n }\n else {\n return y.fields[0];\n }\n }, parseContent(x));\n return react.createElement(react.Fragment, {}, ...xs_1);\n}\n\nexport function parseAsHtmlString(x) {\n return replace(join(\"\", map((y) => {\n if (y.tag === 1) {\n return `${y.fields[1]}`;\n }\n else {\n return y.fields[0];\n }\n }, parseContent(x))), \"\\n\", \"
\");\n}\n\nexport function Content(contentInputProps) {\n const content = contentInputProps.content;\n const patternInput = useReact_useMemo_10C6A43C(() => [parseAsReactElements(content), [content]]);\n return createElement(\"div\", {\n style: {\n whiteSpace: \"pre-wrap\",\n overflowX: \"hidden\",\n },\n children: Interop_reactApi.Children.toArray([patternInput[0]]),\n });\n}\n\n","import { toString, Record } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { record_type, class_type, string_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { createObj, defaultOf, equals } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { empty, singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { pillButtonSmall, Dialog_dialogActions, Dialog_dialogContent, Dialog_dialogTitle, Dialog_Dialog, smallIconButton } from \"../ViewHelpers.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { empty as empty_1, ofArray } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { TextField } from \"@mui/material\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { some } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\n\nclass LinkForm extends Record {\n constructor(Text$, Link, Target) {\n super();\n this.Text = Text$;\n this.Link = Link;\n this.Target = Target;\n }\n}\n\nfunction LinkForm_$reflection() {\n return record_type(\"Investfora.CommentForm.LinkForm\", [], LinkForm, () => [[\"Text\", string_type], [\"Link\", string_type], [\"Target\", class_type(\"Browser.Types.Range\")]]);\n}\n\nfunction getSelectedText(formId) {\n let lowered;\n const parent = document.getElementById(formId);\n if (equals(parent, defaultOf())) {\n return undefined;\n }\n else {\n const parentNode = parent;\n const matchValue = window.getSelection();\n if (equals(matchValue, defaultOf())) {\n return undefined;\n }\n else {\n const x = matchValue;\n if (parentNode.contains(x.anchorNode) && parentNode.contains(x.focusNode)) {\n const y = toString(x);\n if ((x.rangeCount > 0) && (y.length > 0)) {\n const range = x.getRangeAt(0);\n return new LinkForm(y, (lowered = y.trim().toLocaleLowerCase(), ((lowered.indexOf(\"https://\") === 0) ? true : (lowered.indexOf(\"http://\") === 0)) ? y.trim() : \"\"), range);\n }\n else {\n return new LinkForm(y, y, x.getRangeAt(0));\n }\n }\n else {\n const r = new Range();\n if (!(parentNode.lastChild == null)) {\n r.setStart(parentNode.lastChild, parentNode.lastChild.childNodes.length);\n r.setEnd(parentNode.lastChild, parentNode.lastChild.childNodes.length);\n }\n else {\n const dummyNode = document.createElement(\"div\");\n parentNode.appendChild(dummyNode);\n r.setStart(parentNode.lastChild, 0);\n r.setEnd(parentNode.lastChild, 0);\n }\n return new LinkForm(\"\", \"\", r);\n }\n }\n }\n}\n\nfunction validateLink(x) {\n const x_1 = x.trim().toLocaleLowerCase();\n if ((((x_1.indexOf(\"http://\") === 0) ? true : (x_1.indexOf(\"https://\") === 0)) && (x_1.length > 9)) && (x_1.indexOf(\".\") >= 0)) {\n return x_1;\n }\n else {\n return undefined;\n }\n}\n\nfunction insertLink(formId, onAdd, x) {\n const linkText = (x.Text.trim().length === 0) ? x.Link : x.Text;\n const a$0027 = document.createElement(\"a\");\n a$0027.setAttribute(\"href\", x.Link);\n a$0027.setAttribute(\"target\", \"_blank\");\n a$0027.setAttribute(\"class\", \"post-link\");\n a$0027.innerText = linkText;\n x.Target.deleteContents();\n x.Target.insertNode(a$0027);\n try {\n const x_1 = document.getElementById(formId);\n if (!(x_1 == null)) {\n onAdd(x_1.innerHTML);\n }\n }\n catch (matchValue) {\n }\n}\n\nfunction tools(formId, onAdd, onImageSelect) {\n let elems_1;\n const patternInput = useFeliz_React__React_useState_Static_1505(undefined);\n const updateLinkForm = patternInput[1];\n const linkForm = patternInput[0];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(true);\n const setValidLink = patternInput_1[1];\n const commitLink = () => {\n if (linkForm != null) {\n const lf = linkForm;\n const matchValue = validateLink(lf.Link);\n if (matchValue != null) {\n const l = matchValue;\n setValidLink(true);\n insertLink(formId, onAdd, new LinkForm(lf.Text, l, lf.Target));\n updateLinkForm(undefined);\n }\n else {\n setValidLink(false);\n }\n }\n };\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n borderBottom: (((1 + \"px \") + \"solid\") + \" \") + \"#e6e6e6\",\n padding: 5,\n backgroundColor: \"#f1f1f1\",\n }], (elems_1 = toList(delay(() => {\n let elems;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n marginRight: 10,\n }], (elems = [smallIconButton(\"fas fa-link\", (_arg) => {\n if (linkForm != null) {\n updateLinkForm(undefined);\n }\n else {\n updateLinkForm(getSelectedText(formId));\n }\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let matchValue_1, imgSelect;\n return append((matchValue_1 = onImageSelect, (matchValue_1 != null) ? ((imgSelect = matchValue_1, singleton(smallIconButton(\"fas fa-image\", (_arg_1) => {\n })))) : (empty())), delay(() => ((linkForm != null) ? singleton(createElement(Dialog_Dialog, {\n onClose: () => {\n updateLinkForm(undefined);\n },\n children: ofArray([Dialog_dialogTitle(\"Legg til lenke\"), Dialog_dialogContent(ofArray([MuiHelpers_createElement(TextField, [[\"autoFocus\", true], [\"fullWidth\", true], [\"label\", \"URL\"], [\"size\", \"small\"], [\"variant\", \"standard\"], [\"defaultValue\", (linkForm == null) ? \"\" : linkForm.Link], [\"onChange\", (e) => {\n const x_2 = e.target.value;\n if (linkForm != null) {\n const y = linkForm;\n updateLinkForm(new LinkForm(y.Text, x_2, y.Target));\n }\n }], [\"onTouchStart\", (e_1) => {\n e_1.preventDefault();\n }], [\"inputProps\", {\n style: {\n fontSize: 14 + \"px\",\n },\n }], [\"error\", !patternInput_1[0]], [\"onKeyUp\", (kc) => {\n if (kc.key === \"Enter\") {\n commitLink();\n }\n }]]), MuiHelpers_createElement(TextField, [[\"fullWidth\", true], [\"label\", \"Tekst\"], [\"size\", \"small\"], [\"variant\", \"standard\"], [\"defaultValue\", (linkForm == null) ? \"\" : linkForm.Text], [\"onChange\", (e_2) => {\n const x_4 = e_2.target.value;\n if (linkForm != null) {\n const y_1 = linkForm;\n updateLinkForm(new LinkForm(x_4, y_1.Link, y_1.Target));\n }\n }], [\"onTouchStart\", (e_3) => {\n e_3.preventDefault();\n }], [\"inputProps\", {\n style: {\n fontSize: 14 + \"px\",\n },\n }], [\"onKeyUp\", (kc_1) => {\n if (kc_1.key === \"Enter\") {\n commitLink();\n }\n }]])])), Dialog_dialogActions(ofArray([pillButtonSmall(ofArray([[\"backgroundColor\", \"var(--bg-main)\"], [\"color\", \"var(--text-main)\"]]), \"Avbryt\", (_arg_3) => {\n updateLinkForm(undefined);\n }), pillButtonSmall(empty_1(), \"Legg til\", (_arg_4) => {\n commitLink();\n })]))]),\n })) : empty())));\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nfunction textInput(formId, html, emitChange) {\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const emit = (x) => {\n emitChange(x.target.innerHTML);\n };\n return createElement(\"div\", {\n id: formId,\n contentEditable: true,\n onInput: emit,\n onPaste: (arg) => {\n emit(arg);\n },\n onBlur: (arg_1) => {\n emit(arg_1);\n },\n style: {\n textAlign: \"left\",\n padding: 5,\n fontSize: 14 + \"px\",\n whiteSpace: \"pre-wrap\",\n },\n onFocus: (p) => {\n p.target.innerHTML = html;\n },\n });\n}\n\nexport function CommentForm(commentFormInputProps) {\n let elems;\n const onImageSelect = commentFormInputProps.onImageSelect;\n const onChange = commentFormInputProps.onChange;\n const html = commentFormInputProps.html;\n const formId = commentFormInputProps.formId;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e6e6e6\",\n }], (elems = [tools(formId, onChange, onImageSelect), textInput(formId, html, onChange)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function trySetContent(formId, html) {\n const pr = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => ((new Promise(resolve => setTimeout(resolve, 500))).then(() => (PromiseBuilder__Delay_62FBFDE1(promise, () => {\n const x = document.getElementById(formId);\n if (!(x == null)) {\n console.log(some(\"Setting inner html\"));\n x.innerHTML = html;\n return Promise.resolve();\n }\n else {\n console.log(some(\"is null\"));\n return Promise.resolve();\n }\n }).catch((_arg_1) => {\n return Promise.resolve();\n }))))));\n pr.then();\n}\n\n","import { createElement } from \"react\";\nimport React from \"react\";\nimport { useReact_useEffectOnce_3A5B6456, useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { parseAsHtmlString } from \"./ContentParser.js\";\nimport { CommentForm, trySetContent } from \"./CommentForm.js\";\nimport { uncurry2, createObj } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { printf, toText } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { obj_type, string_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { Post_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { unwrap, map, defaultArg, some } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { FetchError } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { cons, ofArray, empty, singleton } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { Alert_errorAlert } from \"../ViewHelpers.js\";\n\nexport function EditForm(editFormInputProps) {\n let elems_1, elems;\n const onClose = editFormInputProps.onClose;\n const post = editFormInputProps.post;\n const patternInput = useFeliz_React__React_useState_Static_1505(parseAsHtmlString(post.Content));\n const content = patternInput[0];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(undefined);\n const setError = patternInput_1[1];\n const formId = `edit-${post.Type}-${post.Id}`;\n useReact_useEffectOnce_3A5B6456(() => {\n trySetContent(formId, content);\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_1 = [createElement(CommentForm, {\n formId: formId,\n html: content,\n onChange: patternInput[1],\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"flex-end\",\n paddingTop: 5,\n }], (elems = [createElement(\"button\", {\n className: \"pill-button-small\",\n style: {\n marginRight: 10,\n },\n children: \"Avbryt\",\n onClick: (_arg_4) => {\n onClose(undefined);\n },\n }), createElement(\"button\", {\n className: \"pill-button-small\",\n children: \"Lagre endringer\",\n onClick: (_arg_5) => {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n let requestPath;\n const matchValue = post.Type;\n requestPath = ((matchValue === \"asset-post\") ? toText(printf(\"/api/asset/post/%i\"))(post.Id) : ((matchValue === \"review\") ? toText(printf(\"/api/review/%i\"))(post.Id) : \"\"));\n return (requestPath !== \"\") ? (((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(content), (decoder = Auto_generateBoxedDecoder_Z6670B51(Post_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"PUT\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Post_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue_1;\n return Promise.resolve((matchValue_1 = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue_1.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_1.fields[0]])])) : (new FSharpResult$2(0, [matchValue_1.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg_2) => (new FSharpResult$2(1, [new FetchError(3, [arg_2])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n const res = _arg_2;\n if (res.tag === 1) {\n setError(\"Could not update post\");\n return Promise.resolve();\n }\n else {\n onClose(res.fields[0].Content);\n return Promise.resolve();\n }\n })) : (Promise.resolve());\n }));\n pr_1.then();\n },\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), Alert_errorAlert(patternInput_1[0], () => {\n setError(undefined);\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, option_type, bool_type, string_type, array_type, union_type, int32_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { ReplyForm_$reflection, ReplyForm as ReplyForm_1, Reply, RepliesResponse_$reflection, GenericResponse_$reflection, Reply_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { utcStringToLocalTimeSpan, checkError, updateInputField, tryFocusInput } from \"../Utils.js\";\nimport { map, append, sortBy } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { int32ToString, createObj, uncurry2, comparePrimitives } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { unwrap, map as map_1, defaultArg, some } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { cons, ofArray, empty, singleton } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { Alert_snackError, User_usernameText, pillButtonSmall, Dialog_dialogActions, Dialog_dialogContent, Dialog_Dialog } from \"../ViewHelpers.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { toArray, empty as empty_1, singleton as singleton_1, append as append_1, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { StockRating, StockRating__ToColorCode } from \"../Shared/Shared.js\";\nimport { Content } from \"./ContentParser.js\";\nimport { CommentForm } from \"./CommentForm.js\";\nimport { Report, ReportObject } from \"./ReportForm.js\";\nimport { useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\n\nexport class ParentContent extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"AssetReview\", \"AssetPost\"];\n }\n}\n\nexport function ParentContent_$reflection() {\n return union_type(\"Investfora.Replies.ParentContent\", [], ParentContent, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]]]);\n}\n\nexport function ParentContent__ReplyFieldId(this$) {\n if (this$.tag === 1) {\n return `reply-asset-post-${this$.fields[0]}`;\n }\n else {\n return `reply-review-${this$.fields[0]}`;\n }\n}\n\nexport function ParentContent__ToReplyUrl(this$) {\n if (this$.tag === 1) {\n return \"/api/asset/post/reply\";\n }\n else {\n return \"/api/review/reply\";\n }\n}\n\nexport function ParentContent__ToUpvoteUrl_1505(this$, replyId) {\n if (this$.tag === 1) {\n return `/api/asset/post/reply/upvote/${replyId}`;\n }\n else {\n return `/api/review/reply/upvote/${replyId}`;\n }\n}\n\nexport function ParentContent__ToDownvoteUrl_1505(this$, replyId) {\n if (this$.tag === 1) {\n return `/api/asset/post/reply/downvote/${replyId}`;\n }\n else {\n return `/api/review/reply/downvote/${replyId}`;\n }\n}\n\nexport function ParentContent__ToLoadAllUrl(this$) {\n if (this$.tag === 1) {\n return `/api/asset/post/replies/${this$.fields[0]}`;\n }\n else {\n return `/api/review/reply/review/${this$.fields[0]}`;\n }\n}\n\nexport function ParentContent__ToDeleteUrl_1505(this$, replyId) {\n if (this$.tag === 1) {\n return `/api/asset/post/reply/delete/${replyId}`;\n }\n else {\n return `/api/review/reply/delete/${replyId}`;\n }\n}\n\nclass Model extends Record {\n constructor(Parent, Replies, NumReplies, ReplyForm, FormActive, Processing, DeleteForm, ReportForm, ErrorMsg) {\n super();\n this.Parent = Parent;\n this.Replies = Replies;\n this.NumReplies = (NumReplies | 0);\n this.ReplyForm = ReplyForm;\n this.FormActive = FormActive;\n this.Processing = Processing;\n this.DeleteForm = DeleteForm;\n this.ReportForm = ReportForm;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Replies.Model\", [], Model, () => [[\"Parent\", ParentContent_$reflection()], [\"Replies\", array_type(Reply_$reflection())], [\"NumReplies\", int32_type], [\"ReplyForm\", string_type], [\"FormActive\", bool_type], [\"Processing\", bool_type], [\"DeleteForm\", option_type(Reply_$reflection())], [\"ReportForm\", option_type(Reply_$reflection())], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"ToggleFormActive\", \"UpdateReply\", \"PublishReply\", \"ReplyResponse\", \"Upvote\", \"Downvote\", \"UpvoteResponse\", \"DownvoteResponse\", \"AllResponse\", \"DeleteReply\", \"AbortDelete\", \"CommitDelete\", \"DeleteResponse\", \"ReportReply\", \"AbortReport\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Replies.Message\", [], Message, () => [[], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Reply_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Reply_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [RepliesResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", RepliesResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", Reply_$reflection()]], [], [[\"Item\", Reply_$reflection()]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Reply_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Reply_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", Reply_$reflection()]], [], []]);\n}\n\nfunction init(parent, replies, numReplies) {\n return new Model(parent, replies, numReplies, \"\", false, false, undefined, undefined, undefined);\n}\n\nfunction tryAutoFocus(parent) {\n const pr = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => ((new Promise(resolve => setTimeout(resolve, 300))).then(() => {\n tryFocusInput(ParentContent__ReplyFieldId(parent));\n return Promise.resolve();\n }))));\n pr.then();\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 0: {\n if (!model.FormActive) {\n tryAutoFocus(model.Parent);\n }\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, !model.FormActive, model.Processing, model.DeleteForm, model.ReportForm, model.ErrorMsg);\n }\n case 1:\n return new Model(model.Parent, model.Replies, model.NumReplies, msg.fields[0], model.FormActive, model.Processing, model.DeleteForm, model.ReportForm, model.ErrorMsg);\n case 2:\n if (model.ReplyForm.length > 0) {\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, model.FormActive, true, model.DeleteForm, model.ReportForm, model.ErrorMsg);\n }\n else {\n return model;\n }\n case 3: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n const err = res.fields[0];\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, model.FormActive, false, model.DeleteForm, model.ReportForm, (err.tag === 2) ? (((err.fields[0].status) === 429) ? \"Du er midlertidig sperret fra å kommentere for å ha publisert for mange innlegg over en kort tidsperiode.\" : \"Kunne ikke publisere kommentar.\") : \"Kunne ikke publisere kommentar.\");\n }\n else {\n const newReplies = sortBy((x_2) => x_2.Id, append([res.fields[0]], model.Replies), {\n Compare: comparePrimitives,\n });\n updateInputField(ParentContent__ReplyFieldId(model.Parent), \"\");\n return new Model(model.Parent, newReplies, model.NumReplies, \"\", false, false, model.DeleteForm, model.ReportForm, model.ErrorMsg);\n }\n }\n case 4:\n return new Model(model.Parent, map((x_4) => {\n let matchValue;\n if (x_4.Id !== msg.fields[0]) {\n return x_4;\n }\n else {\n return new Reply(x_4.Id, x_4.ParentId, x_4.Content, (matchValue = (x_4.VoteState | 0), (matchValue === -1) ? (x_4.Votes + 2) : ((matchValue === 1) ? x_4.Votes : (x_4.Votes + 1))), x_4.NumVotes, x_4.User, x_4.IsMine, x_4.Published, 1, x_4.Removed);\n }\n }, model.Replies), model.NumReplies, model.ReplyForm, model.FormActive, model.Processing, model.DeleteForm, model.ReportForm, model.ErrorMsg);\n case 5:\n return new Model(model.Parent, map((x_5) => {\n let matchValue_1;\n if (x_5.Id !== msg.fields[0]) {\n return x_5;\n }\n else {\n return new Reply(x_5.Id, x_5.ParentId, x_5.Content, (matchValue_1 = (x_5.VoteState | 0), (matchValue_1 === -1) ? x_5.Votes : ((matchValue_1 === 1) ? (x_5.Votes - 2) : (x_5.Votes - 1))), x_5.NumVotes, x_5.User, x_5.IsMine, x_5.Published, -1, x_5.Removed);\n }\n }, model.Replies), model.NumReplies, model.ReplyForm, model.FormActive, model.Processing, model.DeleteForm, model.ReportForm, model.ErrorMsg);\n case 8: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 0) {\n const x_6 = res_1.fields[0];\n return new Model(model.Parent, x_6.Replies, x_6.Replies.length, model.ReplyForm, model.FormActive, model.Processing, model.DeleteForm, model.ReportForm, model.ErrorMsg);\n }\n else {\n return model;\n }\n }\n case 9:\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, model.FormActive, model.Processing, msg.fields[0], model.ReportForm, model.ErrorMsg);\n case 10:\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, model.FormActive, model.Processing, undefined, model.ReportForm, model.ErrorMsg);\n case 12: {\n const res_2 = msg.fields[0];\n if (res_2.tag === 1) {\n checkError(res_2.fields[0]);\n return model;\n }\n else {\n const newRepliesList_2 = model.Replies.filter((y_1) => (y_1.Id !== res_2.fields[0].Id));\n return new Model(model.Parent, newRepliesList_2, newRepliesList_2.length, model.ReplyForm, model.FormActive, model.Processing, undefined, model.ReportForm, model.ErrorMsg);\n }\n }\n case 13:\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, model.FormActive, model.Processing, model.DeleteForm, msg.fields[0], model.ErrorMsg);\n case 14:\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, model.FormActive, model.Processing, model.DeleteForm, undefined, model.ErrorMsg);\n case 6: {\n const res_3 = msg.fields[0];\n if (res_3.tag === 1) {\n checkError(res_3.fields[0]);\n return model;\n }\n else {\n return model;\n }\n }\n case 7: {\n const res_4 = msg.fields[0];\n if (res_4.tag === 1) {\n checkError(res_4.fields[0]);\n return model;\n }\n else {\n return model;\n }\n }\n case 15:\n return new Model(model.Parent, model.Replies, model.NumReplies, model.ReplyForm, model.FormActive, model.Processing, model.DeleteForm, model.ReportForm, undefined);\n default:\n return model;\n }\n}\n\nfunction postReply(parent, reply, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n dispatch(new Message(2, [reply]));\n if (reply.length > 0) {\n const requestPath = ParentContent__ToReplyUrl(parent);\n const replyForm = new ReplyForm_1((parent.tag === 1) ? parent.fields[0] : parent.fields[0], reply);\n return ((body = Auto_generateBoxedEncoder_437914C6(ReplyForm_$reflection(), undefined, undefined, undefined)(replyForm), (decoder = Auto_generateBoxedDecoder_Z6670B51(Reply_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Reply_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(3, [_arg_2]));\n return Promise.resolve();\n });\n }\n else {\n return Promise.resolve();\n }\n }));\n pr_1.then();\n}\n\nfunction upvote(parent, replyId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n dispatch(new Message(4, [replyId]));\n const requestPath = ParentContent__ToUpvoteUrl_1505(parent, replyId);\n return ((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(\"\"), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(6, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction downvote(parent, replyId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n dispatch(new Message(5, [replyId]));\n const requestPath = ParentContent__ToDownvoteUrl_1505(parent, replyId);\n return ((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(\"\"), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(7, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchAll(parent, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const requestPath = ParentContent__ToLoadAllUrl(parent);\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(RepliesResponse_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(RepliesResponse_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(8, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction deleteReply(parent, replyId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n const requestPath = ParentContent__ToDeleteUrl_1505(parent, replyId);\n return ((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(\"\"), (decoder = Auto_generateBoxedDecoder_Z6670B51(Reply_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Reply_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(12, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction drawDeleteForm(dispatch, deleteForm) {\n return createElement(Dialog_Dialog, {\n onClose: () => {\n dispatch(new Message(10, []));\n },\n children: ofArray([Dialog_dialogContent(singleton(createElement(\"p\", {\n children: [\"Er du sikker på at du ønsker å slette denne kommentaren?\"],\n }))), Dialog_dialogActions(ofArray([pillButtonSmall(empty(), \"Nei\", (_arg_1) => {\n dispatch(new Message(10, []));\n }), pillButtonSmall(empty(), \"Ja\", (_arg_2) => {\n dispatch(new Message(11, [deleteForm]));\n })]))]),\n });\n}\n\nfunction replyHeader(reply) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"reply-header\"], (elems = [User_usernameText(reply.User, reply.Removed), createElement(\"span\", {\n style: {\n color: \"#888\",\n marginLeft: 5,\n marginRight: 5,\n fontSize: 0.8 + \"rem\",\n },\n children: \"-\",\n }), createElement(\"span\", {\n style: {\n color: \"#888\",\n fontStyle: \"italic\",\n fontSize: 0.8 + \"rem\",\n },\n children: utcStringToLocalTimeSpan(reply.Published),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction replyFooter(model, dispatch, reply) {\n let elems_4;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"reply-footer\"], (elems_4 = toList(delay(() => {\n let elems;\n return append_1((isAuthenticated) ? append_1((!reply.Removed && !reply.IsMine) ? singleton_1(createElement(\"button\", createObj(ofArray([[\"className\", \"icon-button\"], [\"style\", createObj(toList(delay(() => append_1(singleton_1([\"margin\", 5]), delay(() => (!reply.IsMine ? singleton_1([\"marginRight\", 15]) : empty_1()))))))], [\"onClick\", (_arg) => {\n dispatch(new Message(13, [reply]));\n }], (elems = [createElement(\"i\", {\n className: \"fas fa-flag\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))) : empty_1(), delay(() => {\n let elems_1;\n return append_1(reply.IsMine ? singleton_1(createElement(\"button\", createObj(ofArray([[\"className\", \"icon-button\"], [\"style\", {\n margin: 5,\n marginRight: 15,\n }], [\"onClick\", (_arg_1) => {\n deleteReply(model.Parent, reply.Id, dispatch);\n }], (elems_1 = [createElement(\"i\", {\n className: \"fas fa-trash\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))) : empty_1(), delay(() => {\n let elems_2;\n return singleton_1(createElement(\"button\", createObj(ofArray([[\"className\", \"vote-button-small\"], [\"style\", {\n color: (reply.VoteState === 1) ? StockRating__ToColorCode(new StockRating(0, [])) : \"#aaaaaa\",\n }], [\"disabled\", reply.Removed], [\"onClick\", (_arg_2) => {\n if ((reply.VoteState !== 1) && !reply.Removed) {\n upvote(model.Parent, reply.Id, dispatch);\n }\n }], (elems_2 = [createElement(\"span\", {\n className: \"fas fa-caret-up\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])]))));\n }));\n })) : empty_1(), delay(() => append_1(singleton_1(createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n color: !reply.Removed ? ((reply.Votes > 0) ? \"#36cc08\" : ((reply.Votes < 0) ? \"#cc3608\" : \"var(--text-dim)\")) : \"var(--text-dim)\",\n },\n children: int32ToString(reply.Votes),\n })), delay(() => {\n let elems_3;\n return (isAuthenticated) ? singleton_1(createElement(\"button\", createObj(ofArray([[\"className\", \"vote-button-small\"], [\"style\", {\n color: (reply.VoteState === -1) ? StockRating__ToColorCode(new StockRating(4, [])) : \"#aaaaaa\",\n marginRight: 15,\n }], [\"disabled\", reply.Removed], [\"onClick\", (_arg_3) => {\n if ((reply.VoteState !== -1) && !reply.Removed) {\n downvote(model.Parent, reply.Id, dispatch);\n }\n }], (elems_3 = [createElement(\"span\", {\n className: \"fas fa-caret-down\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))) : empty_1();\n }))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])));\n}\n\nfunction view(model, dispatch) {\n const xs_13 = toArray(delay(() => append_1(singleton_1(Alert_snackError(model.ErrorMsg, () => {\n dispatch(new Message(15, []));\n })), delay(() => {\n let elems;\n return append_1((model.Replies.length < model.NumReplies) ? singleton_1(createElement(\"div\", createObj(ofArray([[\"className\", \"post-load-replies\"], (elems = [createElement(\"a\", {\n style: {\n userSelect: \"none\",\n cursor: \"pointer\",\n },\n onClick: (_arg_1) => {\n fetchAll(model.Parent, dispatch);\n },\n children: `Se alle kommentarer (${model.NumReplies})`,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))) : empty_1(), delay(() => append_1(map((x_2) => {\n let elems_2, elems_1;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"reply\"], (elems_2 = [replyHeader(x_2), createElement(\"div\", createObj(ofArray([[\"style\", {\n \"grid-row\": 2,\n padding: ((((((5 + \"px \") + 10) + \"px \") + 5) + \"px \") + 10) + \"px\",\n fontSize: 0.8 + \"rem\",\n textAlign: \"left\",\n }], (elems_1 = [createElement(Content, {\n content: x_2.Content,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))), replyFooter(model, dispatch, x_2)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n }, sortBy((x) => x.Published, model.Replies, {\n Compare: comparePrimitives,\n })), delay(() => {\n let elems_6;\n return append_1(singleton_1(createElement(\"div\", createObj(ofArray([[\"className\", \"post-reply-holder\"], (elems_6 = toList(delay(() => {\n let elems_3, elems_5, elems_4;\n return !(isAuthenticated) ? singleton_1(createElement(\"a\", {\n href: \"/sign-in\",\n style: {\n padding: 5,\n },\n children: \"Logg inn for å kommentere.\",\n })) : (!(emailVerified) ? singleton_1(createElement(\"span\", {\n style: {\n padding: 5,\n fontSize: 0.8 + \"rem\",\n },\n children: \"Verifiser e-post adresse for å kommentere.\",\n })) : (!model.FormActive ? singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n cursor: \"pointer\",\n padding: 5,\n textAlign: \"left\",\n }], [\"onClick\", (_arg_2) => {\n dispatch(new Message(0, []));\n }], (elems_3 = [createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n color: \"var(--text-dim)\",\n },\n children: \"Svar...\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))) : singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_5 = [createElement(CommentForm, {\n formId: ParentContent__ReplyFieldId(model.Parent),\n html: model.ReplyForm,\n onChange: (arg) => {\n dispatch(new Message(1, [arg]));\n },\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"flex-end\",\n padding: 5,\n }], (elems_4 = [createElement(\"button\", {\n className: \"pill-button-small\",\n children: \"Close\",\n style: {\n marginRight: 5,\n },\n onClick: (_arg_3) => {\n dispatch(new Message(0, []));\n },\n }), createElement(\"button\", {\n className: \"pill-button-small\",\n onClick: (_arg_4) => {\n if ((model.ReplyForm.length > 0) && !model.Processing) {\n postReply(model.Parent, model.ReplyForm, dispatch);\n }\n },\n children: \"Publiser kommentar\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])]))))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])])))), delay(() => {\n let matchValue;\n return append_1((matchValue = model.DeleteForm, (matchValue != null) ? singleton_1(drawDeleteForm(dispatch, matchValue)) : (empty_1())), delay(() => {\n const matchValue_1 = model.ReportForm;\n if (matchValue_1 != null) {\n const reply = matchValue_1;\n const tgt = (model.Parent.tag === 1) ? (new ReportObject(3, [reply.Id])) : (new ReportObject(1, [reply.Id]));\n return singleton_1(createElement(Report, {\n target: tgt,\n onClose: () => {\n dispatch(new Message(14, []));\n },\n }));\n }\n else {\n return empty_1();\n }\n }));\n }));\n }))));\n }))));\n return react.createElement(react.Fragment, {}, ...xs_13);\n}\n\nexport function Replies(repliesInputProps) {\n const numReplies = repliesInputProps.numReplies;\n const replies = repliesInputProps.replies;\n const parent = repliesInputProps.parent;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(parent, replies, numReplies));\n return view(patternInput[0], patternInput[1]);\n}\n\n","import { Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { Dimensions_TextSmall } from \"../Design.js\";\nimport { comparePrimitives, createObj } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { singleton, ofArray } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { sortByDescending, map } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { utcDateToLocalDate, utcStringToLocalTimeSpan, utcStringToLocalDaySpan, quoteToString, formatSpacedNumber, toShortAmount } from \"../Utils.js\";\nimport { empty, singleton as singleton_1, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\n\nexport class PostType extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"ShortEvent\", \"InsiderTrade\"];\n }\n}\n\nexport function PostType_$reflection() {\n return union_type(\"Investfora.SystemPost.PostType\", [], PostType, () => [[], []]);\n}\n\nfunction drawShortEventPost(post) {\n let matchValue_1, elems_3, elems_1, elems_2, children_8, children_2, children, children_6, elems;\n const th$0027 = (title) => createElement(\"th\", {\n style: {\n fontSize: Dimensions_TextSmall,\n padding: 3,\n },\n children: title,\n });\n const td$0027 = (txt) => createElement(\"td\", {\n style: {\n padding: 3,\n },\n children: txt,\n });\n const matchValue = post.ShortInfo;\n if (matchValue != null) {\n const si = matchValue;\n const percentageChange = ((matchValue_1 = si.PrevPercentage, (matchValue_1 != null) ? (si.NewPercentage - matchValue_1) : si.NewPercentage)) / 100;\n const includePlus = (percentageChange > 0) ? \"+\" : \"\";\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: ((20 + \"px \") + 20) + \"px\",\n padding: ((20 + \"px \") + 0) + \"px\",\n }], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRight: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n }], (elems_1 = [createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n userSelect: \"none\",\n },\n children: \"Andel short\",\n }), createElement(\"span\", {\n style: {\n fontSize: 2.5 + \"rem\",\n userSelect: \"none\",\n },\n children: `${si.NewPercentage / 100}%`,\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n userSelect: \"none\",\n },\n children: `${includePlus}${percentageChange} pp. endring`,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n overflowX: \"hidden\",\n }], (elems_2 = [(children_8 = ofArray([(children_2 = singleton((children = ofArray([th$0027(\"Kjøper/selger\"), th$0027(\"Aksjer\"), th$0027(\"Endring\")]), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))), createElement(\"thead\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n })), (children_6 = map((p_2) => {\n const change = (p_2.NewNumShares - p_2.PrevNumShares) | 0;\n const includePlus_1 = (change > 0) ? \"+\" : \"\";\n const children_4 = ofArray([createElement(\"td\", {\n style: {\n maxWidth: 200,\n whiteSpace: \"nowrap\",\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n padding: ((0 + \"px \") + 3) + \"px\",\n },\n children: p_2.Institution,\n }), td$0027(toShortAmount(p_2.NewNumShares)), td$0027(`${includePlus_1}${toShortAmount(change)}`)]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n });\n }, sortByDescending((p_1) => (p_1.NewNumShares - p_1.PrevNumShares), si.Positions, {\n Compare: comparePrimitives,\n })), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_6)),\n }))]), createElement(\"table\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_8)),\n }))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])));\n }\n else {\n return createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems = [createElement(\"p\", {\n children: [\"Kunne ikke laste informasjon om shortposisjon. Vennligst prøv igjen senere.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n }\n}\n\nfunction drawInsiderTradePost(post) {\n let elems_1, elems_7, elems;\n const matchValue = post.InsiderInfo;\n if (matchValue != null) {\n const ii = matchValue;\n const tradeColor = (ii.NumShares > 0) ? \"var(--buy)\" : ((ii.NumShares < 0) ? \"var(--sell)\" : \"var(--text-main)\");\n const indicator = createElement(\"div\", createObj(ofArray([[\"className\", \"pill-button\"], [\"style\", {\n backgroundColor: \"#fff\",\n color: tradeColor,\n cursor: \"auto\",\n userSelect: \"none\",\n }], (elems_1 = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: (ii.NumShares > 0) ? \"Kjøpt\" : ((ii.NumShares < 0) ? \"Solgt\" : \"Flyttet/annet\"),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n const flexColumn$0027 = (x) => createElement(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(x)),\n });\n const infoLabel = (txt) => createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n },\n children: txt,\n });\n const contentText = (txt_1) => createElement(\"span\", {\n style: {\n fontSize: 1.225 + \"rem\",\n userSelect: \"none\",\n },\n children: txt_1,\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n gap: ((10 + \"px \") + 10) + \"px\",\n padding: ((20 + \"px \") + 0) + \"px\",\n }], (elems_7 = toList(delay(() => {\n let elems_5, elems_3, elems_4;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n flexGrow: 1,\n gap: ((10 + \"px \") + 10) + \"px\",\n }], (elems_5 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: ((20 + \"px \") + 0) + \"px\",\n backgroundColor: tradeColor,\n borderRadius: 5,\n padding: 10,\n width: 100 + \"%\",\n }], [\"className\", \"insider-trade-indicator\"], (elems_3 = [indicator, createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n fontSize: 1.225 + \"rem\",\n color: \"#FFFFFF\",\n userSelect: \"none\",\n },\n children: `${formatSpacedNumber(ii.NumShares)} aksjer`,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n gap: ((10 + \"px \") + 0) + \"px\",\n }], (elems_4 = toList(delay(() => append(singleton_1(flexColumn$0027([infoLabel(\"Innsider\"), contentText(ii.Insider)])), delay(() => {\n const matchValue_1 = ii.NewTotal;\n if (matchValue_1 != null) {\n const nt = matchValue_1 | 0;\n return singleton_1(flexColumn$0027([infoLabel(\"Antall aksjer etter handel\"), contentText(formatSpacedNumber(nt))]));\n }\n else {\n return empty();\n }\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])))), delay(() => {\n let elems_6;\n const matchValue_2 = ii.AvgPrice;\n if (matchValue_2 != null) {\n const ap = matchValue_2;\n const wasExchanged = (ii.ExchangeInfo != null) ? \"*\" : \"\";\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexGrow: 1,\n justifyContent: \"space-between\",\n gap: ((10 + \"px \") + 0) + \"px\",\n }], [\"className\", \"insider-trade-avg-price\"], (elems_6 = [flexColumn$0027([infoLabel(`Snittpris${wasExchanged}`), contentText(`NOK ${quoteToString(ap)}`)]), flexColumn$0027([infoLabel(\"Verdi av handel\"), contentText(toShortAmount(~~(ap * ii.NumShares)))])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])]))));\n }\n else {\n return empty();\n }\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])])));\n }\n else {\n return createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems = [createElement(\"p\", {\n children: [\"Kunne ikke laste informasjon om innsidehandel. Vennligst prøv igjen senere.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n }\n}\n\nexport function Post(postInputProps) {\n let elems_10, elems_1, elems_9, elems_8;\n const post = postInputProps.post;\n const type$0027 = postInputProps[\"type\\'\"];\n const compId = postInputProps.compId;\n const eventTime = (type$0027.tag === 1) ? utcStringToLocalDaySpan(post.Published) : utcStringToLocalTimeSpan(post.Published);\n return createElement(\"div\", createObj(ofArray([[\"className\", \"post\"], [\"key\", compId], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n borderRadius: 5,\n }], (elems_10 = [createElement(\"div\", createObj(ofArray([[\"className\", \"post-header\"], (elems_1 = toList(delay(() => {\n let elems;\n const matchValue = post.AssetInfo;\n if (matchValue != null) {\n const si = matchValue;\n return singleton_1(createElement(\"a\", createObj(ofArray([[\"href\", `/stock/${si.Market}/${si.Ticker}`], (elems = [createElement(\"span\", {\n style: {\n fontSize: 1.225 + \"rem\",\n },\n children: si.Name,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))));\n }\n else {\n return singleton_1(createElement(\"span\", {\n children: (type$0027.tag === 1) ? \"Mangler informasjon om innsidehandel. Vennligst prøv igjen senere.\" : \"Mangler short informasjon. Vennligst prøv igjen senere.\",\n }));\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"post-content-holder\"], (elems_9 = [createElement(\"div\", createObj(ofArray([[\"className\", \"post-content\"], (elems_8 = toList(delay(() => {\n let elems_4, elems_2, children;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n borderBottom: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n fontSize: Dimensions_TextSmall,\n display: \"flex\",\n justifyContent: \"space-between\",\n flexWrap: \"wrap\",\n gap: ((0 + \"px \") + 20) + \"px\",\n }], (elems_4 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n gap: ((0 + \"px \") + 20) + \"px\",\n }], (elems_2 = toList(delay(() => append(singleton_1(createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: (type$0027.tag === 1) ? \"Innsidehandel\" : \"Shortoppdatering\",\n })), delay(() => append(singleton_1(createElement(\"span\", {\n children: [eventTime],\n })), delay(() => {\n const matchValue_1 = post.ShortInfo;\n let matchResult;\n if (type$0027.tag === 0) {\n if (matchValue_1 != null) {\n matchResult = 0;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n return singleton_1(createElement(\"span\", {\n children: [`Posisjonsdato: ${utcDateToLocalDate(matchValue_1.PositionDate)}`],\n }));\n default: {\n return empty();\n }\n }\n })))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])]))), (children = toList(delay(() => {\n let elems_3;\n if (type$0027.tag === 1) {\n const matchValue_3 = post.InsiderInfo;\n if (matchValue_3 != null) {\n return singleton_1(createElement(\"a\", createObj(ofArray([[\"href\", matchValue_3.SourceUrl], [\"target\", \"_blank\"], (elems_3 = [createElement(\"i\", {\n className: \"fas fa-link\",\n style: {\n marginRight: 5,\n },\n }), createElement(\"span\", {\n children: [\"Til børsmelding\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))));\n }\n else {\n return empty();\n }\n }\n else {\n return empty();\n }\n })), createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))), delay(() => append((type$0027.tag === 1) ? singleton_1(drawInsiderTradePost(post)) : singleton_1(drawShortEventPost(post)), delay(() => {\n let matchValue_6, matchValue_7, ei, elems_6, elems_5;\n return (type$0027.tag === 1) ? append((matchValue_6 = post.InsiderInfo, (matchValue_6 != null) ? ((matchValue_7 = matchValue_6.ExchangeInfo, (matchValue_7 != null) ? ((ei = matchValue_7, singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-dim)\",\n }], (elems_6 = [createElement(\"i\", {\n className: \"fas fa-info-circle\",\n style: {\n marginRight: 6,\n marginLeft: 2,\n },\n }), createElement(\"span\", {\n children: [`*Denne handelen ble meldt som ${ei.Currency}${quoteToString(ei.AvgPrice)} og konvertert til NOK. NOK verdi er estimert.`],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])])))))) : (empty()))) : (empty())), delay(() => {\n let elems_7;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-dim)\",\n }], (elems_7 = [createElement(\"i\", {\n className: \"fas fa-robot\",\n style: {\n marginRight: 5,\n },\n }), createElement(\"span\", {\n children: [\"Denne oppsummeringen er AI-generert av ChatGPT fra børsmeldingen. Med forbehold om feil.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])]))));\n })) : singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-dim)\",\n }], (elems_5 = [createElement(\"span\", {\n children: [\"Basert på short-posisjoner større eller lik 0.5% av utestående aksjer\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])]))));\n }))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_8))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_9))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_10))])])));\n}\n\n","import { toString as toString_1, Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, bool_type, string_type, union_type, int32_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { Post, GenericResponse_$reflection, Post_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { utcDateToLocalDate, toPercentageChange, utcStringToTimePeriod, utcStringToLocalTimeSpan, toISO8601, checkError } from \"../Utils.js\";\nimport { utcNow } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { unwrap, map, defaultArg, some } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { cons, ofArray, empty, singleton } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { useReact_useCallback_1CA17B65, useReact_useRef_1505, useReact_useReducer_2B9E6EA0, useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { User_usernameText, Image_userCircle, Tooltip_wrapTooltip, smallIconButton, pillButtonSmall, LoadingIndicator_loadingIndicatorSmall, Dialog_dialogActions, Alert_errorAlert, Dialog_dialogContent, Dialog_dialogTitle, Dialog_Dialog } from \"../ViewHelpers.js\";\nimport { empty as empty_1, append, singleton as singleton_1, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { defaultOf } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { StockRating__ToTextColorCode, StockRating_FromInt_Z524259A4, StockRating, StockRating__ToColorCode } from \"../Shared/Shared.js\";\nimport { printf, toText, format } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { DefaultBorder, Dimensions_TextSmall } from \"../Design.js\";\nimport { Report as Report_1, ReportObject } from \"./ReportForm.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { MenuItem, Popper } from \"@mui/material\";\nimport { EditForm as EditForm_1 } from \"./EditPost.js\";\nimport { Content } from \"./ContentParser.js\";\nimport { ParentContent, Replies } from \"./Replies.js\";\nimport { PostType as PostType_1, Post as Post_1 } from \"./SystemPost.js\";\n\nexport class PostType extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"AssetReview\", \"AssetPost\", \"ShortEvent\", \"InsiderTrade\"];\n }\n}\n\nexport function PostType_$reflection() {\n return union_type(\"Investfora.Post.PostType\", [], PostType, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]]]);\n}\n\nexport function PostType__get_UpvoteUrl(this$) {\n switch (this$.tag) {\n case 1:\n return `/api/asset/post/upvote/${this$.fields[0]}`;\n case 2:\n case 3:\n return \"\";\n default:\n return `/api/review/upvote/${this$.fields[0]}`;\n }\n}\n\nexport function PostType__get_DownVoteUrl(this$) {\n switch (this$.tag) {\n case 1:\n return `/api/asset/post/downvote/${this$.fields[0]}`;\n case 2:\n case 3:\n return \"\";\n default:\n return `/api/review/downvote/${this$.fields[0]}`;\n }\n}\n\nexport function PostType__get_DeleteUrl(this$) {\n switch (this$.tag) {\n case 1:\n return `/api/asset/post/${this$.fields[0]}`;\n case 2:\n case 3:\n return \"\";\n default:\n return `/api/review/${this$.fields[0]}`;\n }\n}\n\nclass Model extends Record {\n constructor(Post, Type, Reply, Expanded, MenuOpen, DeleteForm, EditForm, Report, CompId) {\n super();\n this.Post = Post;\n this.Type = Type;\n this.Reply = Reply;\n this.Expanded = Expanded;\n this.MenuOpen = MenuOpen;\n this.DeleteForm = DeleteForm;\n this.EditForm = EditForm;\n this.Report = Report;\n this.CompId = CompId;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Post.Model\", [], Model, () => [[\"Post\", Post_$reflection()], [\"Type\", PostType_$reflection()], [\"Reply\", string_type], [\"Expanded\", bool_type], [\"MenuOpen\", bool_type], [\"DeleteForm\", bool_type], [\"EditForm\", bool_type], [\"Report\", bool_type], [\"CompId\", string_type]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"UpdateReply\", \"Expand\", \"Upvote\", \"DownVote\", \"UpvoteResponse\", \"DownVoteResponse\", \"ToggleMenuOpen\", \"ToggleDeleteForm\", \"ContentUpdated\", \"ToggleReport\", \"ToggleEdit\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Post.Message\", [], Message, () => [[[\"Item\", string_type]], [], [], [], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", bool_type]], [[\"Item\", bool_type]], [[\"Item\", string_type]], [], []]);\n}\n\nfunction init(x, y, b) {\n return new Model(x, y, \"\", false, false, false, false, false, b);\n}\n\nfunction update(model, msg) {\n let bind$0040, matchValue, bind$0040_1, matchValue_1, bind$0040_2, now, matchValue_2;\n switch (msg.tag) {\n case 1:\n return new Model(model.Post, model.Type, model.Reply, true, model.MenuOpen, model.DeleteForm, model.EditForm, model.Report, model.CompId);\n case 2:\n return new Model((bind$0040 = model.Post, new Post(bind$0040.Id, bind$0040.Type, bind$0040.Content, bind$0040.Rating, bind$0040.User, (matchValue = (model.Post.VoteState | 0), (matchValue === -1) ? (model.Post.Votes + 2) : ((matchValue === 1) ? model.Post.Votes : (model.Post.Votes + 1))), bind$0040.NumVotes, bind$0040.Published, 1, bind$0040.IsMine, bind$0040.Replies, bind$0040.NumReplies, bind$0040.Deleted, bind$0040.Updated, bind$0040.LinkPreview, bind$0040.ReviewInfo, bind$0040.AssetInfo, bind$0040.GroupInfo, bind$0040.ShortInfo, bind$0040.InsiderInfo)), model.Type, model.Reply, model.Expanded, model.MenuOpen, model.DeleteForm, model.EditForm, model.Report, model.CompId);\n case 3:\n return new Model((bind$0040_1 = model.Post, new Post(bind$0040_1.Id, bind$0040_1.Type, bind$0040_1.Content, bind$0040_1.Rating, bind$0040_1.User, (matchValue_1 = (model.Post.VoteState | 0), (matchValue_1 === -1) ? model.Post.Votes : ((matchValue_1 === 1) ? (model.Post.Votes - 2) : (model.Post.Votes - 1))), bind$0040_1.NumVotes, bind$0040_1.Published, -1, bind$0040_1.IsMine, bind$0040_1.Replies, bind$0040_1.NumReplies, bind$0040_1.Deleted, bind$0040_1.Updated, bind$0040_1.LinkPreview, bind$0040_1.ReviewInfo, bind$0040_1.AssetInfo, bind$0040_1.GroupInfo, bind$0040_1.ShortInfo, bind$0040_1.InsiderInfo)), model.Type, model.Reply, model.Expanded, model.MenuOpen, model.DeleteForm, model.EditForm, model.Report, model.CompId);\n case 4: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n checkError(res.fields[0]);\n return model;\n }\n else {\n return model;\n }\n }\n case 5: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n checkError(res_1.fields[0]);\n return model;\n }\n else {\n return model;\n }\n }\n case 6:\n return new Model(model.Post, model.Type, model.Reply, model.Expanded, msg.fields[0], model.DeleteForm, model.EditForm, model.Report, model.CompId);\n case 7:\n return new Model(model.Post, model.Type, model.Reply, model.Expanded, false, msg.fields[0], model.EditForm, model.Report, model.CompId);\n case 8:\n return new Model((bind$0040_2 = model.Post, new Post(bind$0040_2.Id, bind$0040_2.Type, msg.fields[0], bind$0040_2.Rating, bind$0040_2.User, bind$0040_2.Votes, bind$0040_2.NumVotes, bind$0040_2.Published, bind$0040_2.VoteState, bind$0040_2.IsMine, bind$0040_2.Replies, bind$0040_2.NumReplies, bind$0040_2.Deleted, (now = toISO8601(utcNow()), (matchValue_2 = model.Post.Updated, (matchValue_2 != null) ? {\n Count: matchValue_2.Count + 1,\n Updated: now,\n } : {\n Count: 1,\n Updated: now,\n })), bind$0040_2.LinkPreview, bind$0040_2.ReviewInfo, bind$0040_2.AssetInfo, bind$0040_2.GroupInfo, bind$0040_2.ShortInfo, bind$0040_2.InsiderInfo)), model.Type, model.Reply, model.Expanded, model.MenuOpen, model.DeleteForm, model.EditForm, model.Report, model.CompId);\n case 9:\n return new Model(model.Post, model.Type, model.Reply, model.Expanded, model.MenuOpen, model.DeleteForm, model.EditForm, !model.Report, model.CompId);\n case 10:\n return new Model(model.Post, model.Type, model.Reply, model.Expanded, false, model.DeleteForm, !model.EditForm, model.Report, model.CompId);\n default:\n return new Model(model.Post, model.Type, msg.fields[0], model.Expanded, model.MenuOpen, model.DeleteForm, model.EditForm, model.Report, model.CompId);\n }\n}\n\nfunction upvote(x, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n dispatch(new Message(2, []));\n const requestPath = PostType__get_UpvoteUrl(x);\n return ((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(\"\"), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(4, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction downVote(x, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n dispatch(new Message(3, []));\n const requestPath = PostType__get_DownVoteUrl(x);\n return ((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(\"\"), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(5, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction DeleteForm(deleteFormInputProps) {\n const onClose = deleteFormInputProps.onClose;\n const target = deleteFormInputProps.target;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const setProcessing = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(undefined);\n const setErrMsg = patternInput_1[1];\n const targetText = (target.tag === 0) ? \"denne analysen\" : \"dette innlegget\";\n return createElement(Dialog_Dialog, {\n onClose: () => {\n onClose(false);\n },\n children: ofArray([Dialog_dialogTitle((target.tag === 0) ? \"Slett analyse\" : \"Slett innlegg\"), Dialog_dialogContent(ofArray([createElement(\"p\", {\n children: [`Er du sikker på at du ønsker å slette ${targetText}?`],\n }), Alert_errorAlert(patternInput_1[0], () => {\n setErrMsg(undefined);\n })])), Dialog_dialogActions(toList(delay(() => (patternInput[0] ? singleton_1(LoadingIndicator_loadingIndicatorSmall()) : append(singleton_1(pillButtonSmall(ofArray([[\"backgroundColor\", \"var(--bg-main)\"], [\"color\", \"var(--text-main)\"]]), \"Avbryt\", (_arg_5) => {\n onClose(false);\n })), delay(() => singleton_1(pillButtonSmall(empty(), \"Slett\", (_arg_6) => {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n setProcessing(true);\n const requestPath = PostType__get_DeleteUrl(target);\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"DELETE\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n const res = _arg_2;\n if (res.tag === 0) {\n const x_1 = res.fields[0];\n if (x_1.Result === \"success\") {\n onClose(true);\n return Promise.resolve();\n }\n else {\n setProcessing(false);\n setErrMsg(x_1.Message);\n return Promise.resolve();\n }\n }\n else {\n setErrMsg(\"Kunne ikke slette innlegg. Vennligst prøv igjen senere.\");\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n }))))))))]),\n });\n}\n\nfunction drawPostHeader(model, dispatch, menuAnchor) {\n let elems_1;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"post-header\"], (elems_1 = toList(delay(() => {\n let elems;\n const matchValue = model.Post.AssetInfo;\n if (matchValue != null) {\n const si = matchValue;\n return append(singleton_1(createElement(\"a\", createObj(ofArray([[\"href\", `/stock/${si.Market}/${si.Ticker}`], (elems = [createElement(\"span\", {\n style: {\n fontSize: 1.225 + \"rem\",\n },\n children: si.Name,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => ((isAuthenticated) ? singleton_1(createElement(\"div\", {\n ref: menuAnchor,\n style: {\n padding: ((0 + \"px \") + 5) + \"px\",\n },\n children: smallIconButton(\"fas fa-ellipsis-h\", (_arg) => {\n dispatch(new Message(6, [!model.MenuOpen]));\n }),\n })) : empty_1())));\n }\n else {\n return singleton_1(createElement(\"span\", {\n children: \"Mangler aksjeinformasjon. Vennligst prøv igjen senere.\",\n }));\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nfunction updateInfo(x) {\n let elems;\n if (x != null) {\n const y = x;\n let txt;\n const upd = utcStringToLocalTimeSpan(y.Updated).toLocaleLowerCase();\n txt = ((y.Count === 1) ? (`Oppdatert ${upd}.`) : (`Oppdatert ${y.Count} ganger. Sist oppdatert ${upd}.`));\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n padding: ((((((0 + \"px \") + 5) + \"px \") + 5) + \"px \") + 10) + \"px\",\n backgroundColor: \"#FFFFFF\",\n fontSize: 0.7 + \"rem\",\n fontStyle: \"italic\",\n color: \"var(--text-dim)\",\n textAlign: \"left\",\n }], (elems = [createElement(\"span\", {\n children: [txt],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n }\n else {\n return defaultOf();\n }\n}\n\nfunction drawLinkPreview(lp) {\n let elems_2;\n if (lp != null) {\n const x = lp;\n return createElement(\"a\", {\n href: x.Url,\n target: \"_blank\",\n children: createElement(\"div\", createObj(ofArray([[\"className\", \"link-preview-holder\"], (elems_2 = toList(delay(() => {\n let matchValue, iu, elems;\n return append((matchValue = x.ImageUrl, (matchValue != null) ? ((iu = matchValue, singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n maxWidth: 120,\n maxHeight: 120,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }], (elems = [createElement(\"img\", {\n src: iu,\n style: {\n maxWidth: 100 + \"%\",\n maxHeight: 100 + \"%\",\n },\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))))) : (empty_1())), delay(() => {\n let elems_1;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n padding: ((0 + \"px \") + 5) + \"px\",\n }], (elems_1 = [createElement(\"span\", {\n className: \"link-preview-text\",\n style: {\n fontSize: 0.8 + \"rem\",\n },\n children: x.Title,\n }), createElement(\"span\", {\n className: \"link-preview-text\",\n style: {\n fontSize: 0.6 + \"rem\",\n fontStyle: \"italic\",\n },\n children: x.Desc,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))));\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])]))),\n });\n }\n else {\n return defaultOf();\n }\n}\n\nfunction drawRating(type$0027, post_1, dispatch) {\n let elems_3, elems_2;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"post-rating-holder\"], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"className\", \"post-rating\"], (elems_2 = toList(delay(() => {\n let elems;\n return append((isAuthenticated) ? singleton_1(createElement(\"button\", createObj(ofArray([[\"style\", createObj(toList(delay(() => ((post_1.VoteState === 1) ? singleton_1([\"color\", StockRating__ToColorCode(new StockRating(0, []))]) : empty_1()))))], [\"className\", \"vote-button\"], [\"disabled\", post_1.Deleted], [\"onClick\", (_arg) => {\n if ((post_1.VoteState !== 1) && !post_1.Deleted) {\n upvote(type$0027, dispatch);\n }\n }], (elems = [createElement(\"span\", {\n className: \"fas fa-caret-up\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))) : empty_1(), delay(() => append(singleton_1(createElement(\"span\", {\n style: createObj(toList(delay(() => {\n let matchValue;\n return append(singleton_1([\"color\", !post_1.Deleted ? ((matchValue = (post_1.Votes | 0), (matchValue > 0) ? StockRating__ToColorCode(new StockRating(0, [])) : ((matchValue < 0) ? StockRating__ToColorCode(new StockRating(4, [])) : \"var(--text-dim)\"))) : \"var(--text-dim)\"]), delay(() => (!(isAuthenticated) ? singleton_1([\"paddingRight\", 20]) : empty_1())));\n }))),\n children: post_1.Votes,\n })), delay(() => {\n let elems_1;\n return (isAuthenticated) ? singleton_1(createElement(\"button\", createObj(ofArray([[\"style\", createObj(toList(delay(() => ((post_1.VoteState === -1) ? singleton_1([\"color\", StockRating__ToColorCode(new StockRating(4, []))]) : empty_1()))))], [\"className\", \"vote-button\"], [\"disabled\", post_1.Deleted], [\"onClick\", (_arg_1) => {\n if ((post_1.VoteState !== -1) && !post_1.Deleted) {\n downVote(type$0027, dispatch);\n }\n }], (elems_1 = [createElement(\"span\", {\n className: \"fas fa-caret-down\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))) : empty_1();\n }))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])));\n}\n\nfunction drawPostReviewInfo(ri) {\n let elems_6;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"post-review-info\"], (elems_6 = toList(delay(() => {\n let elems;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n marginRight: 15,\n }], (elems = toList(delay(() => (ri.Expired ? append(singleton_1(createElement(\"span\", {\n style: {\n color: \"#FFA500\",\n marginRight: 5,\n },\n className: \"fas fa-exclamation-circle\",\n })), delay(() => singleton_1(createElement(\"span\", {\n children: [\"Tidsperioden gitt for analysen er utløpt\"],\n })))) : append(singleton_1(createElement(\"span\", {\n style: {\n marginRight: 5,\n },\n className: \"fas fa-clock\",\n })), delay(() => singleton_1(createElement(\"span\", {\n children: [utcStringToTimePeriod(ri.Until)],\n }))))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let elems_5;\n const matchValue = ri.TargetPrice;\n if (matchValue != null) {\n const tp = matchValue;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n }], (elems_5 = toList(delay(() => {\n let elems_2, elems_1;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n }], (elems_2 = [createElement(\"span\", {\n style: {\n marginRight: 5,\n color: \"#DC143C\",\n },\n className: \"fas fa-bullseye\",\n }), createElement(\"span\", createObj(ofArray([[\"style\", {\n marginRight: 15,\n }], (elems_1 = toList(delay(() => append(singleton_1(\"Kursmål: \"), delay(() => {\n let arg;\n return append(singleton_1(createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n },\n children: (arg = format('{0:' + \"0.00\" + '}', tp), toText(printf(\"%s %s\"))(arg)(ri.Currency)),\n })), delay(() => {\n let y;\n const matchValue_1 = ri.ClosestClose;\n if (matchValue_1 != null) {\n const cc = matchValue_1;\n const isLower = tp < cc.Close;\n const change = toPercentageChange(tp, cc.Close);\n return singleton_1((y = createElement(\"span\", {\n style: {\n marginLeft: 5,\n fontWeight: \"bold\",\n color: isLower ? StockRating__ToColorCode(new StockRating(4, [])) : StockRating__ToColorCode(new StockRating(0, [])),\n },\n children: `(${format('{0:' + \"0.00\" + '}', change)}%)`,\n }), Tooltip_wrapTooltip(`Basert på sluttkurs ${format('{0:' + \"0.00\" + '}', cc.Close)} ${ri.Currency} ${utcDateToLocalDate(cc.Date)}`, y)));\n }\n else {\n return empty_1();\n }\n }));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))), delay(() => {\n let elems_4, y_1, elems_3, arg_2;\n const matchValue_2 = ri.LastClose;\n const matchValue_3 = ri.ClosestClose;\n let matchResult, cc_1, lc;\n if (matchValue_2 != null) {\n if (matchValue_3 != null) {\n matchResult = 0;\n cc_1 = matchValue_3;\n lc = matchValue_2;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0: {\n const change_1 = toPercentageChange(lc.Close, cc_1.Close);\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n }], (elems_4 = [createElement(\"span\", {\n style: {\n marginRight: 5,\n },\n className: \"fas fa-chart-line\",\n }), (y_1 = createElement(\"span\", createObj(ofArray([[\"style\", {\n marginRight: 15,\n }], (elems_3 = [\"Siden publisering: \", createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n color: (change_1 < 0) ? StockRating__ToColorCode(new StockRating(4, [])) : StockRating__ToColorCode(new StockRating(0, [])),\n },\n children: (arg_2 = format('{0:' + \"0.00\" + '}', change_1), toText(printf(\"%s%%\"))(arg_2)),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))), Tooltip_wrapTooltip(`Basert på siste registrerte sluttkurs ${format('{0:' + \"0.00\" + '}', lc.Close)} ${ri.Currency} ${utcDateToLocalDate(lc.Date)} og nærmeste sluttkurs ved publisering ${format('{0:' + \"0.00\" + '}', cc_1.Close)} ${ri.Currency} ${utcDateToLocalDate(cc_1.Date)}`, y_1))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])]))));\n }\n default: {\n return empty_1();\n }\n }\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])]))));\n }\n else {\n return empty_1();\n }\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])])));\n}\n\nfunction drawUserInfo(model) {\n const posted = utcStringToLocalTimeSpan(model.Post.Published);\n return createElement(\"div\", createObj(toList(delay(() => append((model.Post.Type === \"review\") ? singleton_1([\"style\", {\n display: \"flex\",\n }]) : singleton_1([\"className\", \"post-user-holder\"]), delay(() => {\n let elems_6, elems_3, elems_2, elems_5;\n return singleton_1((elems_6 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flex: 0.5,\n }], (elems_3 = [createElement(\"div\", createObj(toList(delay(() => append(singleton_1([\"style\", {\n marginRight: 10,\n }]), delay(() => {\n let elems_1, elems;\n return !model.Post.Deleted ? singleton_1((elems_1 = [createElement(\"a\", createObj(ofArray([[\"href\", `/user/${model.Post.User.Username}`], (elems = [Image_userCircle(model.Post.User.Id, 50, false, undefined)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])) : empty_1();\n })))))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_2 = [User_usernameText(model.Post.User, model.Post.Deleted), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n },\n children: posted,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flex: 0.5,\n alignItems: \"center\",\n padding: 3,\n justifyContent: \"flex-end\",\n }], (elems_5 = toList(delay(() => {\n let elems_4;\n if (model.Post.Type === \"review\") {\n const rating = StockRating_FromInt_Z524259A4(model.Post.Rating);\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: StockRating__ToColorCode(rating),\n padding: 10,\n width: 100,\n borderRadius: 5,\n textAlign: \"center\",\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.35px\",\n userSelect: \"none\",\n }], (elems_4 = [createElement(\"span\", {\n style: {\n color: StockRating__ToTextColorCode(rating),\n },\n children: toString_1(rating),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])]))));\n }\n else {\n return empty_1();\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))]));\n }))))));\n}\n\nexport function PostComponent(postComponentInputProps) {\n let matchValue, elems_6;\n const onRemove = postComponentInputProps.onRemove;\n const post_1 = postComponentInputProps.post;\n const compId = postComponentInputProps.compId;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(post_1, (matchValue = post_1.Type, (matchValue === \"review\") ? (new PostType(0, [post_1.Id])) : ((matchValue === \"asset-post\") ? (new PostType(1, [post_1.Id])) : (new PostType(2, [post_1.Id])))), compId));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n const tooLong = model_1.Post.Content.length > 500;\n const menuAnchor = useReact_useRef_1505(undefined);\n const onEdited = useReact_useCallback_1CA17B65((x) => {\n if (x != null) {\n dispatch(new Message(8, [x]));\n }\n dispatch(new Message(10, []));\n });\n return createElement(\"div\", createObj(ofArray([[\"className\", \"post\"], [\"key\", model_1.CompId], [\"style\", {\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n borderRadius: 5,\n }], (elems_6 = toList(delay(() => append(model_1.DeleteForm ? singleton_1(createElement(DeleteForm, {\n target: model_1.Type,\n onClose: (didDelete) => {\n if (!didDelete) {\n dispatch(new Message(7, [false]));\n }\n else {\n onRemove(model_1.Post.Id);\n }\n },\n })) : empty_1(), delay(() => {\n let tgt;\n return append(model_1.Report ? ((tgt = ((model_1.Post.Type === \"asset-post\") ? (new ReportObject(2, [model_1.Post.Id])) : (new ReportObject(0, [model_1.Post.Id]))), singleton_1(createElement(Report_1, {\n target: tgt,\n onClose: () => {\n dispatch(new Message(9, []));\n },\n })))) : empty_1(), delay(() => append(singleton_1(drawPostHeader(model_1, dispatch, menuAnchor)), delay(() => {\n let elements, elems;\n return append(singleton_1(MuiHelpers_createElement(Popper, [[\"anchorEl\", menuAnchor.current], [\"open\", model_1.MenuOpen], [\"placement\", \"bottom-end\"], (elements = [createElement(\"div\", createObj(ofArray([[\"style\", createObj(ofArray([[\"display\", \"flex\"], [\"flexDirection\", \"column\"], [\"backgroundColor\", \"#FFFFFF\"], DefaultBorder, [\"borderRadius\", 5]]))], (elems = toList(delay(() => ((model_1.Post.IsMine && !model_1.Post.Deleted) ? append(singleton_1(MuiHelpers_createElement(MenuItem, [[\"onClick\", (_arg_1) => {\n dispatch(new Message(10, []));\n }], [\"children\", \"Rediger\"]])), delay(() => singleton_1(MuiHelpers_createElement(MenuItem, [[\"onClick\", (_arg_2) => {\n dispatch(new Message(7, [true]));\n }], [\"children\", \"Slett\"]])))) : ((!model_1.Post.Deleted && (isAuthenticated)) ? singleton_1(MuiHelpers_createElement(MenuItem, [[\"onClick\", (_arg_3) => {\n dispatch(new Message(9, []));\n }], [\"children\", \"Rapporter\"]])) : empty_1())))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elements))])])), delay(() => {\n let elems_4, elems_3;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"className\", \"post-content-holder\"], (elems_4 = [createElement(\"div\", createObj(ofArray([[\"className\", \"post-content\"], (elems_3 = toList(delay(() => append(singleton_1(drawUserInfo(model_1)), delay(() => {\n let matchValue_2;\n return append((model_1.Post.Type === \"review\") ? ((matchValue_2 = model_1.Post.ReviewInfo, (matchValue_2 != null) ? singleton_1(drawPostReviewInfo(matchValue_2)) : (empty_1()))) : empty_1(), delay(() => {\n let elems_2;\n return model_1.EditForm ? singleton_1(createElement(EditForm_1, {\n post: model_1.Post,\n onClose: onEdited,\n })) : ((model_1.Post.Content.trim().length > 0) ? append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n padding: ((10 + \"px \") + 0) + \"px\",\n }], (elems_2 = [createElement(Content, {\n content: model_1.Post.Content,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))), delay(() => singleton_1(drawLinkPreview(model_1.Post.LinkPreview)))) : empty_1());\n }));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))), updateInfo(model_1.Post.Updated), drawRating(model_1.Type, model_1.Post, dispatch)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))), delay(() => {\n let elems_5;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n \"grid-row\": 3,\n \"grid-column\": 1,\n }], (elems_5 = toList(delay(() => {\n const matchValue_3 = model_1.Type;\n switch (matchValue_3.tag) {\n case 0:\n return singleton_1(createElement(Replies, {\n parent: new ParentContent(0, [model_1.Post.Id]),\n replies: model_1.Post.Replies,\n numReplies: model_1.Post.NumReplies,\n }));\n case 1:\n return singleton_1(createElement(Replies, {\n parent: new ParentContent(1, [matchValue_3.fields[0]]),\n replies: model_1.Post.Replies,\n numReplies: model_1.Post.NumReplies,\n }));\n default: {\n return empty_1();\n }\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])]))));\n }));\n }));\n }))));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])])));\n}\n\nexport function post(post_1, onRemove) {\n let elems;\n let compId;\n const matchValue = post_1.Type;\n compId = ((matchValue === \"review\") ? (`review-post-${post_1.Id}`) : ((matchValue === \"short-event\") ? (`short-post-${post_1.Id}`) : ((matchValue === \"insider-trade\") ? (`insider-trade-post-${post_1.Id}`) : (`stock-post-${post_1.Id}`))));\n return createElement(\"div\", createObj(ofArray([[\"key\", compId], (elems = toList(delay(() => ((post_1.Type === \"short-event\") ? singleton_1(createElement(Post_1, {\n compId: compId,\n \"type\\'\": new PostType_1(0, []),\n post: post_1,\n })) : ((post_1.Type === \"insider-trade\") ? singleton_1(createElement(Post_1, {\n compId: compId,\n \"type\\'\": new PostType_1(1, []),\n post: post_1,\n })) : singleton_1(createElement(PostComponent, {\n compId: compId,\n post: post_1,\n onRemove: onRemove,\n })))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\n","\nexport const DataServerBaseUrl = (() => {\n const host = window.location.host;\n return ((host === \"aksje.io\") ? true : (host === \"www.aksje.io\")) ? \"https://data.aksje.io\" : \"http://localhost:8086\";\n})();\n\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { float64_type, obj_type, record_type, string_type, option_type, array_type, bool_type, int32_type, union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { compare, parse, addDays, addYears, now, addMonths, toString } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { ShareSplit_$reflection, Quote_MovingAverageSummary_$reflection, DataServer_Quote_QuoteSummary_$reflection, Quote_Quote_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { sortBy, map as map_1, maxBy } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { equals, createObj, uncurry2, comparePrimitives } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { singleton as singleton_1, cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString as toString_1 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { DataServerBaseUrl } from \"../Session.js\";\nimport { empty as empty_1, singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { ResponsiveContainer, ComposedChart, Bar, LineChart, ReferenceLine, Label, Line, Legend, Tooltip, YAxis, XAxis } from \"recharts\";\nimport { toShortAmount, quoteToString, toPositivePercentageChange, shortPercentageToString, utcDateToLocalDate } from \"../Utils.js\";\nimport { format } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { Interop_reactApi as Interop_reactApi_1 } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { Alert_snackError, LoadingIndicator_skeleton, Tooltip_wrapTooltip, groupButtonRight, groupButtonLeft } from \"../ViewHelpers.js\";\nimport { Dimensions_TextSmall } from \"../Design.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { MenuItem, Select, InputLabel, FormControl } from \"@mui/material\";\n\nclass ReportPeriod extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Week\", \"Month\", \"Quarter\", \"HalfYear\", \"Year\", \"TwoYears\"];\n }\n}\n\nfunction ReportPeriod_$reflection() {\n return union_type(\"Investfora.AssetQuote.ReportPeriod\", [], ReportPeriod, () => [[], [], [], [], [], []]);\n}\n\nfunction ReportPeriod_FromInt_Z524259A4(x) {\n switch (x) {\n case 2:\n return new ReportPeriod(1, []);\n case 3:\n return new ReportPeriod(2, []);\n case 4:\n return new ReportPeriod(3, []);\n case 5:\n return new ReportPeriod(4, []);\n case 6:\n return new ReportPeriod(5, []);\n default:\n return new ReportPeriod(0, []);\n }\n}\n\nfunction ReportPeriod__ToInt(this$) {\n switch (this$.tag) {\n case 1:\n return 2;\n case 2:\n return 3;\n case 3:\n return 4;\n case 4:\n return 5;\n case 5:\n return 6;\n default:\n return 1;\n }\n}\n\nfunction ReportPeriod__ToHttpVar(this$) {\n return `?from=${toString((this$.tag === 1) ? addMonths(now(), -1) : ((this$.tag === 2) ? addMonths(now(), -3) : ((this$.tag === 3) ? addMonths(now(), -6) : ((this$.tag === 4) ? addYears(now(), -1) : ((this$.tag === 5) ? addYears(now(), -2) : addDays(now(), -7))))), \"yyyy-MM-dd\")}`;\n}\n\nclass ReportPresentation extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"QuotesOnly\", \"QuoteAndVolume\"];\n }\n}\n\nfunction ReportPresentation_$reflection() {\n return union_type(\"Investfora.AssetQuote.ReportPresentation\", [], ReportPresentation, () => [[], []]);\n}\n\nclass Model extends Record {\n constructor(AssetId, SelectedPeriod, Presentation, MissingInfo, Entries, LastQuote, Summary, MovingAverage, Splits, ErrorMsg) {\n super();\n this.AssetId = (AssetId | 0);\n this.SelectedPeriod = SelectedPeriod;\n this.Presentation = Presentation;\n this.MissingInfo = MissingInfo;\n this.Entries = Entries;\n this.LastQuote = LastQuote;\n this.Summary = Summary;\n this.MovingAverage = MovingAverage;\n this.Splits = Splits;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.AssetQuote.Model\", [], Model, () => [[\"AssetId\", int32_type], [\"SelectedPeriod\", ReportPeriod_$reflection()], [\"Presentation\", ReportPresentation_$reflection()], [\"MissingInfo\", bool_type], [\"Entries\", option_type(array_type(Quote_Quote_$reflection()))], [\"LastQuote\", option_type(Quote_Quote_$reflection())], [\"Summary\", option_type(DataServer_Quote_QuoteSummary_$reflection())], [\"MovingAverage\", option_type(Quote_MovingAverageSummary_$reflection())], [\"Splits\", array_type(ShareSplit_$reflection())], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"EntriesResponse\", \"SummaryResponse\", \"MovingAverageResponse\", \"SplitsResponse\", \"UpdatePeriod\", \"UpdatePresentation\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.AssetQuote.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Quote_Quote_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(Quote_Quote_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [DataServer_Quote_QuoteSummary_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", DataServer_Quote_QuoteSummary_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Quote_MovingAverageSummary_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Quote_MovingAverageSummary_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(ShareSplit_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(ShareSplit_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", ReportPeriod_$reflection()]], [[\"Item\", ReportPresentation_$reflection()]], []]);\n}\n\nfunction init(assetId) {\n return new Model(assetId, new ReportPeriod(2, []), new ReportPresentation(0, []), false, undefined, undefined, undefined, undefined, [], undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n return new Model(model.AssetId, model.SelectedPeriod, model.Presentation, model.MissingInfo, model.Entries, model.LastQuote, model.Summary, model.MovingAverage, model.Splits, \"Kunne ikke laste kursoppsummering. Vennligst prøv igjen senere.\");\n }\n else {\n return new Model(model.AssetId, model.SelectedPeriod, model.Presentation, model.MissingInfo, model.Entries, model.LastQuote, res_1.fields[0], model.MovingAverage, model.Splits, model.ErrorMsg);\n }\n }\n case 2: {\n const res_2 = msg.fields[0];\n if (res_2.tag === 1) {\n return model;\n }\n else {\n return new Model(model.AssetId, model.SelectedPeriod, model.Presentation, model.MissingInfo, model.Entries, model.LastQuote, model.Summary, res_2.fields[0], model.Splits, model.ErrorMsg);\n }\n }\n case 3: {\n const res_3 = msg.fields[0];\n if (res_3.tag === 1) {\n return model;\n }\n else {\n return new Model(model.AssetId, model.SelectedPeriod, model.Presentation, model.MissingInfo, model.Entries, model.LastQuote, model.Summary, model.MovingAverage, res_3.fields[0], model.ErrorMsg);\n }\n }\n case 4:\n return new Model(model.AssetId, msg.fields[0], model.Presentation, model.MissingInfo, model.Entries, model.LastQuote, model.Summary, model.MovingAverage, model.Splits, model.ErrorMsg);\n case 5:\n return new Model(model.AssetId, model.SelectedPeriod, msg.fields[0], model.MissingInfo, model.Entries, model.LastQuote, model.Summary, model.MovingAverage, model.Splits, model.ErrorMsg);\n case 6:\n return new Model(model.AssetId, model.SelectedPeriod, model.Presentation, model.MissingInfo, model.Entries, model.LastQuote, model.Summary, model.MovingAverage, model.Splits, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return new Model(model.AssetId, model.SelectedPeriod, model.Presentation, model.MissingInfo, model.Entries, model.LastQuote, model.Summary, model.MovingAverage, model.Splits, \"Kunne ikke laste kursutvikling. Vennligst prøv igjen senere.\");\n }\n else {\n const x = res.fields[0];\n return new Model(model.AssetId, model.SelectedPeriod, model.Presentation, model.MissingInfo, x, (x.length === 0) ? model.LastQuote : maxBy((y) => y.Date, x, {\n Compare: comparePrimitives,\n }), model.Summary, model.MovingAverage, model.Splits, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction fetchQuotes(assetId, period, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const p = ReportPeriod__ToHttpVar(period);\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Quote_Quote_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString_1(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/asset/quote/${assetId}${p}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Quote_Quote_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchSummary(market, ticker, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(DataServer_Quote_QuoteSummary_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString_1(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/quote/asset-summary/${market}/${ticker}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(DataServer_Quote_QuoteSummary_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(1, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchMovingAverage(market, ticker, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(Quote_MovingAverageSummary_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString_1(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/quote/ma-summary/${market}/${ticker}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Quote_MovingAverageSummary_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(2, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchSplits(market, ticker, period, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const p = ReportPeriod__ToHttpVar(period);\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(ShareSplit_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString_1(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/asset/quote/splits/${market}/${ticker}${p}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(ShareSplit_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(3, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nclass Point extends Record {\n constructor(Dato, Kurs, Volum) {\n super();\n this.Dato = Dato;\n this.Kurs = Kurs;\n this.Volum = (Volum | 0);\n }\n}\n\nfunction Point_$reflection() {\n return record_type(\"Investfora.AssetQuote.Point\", [], Point, () => [[\"Dato\", string_type], [\"Kurs\", float64_type], [\"Volum\", int32_type]]);\n}\n\nfunction quotesChart(data, splits) {\n let elements;\n const properties_7 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", data], [\"margin\", {\n top: defaultArg(5, 0),\n right: defaultArg(5, 0),\n left: defaultArg(10, 0),\n bottom: defaultArg(20, 0),\n }], (elements = toList(delay(() => append(singleton(Interop_reactApi.createElement(XAxis, {\n dataKey: \"Dato\",\n tickFormatter: (tick) => (`${utcDateToLocalDate(tick)}`),\n })), delay(() => {\n let properties_1;\n return append(singleton((properties_1 = ofArray([[\"orientation\", \"right\"], [\"tickFormatter\", (tick_1) => (`${format('{0:' + \"0.00\" + '}', tick_1)}`)], [\"domain\", [\"auto\", \"auto\"]]]), Interop_reactApi.createElement(YAxis, createObj(properties_1)))), delay(() => append(singleton(Interop_reactApi.createElement(Tooltip, {})), delay(() => append(singleton(Interop_reactApi.createElement(Legend, {})), delay(() => append(singleton(Interop_reactApi.createElement(Line, {\n dataKey: \"Kurs\",\n stroke: \"#5F5566\",\n strokeWidth: 3,\n dot: false,\n })), delay(() => map_1((s) => {\n let properties_5;\n const properties_6 = ofArray([[\"x\", s.Date], [\"stroke\", \"#58a4b0\"], [\"strokeWidth\", 2], [\"children\", (properties_5 = ofArray([[\"position\", \"insideTopRight\"], [\"value\", (s.FactorBase > s.FactorChange) ? (`Spleis ${s.FactorBase}:${s.FactorChange}`) : (`Splitt ${s.FactorBase}:${s.FactorChange}`)]]), Interop_reactApi.createElement(Label, createObj(properties_5)))]]);\n return Interop_reactApi.createElement(ReferenceLine, createObj(properties_6));\n }, splits)))))))));\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]);\n return Interop_reactApi.createElement(LineChart, createObj(properties_7));\n}\n\nfunction combinedChart(data) {\n let elements;\n const properties_7 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", data], [\"margin\", {\n top: defaultArg(5, 0),\n right: defaultArg(10, 0),\n left: defaultArg(10, 0),\n bottom: defaultArg(20, 0),\n }], (elements = ofArray([Interop_reactApi.createElement(XAxis, {\n dataKey: \"Dato\",\n tickFormatter: (tick) => (`${utcDateToLocalDate(tick)}`),\n }), Interop_reactApi.createElement(YAxis, {\n yAxisId: \"left\",\n tickFormatter: (tick_1) => {\n if (tick_1 >= 1000000000) {\n const bn = tick_1 / 1000000000;\n return `${format('{0:' + \"0.0\" + '}', bn)} mrd`;\n }\n else if (tick_1 >= 1000000) {\n const mill = tick_1 / 1000000;\n return `${format('{0:' + \"0.0\" + '}', mill)}m`;\n }\n else if (tick_1 >= 1000) {\n const k = tick_1 / 1000;\n return `${format('{0:' + \"0.0\" + '}', k)}k`;\n }\n else {\n return `${tick_1}`;\n }\n },\n }), Interop_reactApi.createElement(YAxis, {\n yAxisId: \"right\",\n orientation: \"right\",\n tickFormatter: (tick_2) => (`${format('{0:' + \"0.00\" + '}', tick_2)}`),\n }), Interop_reactApi.createElement(Tooltip, {}), Interop_reactApi.createElement(Legend, {}), Interop_reactApi.createElement(Bar, {\n dataKey: \"Volum\",\n fill: \"#73AB84\",\n yAxisId: \"left\",\n }), Interop_reactApi.createElement(Line, {\n dataKey: \"Kurs\",\n stroke: \"#5F5566\",\n strokeWidth: 3,\n yAxisId: \"right\",\n dot: false,\n })]), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]);\n return Interop_reactApi.createElement(ComposedChart, createObj(properties_7));\n}\n\nfunction drawGraph(x, p, splits, dispatch) {\n let elems_2, elems, properties_2, elems_1;\n const data = map_1((y_2) => (new Point(y_2.Date, y_2.Close, y_2.Volume)), sortBy((y) => parse(y.Date), x, {\n Compare: compare,\n }));\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_2 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n minHeight: 210,\n height: 20 + \"vh\",\n }], (elems = [(properties_2 = ofArray([[\"minWidth\", 250], [\"minHeight\", 210], [\"children\", (p.tag === 1) ? combinedChart(data) : quotesChart(data, splits)]]), Interop_reactApi.createElement(ResponsiveContainer, createObj(properties_2)))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n }], (elems_1 = [groupButtonLeft(equals(p, new ReportPresentation(0, [])), (_arg) => {\n dispatch(new Message(5, [new ReportPresentation(0, [])]));\n }, [\"Kurs\"]), groupButtonRight(equals(p, new ReportPresentation(1, [])), (_arg_1) => {\n dispatch(new Message(5, [new ReportPresentation(1, [])]));\n }, [\"Kurs og volum\"])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])));\n}\n\nfunction subSectionTitle(title) {\n return createElement(\"h5\", {\n style: {\n fontWeight: \"bold\",\n },\n children: title,\n });\n}\n\nfunction th$0027(hideSmall, title) {\n return createElement(\"th\", createObj(toList(delay(() => append(hideSmall ? singleton([\"className\", \"hide-small-screens\"]) : empty_1(), delay(() => append(singleton([\"style\", {\n padding: ((((((6 + \"px \") + 12) + \"px \") + 6) + \"px \") + 8) + \"px\",\n }]), delay(() => singleton([\"children\", title])))))))));\n}\n\nfunction drawSummary(lastQuote, x) {\n let elems_7;\n const td$0027 = (hideSmall, y, f) => createElement(\"td\", createObj(toList(delay(() => append(hideSmall ? singleton([\"className\", \"hide-small-screens\"]) : empty_1(), delay(() => append(singleton([\"style\", createObj(toList(delay(() => append(singleton([\"padding\", ((((((6 + \"px \") + 12) + \"px \") + 6) + \"px \") + 8) + \"px\"]), delay(() => {\n let matchValue_1;\n const matchValue = y;\n if (matchValue != null) {\n return singleton([\"color\", (matchValue_1 = (f(matchValue) | 0), (matchValue_1 === 0) ? \"var(--text-main)\" : ((matchValue_1 < 0) ? \"var(--sell)\" : \"var(--buy)\"))]);\n }\n else {\n return empty_1();\n }\n })))))]), delay(() => {\n let elems;\n return singleton((elems = toList(delay(() => {\n if (x != null) {\n const matchValue_2 = y;\n if (matchValue_2 != null) {\n const q_1 = matchValue_2;\n return singleton(Tooltip_wrapTooltip(utcDateToLocalDate(q_1.Date), shortPercentageToString(f(q_1))));\n }\n else {\n return singleton(\"N/A\");\n }\n }\n else {\n return singleton(LoadingIndicator_skeleton(ofArray([[\"height\", 22], [\"width\", 50]])));\n }\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))]));\n }))))))));\n const summaryToEntry = (f_1) => {\n if (x != null) {\n return f_1(x);\n }\n else {\n return undefined;\n }\n };\n const textInlineLoading = () => {\n let elems_1;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"inline-block\",\n }], (elems_1 = [LoadingIndicator_skeleton(ofArray([[\"width\", 40], [\"height\", 14]]))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])));\n };\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n marginTop: 20,\n }], (elems_7 = toList(delay(() => append(singleton(subSectionTitle(\"Prosentvis utvikling\")), delay(() => {\n let children_10, children_2, children, children_8, children_4, children_6;\n let lastClose;\n if (x != null) {\n const matchValue_3 = x.Last;\n lastClose = ((matchValue_3 != null) ? utcDateToLocalDate(matchValue_3.Date) : \"\");\n }\n else {\n lastClose = \"\";\n }\n return append(singleton((children_10 = ofArray([(children_2 = singleton_1((children = ofArray([th$0027(false, \"\"), th$0027(false, \"1 dag\"), th$0027(true, \"1 uke\"), th$0027(false, \"1 mnd\"), th$0027(false, \"3 mnd\"), th$0027(true, \"1 år\")]), createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))), createElement(\"thead\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_2)),\n })), (children_8 = ofArray([(children_4 = ofArray([th$0027(false, \"Kurs\"), td$0027(false, summaryToEntry((s) => s.Prev), (q_2) => q_2.Change), td$0027(true, summaryToEntry((s_1) => s_1.Week), (q_3) => q_3.Change), td$0027(false, summaryToEntry((s_2) => s_2.Month), (q_4) => q_4.Change), td$0027(false, summaryToEntry((s_3) => s_3.Quarter), (q_5) => q_5.Change), td$0027(true, summaryToEntry((s_4) => s_4.Year), (q_6) => q_6.Change)]), createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_4)),\n })), (children_6 = ofArray([th$0027(false, \"Volum\"), td$0027(false, summaryToEntry((s_5) => s_5.Prev), (q_7) => q_7.VolumeChange), td$0027(true, summaryToEntry((s_6) => s_6.Week), (q_8) => q_8.VolumeChange), td$0027(false, summaryToEntry((s_7) => s_7.Month), (q_9) => q_9.VolumeChange), td$0027(false, summaryToEntry((s_8) => s_8.Quarter), (q_10) => q_10.VolumeChange), td$0027(true, summaryToEntry((s_9) => s_9.Year), (q_11) => q_11.VolumeChange)]), createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_6)),\n }))]), createElement(\"tbody\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_8)),\n }))]), createElement(\"table\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_10)),\n }))), delay(() => {\n let elems_3, elems_2;\n let patternInput;\n const ltNone = () => {\n const children_12 = ofArray([\"den gjennomsnittlige sluttkursen basert på de siste 10 handelsdager på NOK \", textInlineLoading()]);\n return createElement(\"span\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_12)),\n });\n };\n let matchResult, l_1, s_10;\n if (lastQuote != null) {\n if (x != null) {\n matchResult = 1;\n l_1 = lastQuote;\n s_10 = x;\n }\n else {\n matchResult = 0;\n }\n }\n else {\n matchResult = 0;\n }\n switch (matchResult) {\n case 0: {\n patternInput = [textInlineLoading(), ltNone()];\n break;\n }\n default: {\n const matchValue_5 = s_10.AvgQuoteLastTen;\n if (matchValue_5 != null) {\n const aqlt = matchValue_5;\n const percentDiff = shortPercentageToString(~~(100 * toPositivePercentageChange(l_1.Close, aqlt.Avg)));\n patternInput = [createElement(\"span\", {\n style: createObj(toList(delay(() => append((aqlt.Avg > l_1.Close) ? singleton([\"color\", \"var(--sell)\"]) : ((aqlt.Avg < l_1.Close) ? singleton([\"color\", \"var(--buy)\"]) : empty_1()), delay(() => singleton([\"fontWeight\", \"bold\"])))))),\n children: (aqlt.Avg > l_1.Close) ? (`${percentDiff} under`) : ((aqlt.Avg < l_1.Close) ? (`${percentDiff} over`) : \"lik\"),\n }), createElement(\"span\", {\n children: [`den gjennomsnittlige sluttkursen basert på de siste 10 handelsdager på NOK ${quoteToString(aqlt.Avg)}`],\n })];\n }\n else {\n patternInput = [textInlineLoading(), ltNone()];\n }\n }\n }\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_3 = [createElement(\"p\", createObj(singleton_1((elems_2 = toList(delay(() => {\n let matchValue_6;\n return append((matchValue_6 = lastQuote, (matchValue_6 != null) ? singleton(`Sluttkurs NOK ${quoteToString(matchValue_6.Close)} er `) : append(singleton(\"Sluttkurs NOK \"), delay(() => append(singleton(textInlineLoading()), delay(() => singleton(\" er \")))))), delay(() => append(singleton(patternInput[0]), delay(() => append(singleton(\" \"), delay(() => append(singleton(patternInput[1]), delay(() => singleton(\".\")))))))));\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))]))))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])))), delay(() => {\n let elems_5, elems_4;\n let patternInput_1;\n const ltNone_1 = () => {\n const children_14 = ofArray([\"det gjennomsnittlig volumet basert på de siste 10 handelsdager på \", textInlineLoading(), \" aksjer.\"]);\n return createElement(\"span\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_14)),\n });\n };\n let matchResult_1, l_3, s_11;\n if (lastQuote != null) {\n if (x != null) {\n matchResult_1 = 1;\n l_3 = lastQuote;\n s_11 = x;\n }\n else {\n matchResult_1 = 0;\n }\n }\n else {\n matchResult_1 = 0;\n }\n switch (matchResult_1) {\n case 0: {\n patternInput_1 = [textInlineLoading(), ltNone_1()];\n break;\n }\n default: {\n const matchValue_8 = s_11.AvgVolumeLastTen;\n if (matchValue_8 != null) {\n const av = matchValue_8;\n const avg = ~~av.Avg | 0;\n const percentDiff_1 = shortPercentageToString(~~(100 * toPositivePercentageChange(l_3.Volume, av.Avg)));\n patternInput_1 = [createElement(\"span\", {\n style: createObj(toList(delay(() => append((avg > l_3.Volume) ? singleton([\"color\", \"var(--sell)\"]) : ((avg < l_3.Volume) ? singleton([\"color\", \"var(--buy)\"]) : empty_1()), delay(() => singleton([\"fontWeight\", \"bold\"])))))),\n children: (avg > l_3.Volume) ? (`${percentDiff_1} under`) : ((avg < l_3.Volume) ? (`${percentDiff_1} over`) : \"lik\"),\n }), createElement(\"span\", {\n children: [`det gjennomsnittlig volumet basert på de siste 10 handelsdager på ${toShortAmount(avg)} aksjer`],\n })];\n }\n else {\n patternInput_1 = [textInlineLoading(), ltNone_1()];\n }\n }\n }\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_5 = [createElement(\"p\", createObj(singleton_1((elems_4 = toList(delay(() => {\n let matchValue_9, children_16;\n return append((matchValue_9 = lastQuote, (matchValue_9 != null) ? singleton(`Handelsvolumet på ${toShortAmount(matchValue_9.Volume)} aksjer er `) : singleton((children_16 = ofArray([\"Handelsvolumet på \", textInlineLoading(), \" aksjer er \"]), createElement(\"span\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_16)),\n })))), delay(() => append(singleton(patternInput_1[0]), delay(() => append(singleton(\" \"), delay(() => singleton(patternInput_1[1])))))));\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))]))))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_5))])])))), delay(() => {\n let elems_6;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n marginTop: 10,\n fontSize: Dimensions_TextSmall,\n fontStyle: \"italic\",\n }], (elems_6 = [createElement(\"span\", {\n children: [`Basert på siste sluttkurs ${lastClose}`],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_6))])]))));\n }));\n }));\n }));\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_7))])])));\n}\n\nfunction drawMovingAverage(x) {\n let elems_4;\n const td$0027 = (hideSmall, y) => createElement(\"td\", createObj(toList(delay(() => append(hideSmall ? singleton([\"className\", \"hide-small-screens\"]) : empty_1(), delay(() => append(singleton([\"style\", {\n padding: ((((((6 + \"px \") + 12) + \"px \") + 6) + \"px \") + 8) + \"px\",\n color: \"var(--text-main)\",\n }]), delay(() => {\n let elems;\n return singleton((elems = toList(delay(() => {\n if (x != null) {\n const matchValue = y;\n if (matchValue != null) {\n const q = matchValue;\n return singleton(Tooltip_wrapTooltip(`Per ${utcDateToLocalDate(q.LastQuote.Date)}`, quoteToString(q.MA)));\n }\n else {\n return singleton(\"N/A\");\n }\n }\n else {\n return singleton(LoadingIndicator_skeleton(ofArray([[\"height\", 22], [\"width\", 50]])));\n }\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))]));\n }))))))));\n const tdAbove = (hideSmall_1, y_1) => createElement(\"td\", createObj(toList(delay(() => append(hideSmall_1 ? singleton([\"className\", \"hide-small-screens\"]) : empty_1(), delay(() => append(singleton([\"style\", createObj(toList(delay(() => append(singleton([\"padding\", ((((((6 + \"px \") + 12) + \"px \") + 6) + \"px \") + 8) + \"px\"]), delay(() => {\n let matchValue_2;\n const matchValue_1 = y_1;\n if (matchValue_1 != null) {\n const q_1 = matchValue_1;\n return singleton([\"color\", (matchValue_2 = q_1.MA, (matchValue_2 === q_1.LastQuote.Close) ? \"var(--text-main)\" : ((matchValue_2 > q_1.LastQuote.Close) ? \"var(--sell)\" : \"var(--buy)\"))]);\n }\n else {\n return singleton([\"color\", \"var(--text-dim)\"]);\n }\n })))))]), delay(() => {\n let elems_1;\n return singleton((elems_1 = toList(delay(() => {\n if (x != null) {\n const matchValue_3 = y_1;\n if (matchValue_3 != null) {\n const q_2 = matchValue_3;\n return singleton(Tooltip_wrapTooltip(`Kurs ${quoteToString(q_2.LastQuote.Close)}`, (q_2.MA > q_2.LastQuote.Close) ? \"Under\" : \"Over\"));\n }\n else {\n return singleton(\"N/A\");\n }\n }\n else {\n return singleton(LoadingIndicator_skeleton(ofArray([[\"height\", 22], [\"width\", 50]])));\n }\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))]));\n }))))))));\n const summaryToEntry = (f) => {\n if (x != null) {\n return f(x);\n }\n else {\n return undefined;\n }\n };\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_4 = toList(delay(() => append(singleton(subSectionTitle(\"Glidende gjennomsnitt (SMA)\")), delay(() => {\n let children_10, children_2, children, children_8, children_4, children_6;\n return append(singleton((children_10 = ofArray([(children_2 = singleton_1((children = ofArray([th$0027(false, \"\"), th$0027(true, \"SMA 20\"), th$0027(false, \"SMA 50\"), th$0027(false, \"SMA 100\"), th$0027(false, \"SMA 200\")]), createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))), createElement(\"thead\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_2)),\n })), (children_8 = ofArray([(children_4 = ofArray([createElement(\"td\", {\n children: [\"Gj.snitt\"],\n }), td$0027(true, summaryToEntry((m) => m.Twenty)), td$0027(false, summaryToEntry((m_1) => m_1.Fifty)), td$0027(false, summaryToEntry((m_2) => m_2.Hundred)), td$0027(false, summaryToEntry((m_3) => m_3.TwoHundred))]), createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_4)),\n })), (children_6 = ofArray([createElement(\"td\", {\n children: [\"Sluttkurs er\"],\n }), tdAbove(true, summaryToEntry((m_4) => m_4.Twenty)), tdAbove(false, summaryToEntry((m_5) => m_5.Fifty)), tdAbove(false, summaryToEntry((m_6) => m_6.Hundred)), tdAbove(false, summaryToEntry((m_7) => m_7.TwoHundred))]), createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_6)),\n }))]), createElement(\"tbody\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_8)),\n }))]), createElement(\"table\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_10)),\n }))), delay(() => {\n let elems_3, elems_2;\n const matchValue_4 = x;\n if (matchValue_4 != null) {\n const m_8 = matchValue_4;\n const matchValue_5 = m_8.Fifty;\n const matchValue_6 = m_8.TwoHundred;\n let matchResult, f_1, th;\n if (matchValue_6 != null) {\n if (matchValue_5 != null) {\n matchResult = 1;\n f_1 = matchValue_5;\n th = matchValue_6;\n }\n else {\n matchResult = 0;\n }\n }\n else {\n matchResult = 0;\n }\n switch (matchResult) {\n case 0: {\n return empty_1();\n }\n default:\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_3 = [createElement(\"p\", createObj(singleton_1((elems_2 = [`Siste 50 dagers glidende gjennomsnitt på NOK ${quoteToString(f_1.MA)} er `, createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: (f_1.MA > th.MA) ? \"over\" : ((f_1.MA < th.MA) ? \"under\" : \"lik\"),\n }), ` 200 dagers glidende gjennomsnitt på NOK ${quoteToString(th.MA)}. Teoretisk sett er dette en `, createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n color: (f_1.MA <= th.MA) ? \"var(--sell)\" : \"var(--buy)\",\n },\n children: (f_1.MA < th.MA) ? \"negativ\" : \"positiv\",\n }), \" indikator for videre kursutvikling ifølge teknisk analyse.\"], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))]))))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])]))));\n }\n }\n else {\n return singleton(LoadingIndicator_skeleton(singleton_1([\"minHeight\", 80])));\n }\n }));\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))])])));\n}\n\nfunction drawMissingInfo() {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems = [createElement(\"span\", {\n children: \"Ingen kursdata for valgt periode\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])));\n}\n\nexport function AssetQuote(assetQuoteInputProps) {\n let elems_4, elems_3;\n const ticker = assetQuoteInputProps.ticker;\n const market = assetQuoteInputProps.market;\n const assetId = assetQuoteInputProps.assetId;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(assetId));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchQuotes(assetId, model_1.SelectedPeriod, dispatch);\n fetchSummary(market, ticker, dispatch);\n fetchMovingAverage(market, ticker, dispatch);\n fetchSplits(market, ticker, model_1.SelectedPeriod, dispatch);\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n padding: 2 + \"vw\",\n }], (elems_4 = [Alert_snackError(model_1.ErrorMsg, () => {\n dispatch(new Message(6, []));\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"left\",\n }], (elems_3 = toList(delay(() => {\n let elems_2;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: 20,\n }], (elems_2 = toList(delay(() => append(singleton(createElement(\"h2\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: 500,\n margin: 0,\n },\n children: \"Kursutvikling\",\n })), delay(() => {\n let elements, elems;\n return (model_1.Entries == null) ? singleton(LoadingIndicator_skeleton(ofArray([[\"width\", 102], [\"height\", 48]]))) : singleton(MuiHelpers_createElement(FormControl, [(elements = [MuiHelpers_createElement(InputLabel, [[\"variant\", \"standard\"], [\"id\", \"quote-period-select-label-id\"], [\"children\", \"Periode\"]]), MuiHelpers_createElement(Select, [[\"id\", \"quote-period-select-id\"], [\"labelId\", \"quote-period-select-label-id\"], [\"label\", \"Periode\"], [\"variant\", \"standard\"], [\"value\", ReportPeriod__ToInt(model_1.SelectedPeriod)], [\"onChange\", (e_1, _arg_2) => {\n const e = e_1.target.value;\n try {\n const p = ReportPeriod_FromInt_Z524259A4(e);\n dispatch(new Message(4, [p]));\n fetchQuotes(model_1.AssetId, p, dispatch);\n fetchSplits(market, ticker, p, dispatch);\n }\n catch (matchValue) {\n }\n }], (elems = [MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(0, []))], [\"children\", \"Uke\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(1, []))], [\"children\", \"1 måned\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(2, []))], [\"children\", \"3 måneder\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(3, []))], [\"children\", \"Siste 6 måneder\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(4, []))], [\"children\", \"Ett år\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(5, []))], [\"children\", \"2 år\"]])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]));\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))), delay(() => {\n let matchValue_1, x;\n return append((matchValue_1 = model_1.Entries, (matchValue_1 != null) ? ((x = matchValue_1, (x.length === 0) ? singleton(drawMissingInfo()) : singleton(drawGraph(x, model_1.Presentation, model_1.Splits, dispatch)))) : append(singleton(LoadingIndicator_skeleton(ofArray([[\"minHeight\", 210], [\"height\", 20 + \"vh\"]]))), delay(() => singleton(LoadingIndicator_skeleton(ofArray([[\"height\", 32], [\"marginBottom\", 5], [\"maxWidth\", 300]])))))), delay(() => append(singleton(drawSummary(model_1.LastQuote, model_1.Summary)), delay(() => singleton(drawMovingAverage(model_1.MovingAverage))))));\n }));\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))])])));\n}\n\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, string_type, option_type, array_type, int32_type, union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { int32ToString, createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { sumBy } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { DefaultBorder, Dimensions_TextSmall } from \"../Design.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { append, singleton, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Interop_reactApi as Interop_reactApi_1 } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { ResponsiveContainer, PieChart, Pie, Cell, Legend, Label } from \"recharts\";\nimport { StockRating, StockRating__ToColorCode } from \"../Shared/Shared.js\";\nimport { toShortAmountL, toShortAmount } from \"../Utils.js\";\nimport { op_Addition, fromInt32, op_Multiply, toInt64 } from \"../fable_modules/fable-library-js.4.17.0/BigInt.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { LoadingIndicator_skeleton, Alert_snackError } from \"../ViewHelpers.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { MenuItem, Select, InputLabel, FormControl } from \"@mui/material\";\n\nclass PeriodOption extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"SixMonths\", \"TwoMonths\", \"OneMonth\", \"SevenDays\"];\n }\n}\n\nfunction PeriodOption_$reflection() {\n return union_type(\"Investfora.AssetInsiderTrade.PeriodOption\", [], PeriodOption, () => [[], [], [], []]);\n}\n\nfunction PeriodOption_FromId_Z524259A4(x) {\n switch (x) {\n case 2:\n return new PeriodOption(1, []);\n case 3:\n return new PeriodOption(2, []);\n case 4:\n return new PeriodOption(3, []);\n default:\n return new PeriodOption(0, []);\n }\n}\n\nfunction PeriodOption__ToId(this$) {\n switch (this$.tag) {\n case 1:\n return 2;\n case 2:\n return 3;\n case 3:\n return 4;\n default:\n return 1;\n }\n}\n\nfunction PeriodOption__ToHttpVar(this$) {\n switch (this$.tag) {\n case 1:\n return \"2m\";\n case 2:\n return \"1m\";\n case 3:\n return \"7d\";\n default:\n return \"6m\";\n }\n}\n\nclass Model extends Record {\n constructor(AssetId, Summary, Period, ErrorMsg) {\n super();\n this.AssetId = (AssetId | 0);\n this.Summary = Summary;\n this.Period = Period;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.AssetInsiderTrade.Model\", [], Model, () => [[\"AssetId\", int32_type], [\"Summary\", option_type(array_type(DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection()))], [\"Period\", PeriodOption_$reflection()], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"SummaryResponse\", \"UpdatePeriod\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.AssetInsiderTrade.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", PeriodOption_$reflection()]], []]);\n}\n\nfunction init(assetId) {\n return new Model(assetId, undefined, new PeriodOption(0, []), undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1:\n return new Model(model.AssetId, model.Summary, msg.fields[0], model.ErrorMsg);\n case 2:\n return new Model(model.AssetId, model.Summary, model.Period, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return new Model(model.AssetId, model.Summary, model.Period, \"Kunne ikke laste innsidehandel oppsummering. Vennligst prøv igjen senere.\");\n }\n else {\n return new Model(model.AssetId, res.fields[0], model.Period, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction fetchSummary(assetId, po, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const requestPath = `/api/asset/insider-trade/summary/${assetId}?period=${PeriodOption__ToHttpVar(po)}`;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nclass PiePoint extends Record {\n constructor(Aksjer) {\n super();\n this.Aksjer = (Aksjer | 0);\n }\n}\n\nfunction PiePoint_$reflection() {\n return record_type(\"Investfora.AssetInsiderTrade.PiePoint\", [], PiePoint, () => [[\"Aksjer\", int32_type]]);\n}\n\nfunction drawSummary(model, dispatch, x) {\n let elems_13, elems_3, elems_12, elems_6, elems_7, elems_10, elems_11;\n const buys = x.filter((i) => (i.NumShares > 0));\n const sells = x.filter((i_1) => (i_1.NumShares < 0));\n const numBoughtShares = sumBy((b) => b.NumShares, buys, {\n GetZero: () => 0,\n Add: (x_1, y) => (x_1 + y),\n }) | 0;\n const numSoldShares = (-1 * sumBy((b_1) => b_1.NumShares, sells, {\n GetZero: () => 0,\n Add: (x_2, y_1) => (x_2 + y_1),\n })) | 0;\n const numSharesData = [{\n name: \"Antall kjøpt\",\n value: numBoughtShares,\n }, {\n name: \"Antall solgt\",\n value: numSoldShares,\n }];\n const boughKs = sumBy((i_2) => i_2.EstValueK, buys, {\n GetZero: () => 0,\n Add: (x_4, y_3) => (x_4 + y_3),\n }) | 0;\n const soldKs = (-1 * sumBy((i_3) => i_3.EstValueK, sells, {\n GetZero: () => 0,\n Add: (x_5, y_4) => (x_5 + y_4),\n })) | 0;\n const valuationData = [{\n name: \"Verdi kjøpt\",\n value: boughKs,\n }, {\n name: \"Verdi solgt\",\n value: soldKs,\n }];\n const numText = (content, title) => {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontSize: 1.2 + \"rem\",\n fontWeight: \"bold\",\n },\n children: content,\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n },\n children: title,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n };\n const graphBox = (children) => createElement(\"div\", {\n style: createObj(ofArray([[\"display\", \"flex\"], [\"width\", 100 + \"%\"], [\"maxWidth\", 400], [\"backgroundColor\", \"#f8f8f8\"], DefaultBorder, [\"borderRadius\", 5], [\"padding\", 5]])),\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n const notEnoughData = () => {\n let elems_2;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"inherit\",\n justifyContent: \"center\",\n }], (elems_2 = [createElement(\"span\", {\n style: {\n fontStyle: \"italic\",\n fontSize: Dimensions_TextSmall,\n },\n children: \"Ikke nok data for valgt periode\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n };\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n gap: ((10 + \"px \") + 10) + \"px\",\n }], (elems_13 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n gap: ((10 + \"px \") + 10) + \"px\",\n width: 100 + \"%\",\n justifyContent: \"center\",\n borderBottom: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n paddingBottom: 10,\n }], (elems_3 = [numText(int32ToString(x.length), \"Handler\"), numText(int32ToString(buys.length), \"Innsidekjøp\"), numText(int32ToString(sells.length), \"Innsidesalg\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-around\",\n gap: ((10 + \"px \") + 10) + \"px\",\n borderBottom: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n paddingBottom: 10,\n }], (elems_12 = [graphBox([createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 200,\n width: 200,\n }], (elems_6 = toList(delay(() => {\n let properties_23, properties_22, elements_1, properties_21, elements, properties_19, properties_20;\n return (x.length === 0) ? singleton(notEnoughData()) : singleton((properties_23 = ofArray([[\"minWidth\", 250], [\"minHeight\", 210], [\"children\", (properties_22 = ofArray([[\"margin\", {\n top: defaultArg(5, 0),\n right: defaultArg(0, 0),\n left: defaultArg(0, 0),\n bottom: defaultArg(20, 0),\n }], (elements_1 = ofArray([Interop_reactApi_1.createElement(Label, {}), Interop_reactApi_1.createElement(Legend, {}), (properties_21 = ofArray([[\"data\", numSharesData], [\"dataKey\", \"value\"], [\"innerRadius\", 40 + \"%\"], (elements = ofArray([(properties_19 = ofArray([[\"key\", \"Antall kjøpt\"], [\"fill\", StockRating__ToColorCode(new StockRating(0, []))]]), Interop_reactApi_1.createElement(Cell, createObj(properties_19))), (properties_20 = ofArray([[\"key\", \"Antall solgt\"], [\"fill\", StockRating__ToColorCode(new StockRating(4, []))]]), Interop_reactApi_1.createElement(Cell, createObj(properties_20)))]), [\"children\", [\"children\", Interop_reactApi.Children.toArray(Array.from(elements))]])]), Interop_reactApi_1.createElement(Pie, createObj(properties_21)))]), [\"children\", Interop_reactApi.Children.toArray(Array.from(elements_1))])]), Interop_reactApi_1.createElement(PieChart, createObj(properties_22)))]]), Interop_reactApi_1.createElement(ResponsiveContainer, createObj(properties_23))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n gap: ((10 + \"px \") + 10) + \"px\",\n width: 100 + \"%\",\n maxWidth: 170,\n justifyContent: \"center\",\n }], (elems_7 = [numText(toShortAmount(numBoughtShares), \"Antall aksjer kjøpt\"), numText(toShortAmount(numSoldShares), \"Antall aksjer solgt\"), numText(toShortAmount(numBoughtShares + numSoldShares), \"Antall aksjer\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])])))]), graphBox([createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 200,\n width: 200,\n }], (elems_10 = toList(delay(() => {\n let properties_34, properties_33, elements_3, properties_32, elements_2, properties_30, properties_31;\n return (x.length === 0) ? singleton(notEnoughData()) : singleton((properties_34 = ofArray([[\"minWidth\", 250], [\"minHeight\", 210], [\"children\", (properties_33 = ofArray([[\"margin\", {\n top: defaultArg(5, 0),\n right: defaultArg(0, 0),\n left: defaultArg(0, 0),\n bottom: defaultArg(20, 0),\n }], (elements_3 = ofArray([Interop_reactApi_1.createElement(Label, {}), Interop_reactApi_1.createElement(Legend, {}), (properties_32 = ofArray([[\"dataKey\", \"value\"], [\"innerRadius\", 40 + \"%\"], [\"data\", valuationData], (elements_2 = ofArray([(properties_30 = ofArray([[\"key\", \"Verdi kjøpt\"], [\"fill\", StockRating__ToColorCode(new StockRating(0, []))]]), Interop_reactApi_1.createElement(Cell, createObj(properties_30))), (properties_31 = ofArray([[\"key\", \"Verdi solgt\"], [\"fill\", StockRating__ToColorCode(new StockRating(4, []))]]), Interop_reactApi_1.createElement(Cell, createObj(properties_31)))]), [\"children\", [\"children\", Interop_reactApi.Children.toArray(Array.from(elements_2))]])]), Interop_reactApi_1.createElement(Pie, createObj(properties_32)))]), [\"children\", Interop_reactApi.Children.toArray(Array.from(elements_3))])]), Interop_reactApi_1.createElement(PieChart, createObj(properties_33)))]]), Interop_reactApi_1.createElement(ResponsiveContainer, createObj(properties_34))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_10))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n gap: ((10 + \"px \") + 10) + \"px\",\n width: 100 + \"%\",\n maxWidth: 170,\n justifyContent: \"center\",\n }], (elems_11 = [numText(toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(boughKs)), 1000n))), \"Est. verdi kjøp\"), numText(toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(soldKs)), 1000n))), \"Est. verdi solgt\"), numText(toShortAmountL(toInt64(op_Addition(toInt64(op_Multiply(toInt64(fromInt32(boughKs)), 1000n)), toInt64(op_Multiply(toInt64(fromInt32(soldKs)), 1000n))))), \"Est. samlet handelsverdi\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_11))])])))])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_12))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_13))])])));\n}\n\nexport function AssetInsiderTrade(assetInsiderTradeInputProps) {\n let elems_7;\n const assetId = assetInsiderTradeInputProps.assetId;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(assetId));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchSummary(model_1.AssetId, model_1.Period, dispatch);\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n padding: 2 + \"vw\",\n }], (elems_7 = toList(delay(() => append(singleton(Alert_snackError(model_1.ErrorMsg, () => {\n dispatch(new Message(2, []));\n })), delay(() => {\n let elems_4, elems, elems_3, elements, elems_1;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"flex-end\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n marginBottom: 20,\n }], (elems_4 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"left\",\n }], (elems = [createElement(\"h2\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: 500,\n margin: 0,\n },\n children: \"Innsidehandler\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"flex-end\",\n }], (elems_3 = [MuiHelpers_createElement(FormControl, [(elements = [MuiHelpers_createElement(InputLabel, [[\"variant\", \"standard\"], [\"id\", \"period-select-label-id\"], [\"children\", \"Periode\"]]), MuiHelpers_createElement(Select, [[\"id\", \"period-select-id\"], [\"labelId\", \"period-select-label-id\"], [\"label\", \"Periode\"], [\"variant\", \"standard\"], [\"value\", PeriodOption__ToId(model_1.Period)], [\"onChange\", (e, _arg_2) => {\n const p = PeriodOption_FromId_Z524259A4(e.target.value);\n dispatch(new Message(1, [p]));\n fetchSummary(model_1.AssetId, p, dispatch);\n }], (elems_1 = [MuiHelpers_createElement(MenuItem, [[\"value\", PeriodOption__ToId(new PeriodOption(0, []))], [\"children\", \"6 måneder\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", PeriodOption__ToId(new PeriodOption(1, []))], [\"children\", \"2 måneder\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", PeriodOption__ToId(new PeriodOption(2, []))], [\"children\", \"1 måned\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", PeriodOption__ToId(new PeriodOption(3, []))], [\"children\", \"7 dager\"]])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elements))])])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))), delay(() => {\n let matchValue, elems_5;\n return append((matchValue = model_1.Summary, (matchValue != null) ? singleton(drawSummary(model_1, dispatch, matchValue)) : singleton(createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_5 = [LoadingIndicator_skeleton(ofArray([[\"height\", 48], [\"marginBottom\", 5], [\"maxWidth\", 250]])), LoadingIndicator_skeleton(ofArray([[\"minHeight\", 210], [\"height\", 20 + \"vh\"]])), LoadingIndicator_skeleton(ofArray([[\"height\", 3 + \"rem\"], [\"marginBottom\", 5], [\"maxWidth\", 300]]))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])]))))), delay(() => {\n let elems_6;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n marginTop: 10,\n fontSize: Dimensions_TextSmall,\n fontStyle: \"italic\",\n }], (elems_6 = [createElement(\"span\", {\n children: [\"Denne oppsummeringen er AI-generert av ChatGPT fra børsmeldingen. Med forbehold om feil.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])]))));\n }));\n }));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])])));\n}\n\n","const pushAd = () => {\n try {\n const adsbygoogle = window.adsbygoogle\n console.log({ adsbygoogle })\n adsbygoogle.push({})\n } catch (e) {\n console.error(e)\n }\n}\n \nfunction handleAds () {\n let interval = setInterval(() => {\n // Check if Adsense script is loaded every 200ms\n if (window.adsbygoogle) {\n pushAd()\n // clear the interval once the ad is pushed so that function isn't called indefinitely\n clearInterval(interval)\n }\n }, 200) \n}\n\nexport {handleAds};","import { createElement } from \"react\";\nimport React from \"react\";\nimport { useReact_useEffectOnce_3A5B6456 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport * as gad from \"../../Content/gad.js\";\nimport { empty, singleton, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\n\nexport function FeedEntry() {\n const isProd = window.location.host === \"www.aksje.io\";\n useReact_useEffectOnce_3A5B6456(() => {\n if (isProd) {\n gad.handleAds();\n }\n });\n const children = toList(delay(() => (isProd ? singleton(createElement(\"ins\", {\n className: \"adsbygoogle\",\n style: {\n display: \"block\",\n },\n \"data-ad-format\": \"fluid\",\n \"data-ad-layout-key\": \"-f9+5v+4m-d8+7b\",\n \"data-ad-client\": \"ca-pub-4939860990005599\",\n \"data-ad-slot\": \"2675278532\",\n })) : empty())));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function AssetBanner() {\n const isProd = window.location.host === \"www.aksje.io\";\n useReact_useEffectOnce_3A5B6456(() => {\n if (isProd) {\n gad.handleAds();\n }\n });\n const children = toList(delay(() => (isProd ? singleton(createElement(\"ins\", {\n className: \"adsbygoogle\",\n style: {\n display: \"block\",\n },\n \"data-ad-format\": \"fluid\",\n \"data-ad-client\": \"ca-pub-4939860990005599\",\n \"data-ad-slot\": \"1540545867\",\n \"data-ad-format\": \"auto\",\n \"data-full-width-responsive\": true,\n })) : empty())));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function SquareAd() {\n const isProd = window.location.host === \"www.aksje.io\";\n useReact_useEffectOnce_3A5B6456(() => {\n if (isProd) {\n gad.handleAds();\n }\n });\n const children = toList(delay(() => (isProd ? singleton(createElement(\"ins\", {\n className: \"adsbygoogle\",\n style: {\n display: \"block\",\n },\n \"data-ad-client\": \"ca-pub-4939860990005599\",\n \"data-ad-slot\": \"8032660380\",\n \"data-ad-format\": \"auto\",\n \"data-full-width-responsive\": true,\n })) : empty())));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function InsiderTradeOverview() {\n const isProd = window.location.host === \"www.aksje.io\";\n useReact_useEffectOnce_3A5B6456(() => {\n if (isProd) {\n gad.handleAds();\n }\n });\n const children = toList(delay(() => (isProd ? singleton(createElement(\"ins\", {\n className: \"adsbygoogle\",\n style: {\n display: \"block\",\n },\n \"data-ad-client\": \"ca-pub-4939860990005599\",\n \"data-ad-slot\": \"7720980173\",\n \"data-ad-format\": \"auto\",\n \"data-full-width-responsive\": \"true\",\n })) : empty())));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { float64_type, obj_type, record_type, string_type, array_type, bool_type, option_type, int32_type, union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { DataServer_Short_ShortPosition_$reflection, Short_Event_$reflection, Short_ShortSummary_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { singleton as singleton_1, cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { comparePrimitives, equals, createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { ResponsiveContainer, ComposedChart, LineChart, Line, BarChart, Bar, Legend, Tooltip, YAxis, XAxis } from \"recharts\";\nimport { toShortAmount, utcDateToLocalDate } from \"../Utils.js\";\nimport { Interop_reactApi as Interop_reactApi_1 } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { sortByDescending, sortBy, map as map_1 } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { compare, parse } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { LoadingIndicator_skeleton, Alert_snackError, groupButtonRight, groupButtonCenter, groupButtonLeft } from \"../ViewHelpers.js\";\nimport { useFeliz_React__React_useState_Static_1505, useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { MenuItem, Select, InputLabel, FormControl } from \"@mui/material\";\nimport { Dimensions_TextSmall } from \"../Design.js\";\nimport { DataServerBaseUrl } from \"../Session.js\";\n\nclass ReportPeriod extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Quarter\", \"Month\", \"HalfYear\", \"Year\"];\n }\n}\n\nfunction ReportPeriod_$reflection() {\n return union_type(\"Investfora.AssetShort.ReportPeriod\", [], ReportPeriod, () => [[], [], [], []]);\n}\n\nfunction ReportPeriod_FromInt_Z524259A4(x) {\n switch (x) {\n case 2:\n return new ReportPeriod(1, []);\n case 3:\n return new ReportPeriod(2, []);\n case 4:\n return new ReportPeriod(3, []);\n default:\n return new ReportPeriod(0, []);\n }\n}\n\nfunction ReportPeriod__ToInt(this$) {\n switch (this$.tag) {\n case 1:\n return 2;\n case 2:\n return 3;\n case 3:\n return 4;\n default:\n return 1;\n }\n}\n\nclass ReportInterval extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Weekly\", \"Monthly\", \"ByEvent\"];\n }\n}\n\nfunction ReportInterval_$reflection() {\n return union_type(\"Investfora.AssetShort.ReportInterval\", [], ReportInterval, () => [[], [], []]);\n}\n\nfunction ReportInterval_FromInt_Z524259A4(x) {\n switch (x) {\n case 2:\n return new ReportInterval(1, []);\n case 3:\n return new ReportInterval(2, []);\n default:\n return new ReportInterval(0, []);\n }\n}\n\nfunction ReportInterval__ToInt(this$) {\n switch (this$.tag) {\n case 1:\n return 2;\n case 2:\n return 3;\n default:\n return 1;\n }\n}\n\nclass ReportPresentation extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"NumShares\", \"Percentage\", \"Combined\"];\n }\n}\n\nfunction ReportPresentation_$reflection() {\n return union_type(\"Investfora.AssetShort.ReportPresentation\", [], ReportPresentation, () => [[], [], []]);\n}\n\nclass Model extends Record {\n constructor(AssetId, Summary, SelectedPeriod, SelectedInterval, Presentation, MissingInfo, Entries, ErrorMsg) {\n super();\n this.AssetId = (AssetId | 0);\n this.Summary = Summary;\n this.SelectedPeriod = SelectedPeriod;\n this.SelectedInterval = SelectedInterval;\n this.Presentation = Presentation;\n this.MissingInfo = MissingInfo;\n this.Entries = Entries;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.AssetShort.Model\", [], Model, () => [[\"AssetId\", int32_type], [\"Summary\", option_type(Short_ShortSummary_$reflection())], [\"SelectedPeriod\", ReportPeriod_$reflection()], [\"SelectedInterval\", ReportInterval_$reflection()], [\"Presentation\", ReportPresentation_$reflection()], [\"MissingInfo\", bool_type], [\"Entries\", option_type(array_type(Short_Event_$reflection()))], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"SummaryResponse\", \"EventsResponse\", \"UpdatePeriod\", \"UpdateInterval\", \"UpdatePresentation\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.AssetShort.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Short_ShortSummary_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Short_ShortSummary_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Short_Event_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(Short_Event_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", ReportPeriod_$reflection()]], [[\"Item\", ReportInterval_$reflection()]], [[\"Item\", ReportPresentation_$reflection()]], []]);\n}\n\nfunction init(assetId) {\n return new Model(assetId, undefined, new ReportPeriod(0, []), new ReportInterval(2, []), new ReportPresentation(0, []), false, undefined, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n return new Model(model.AssetId, model.Summary, model.SelectedPeriod, model.SelectedInterval, model.Presentation, model.MissingInfo, model.Entries, \"Kunne ikke laste short historikk. Vennligst prøv igjen senere.\");\n }\n else {\n return new Model(model.AssetId, model.Summary, model.SelectedPeriod, model.SelectedInterval, model.Presentation, model.MissingInfo, res_1.fields[0], model.ErrorMsg);\n }\n }\n case 2:\n return new Model(model.AssetId, model.Summary, msg.fields[0], model.SelectedInterval, model.Presentation, model.MissingInfo, model.Entries, model.ErrorMsg);\n case 3:\n return new Model(model.AssetId, model.Summary, model.SelectedPeriod, msg.fields[0], model.Presentation, model.MissingInfo, model.Entries, model.ErrorMsg);\n case 4:\n return new Model(model.AssetId, model.Summary, model.SelectedPeriod, model.SelectedInterval, msg.fields[0], model.MissingInfo, model.Entries, model.ErrorMsg);\n case 5:\n return new Model(model.AssetId, model.Summary, model.SelectedPeriod, model.SelectedInterval, model.Presentation, model.MissingInfo, model.Entries, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n const err = res.fields[0];\n let matchResult, y_1;\n if (err.tag === 2) {\n if ((err.fields[0].status) === 404) {\n matchResult = 0;\n y_1 = err.fields[0];\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n return new Model(model.AssetId, model.Summary, model.SelectedPeriod, model.SelectedInterval, model.Presentation, true, model.Entries, model.ErrorMsg);\n default:\n return new Model(model.AssetId, model.Summary, model.SelectedPeriod, model.SelectedInterval, model.Presentation, model.MissingInfo, model.Entries, \"Kunne ikke laste short-informasjon. Vennligst prøv igjen senere.\");\n }\n }\n else {\n return new Model(model.AssetId, res.fields[0], model.SelectedPeriod, model.SelectedInterval, model.Presentation, model.MissingInfo, model.Entries, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction fetchShort(assetId, period, interval, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const p = (period.tag === 1) ? \"?period=month\" : ((period.tag === 2) ? \"?period=half-year\" : ((period.tag === 3) ? \"?period=year\" : \"?period=quarter\"));\n const i = (interval.tag === 1) ? \"&interval=monthly\" : ((interval.tag === 2) ? \"&interval=by-event\" : \"&interval=weekly\");\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Short_Event_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/asset/short/${assetId}${p}${i}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Short_Event_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(1, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchSummary(assetId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(Short_ShortSummary_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/asset/short/summary/${assetId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Short_ShortSummary_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nclass Point extends Record {\n constructor(Date$, Aksjer, Prosent) {\n super();\n this.Date = Date$;\n this.Aksjer = (Aksjer | 0);\n this.Prosent = Prosent;\n }\n}\n\nfunction Point_$reflection() {\n return record_type(\"Investfora.AssetShort.Point\", [], Point, () => [[\"Date\", string_type], [\"Aksjer\", int32_type], [\"Prosent\", float64_type]]);\n}\n\nfunction numSharesChart(data) {\n let elements;\n const properties_5 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", data], [\"margin\", {\n top: defaultArg(5, 0),\n right: defaultArg(5, 0),\n left: defaultArg(10, 0),\n bottom: defaultArg(20, 0),\n }], (elements = ofArray([Interop_reactApi.createElement(XAxis, {\n dataKey: \"Date\",\n tickFormatter: (tick) => (`${utcDateToLocalDate(tick)}`),\n }), Interop_reactApi.createElement(YAxis, {\n yAxisId: \"left\",\n tickFormatter: toShortAmount,\n }), Interop_reactApi.createElement(Tooltip, {}), Interop_reactApi.createElement(Legend, {}), Interop_reactApi.createElement(Bar, {\n dataKey: \"Aksjer\",\n fill: \"#73AB84\",\n yAxisId: \"left\",\n })]), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]);\n return Interop_reactApi.createElement(BarChart, createObj(properties_5));\n}\n\nfunction percentageChart(data) {\n let elements;\n const properties_5 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", data], [\"margin\", {\n top: defaultArg(5, 0),\n right: defaultArg(5, 0),\n left: defaultArg(10, 0),\n bottom: defaultArg(20, 0),\n }], (elements = ofArray([Interop_reactApi.createElement(XAxis, {\n dataKey: \"Date\",\n tickFormatter: (tick) => (`${utcDateToLocalDate(tick)}`),\n }), Interop_reactApi.createElement(YAxis, {\n tickFormatter: (tick_1) => (`${tick_1}%`),\n }), Interop_reactApi.createElement(Tooltip, {}), Interop_reactApi.createElement(Legend, {}), Interop_reactApi.createElement(Line, {\n dataKey: \"Prosent\",\n stroke: \"#5F5566\",\n strokeWidth: 3,\n })]), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]);\n return Interop_reactApi.createElement(LineChart, createObj(properties_5));\n}\n\nfunction combinedChart(data) {\n let elements;\n const properties_7 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", data], [\"margin\", {\n top: defaultArg(5, 0),\n right: defaultArg(10, 0),\n left: defaultArg(10, 0),\n bottom: defaultArg(20, 0),\n }], (elements = ofArray([Interop_reactApi.createElement(XAxis, {\n dataKey: \"Date\",\n tickFormatter: (tick) => (`${utcDateToLocalDate(tick)}`),\n }), Interop_reactApi.createElement(YAxis, {\n yAxisId: \"left\",\n tickFormatter: toShortAmount,\n }), Interop_reactApi.createElement(YAxis, {\n yAxisId: \"right\",\n orientation: \"right\",\n tickFormatter: (tick_2) => (`${tick_2}%`),\n }), Interop_reactApi.createElement(Tooltip, {}), Interop_reactApi.createElement(Legend, {}), Interop_reactApi.createElement(Bar, {\n dataKey: \"Aksjer\",\n fill: \"#73AB84\",\n yAxisId: \"left\",\n }), Interop_reactApi.createElement(Line, {\n dataKey: \"Prosent\",\n stroke: \"#5F5566\",\n strokeWidth: 3,\n yAxisId: \"right\",\n })]), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]);\n return Interop_reactApi.createElement(ComposedChart, createObj(properties_7));\n}\n\nfunction drawGraph(x, p, dispatch) {\n let elems_2, elems, properties_2, elems_1;\n const data = map_1((y_2) => (new Point(y_2.Date, y_2.Shares, y_2.Points / 100)), sortBy((y) => parse(y.Date), x, {\n Compare: compare,\n }));\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_2 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n minHeight: 210,\n height: 20 + \"vh\",\n }], (elems = [(properties_2 = ofArray([[\"minWidth\", 250], [\"minHeight\", 210], [\"children\", (p.tag === 1) ? percentageChart(data) : ((p.tag === 2) ? combinedChart(data) : numSharesChart(data))]]), Interop_reactApi.createElement(ResponsiveContainer, createObj(properties_2)))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n }], (elems_1 = [groupButtonLeft(equals(p, new ReportPresentation(0, [])), (_arg) => {\n dispatch(new Message(4, [new ReportPresentation(0, [])]));\n }, [\"Antall aksjer\"]), groupButtonCenter(equals(p, new ReportPresentation(1, [])), (_arg_1) => {\n dispatch(new Message(4, [new ReportPresentation(1, [])]));\n }, [\"Prosent\"]), groupButtonRight(equals(p, new ReportPresentation(2, [])), (_arg_2) => {\n dispatch(new Message(4, [new ReportPresentation(2, [])]));\n }, [\"Kombinert\"])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])));\n}\n\nfunction drawMissingInfo() {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems = [createElement(\"span\", {\n children: \"Ingen short data for valgt periode\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])));\n}\n\nexport function AssetShort(assetShortInputProps) {\n let elems_9;\n const assetId = assetShortInputProps.assetId;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(assetId));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchSummary(assetId, dispatch);\n fetchShort(assetId, model_1.SelectedPeriod, model_1.SelectedInterval, dispatch);\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n padding: 2 + \"vw\",\n }], (elems_9 = toList(delay(() => append(singleton(Alert_snackError(model_1.ErrorMsg, () => {\n dispatch(new Message(5, []));\n })), delay(() => {\n let elems_8, children;\n const matchValue = model_1.Entries;\n if (matchValue != null) {\n const x = matchValue;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_8 = toList(delay(() => {\n let elems_6, elems, elems_5, elements, elems_1, elements_1, elems_3;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"flex-end\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n marginBottom: 20,\n }], (elems_6 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"left\",\n }], (elems = [createElement(\"h2\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: 500,\n margin: 0,\n },\n children: \"Short-utvikling\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"flex-end\",\n }], (elems_5 = [MuiHelpers_createElement(FormControl, [(elements = [MuiHelpers_createElement(InputLabel, [[\"variant\", \"standard\"], [\"id\", \"short-period-select-label-id\"], [\"children\", \"Periode\"]]), MuiHelpers_createElement(Select, [[\"id\", \"short-period-select-id\"], [\"labelId\", \"short-period-select-label-id\"], [\"label\", \"Periode\"], [\"variant\", \"standard\"], [\"value\", ReportPeriod__ToInt(model_1.SelectedPeriod)], [\"onChange\", (e_1, _arg_2) => {\n const e = e_1.target.value;\n try {\n const p = ReportPeriod_FromInt_Z524259A4(e);\n dispatch(new Message(2, [p]));\n fetchShort(model_1.AssetId, p, model_1.SelectedInterval, dispatch);\n }\n catch (matchValue_1) {\n }\n }], (elems_1 = [MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(1, []))], [\"children\", \"En måned\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(0, []))], [\"children\", \"3 måneder\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(2, []))], [\"children\", \"Siste 6 måneder\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportPeriod__ToInt(new ReportPeriod(3, []))], [\"children\", \"Ett år\"]])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]), MuiHelpers_createElement(FormControl, [[\"style\", {\n marginLeft: 1 + \"vw\",\n }], (elements_1 = [MuiHelpers_createElement(InputLabel, [[\"variant\", \"standard\"], [\"id\", \"short-interval-select-label-id\"], [\"children\", \"Intervall\"]]), MuiHelpers_createElement(Select, [[\"id\", \"short-interval-select-id\"], [\"labelId\", \"short-interval-select-label-id\"], [\"label\", \"Intervall\"], [\"variant\", \"standard\"], [\"value\", ReportInterval__ToInt(model_1.SelectedInterval)], [\"onChange\", (e_3, _arg_3) => {\n const e_2 = e_3.target.value;\n try {\n const i = ReportInterval_FromInt_Z524259A4(e_2);\n dispatch(new Message(3, [i]));\n fetchShort(model_1.AssetId, model_1.SelectedPeriod, i, dispatch);\n }\n catch (matchValue_2) {\n }\n }], (elems_3 = [MuiHelpers_createElement(MenuItem, [[\"value\", ReportInterval__ToInt(new ReportInterval(0, []))], [\"children\", \"Ukentlig\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", ReportInterval__ToInt(new ReportInterval(2, []))], [\"children\", \"Etter endring\"]])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements_1))])])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_5))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_6))])])))), delay(() => append((x.length === 0) ? singleton(drawMissingInfo()) : singleton(drawGraph(x, model_1.Presentation, dispatch)), delay(() => {\n let elems_7;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n marginTop: 10,\n fontSize: Dimensions_TextSmall,\n fontStyle: \"italic\",\n }], (elems_7 = [createElement(\"span\", {\n children: [\"Basert på short-posisjoner større eller lik 0.5% av utestående aksjer\"],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_7))])]))));\n }))));\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_8))])]))));\n }\n else {\n return singleton((children = ofArray([LoadingIndicator_skeleton(ofArray([[\"height\", 48], [\"marginBottom\", 5], [\"maxWidth\", 250]])), LoadingIndicator_skeleton(ofArray([[\"minHeight\", 210], [\"height\", 20 + \"vh\"]])), LoadingIndicator_skeleton(ofArray([[\"height\", 3 + \"rem\"], [\"marginBottom\", 5], [\"maxWidth\", 300]]))]), createElement(\"div\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n })));\n }\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_9))])])));\n}\n\nexport function TopShort(topShortInputProps) {\n let elems_3, elems_1, elems_2;\n const ticker = topShortInputProps.ticker;\n const market = topShortInputProps.market;\n const patternInput = useFeliz_React__React_useState_Static_1505(undefined);\n useReact_useEffectOnce_3A5B6456(() => {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_ShortPosition_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/asset-top/${market}/${ticker}`, properties_3).then((_arg_1) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg_1, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_ShortPosition_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_2) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_2), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_3) => {\n const res = _arg_3;\n if (res.tag === 1) {\n return Promise.resolve();\n }\n else {\n patternInput[1](res.fields[0]);\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n padding: 2 + \"vw\",\n }], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"left\",\n }], (elems_1 = toList(delay(() => append(singleton(createElement(\"h2\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: 500,\n margin: 0,\n },\n children: \"Topp 10 største short\",\n })), delay(() => {\n let elems, children_8, children_2, children, children_6;\n const matchValue_1 = patternInput[0];\n if (matchValue_1 != null) {\n const s = matchValue_1;\n return (s.length === 0) ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n marginTop: 20,\n }], (elems = [createElement(\"span\", {\n children: [\"Ingen rapporterte shortposisjoner over 0.5%\"],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])))) : singleton((children_8 = ofArray([(children_2 = singleton_1((children = ofArray([createElement(\"td\", {\n children: [\"Institusjon\"],\n }), createElement(\"td\", {\n children: [\"Prosent\"],\n }), createElement(\"td\", {\n children: [\"Antall aksjer\"],\n })]), createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))), createElement(\"thead\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_2)),\n })), (children_6 = map_1((s$0027_1) => {\n const children_4 = ofArray([createElement(\"td\", {\n children: [s$0027_1.Institution],\n }), createElement(\"td\", {\n children: [`${s$0027_1.Percent / 100}%`],\n }), createElement(\"td\", {\n children: [toShortAmount(s$0027_1.NumShares)],\n })]);\n return createElement(\"tr\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_4)),\n });\n }, sortByDescending((s$0027) => s$0027.NumShares, s, {\n Compare: comparePrimitives,\n })), createElement(\"tbody\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_6)),\n }))]), createElement(\"table\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_8)),\n })));\n }\n else {\n const loadingIndicator = () => LoadingIndicator_skeleton(ofArray([[\"height\", 40], [\"width\", 100 + \"%\"], [\"marginBottom\", 5]]));\n return append(singleton(loadingIndicator()), delay(() => append(singleton(loadingIndicator()), delay(() => singleton(loadingIndicator())))));\n }\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n marginTop: 10,\n fontSize: Dimensions_TextSmall,\n fontStyle: \"italic\",\n }], (elems_2 = [createElement(\"span\", {\n children: [\"Basert på short-posisjoner større eller lik 0.5% av utestående aksjer\"],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])));\n}\n\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, option_type, string_type, bool_type, union_type, int32_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { printf, toText } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { uncurry2, createObj } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { cons, empty, singleton as singleton_1, ofArray } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { CommentForm } from \"./CommentForm.js\";\nimport { append, singleton, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Alert_snackError, LoadingIndicator_loadingIndicatorSmall } from \"../ViewHelpers.js\";\nimport { unwrap, map, defaultArg, some } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Post_$reflection, Post, User as User_1 } from \"../Shared/ApiDataTypes.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { FetchError } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\n\nexport class Target extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"AssetPost\", \"NoTarget\"];\n }\n}\n\nexport function Target_$reflection() {\n return union_type(\"Investfora.PostForm.Target\", [], Target, () => [[[\"Item\", int32_type]], []]);\n}\n\nexport function Target__ToFormId(this$) {\n if (this$.tag === 1) {\n return \"post-form\";\n }\n else {\n return `asset-post-form-${this$.fields[0]}`;\n }\n}\n\nexport function Target__ToRequestPath(this$) {\n if (this$.tag === 1) {\n return \"\";\n }\n else {\n return toText(printf(\"/api/asset/post/%i\"))(this$.fields[0]);\n }\n}\n\nexport function Target__ToPostType(this$) {\n if (this$.tag === 1) {\n return \"\";\n }\n else {\n return \"asset-post\";\n }\n}\n\nclass Model extends Record {\n constructor(Active, ValidComment, Processing, Published, ErrorMsg) {\n super();\n this.Active = Active;\n this.ValidComment = ValidComment;\n this.Processing = Processing;\n this.Published = Published;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.PostForm.Model\", [], Model, () => [[\"Active\", bool_type], [\"ValidComment\", bool_type], [\"Processing\", bool_type], [\"Published\", bool_type], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nexport function PostForm(postFormInputProps) {\n let elems_2, elems_1, elems;\n const onClose = postFormInputProps.onClose;\n const autoActive = postFormInputProps.autoActive;\n const onPublish = postFormInputProps.onPublish;\n const target = postFormInputProps.target;\n const patternInput = useFeliz_React__React_useState_Static_1505(\"\");\n const comment = patternInput[0];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(new Model(autoActive, true, false, false, undefined));\n const updateModel = patternInput_1[1];\n const model = patternInput_1[0];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setProcessing = patternInput_2[1];\n const formId = Target__ToFormId(target);\n if (model.Active) {\n if (model.Published) {\n return createElement(\"div\", createObj(ofArray([[\"className\", \"review-form\"], [\"style\", {\n padding: 5,\n }], (elems_2 = [createElement(\"span\", {\n style: {\n display: \"block\",\n textAlign: \"center\",\n fontWeight: 500,\n fontSize: 1.2 + \"rem\",\n },\n children: \"Your post has been published!\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n }\n else {\n return createElement(\"div\", createObj(ofArray([[\"className\", \"review-form\"], (elems_1 = [createElement(CommentForm, {\n formId: formId,\n html: comment,\n onChange: patternInput[1],\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"flex-end\",\n padding: 5,\n }], (elems = toList(delay(() => (patternInput_2[0] ? singleton(LoadingIndicator_loadingIndicatorSmall()) : append(singleton(createElement(\"button\", {\n disabled: model.Processing,\n style: {\n marginRight: 10,\n },\n className: \"pill-button-small\",\n onClick: (_arg_3) => {\n if (!model.Processing) {\n onClose();\n updateModel(new Model(false, model.ValidComment, model.Processing, model.Published, model.ErrorMsg));\n }\n },\n children: \"Avbryt\",\n })), delay(() => singleton(createElement(\"button\", {\n disabled: model.Processing ? true : (comment.length === 0),\n className: \"pill-button-small\",\n onClick: (_arg_4) => {\n if (!model.Processing) {\n let hasComment;\n try {\n const x = document.getElementById(formId);\n if (!(x == null)) {\n const y = x.textContent;\n console.log(some(toText(printf(\"text: %s\"))(y)));\n hasComment = (y.length > 0);\n }\n else {\n hasComment = false;\n }\n }\n catch (e) {\n console.log(some(e));\n hasComment = false;\n }\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n if (!hasComment) {\n updateModel(new Model(model.Active, false, model.Processing, model.Published, model.ErrorMsg));\n return Promise.resolve();\n }\n else {\n setProcessing(true);\n updateModel(new Model(model.Active, true, model.Processing, model.Published, model.ErrorMsg));\n const requestPath = Target__ToRequestPath(target);\n const req = new Post(-1, Target__ToPostType(target), comment, 0, new User_1(loggedInUserId, loggedInUsername, false), 0, 0, \"\", 0, true, [], 0, false, undefined, undefined, undefined, undefined, undefined, undefined, undefined);\n return ((body = Auto_generateBoxedEncoder_437914C6(Post_$reflection(), undefined, undefined, undefined)(req), (decoder = Auto_generateBoxedDecoder_Z6670B51(Post_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton_1(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Post_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg_1) => (new FSharpResult$2(1, [new FetchError(3, [arg_1])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n const res = _arg_2;\n if (res.tag === 1) {\n const err = res.fields[0];\n return ((err.tag === 2) ? (((err.fields[0].status) === 429) ? ((updateModel(new Model(model.Active, model.ValidComment, model.Processing, model.Published, \"You have been temporarily muted for submitting too many posts and/or replies over a short amount of time.\")), Promise.resolve())) : ((updateModel(new Model(model.Active, model.ValidComment, model.Processing, model.Published, \"Could not publish post. Please try again later.\")), Promise.resolve()))) : ((updateModel(new Model(model.Active, model.ValidComment, model.Processing, model.Published, \"Could not publish post. Please try again later.\")), Promise.resolve()))).then(() => PromiseBuilder__Delay_62FBFDE1(promise, () => {\n setProcessing(false);\n return Promise.resolve();\n }));\n }\n else {\n onPublish(res.fields[0]);\n updateModel(new Model(model.Active, model.ValidComment, model.Processing, true, model.ErrorMsg));\n return Promise.resolve();\n }\n });\n }\n }));\n pr_1.then();\n }\n },\n children: \"Publiser\",\n }))))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), Alert_snackError(model.ErrorMsg, () => {\n updateModel(new Model(model.Active, model.ValidComment, model.Processing, model.Published, undefined));\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n }\n }\n else {\n const children = singleton_1(createElement(\"button\", {\n onClick: (_arg_6) => {\n updateModel(new Model(true, model.ValidComment, model.Processing, model.Published, model.ErrorMsg));\n },\n className: \"pill-button\",\n children: \"Nytt innlegg\",\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n }\n}\n\n","import { disposeSafe, defaultOf, toIterator, getEnumerator } from \"./Util.js\";\nimport { iterate, map, iterateIndexed, concat } from \"./Seq.js\";\nimport { setItem } from \"./Array.js\";\nimport { some } from \"./Option.js\";\nimport { FSharpRef } from \"./Types.js\";\nimport { class_type } from \"./Reflection.js\";\nimport { getItemFromDict, tryGetValue } from \"./MapUtil.js\";\nexport class HashSet {\n constructor(items, comparer) {\n const this$ = new FSharpRef(defaultOf());\n this.comparer = comparer;\n this$.contents = this;\n this.hashMap = (new Map([]));\n this[\"init@9\"] = 1;\n const enumerator = getEnumerator(items);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const item = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n HashSet__Add_2B595(this$.contents, item);\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n }\n get [Symbol.toStringTag]() {\n return \"HashSet\";\n }\n toJSON() {\n const this$ = this;\n return Array.from(this$);\n }\n \"System.Collections.IEnumerable.GetEnumerator\"() {\n const this$ = this;\n return getEnumerator(this$);\n }\n GetEnumerator() {\n const this$ = this;\n return getEnumerator(concat(this$.hashMap.values()));\n }\n [Symbol.iterator]() {\n return toIterator(getEnumerator(this));\n }\n \"System.Collections.Generic.ICollection`1.Add2B595\"(item) {\n const this$ = this;\n HashSet__Add_2B595(this$, item);\n }\n \"System.Collections.Generic.ICollection`1.Clear\"() {\n const this$ = this;\n HashSet__Clear(this$);\n }\n \"System.Collections.Generic.ICollection`1.Contains2B595\"(item) {\n const this$ = this;\n return HashSet__Contains_2B595(this$, item);\n }\n \"System.Collections.Generic.ICollection`1.CopyToZ3B4C077E\"(array, arrayIndex) {\n const this$ = this;\n iterateIndexed((i, e) => {\n setItem(array, arrayIndex + i, e);\n }, this$);\n }\n \"System.Collections.Generic.ICollection`1.get_Count\"() {\n const this$ = this;\n return HashSet__get_Count(this$) | 0;\n }\n \"System.Collections.Generic.ICollection`1.get_IsReadOnly\"() {\n return false;\n }\n \"System.Collections.Generic.ICollection`1.Remove2B595\"(item) {\n const this$ = this;\n return HashSet__Remove_2B595(this$, item);\n }\n get size() {\n const this$ = this;\n return HashSet__get_Count(this$) | 0;\n }\n add(k) {\n const this$ = this;\n HashSet__Add_2B595(this$, k);\n return this$;\n }\n clear() {\n const this$ = this;\n HashSet__Clear(this$);\n }\n delete(k) {\n const this$ = this;\n return HashSet__Remove_2B595(this$, k);\n }\n has(k) {\n const this$ = this;\n return HashSet__Contains_2B595(this$, k);\n }\n keys() {\n const this$ = this;\n return map((x) => x, this$);\n }\n values() {\n const this$ = this;\n return map((x) => x, this$);\n }\n entries() {\n const this$ = this;\n return map((v) => [v, v], this$);\n }\n forEach(f, thisArg) {\n const this$ = this;\n iterate((x) => {\n f(x, x, this$);\n }, this$);\n }\n}\nexport function HashSet_$reflection(gen0) {\n return class_type(\"Fable.Collections.HashSet\", [gen0], HashSet);\n}\nexport function HashSet_$ctor_Z6150332D(items, comparer) {\n return new HashSet(items, comparer);\n}\nfunction HashSet__TryFindIndex_2B595(this$, k) {\n const h = this$.comparer.GetHashCode(k) | 0;\n let matchValue;\n let outArg = defaultOf();\n matchValue = [tryGetValue(this$.hashMap, h, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n return [true, h, matchValue[1].findIndex((v_1) => this$.comparer.Equals(k, v_1))];\n }\n else {\n return [false, h, -1];\n }\n}\nfunction HashSet__TryFind_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n let matchResult;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n matchResult = 0;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n return some(getItemFromDict(this$.hashMap, matchValue[1])[matchValue[2]]);\n default:\n return undefined;\n }\n}\nexport function HashSet__get_Comparer(this$) {\n return this$.comparer;\n}\nexport function HashSet__Clear(this$) {\n this$.hashMap.clear();\n}\nexport function HashSet__get_Count(this$) {\n let count = 0;\n let enumerator = getEnumerator(this$.hashMap.values());\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const items = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n count = ((count + items.length) | 0);\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return count | 0;\n}\nexport function HashSet__Add_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n return false;\n }\n else {\n const value = void (getItemFromDict(this$.hashMap, matchValue[1]).push(k));\n return true;\n }\n }\n else {\n this$.hashMap.set(matchValue[1], [k]);\n return true;\n }\n}\nexport function HashSet__Contains_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n let matchResult;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n matchResult = 0;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n return true;\n default:\n return false;\n }\n}\nexport function HashSet__Remove_2B595(this$, k) {\n const matchValue = HashSet__TryFindIndex_2B595(this$, k);\n let matchResult;\n if (matchValue[0]) {\n if (matchValue[2] > -1) {\n matchResult = 0;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0: {\n getItemFromDict(this$.hashMap, matchValue[1]).splice(matchValue[2], 1);\n return true;\n }\n default:\n return false;\n }\n}\n","import { toList, toArray, map, filter, delay } from \"./Seq.js\";\nimport { HashSet } from \"./MutableSet.js\";\nimport { defaultOf, disposeSafe, getEnumerator } from \"./Util.js\";\nimport { addToDict, getItemFromDict, tryGetValue, addToSet } from \"./MapUtil.js\";\nimport { Dictionary } from \"./MutableMap.js\";\nimport { FSharpRef } from \"./Types.js\";\nexport function distinct(xs, comparer) {\n return delay(() => {\n const hashSet = new HashSet([], comparer);\n return filter((x) => addToSet(x, hashSet), xs);\n });\n}\nexport function distinctBy(projection, xs, comparer) {\n return delay(() => {\n const hashSet = new HashSet([], comparer);\n return filter((x) => addToSet(projection(x), hashSet), xs);\n });\n}\nexport function except(itemsToExclude, xs, comparer) {\n return delay(() => {\n const hashSet = new HashSet(itemsToExclude, comparer);\n return filter((x) => addToSet(x, hashSet), xs);\n });\n}\nexport function countBy(projection, xs, comparer) {\n return delay(() => {\n const dict = new Dictionary([], comparer);\n const keys = [];\n const enumerator = getEnumerator(xs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const key = projection(enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]());\n let matchValue;\n let outArg = 0;\n matchValue = [tryGetValue(dict, key, new FSharpRef(() => outArg, (v) => {\n outArg = (v | 0);\n })), outArg];\n if (matchValue[0]) {\n dict.set(key, matchValue[1] + 1);\n }\n else {\n dict.set(key, 1);\n void (keys.push(key));\n }\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return map((key_1) => [key_1, getItemFromDict(dict, key_1)], keys);\n });\n}\nexport function groupBy(projection, xs, comparer) {\n return delay(() => {\n const dict = new Dictionary([], comparer);\n const keys = [];\n const enumerator = getEnumerator(xs);\n try {\n while (enumerator[\"System.Collections.IEnumerator.MoveNext\"]()) {\n const x = enumerator[\"System.Collections.Generic.IEnumerator`1.get_Current\"]();\n const key = projection(x);\n let matchValue;\n let outArg = defaultOf();\n matchValue = [tryGetValue(dict, key, new FSharpRef(() => outArg, (v) => {\n outArg = v;\n })), outArg];\n if (matchValue[0]) {\n void (matchValue[1].push(x));\n }\n else {\n addToDict(dict, key, [x]);\n void (keys.push(key));\n }\n }\n }\n finally {\n disposeSafe(enumerator);\n }\n return map((key_1) => [key_1, getItemFromDict(dict, key_1)], keys);\n });\n}\nexport function Array_distinct(xs, comparer) {\n return toArray(distinct(xs, comparer));\n}\nexport function Array_distinctBy(projection, xs, comparer) {\n return toArray(distinctBy(projection, xs, comparer));\n}\nexport function Array_except(itemsToExclude, xs, comparer) {\n return toArray(except(itemsToExclude, xs, comparer));\n}\nexport function Array_countBy(projection, xs, comparer) {\n return toArray(countBy(projection, xs, comparer));\n}\nexport function Array_groupBy(projection, xs, comparer) {\n return toArray(map((tupledArg) => [tupledArg[0], toArray(tupledArg[1])], groupBy(projection, xs, comparer)));\n}\nexport function List_distinct(xs, comparer) {\n return toList(distinct(xs, comparer));\n}\nexport function List_distinctBy(projection, xs, comparer) {\n return toList(distinctBy(projection, xs, comparer));\n}\nexport function List_except(itemsToExclude, xs, comparer) {\n return toList(except(itemsToExclude, xs, comparer));\n}\nexport function List_countBy(projection, xs, comparer) {\n return toList(countBy(projection, xs, comparer));\n}\nexport function List_groupBy(projection, xs, comparer) {\n return toList(map((tupledArg) => [tupledArg[0], toList(tupledArg[1])], groupBy(projection, xs, comparer)));\n}\n","import { toString as toString_1, Union } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { class_type, union_type, int32_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { toISO8601 } from \"./Utils.js\";\nimport { today, date, compare, toString, addYears, addMonths, now, addDays } from \"./fable_modules/fable-library-js.4.17.0/Date.js\";\n\nexport class PeriodSpan extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Days\", \"Weeks\", \"Months\", \"Quarters\", \"Years\"];\n }\n toString() {\n const this$ = this;\n return (this$.tag === 1) ? (`${this$.fields[0]} uker`) : ((this$.tag === 2) ? (`${this$.fields[0]} måneder`) : ((this$.tag === 3) ? (`${this$.fields[0]} kvartal`) : ((this$.tag === 4) ? (`${this$.fields[0]} år`) : (`${this$.fields[0]} dager`))));\n }\n}\n\nexport function PeriodSpan_$reflection() {\n return union_type(\"Investfora.Helpers.PeriodSpan\", [], PeriodSpan, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]]]);\n}\n\nexport function PeriodSpan__ToValue(this$) {\n switch (this$.tag) {\n case 1:\n return \"weeks\";\n case 2:\n return \"months\";\n case 3:\n return \"quarters\";\n case 4:\n return \"years\";\n default:\n return \"days\";\n }\n}\n\nexport function PeriodSpan_FromValue(x, y) {\n switch (x) {\n case \"days\":\n return new PeriodSpan(0, [y]);\n case \"weeks\":\n return new PeriodSpan(1, [y]);\n case \"months\":\n return new PeriodSpan(2, [y]);\n case \"quarters\":\n return new PeriodSpan(3, [y]);\n case \"years\":\n return new PeriodSpan(4, [y]);\n default:\n return undefined;\n }\n}\n\nexport function PeriodSpan__ToDraft(this$) {\n const patternInput = (this$.tag === 1) ? [\"weeks\", this$.fields[0]] : ((this$.tag === 2) ? [\"months\", this$.fields[0]] : ((this$.tag === 3) ? [\"quarters\", this$.fields[0]] : ((this$.tag === 4) ? [\"years\", this$.fields[0]] : [\"days\", this$.fields[0]])));\n return {\n Num: patternInput[1],\n Value: patternInput[0],\n };\n}\n\nexport function PeriodSpan__ToDescription(this$) {\n switch (this$.tag) {\n case 1:\n return `for en periode på ${this$.fields[0]} uker`;\n case 2:\n return `for en periode på ${this$.fields[0]} måneder`;\n case 3:\n return `for en periode på ${this$.fields[0]} kvartal`;\n case 4:\n return `for en periode på ${this$.fields[0]} år`;\n default:\n return `for en periode på ${this$.fields[0]} dager`;\n }\n}\n\nexport function PeriodSpan__ToNumber(this$) {\n switch (this$.tag) {\n case 1:\n return this$.fields[0] | 0;\n case 2:\n return this$.fields[0] | 0;\n case 3:\n return this$.fields[0] | 0;\n case 4:\n return this$.fields[0] | 0;\n default:\n return this$.fields[0] | 0;\n }\n}\n\nexport function PeriodSpan__Validate(this$) {\n switch (this$.tag) {\n case 1: {\n const x_1 = this$.fields[0] | 0;\n if (x_1 >= 1) {\n return x_1 <= 100;\n }\n else {\n return false;\n }\n }\n case 2: {\n const x_2 = this$.fields[0] | 0;\n if (x_2 >= 1) {\n return x_2 <= 100;\n }\n else {\n return false;\n }\n }\n case 3: {\n const x_3 = this$.fields[0] | 0;\n if (x_3 >= 1) {\n return x_3 <= 40;\n }\n else {\n return false;\n }\n }\n case 4: {\n const x_4 = this$.fields[0] | 0;\n if (x_4 >= 1) {\n return x_4 <= 20;\n }\n else {\n return false;\n }\n }\n default: {\n const x = this$.fields[0] | 0;\n if (x >= 1) {\n return x <= 1000;\n }\n else {\n return false;\n }\n }\n }\n}\n\nexport function PeriodSpan__ToDateString(this$) {\n switch (this$.tag) {\n case 1:\n return toISO8601(addDays(now(), this$.fields[0] * 7));\n case 2:\n return toISO8601(addMonths(now(), this$.fields[0]));\n case 3:\n return toISO8601(addMonths(now(), this$.fields[0] * 3));\n case 4:\n return toISO8601(addYears(now(), this$.fields[0]));\n default:\n return toISO8601(addDays(now(), this$.fields[0]));\n }\n}\n\nexport class PeriodType extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Span\", \"ExactDate\", \"AllTime\"];\n }\n toString() {\n const this$ = this;\n return (this$.tag === 1) ? (`til ${toString(this$.fields[0], \"dd/MM/yy\")}`) : ((this$.tag === 2) ? \"All tid\" : toString_1(this$.fields[0]));\n }\n}\n\nexport function PeriodType_$reflection() {\n return union_type(\"Investfora.Helpers.PeriodType\", [], PeriodType, () => [[[\"Item\", PeriodSpan_$reflection()]], [[\"Item\", class_type(\"System.DateTime\")]], []]);\n}\n\nexport function PeriodType__ToDescription(this$) {\n switch (this$.tag) {\n case 0:\n return PeriodSpan__ToDescription(this$.fields[0]);\n case 1:\n return `til ${toString(this$.fields[0], \"dd/MM/yy\")}`;\n default:\n return \"for alltid\";\n }\n}\n\nexport function PeriodType__ToValue(this$) {\n switch (this$.tag) {\n case 1:\n return \"date\";\n case 2:\n return \"alltime\";\n default:\n return \"span\";\n }\n}\n\nexport function PeriodType__UpdateSpanLength_Z524259A4(this$, x) {\n if (this$.tag === 0) {\n const y = this$.fields[0];\n return new PeriodType(0, [(y.tag === 1) ? (new PeriodSpan(1, [x])) : ((y.tag === 2) ? (new PeriodSpan(2, [x])) : ((y.tag === 3) ? (new PeriodSpan(3, [x])) : ((y.tag === 4) ? (new PeriodSpan(4, [x])) : (new PeriodSpan(0, [x])))))]);\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__IncrementSpanLength(this$) {\n if (this$.tag === 0) {\n const y = this$.fields[0];\n return new PeriodType(0, [(y.tag === 1) ? (new PeriodSpan(1, [y.fields[0] + 1])) : ((y.tag === 2) ? (new PeriodSpan(2, [y.fields[0] + 1])) : ((y.tag === 3) ? (new PeriodSpan(3, [y.fields[0] + 1])) : ((y.tag === 4) ? (new PeriodSpan(4, [y.fields[0] + 1])) : (new PeriodSpan(0, [y.fields[0] + 1])))))]);\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__DecrementSpanLength(this$) {\n let x_1, x_2, x_3, x_4, x;\n if (this$.tag === 0) {\n const y = this$.fields[0];\n return new PeriodType(0, [(y.tag === 1) ? ((x_1 = (y.fields[0] | 0), (x_1 > 1) ? (new PeriodSpan(1, [x_1 - 1])) : (new PeriodSpan(1, [x_1])))) : ((y.tag === 2) ? ((x_2 = (y.fields[0] | 0), (x_2 > 1) ? (new PeriodSpan(2, [x_2 - 1])) : (new PeriodSpan(2, [x_2])))) : ((y.tag === 3) ? ((x_3 = (y.fields[0] | 0), (x_3 > 1) ? (new PeriodSpan(3, [x_3 - 1])) : (new PeriodSpan(3, [x_3])))) : ((y.tag === 4) ? ((x_4 = (y.fields[0] | 0), (x_4 > 1) ? (new PeriodSpan(4, [x_4 - 1])) : (new PeriodSpan(4, [x_4])))) : ((x = (y.fields[0] | 0), (x > 1) ? (new PeriodSpan(0, [x - 1])) : (new PeriodSpan(0, [x])))))))]);\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__SetExactDate_7F9DDECF(this$, x) {\n if (this$.tag === 1) {\n if (compare(date(x), today()) > 0) {\n return new PeriodType(1, [x]);\n }\n else {\n return this$;\n }\n }\n else {\n return this$;\n }\n}\n\nexport function PeriodType__Morph_Z721C83C5(this$, x) {\n switch (x) {\n case \"days\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(0, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(0, [1])]);\n }\n case \"weeks\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(1, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(1, [1])]);\n }\n case \"months\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(2, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(2, [1])]);\n }\n case \"quarters\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(3, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(3, [1])]);\n }\n case \"years\":\n if (this$.tag === 0) {\n return new PeriodType(0, [new PeriodSpan(4, [PeriodSpan__ToNumber(this$.fields[0])])]);\n }\n else {\n return new PeriodType(0, [new PeriodSpan(4, [1])]);\n }\n case \"exact\":\n if (this$.tag === 1) {\n return this$;\n }\n else {\n return new PeriodType(1, [addDays(today(), 1)]);\n }\n default:\n return this$;\n }\n}\n\nexport function PeriodType__Validate(this$) {\n switch (this$.tag) {\n case 0:\n return PeriodSpan__Validate(this$.fields[0]);\n case 1:\n return compare(date(this$.fields[0]), date(addDays(now(), 1))) >= 0;\n default:\n return true;\n }\n}\n\nexport function PeriodType__ToPeriodEnd(this$) {\n switch (this$.tag) {\n case 0:\n return PeriodSpan__ToDateString(this$.fields[0]);\n case 1:\n return toISO8601(this$.fields[0]);\n default:\n return \"alltime\";\n }\n}\n\n","import { toString as toString_1, Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, class_type, record_type, option_type, string_type, float64_type, bool_type, int32_type, union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { StockRating__ToTextColorCode, StockRating__ToColorCode, StockRating_FromInt_Z524259A4, StockRating__ToInt, StockRating, StockRating_$reflection } from \"../Shared/Shared.js\";\nimport { PeriodType__ToPeriodEnd, PeriodType__Validate, PeriodSpan__ToValue, PeriodSpan__ToNumber, PeriodSpan_FromValue, PeriodType__SetExactDate_7F9DDECF, PeriodType__UpdateSpanLength_Z524259A4, PeriodType__Morph_Z721C83C5, PeriodSpan__ToDraft, PeriodType, PeriodSpan, PeriodType_$reflection } from \"../Helpers.js\";\nimport { tryGetReviewDraft, deleteDraft, ReviewDraft, storeDraft, ReviewDraft_$reflection } from \"../LocalStorage.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { op_Subtraction, addDays, parse, now, toString } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { uncurry2, createObj, equals } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { CommentForm, trySetContent } from \"../Content/CommentForm.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { cons, singleton as singleton_1, empty as empty_1, ofArray } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { append, empty, singleton, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { MenuItem, Select, FormControl, Input, TextField } from \"@mui/material\";\nimport { parse as parse_1 } from \"../fable_modules/fable-library-js.4.17.0/Int32.js\";\nimport { Alert_snackError, Dialog_dialogActions, Dialog_dialogContent, Dialog_dialogTitle, Dialog_Dialog, LoadingIndicator_loadingIndicatorSmall, pillButtonSmall } from \"../ViewHelpers.js\";\nimport { replace, format } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { parse as parse_2 } from \"../fable_modules/fable-library-js.4.17.0/Double.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { totalDays } from \"../fable_modules/fable-library-js.4.17.0/TimeSpan.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Post_$reflection, AssetReviewForm_$reflection, AssetReviewForm } from \"../Shared/ApiDataTypes.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { unwrap, map, defaultArg, some } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString as toString_2 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\n\nclass TargetStep extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"YesNo\", \"EnterTarget\"];\n }\n}\n\nfunction TargetStep_$reflection() {\n return union_type(\"Investfora.ReviewForm.TargetStep\", [], TargetStep, () => [[], []]);\n}\n\nclass Step extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"SetRating\", \"SetPeriod\", \"SetTarget\", \"GiveComment\", \"Published\"];\n }\n}\n\nfunction Step_$reflection() {\n return union_type(\"Investfora.ReviewForm.Step\", [], Step, () => [[], [], [[\"Item\", TargetStep_$reflection()]], [], []]);\n}\n\nfunction Step_FromInt_Z524259A4(x) {\n switch (x) {\n case 2:\n return new Step(1, []);\n case 3:\n return new Step(2, [new TargetStep(0, [])]);\n case 4:\n return new Step(3, []);\n default:\n return new Step(0, []);\n }\n}\n\nfunction Step__ToDraftId(this$) {\n switch (this$.tag) {\n case 1:\n return 2;\n case 2:\n return 3;\n case 3:\n return 4;\n default:\n return 1;\n }\n}\n\nclass Model extends Record {\n constructor(AssetId, AutoOpenMode, CurrentStep, Rating, Period, WithTargetPrice, TargetPrice, Currency, Comment$, ValidPeriod, ValidTarget, Processing, RegisterModal, ErrorMsg) {\n super();\n this.AssetId = (AssetId | 0);\n this.AutoOpenMode = AutoOpenMode;\n this.CurrentStep = CurrentStep;\n this.Rating = Rating;\n this.Period = Period;\n this.WithTargetPrice = WithTargetPrice;\n this.TargetPrice = TargetPrice;\n this.Currency = Currency;\n this.Comment = Comment$;\n this.ValidPeriod = ValidPeriod;\n this.ValidTarget = ValidTarget;\n this.Processing = Processing;\n this.RegisterModal = RegisterModal;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.ReviewForm.Model\", [], Model, () => [[\"AssetId\", int32_type], [\"AutoOpenMode\", bool_type], [\"CurrentStep\", Step_$reflection()], [\"Rating\", StockRating_$reflection()], [\"Period\", PeriodType_$reflection()], [\"WithTargetPrice\", bool_type], [\"TargetPrice\", float64_type], [\"Currency\", option_type(string_type)], [\"Comment\", string_type], [\"ValidPeriod\", bool_type], [\"ValidTarget\", bool_type], [\"Processing\", bool_type], [\"RegisterModal\", bool_type], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"FromDraft\", \"SetStep\", \"SelectRating\", \"SelectPeriodType\", \"SelectPeriodSpan\", \"SetDate\", \"SetHasTarget\", \"UpdateTargetPrice\", \"InvalidatePeriod\", \"InvalidateTarget\", \"UpdateComment\", \"Abandon\", \"SetProcessing\", \"PublishFailed\", \"ToggleRegisterModal\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.ReviewForm.Message\", [], Message, () => [[[\"Item\", ReviewDraft_$reflection()]], [[\"Item\", Step_$reflection()]], [[\"Item\", StockRating_$reflection()]], [[\"Item\", string_type]], [[\"Item\", int32_type]], [[\"Item\", class_type(\"System.DateTime\")]], [], [[\"Item\", float64_type]], [], [], [[\"Item\", string_type]], [], [[\"Item\", bool_type]], [[\"Item\", FetchError_$reflection()]], [[\"Item\", bool_type]], []]);\n}\n\nfunction defaultPeriod() {\n return new PeriodType(0, [new PeriodSpan(2, [3])]);\n}\n\nfunction defaultValues() {\n return [new StockRating(2, []), defaultPeriod(), 0, false, \"\", new Step(0, [])];\n}\n\nfunction init(assetId, autoOpenMode) {\n return new Model(assetId, autoOpenMode, new Step(0, []), new StockRating(2, []), defaultPeriod(), false, 0, undefined, \"\", true, true, false, false, undefined);\n}\n\nfunction updateDraft(model) {\n let periodType;\n const matchValue = model.Period;\n periodType = ((matchValue.tag === 1) ? 2 : ((matchValue.tag === 2) ? 3 : 1));\n let periodSpan;\n const matchValue_1 = model.Period;\n periodSpan = ((matchValue_1.tag === 0) ? PeriodSpan__ToDraft(matchValue_1.fields[0]) : undefined);\n let periodDate;\n const matchValue_2 = model.Period;\n periodDate = ((matchValue_2.tag === 1) ? toString(matchValue_2.fields[0], \"yyyy-MM-dd\") : undefined);\n storeDraft(model.AssetId, new ReviewDraft(StockRating__ToInt(model.Rating), model.WithTargetPrice ? model.TargetPrice : undefined, periodType, periodSpan, periodDate, equals(model.Period, new PeriodType(2, [])), model.Comment, Step__ToDraftId(model.CurrentStep), toString(now(), \"yyyy-MM-dd\")));\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const x_3 = msg.fields[0];\n const model$0027 = new Model(model.AssetId, model.AutoOpenMode, x_3, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n if (!equals(x_3, new Step(4, []))) {\n updateDraft(model$0027);\n }\n else {\n deleteDraft(model.AssetId);\n }\n if (equals(x_3, new Step(3, [])) && (model.Comment.length > 0)) {\n trySetContent(\"review-comment-form\", model.Comment);\n }\n return model$0027;\n }\n case 2: {\n const model$0027_1 = new Model(model.AssetId, model.AutoOpenMode, new Step(1, []), msg.fields[0], model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n updateDraft(model$0027_1);\n return model$0027_1;\n }\n case 3: {\n const model$0027_2 = new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, PeriodType__Morph_Z721C83C5(model.Period, msg.fields[0]), model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, true, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n updateDraft(model$0027_2);\n return model$0027_2;\n }\n case 4:\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, PeriodType__UpdateSpanLength_Z524259A4(model.Period, msg.fields[0]), model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, true, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n case 5:\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, PeriodType__SetExactDate_7F9DDECF(model.Period, msg.fields[0]), model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n case 6:\n return new Model(model.AssetId, model.AutoOpenMode, new Step(2, [new TargetStep(1, [])]), model.Rating, model.Period, true, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n case 7: {\n const x_8 = msg.fields[0];\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, x_8, model.Currency, model.Comment, model.ValidPeriod, x_8 >= 0, model.Processing, model.RegisterModal, model.ErrorMsg);\n }\n case 8:\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, false, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n case 9:\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, false, model.Processing, model.RegisterModal, model.ErrorMsg);\n case 10: {\n const model$0027_3 = new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, msg.fields[0], model.ValidPeriod, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n updateDraft(model$0027_3);\n return model$0027_3;\n }\n case 11: {\n deleteDraft(model.AssetId);\n const patternInput = defaultValues();\n return new Model(model.AssetId, model.AutoOpenMode, patternInput[5], patternInput[0], patternInput[1], patternInput[3], patternInput[2], model.Currency, patternInput[4], true, true, false, false, model.ErrorMsg);\n }\n case 12:\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, msg.fields[0], model.RegisterModal, model.ErrorMsg);\n case 13: {\n const err = msg.fields[0];\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, false, model.RegisterModal, (err.tag === 3) ? \"En nettverksfeil oppsto. Kontroller internettilkoblingen og prøv igjen senere.\" : ((err.tag === 2) ? (((err.fields[0].status) === 401) ? \"\" : (((err.fields[0].status) === 409) ? \"Du publiserte nylig en analyse for denne aksjen. Du må vente en stund før du kan publisere en ny.\" : (((err.fields[0].status) === 429) ? \"Du er midlertidig blokkert fra å publisere for å ha publisert for mange innlegg/analyser/kommentarer over en kort periode. Vennligst prøv igjen senere.\" : \"Ooups, noe gikk galt. Vennligst prøv igjen senere.\"))) : \"Ooups, noe gikk galt. Vennligst prøv igjen senere.\"));\n }\n case 14:\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, model.Processing, msg.fields[0], model.ErrorMsg);\n case 15:\n return new Model(model.AssetId, model.AutoOpenMode, model.CurrentStep, model.Rating, model.Period, model.WithTargetPrice, model.TargetPrice, model.Currency, model.Comment, model.ValidPeriod, model.ValidTarget, model.Processing, model.RegisterModal, undefined);\n default: {\n const x = msg.fields[0];\n let period;\n const matchValue = x.PeriodType | 0;\n switch (matchValue) {\n case 2: {\n const matchValue_1 = x.PeriodDate;\n if (matchValue_1 != null) {\n const pd = matchValue_1;\n try {\n period = (new PeriodType(1, [parse(pd)]));\n }\n catch (matchValue_2) {\n period = defaultPeriod();\n }\n }\n else {\n period = defaultPeriod();\n }\n break;\n }\n case 3: {\n period = (new PeriodType(2, []));\n break;\n }\n default: {\n const matchValue_3 = x.PeriodSpan;\n if (matchValue_3 != null) {\n const ps = matchValue_3;\n const matchValue_4 = PeriodSpan_FromValue(ps.Value, ps.Num);\n period = ((matchValue_4 != null) ? (new PeriodType(0, [matchValue_4])) : defaultPeriod());\n }\n else {\n period = defaultPeriod();\n }\n }\n }\n const Rating = StockRating_FromInt_Z524259A4(x.Rating);\n let TargetPrice;\n const matchValue_5 = x.TargetPrice;\n TargetPrice = ((matchValue_5 == null) ? 0 : matchValue_5);\n const WithTargetPrice = x.TargetPrice != null;\n return new Model(model.AssetId, model.AutoOpenMode, Step_FromInt_Z524259A4(x.CurrentStep), Rating, period, WithTargetPrice, TargetPrice, model.Currency, x.Comment, model.ValidPeriod, model.ValidTarget, model.Processing, model.RegisterModal, model.ErrorMsg);\n }\n }\n}\n\nfunction sectionTitle(x) {\n return createElement(\"span\", {\n style: {\n marginBottom: 5,\n fontWeight: 500,\n },\n children: x,\n });\n}\n\nfunction summaryTitle(x) {\n return createElement(\"span\", {\n style: {\n fontStyle: \"italic\",\n },\n children: x,\n });\n}\n\nfunction inputHolder(x) {\n return createElement(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n marginBottom: 10,\n width: 100 + \"%\",\n maxWidth: 600,\n padding: 10,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n borderRadius: 5,\n backgroundColor: \"#FFFFFF\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(x)),\n });\n}\n\nfunction summaryHolder(x) {\n return createElement(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: 100 + \"%\",\n maxWidth: 600,\n padding: 10,\n marginBottom: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n borderRadius: 5,\n backgroundColor: \"#FFFFFF\",\n },\n children: Interop_reactApi.Children.toArray(Array.from(x)),\n });\n}\n\nfunction elevatedText(x) {\n return createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: x,\n });\n}\n\nfunction drawSetRating(model, dispatch) {\n let elems;\n const ratingButton = (r) => createElement(\"button\", {\n className: `rating-button-${(r.tag === 1) ? (equals(r, model.Rating) ? \"rating-weak-buy\" : \"\") : ((r.tag === 2) ? (equals(r, model.Rating) ? \"rating-hold\" : \"\") : ((r.tag === 3) ? (equals(r, model.Rating) ? \"rating-weak-sell\" : \"\") : ((r.tag === 4) ? (equals(r, model.Rating) ? \"rating-sell\" : \"\") : (equals(r, model.Rating) ? \"rating-buy\" : \"\"))))}`,\n children: toString_1(r),\n style: {\n backgroundColor: StockRating__ToColorCode(r),\n color: StockRating__ToTextColorCode(r),\n border: \"none\",\n fontSize: 1 + \"rem\",\n width: 80,\n padding: ((5 + \"px \") + 15) + \"px\",\n borderRadius: 5,\n cursor: \"pointer\",\n },\n onClick: (_arg) => {\n dispatch(new Message(2, [r]));\n },\n });\n const e = ofArray([sectionTitle(\"Hva mener du om aksjen?\"), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"center\",\n gap: ((10 + \"px \") + 10) + \"px\",\n }], (elems = [ratingButton(new StockRating(4, [])), ratingButton(new StockRating(3, [])), ratingButton(new StockRating(2, [])), ratingButton(new StockRating(1, [])), ratingButton(new StockRating(0, []))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))]);\n if (!model.AutoOpenMode) {\n return inputHolder(e);\n }\n else {\n return createElement(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n marginBottom: 10,\n width: 100 + \"%\",\n maxWidth: 600,\n padding: 10,\n },\n children: Interop_reactApi.Children.toArray(Array.from(e)),\n });\n }\n}\n\nfunction backwardsButton(prev, dispatch) {\n let elems_1, elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n width: 100 + \"%\",\n justifyContent: \"flex-end\",\n }], (elems_1 = [createElement(\"button\", createObj(ofArray([[\"style\", {\n marginRight: 10,\n }], [\"className\", \"icon-button\"], [\"onClick\", (_arg) => {\n dispatch(new Message(1, [prev]));\n }], (elems = [createElement(\"span\", {\n className: \"fas fa-chevron-up\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nfunction drawRatingSummary(model) {\n return summaryHolder([summaryTitle(\"Du mener aksjen er ett \"), createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n color: StockRating__ToColorCode(model.Rating),\n },\n children: toString_1(model.Rating),\n })]);\n}\n\nfunction drawSetPeriod(model, dispatch) {\n let elems_3, elems, elements, matchValue_4, elems_1;\n return inputHolder([backwardsButton(new Step(0, []), dispatch), sectionTitle(\"Hvilken tidshorisont har du?\"), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n margin: (((2 + \"vh\") + \" \") + 0) + \"px\",\n }], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", createObj(toList(delay(() => ((model.Period.tag === 1) ? singleton([\"width\", 130]) : singleton([\"width\", 100])))))], (elems = toList(delay(() => {\n const matchValue_1 = model.Period;\n switch (matchValue_1.tag) {\n case 0:\n return singleton(MuiHelpers_createElement(TextField, [[\"style\", {\n maxWidth: 100,\n }], [\"inputProps\", {\n style: {\n textAlign: \"center\",\n },\n }], [\"defaultValue\", PeriodSpan__ToNumber(matchValue_1.fields[0])], [\"fullWidth\", true], [\"size\", \"small\"], [\"variant\", \"standard\"], [\"onChange\", (e) => {\n const x = e.target.value;\n try {\n const asInt = parse_1(x, 511, false, 32) | 0;\n if (asInt > 0) {\n dispatch(new Message(4, [asInt]));\n }\n else {\n dispatch(new Message(8, []));\n }\n }\n catch (matchValue_2) {\n dispatch(new Message(8, []));\n }\n }], [\"error\", !model.ValidPeriod]]));\n case 1:\n return singleton(MuiHelpers_createElement(Input, [[\"type\", \"date\"], [\"value\", toString(matchValue_1.fields[0], \"yyyy-MM-dd\")], [\"inputProps\", {\n min: toString(addDays(now(), 1), \"yyyy-MM-dd\"),\n }], [\"onChange\", (e_1) => {\n const x_1 = e_1.target.value;\n try {\n dispatch(new Message(5, [parse(x_1)]));\n }\n catch (matchValue_3) {\n }\n }]]));\n default: {\n return empty();\n }\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), MuiHelpers_createElement(FormControl, [[\"fullWidth\", true], [\"size\", \"small\"], (elements = [MuiHelpers_createElement(Select, [[\"variant\", \"standard\"], [\"fullWidth\", true], [\"onChange\", (e_2, _arg) => {\n dispatch(new Message(3, [e_2.target.value]));\n }], [\"value\", (matchValue_4 = model.Period, (matchValue_4.tag === 0) ? PeriodSpan__ToValue(matchValue_4.fields[0]) : \"exact\")], (elems_1 = [MuiHelpers_createElement(MenuItem, [[\"value\", \"days\"], [\"children\", \"Dag(er)\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", \"weeks\"], [\"children\", \"Uke(r)\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", \"months\"], [\"children\", \"Måned(er)\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", \"quarters\"], [\"children\", \"Kvartal\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", \"years\"], [\"children\", \"År\"]]), MuiHelpers_createElement(MenuItem, [[\"value\", \"exact\"], [\"children\", \"Spesifik dato\"]])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elements))])])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))), pillButtonSmall(empty_1(), \"Neste\", (_arg_1) => {\n if (model.ValidTarget && model.ValidPeriod) {\n dispatch(new Message(1, [new Step(2, [new TargetStep(0, [])])]));\n }\n })]);\n}\n\nfunction drawPeriodSummary(model) {\n let matchValue, matchValue_1;\n return summaryHolder([summaryTitle((matchValue = model.Period, (matchValue.tag === 1) ? \"Du har en tidshorisont til\" : ((matchValue.tag === 2) ? \"Du har en evig tidshorisont.\" : \"Du har en tidshorisont på\"))), elevatedText((matchValue_1 = model.Period, (matchValue_1.tag === 0) ? (`${toString_1(model.Period)}`) : ((matchValue_1.tag === 1) ? toString(matchValue_1.fields[0], \"dd/MM/yyyy\") : \"\")))]);\n}\n\nfunction drawSetTarget(model, dispatch, x) {\n return inputHolder(toList(delay(() => append(singleton(backwardsButton(new Step(1, []), dispatch)), delay(() => append(singleton(sectionTitle((x.tag === 1) ? \"Skriv inn kursmål\" : \"Har du ett kursmål?\")), delay(() => {\n let elems_1;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: ((20 + \"px \") + 20) + \"px\",\n marginTop: 2 + \"vh\",\n }], (elems_1 = toList(delay(() => {\n let matchValue;\n return (x.tag === 1) ? append((matchValue = model.Currency, (matchValue != null) ? singleton(createElement(\"span\", {\n children: matchValue,\n })) : (empty())), delay(() => {\n let elems;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 100,\n }], (elems = [MuiHelpers_createElement(TextField, [[\"style\", {\n maxWidth: 100,\n }], [\"size\", \"small\"], [\"inputProps\", {\n style: {\n textAlign: \"center\",\n },\n }], [\"variant\", \"standard\"], [\"defaultValue\", format('{0:' + \"0.00\" + '}', model.TargetPrice)], [\"onChange\", (e) => {\n const x_1 = e.target.value;\n try {\n const asFloat = parse_2(replace(x_1, \",\", \".\"));\n if (asFloat >= 0) {\n dispatch(new Message(7, [asFloat]));\n }\n else {\n dispatch(new Message(9, []));\n }\n }\n catch (matchValue_1) {\n dispatch(new Message(9, []));\n }\n }], [\"error\", !model.ValidTarget]])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))));\n })) : append(singleton(pillButtonSmall(empty_1(), \"Nei\", (_arg) => {\n dispatch(new Message(1, [new Step(3, [])]));\n })), delay(() => singleton(pillButtonSmall(empty_1(), \"Ja\", (_arg_1) => {\n dispatch(new Message(6, []));\n }))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))), delay(() => {\n if (x.tag === 1) {\n return singleton(pillButtonSmall(singleton_1([\"marginTop\", 2 + \"vh\"]), \"Neste\", (_arg_2) => {\n if (model.ValidTarget) {\n dispatch(new Message(1, [new Step(3, [])]));\n }\n }));\n }\n else {\n return empty();\n }\n }));\n })))))));\n}\n\nfunction drawTargetSummary(model) {\n return summaryHolder(toList(delay(() => append(singleton(summaryTitle(!model.WithTargetPrice ? \"Du har ikke ett kursmål.\" : \"Du har ett kursmål på\")), delay(() => {\n if (model.WithTargetPrice) {\n let currency;\n const matchValue = model.Currency;\n currency = ((matchValue != null) ? matchValue : \"\");\n return singleton(elevatedText(`${format('{0:' + \"0.00\" + '}', model.TargetPrice)}${currency}`));\n }\n else {\n return empty();\n }\n })))));\n}\n\nfunction drawGiveComment(model, dispatch, onSubmit) {\n let elems, elems_1;\n return inputHolder([backwardsButton(model.WithTargetPrice ? (new Step(2, [new TargetStep(1, [])])) : (new Step(1, [])), dispatch), sectionTitle(\"Gi en kommentar til din vurdering (valgfritt)\"), createElement(\"div\", createObj(ofArray([[\"key\", \"comment-form-holder\"], [\"style\", {\n width: 100 + \"%\",\n }], (elems = [createElement(CommentForm, {\n formId: \"review-comment-form\",\n html: model.Comment,\n onChange: (arg) => {\n dispatch(new Message(10, [arg]));\n },\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: 100 + \"%\",\n marginTop: 10,\n padding: 5,\n }], (elems_1 = toList(delay(() => (model.Processing ? singleton(LoadingIndicator_loadingIndicatorSmall()) : append(singleton(pillButtonSmall(empty_1(), \"Forkast\", (_arg) => {\n if (!model.Processing) {\n dispatch(new Message(11, []));\n }\n })), delay(() => singleton(pillButtonSmall(empty_1(), \"Publiser analyse\", (_arg_1) => {\n if (!model.Processing) {\n onSubmit();\n }\n }))))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))]);\n}\n\nfunction drawPublished() {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n width: 100 + \"%\",\n maxWidth: 600,\n padding: 10,\n marginBottom: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n borderRadius: 5,\n backgroundColor: \"#FFFFFF\",\n }], (elems = [summaryTitle(\"Analyse publisert!\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction registerModal(dispatch) {\n let elems_1, value_6, elems;\n return createElement(Dialog_Dialog, {\n onClose: () => {\n dispatch(new Message(14, [false]));\n },\n children: ofArray([Dialog_dialogTitle(\"Registrer deg for å publisere\"), Dialog_dialogContent(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 10 + \"px \",\n maxWidth: 400,\n }], (elems_1 = [(value_6 = \"Registrer deg for å publisere analysen for denne aksjen. Diskuter aksjer og investeringer med andre brukere på Aksje.io. \", createElement(\"p\", {\n children: [value_6],\n })), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n }], (elems = [createElement(\"a\", {\n className: \"pill-button\",\n href: \"/sign-up\",\n children: \"Registrer deg\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))))), Dialog_dialogActions(singleton_1(pillButtonSmall(empty_1(), \"Lukk\", (_arg_1) => {\n dispatch(new Message(14, [false]));\n })))]),\n });\n}\n\nexport function ReviewForm(reviewFormInputProps) {\n let elems;\n const onPublished = reviewFormInputProps.onPublished;\n const autoOpenMode = reviewFormInputProps.autoOpenMode;\n const assetId = reviewFormInputProps.assetId;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(assetId, autoOpenMode));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n const matchValue = tryGetReviewDraft(assetId);\n if (matchValue.tag === 0) {\n const x = matchValue.fields[0];\n if (!(() => {\n try {\n const lu = parse(x.LastUpdated);\n return totalDays(op_Subtraction(now(), lu)) < 3;\n }\n catch (matchValue_1) {\n return false;\n }\n })()) {\n }\n else {\n dispatch(new Message(0, [x]));\n if (x.Comment.trim().length > 0) {\n trySetContent(\"review-comment-form\", x.Comment);\n }\n }\n }\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 100 + \"%\",\n }], (elems = toList(delay(() => append(singleton(Alert_snackError(model_1.ErrorMsg, () => {\n dispatch(new Message(15, []));\n })), delay(() => {\n const matchValue_3 = model_1.CurrentStep;\n return (matchValue_3.tag === 1) ? append(singleton(drawRatingSummary(model_1)), delay(() => singleton(drawSetPeriod(model_1, dispatch)))) : ((matchValue_3.tag === 2) ? append(singleton(drawRatingSummary(model_1)), delay(() => append(singleton(drawPeriodSummary(model_1)), delay(() => singleton(drawSetTarget(model_1, dispatch, matchValue_3.fields[0])))))) : ((matchValue_3.tag === 3) ? append(singleton(drawRatingSummary(model_1)), delay(() => append(singleton(drawPeriodSummary(model_1)), delay(() => append(singleton(drawTargetSummary(model_1)), delay(() => append(singleton(drawGiveComment(model_1, dispatch, () => {\n const model_2 = model_1;\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n const validRating = (StockRating__ToInt(model_2.Rating) >= 0) && (StockRating__ToInt(model_2.Rating) <= 100);\n const allValid = (((PeriodType__Validate(model_2.Period)) && validRating) && model_2.ValidPeriod) && model_2.ValidTarget;\n if (allValid && !(isAuthenticated)) {\n dispatch(new Message(14, [true]));\n return Promise.resolve();\n }\n else if (allValid) {\n dispatch(new Message(12, [true]));\n const request = new AssetReviewForm(model_2.AssetId, StockRating__ToInt(model_2.Rating), PeriodType__ToPeriodEnd(model_2.Period), model_2.Comment.trim(), model_2.WithTargetPrice ? model_2.TargetPrice : undefined);\n return ((body = Auto_generateBoxedEncoder_437914C6(AssetReviewForm_$reflection(), undefined, undefined, undefined)(request), (decoder = Auto_generateBoxedDecoder_Z6670B51(Post_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton_1(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty_1()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString_2(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/review\", properties_3).then((_arg_1) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg_1, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Post_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_2) => {\n let matchValue_2;\n return Promise.resolve((matchValue_2 = fromString(uncurry2(decoder_1_1), _arg_2), (matchValue_2.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_2.fields[0]])])) : (new FSharpResult$2(0, [matchValue_2.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_3) => {\n const res = _arg_3;\n if (res.tag === 1) {\n dispatch(new Message(13, [res.fields[0]]));\n return Promise.resolve();\n }\n else {\n onPublished(res.fields[0]);\n dispatch(new Message(1, [new Step(4, [])]));\n return Promise.resolve();\n }\n });\n }\n else {\n return Promise.resolve();\n }\n }));\n pr_1.then();\n })), delay(() => (model_1.RegisterModal ? singleton(registerModal(dispatch)) : empty()))))))))) : ((matchValue_3.tag === 4) ? singleton(drawPublished()) : singleton(drawSetRating(model_1, dispatch)))));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\n","import { FSharpRef } from \"./Types.js\";\nexport function tryParse(str, defValue) {\n // TODO: test if value is valid and in range\n if (str != null && /\\S/.test(str)) {\n const v = +str.replace(\"_\", \"\");\n if (!Number.isNaN(v)) {\n defValue.contents = v;\n return true;\n }\n }\n return false;\n}\nexport function parse(str) {\n const defValue = new FSharpRef(0);\n if (tryParse(str, defValue)) {\n return defValue.contents;\n }\n else {\n throw new Error(`The input string ${str} was not in a correct format.`);\n }\n}\n// JS Number.isFinite function evals false for NaN\nexport function isPositiveInfinity(x) {\n return x === Number.POSITIVE_INFINITY;\n}\nexport function isNegativeInfinity(x) {\n return x === Number.NEGATIVE_INFINITY;\n}\nexport function isInfinity(x) {\n return x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY;\n}\nexport function max(x, y) {\n return x > y ? x : y;\n}\nexport function min(x, y) {\n return x < y ? x : y;\n}\nexport function maxMagnitude(x, y) {\n return Math.abs(x) > Math.abs(y) ? x : y;\n}\nexport function minMagnitude(x, y) {\n return Math.abs(x) < Math.abs(y) ? x : y;\n}\nexport function clamp(x, min, max) {\n return x < min ? min : x > max ? max : x;\n}\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, bool_type, string_type, option_type, array_type, union_type, int32_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { empty as empty_1, append as append_2, singleton, delay, toList, fold } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { unwrap, map as map_1, defaultArg, toArray } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PostForm, Target as Target_1 } from \"./PostForm.js\";\nimport { Post_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { mapIndexed, map, sort, tryHead, sortByDescending, append } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { parseAsUtc } from \"../Utils.js\";\nimport { Array_distinctBy } from \"../fable_modules/fable-library-js.4.17.0/Seq2.js\";\nimport { equals, createObj, uncurry2, comparePrimitives, stringHash } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { compare } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { singleton as singleton_1, append as append_1, cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { useReact_useCallback_1CA17B65, useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0, useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { ReviewForm } from \"../Asset/ReviewForm.js\";\nimport { LoadingIndicator_postLoadingIndicator, Alert_snackError } from \"../ViewHelpers.js\";\nimport { post } from \"./Post.js\";\nimport { FeedEntry } from \"./Ads.js\";\n\nexport class Target extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Asset\", \"AssetPost\", \"Review\", \"AssetShort\", \"InsiderTrade\", \"InsiderTrades\"];\n }\n}\n\nexport function Target_$reflection() {\n return union_type(\"Investfora.PostFeed.Target\", [], Target, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], []]);\n}\n\n/**\n * Builds to request path for the feed target\n */\nexport function Target__ToRequestPath(this$, lastReviewId, lastPostId, lastInsiderTradeId, seDt, seSkip) {\n switch (this$.tag) {\n case 1:\n return `/api/asset/post/feed/${this$.fields[0]}${fold((_arg_5, x_7) => (`?pid=${x_7}`), \"\", toArray(lastPostId))}`;\n case 2:\n return `/api/review/asset/${this$.fields[0]}${fold((_arg_6, x_9) => (`&rid=${x_9}`), \"\", toArray(lastReviewId))}`;\n case 3:\n return `/api/asset/short/feed/${this$.fields[0]}?${fold((_arg_7, x_11) => (`&sedt=${x_11}`), \"\", toArray(seDt))}${fold((_arg_8, x_12) => (`&se_skip=${x_12}`), \"\", toArray(seSkip))}`;\n case 4:\n return `/api/asset/insider-trade/feed/${this$.fields[0]}${fold((_arg_9, x_14) => (`?itid=${x_14}`), \"\", toArray(lastInsiderTradeId))}`;\n case 5:\n return `/api/asset/insider-trade/latest${fold((_arg_10, x_15) => (`?itid=${x_15}`), \"\", toArray(lastInsiderTradeId))}`;\n default: {\n const r = fold((_arg, x_1) => (`&rid=${x_1}`), \"\", toArray(lastReviewId));\n const p = fold((_arg_1, x_2) => (`&pid=${x_2}`), \"\", toArray(lastPostId));\n const it = fold((_arg_2, x_3) => (`&itid=${x_3}`), \"\", toArray(lastInsiderTradeId));\n const seDt$0027 = fold((_arg_3, x_4) => (`&sedt=${x_4}`), \"\", toArray(seDt));\n const se = fold((_arg_4, x_5) => (`&se_skip=${x_5}`), \"\", toArray(seSkip));\n return `/api/asset/feed/${this$.fields[0]}${(((((r + p) + it) + seDt$0027) + se).length > 0) ? (`?${r}${p}${it}${seDt$0027}${se}`) : \"\"}`;\n }\n }\n}\n\nexport function Target__ToPostFormTarget(this$) {\n switch (this$.tag) {\n case 1:\n return new Target_1(0, [this$.fields[0]]);\n case 2:\n return new Target_1(0, [this$.fields[0]]);\n case 3:\n return new Target_1(0, [this$.fields[0]]);\n case 4:\n return new Target_1(0, [this$.fields[0]]);\n case 5:\n return new Target_1(1, []);\n default:\n return new Target_1(0, [this$.fields[0]]);\n }\n}\n\nexport function Target__EmptyText(this$) {\n switch (this$.tag) {\n case 1:\n return \"Ingen innlegg enda.\";\n case 2:\n return \"Ingen analyser enda.\";\n case 3:\n return \"Ingen shortposisjoner registrert enda.\";\n case 4:\n case 5:\n return \"Ingen innsidehandel registrert enda.\";\n default:\n return \"Ingen analyser eller innlegg enda.\";\n }\n}\n\nexport function Target__ToSignInText(this$) {\n switch (this$.tag) {\n case 2:\n return \"for å publisere en analyse\";\n case 1:\n return \"for å publisere ett innlegg\";\n case 3:\n return \"for å få samle short oppdateringer fra dine favorittaksjer i feeden din\";\n case 4:\n case 5:\n return \"for å få innsidehandeler fra dine favorittaksjer i feeden din.\";\n default:\n return \"for å publisere en analyse eller ett innlegg\";\n }\n}\n\nclass Model extends Record {\n constructor(Target, Posts, ErrorMsg, LastRevId, LastId, LastInsiderId, LastShortEventDate, ShortSkips, More) {\n super();\n this.Target = Target;\n this.Posts = Posts;\n this.ErrorMsg = ErrorMsg;\n this.LastRevId = LastRevId;\n this.LastId = LastId;\n this.LastInsiderId = LastInsiderId;\n this.LastShortEventDate = LastShortEventDate;\n this.ShortSkips = ShortSkips;\n this.More = More;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.PostFeed.Model\", [], Model, () => [[\"Target\", Target_$reflection()], [\"Posts\", option_type(array_type(Post_$reflection()))], [\"ErrorMsg\", option_type(string_type)], [\"LastRevId\", option_type(int32_type)], [\"LastId\", option_type(int32_type)], [\"LastInsiderId\", option_type(int32_type)], [\"LastShortEventDate\", option_type(string_type)], [\"ShortSkips\", option_type(int32_type)], [\"More\", bool_type]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"PostsResponse\", \"AppendPost\", \"RemovePost\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.PostFeed.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Post_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(Post_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", Post_$reflection()]], [[\"Item\", int32_type]], []]);\n}\n\nfunction init(t) {\n return new Model(t, undefined, undefined, undefined, undefined, undefined, undefined, undefined, true);\n}\n\nfunction update(model, msg) {\n let matchValue_6, matchValue_7, array_21, matchValue, lse, array_20, array_19;\n switch (msg.tag) {\n case 1: {\n const x_7 = msg.fields[0];\n return new Model(model.Target, (matchValue_6 = model.Posts, (matchValue_6 != null) ? append([x_7], matchValue_6) : [x_7]), model.ErrorMsg, model.LastRevId, model.LastId, model.LastInsiderId, model.LastShortEventDate, model.ShortSkips, model.More);\n }\n case 2:\n return new Model(model.Target, (matchValue_7 = model.Posts, (matchValue_7 == null) ? undefined : ((array_21 = matchValue_7, array_21.filter((a) => (a.Id !== msg.fields[0]))))), model.ErrorMsg, model.LastRevId, model.LastId, model.LastInsiderId, model.LastShortEventDate, model.ShortSkips, model.More);\n case 3:\n return new Model(model.Target, model.Posts, undefined, model.LastRevId, model.LastId, model.LastInsiderId, model.LastShortEventDate, model.ShortSkips, model.More);\n default: {\n const res = msg.fields[0];\n if (res.tag === 0) {\n const x = res.fields[0];\n const y_2 = sortByDescending((z_1) => parseAsUtc(z_1.Published), Array_distinctBy((z) => (`${z.Type}-${z.Id}`), (matchValue = model.Posts, (matchValue != null) ? append(matchValue, x) : x), {\n Equals: (x_1, y) => (x_1 === y),\n GetHashCode: stringHash,\n }), {\n Compare: compare,\n });\n let lastId;\n const lowest = tryHead(sort(map((y_4) => y_4.Id, y_2.filter((y_3) => (y_3.Type === \"asset-post\")), Int32Array), {\n Compare: comparePrimitives,\n }));\n const matchValue_1 = model.LastId;\n if (matchValue_1 != null) {\n const l = matchValue_1 | 0;\n lastId = fold((_arg, z_2) => {\n if (z_2 < l) {\n return z_2 | 0;\n }\n else {\n return l | 0;\n }\n }, l, toArray(lowest));\n }\n else {\n lastId = lowest;\n }\n let lastRevId;\n if (model.Target.tag === 0) {\n const lowest_1 = tryHead(sort(map((y_7) => y_7.Id, y_2.filter((y_6) => (y_6.Type === \"review\")), Int32Array), {\n Compare: comparePrimitives,\n }));\n const matchValue_3 = model.LastId;\n if (matchValue_3 != null) {\n const l_1 = matchValue_3 | 0;\n lastRevId = fold((_arg_1, z_3) => {\n if (z_3 < l_1) {\n return z_3 | 0;\n }\n else {\n return l_1 | 0;\n }\n }, l_1, toArray(lowest_1));\n }\n else {\n lastRevId = lowest_1;\n }\n }\n else {\n lastRevId = undefined;\n }\n let lastInsiderId;\n const lowest_2 = tryHead(sort(map((y_10) => y_10.Id, y_2.filter((y_9) => (y_9.Type === \"insider-trade\")), Int32Array), {\n Compare: comparePrimitives,\n }));\n const matchValue_4 = model.LastInsiderId;\n if (matchValue_4 != null) {\n const l_2 = matchValue_4 | 0;\n lastInsiderId = fold((_arg_2, z_4) => {\n if (z_4 < l_2) {\n return z_4 | 0;\n }\n else {\n return l_2 | 0;\n }\n }, l_2, toArray(lowest_2));\n }\n else {\n lastInsiderId = lowest_2;\n }\n let patternInput;\n const lowest_3 = tryHead(sort(map((y_13) => y_13.Published, y_2.filter((y_12) => (y_12.Type === \"short-event\"))), {\n Compare: comparePrimitives,\n }));\n const matchValue_5 = model.LastShortEventDate;\n if (matchValue_5 != null) {\n const l_3 = matchValue_5;\n const newLowest = fold((_arg_3, z_5) => {\n if (z_5 < l_3) {\n return z_5;\n }\n else {\n return l_3;\n }\n }, l_3, toArray(lowest_3));\n patternInput = [newLowest, newLowest !== l_3];\n }\n else {\n patternInput = [lowest_3, false];\n }\n const lastShortEventDate = patternInput[0];\n return new Model(model.Target, y_2, model.ErrorMsg, lastRevId, lastId, lastInsiderId, lastShortEventDate, patternInput[1] ? undefined : ((lastShortEventDate != null) ? ((lse = lastShortEventDate, (array_20 = ((array_19 = y_2.filter((e) => (e.Type === \"short-event\")), array_19.filter((e_1) => (e_1.Published === lse)))), array_20.length))) : undefined), x.length > 0);\n }\n else {\n return new Model(model.Target, model.Posts, \"Kunne ikke laste innhold. Vennligst prøv igjen senere.\", model.LastRevId, model.LastId, model.LastInsiderId, model.LastShortEventDate, model.ShortSkips, model.More);\n }\n }\n }\n}\n\nfunction fetchPosts(target, lastRevId, lastId, lastInsiderId, seDt, se, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const requestPath = Target__ToRequestPath(target, lastRevId, lastId, lastInsiderId, seDt, se);\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Post_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Post_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction noContentMessage(x) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 100 + \"%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }], (elems = [createElement(\"span\", {\n style: {\n color: \"var(--text-dim)\",\n },\n children: (x.tag === 2) ? \"Ingen analyser enda.\" : ((x.tag === 1) ? \"Ingen innlegg enda.\" : ((x.tag === 3) ? \"Ingen short-posisjoner registrert enda.\" : ((x.tag === 4) ? \"Ingen innsidehandler registrert enda.\" : ((x.tag === 5) ? \"Ingen innsidehandler registrert enda.\" : \"Ingen analyser, innlegg eller short-endringer enda.\")))),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nclass ActiveForm extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"NoActive\", \"ReviewActive\", \"PostActive\"];\n }\n}\n\nfunction ActiveForm_$reflection() {\n return union_type(\"Investfora.PostFeed.ActiveForm\", [], ActiveForm, () => [[], [], []]);\n}\n\nfunction AssetForms(assetFormsInputProps) {\n let elems_1;\n const onPublish = assetFormsInputProps.onPublish;\n const assetId = assetFormsInputProps.assetId;\n const patternInput = useFeliz_React__React_useState_Static_1505(new ActiveForm(0, []));\n const setActive = patternInput[1];\n const active = patternInput[0];\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n width: 100 + \"%\",\n }], (elems_1 = toList(delay(() => {\n let elems;\n return (active.tag === 1) ? singleton(createElement(ReviewForm, {\n assetId: assetId,\n autoOpenMode: false,\n onPublished: onPublish,\n })) : ((active.tag === 2) ? singleton(createElement(PostForm, {\n target: new Target_1(0, [assetId]),\n onPublish: onPublish,\n autoActive: true,\n onClose: () => {\n setActive(new ActiveForm(0, []));\n },\n })) : singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }], (elems = [createElement(\"button\", {\n onClick: (_arg) => {\n setActive(new ActiveForm(1, []));\n },\n className: \"pill-button\",\n children: \"Ny analyse\",\n }), createElement(\"span\", {\n style: {\n display: \"block\",\n margin: 8,\n color: \"var(--text-dim)\",\n fontStyle: \"italic\",\n },\n children: \"eller\",\n }), createElement(\"button\", {\n onClick: (_arg_1) => {\n setActive(new ActiveForm(2, []));\n },\n className: \"pill-button\",\n children: \"Nytt innlegg\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nfunction cantPublishInfo(title, desc, children) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: 1 + \"vw\",\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n borderRadius: 5,\n backgroundColor: \"#FFFFFF\",\n }], (elems = append_1(ofArray([createElement(\"span\", {\n children: [title],\n }), createElement(\"span\", {\n style: {\n marginTop: 5,\n fontSize: 0.8 + \"rem\",\n fontStyle: \"italic\",\n maxWidth: 500,\n },\n children: desc,\n })]), children), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction loginOrRegister(model) {\n let elems_1, elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n backgroundColor: \"#FFFFFF\",\n margin: ((10 + \"px \") + 0) + \"px\",\n maxWidth: 778,\n width: 100 + \"%\",\n }], (elems_1 = [createElement(\"span\", createObj(ofArray([[\"style\", {\n display: \"block\",\n margin: 1 + \"vw\",\n }], (elems = [createElement(\"a\", {\n style: {\n textDecoration: \"underline\",\n },\n href: \"/sign-in\",\n children: \"Logg inn\",\n }), \" eller \", createElement(\"a\", {\n style: {\n textDecoration: \"underline\",\n },\n href: \"/sign-up\",\n children: \"registrer deg\",\n }), ` ${Target__ToSignInText(model.Target)}`], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nexport function PostFeed(postFeedInputProps) {\n let elems_5;\n const includeAds = postFeedInputProps.includeAds;\n const target = postFeedInputProps.target;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(target));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchPosts(model_1.Target, model_1.LastRevId, model_1.LastId, model_1.LastInsiderId, model_1.LastShortEventDate, model_1.ShortSkips, dispatch);\n });\n const onPublish = useReact_useCallback_1CA17B65((arg) => {\n dispatch(new Message(1, [arg]));\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: (((1 + \"vw\") + \" \") + 0) + \"px\",\n }], (elems_5 = toList(delay(() => append_2(singleton(Alert_snackError(model_1.ErrorMsg, () => {\n dispatch(new Message(3, []));\n })), delay(() => {\n let elems_1, elems_2;\n return append_2((isAuthenticated) ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n marginBottom: 10 + \"px\",\n textAlign: \"center\",\n width: 100 + \"%\",\n }], (elems_1 = toList(delay(() => {\n let elems;\n return !(emailVerified) ? singleton(cantPublishInfo(\"Bekreft e-post adressen din før du kan publisere\", \"Du mottok en e-post med instruksjoner for å bekrefte din e-post adresse når du registrerte deg på Aksje.io. Du kan sende en ny bekreftelses e-post fra din kontoside.\", singleton_1(createElement(\"a\", {\n style: {\n fontSize: 0.8 + \"rem\",\n },\n href: \"/account\",\n children: \"Til kontosiden\",\n })))) : singleton(createElement(\"div\", createObj(ofArray([[\"key\", \"publish-forms\"], [\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n }], (elems = toList(delay(() => {\n const matchValue = model_1.Target;\n switch (matchValue.tag) {\n case 2:\n return singleton(createElement(ReviewForm, {\n assetId: matchValue.fields[0],\n autoOpenMode: model_1.Target.tag === 2,\n onPublished: onPublish,\n }));\n case 1:\n return singleton(createElement(PostForm, {\n target: Target__ToPostFormTarget(model_1.Target),\n onPublish: onPublish,\n autoActive: false,\n onClose: () => {\n },\n }));\n case 3:\n case 4:\n case 5: {\n return empty_1();\n }\n default:\n return singleton(createElement(AssetForms, {\n assetId: matchValue.fields[0],\n onPublish: onPublish,\n }));\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))) : singleton(createElement(\"div\", createObj(ofArray([[\"key\", \"publish-forms\"], [\"style\", {\n width: 100 + \"%\",\n }], (elems_2 = toList(delay(() => {\n const matchValue_2 = model_1.Target;\n switch (matchValue_2.tag) {\n case 0:\n return singleton(createElement(ReviewForm, {\n assetId: matchValue_2.fields[0],\n autoOpenMode: true,\n onPublished: onPublish,\n }));\n case 2:\n return singleton(createElement(ReviewForm, {\n assetId: matchValue_2.fields[0],\n autoOpenMode: true,\n onPublished: onPublish,\n }));\n default: {\n return empty_1();\n }\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))), delay(() => append_2((!equals(model_1.Target, new Target(5, [])) && !(isAuthenticated)) ? singleton(loginOrRegister(model_1)) : empty_1(), delay(() => {\n let elems_3;\n return append_2(singleton(createElement(\"div\", createObj(ofArray([[\"className\", \"feed\"], (elems_3 = toList(delay(() => {\n const matchValue_3 = model_1.Posts;\n return (matchValue_3 != null) ? mapIndexed((i, y) => {\n const xs_4 = toList(delay(() => append_2(singleton(post(y, (arg_1) => {\n dispatch(new Message(2, [arg_1]));\n })), delay(() => (((((i + 1) % 3) === 0) && includeAds) ? singleton(createElement(FeedEntry, null)) : empty_1())))));\n return react.createElement(react.Fragment, {}, ...xs_4);\n }, matchValue_3) : append_2(singleton(LoadingIndicator_postLoadingIndicator()), delay(() => append_2(singleton(LoadingIndicator_postLoadingIndicator()), delay(() => singleton(LoadingIndicator_postLoadingIndicator())))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))), delay(() => {\n let matchValue_4, p, p_1;\n return append_2((matchValue_4 = model_1.Posts, (matchValue_4 != null) ? (((p = matchValue_4, p.length === 0)) ? ((p_1 = matchValue_4, singleton(noContentMessage(model_1.Target)))) : (empty_1())) : (empty_1())), delay(() => {\n let elems_4;\n return model_1.More ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n }], (elems_4 = [createElement(\"button\", {\n className: \"pill-button-small\",\n onClick: (_arg_2) => {\n fetchPosts(model_1.Target, model_1.LastRevId, model_1.LastId, model_1.LastInsiderId, model_1.LastShortEventDate, model_1.ShortSkips, dispatch);\n },\n children: \"Last mer\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))) : empty_1();\n }));\n }));\n }))));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])));\n}\n\n","import { empty as empty_1 } from \"../fable-library-js.4.17.0/Map.js\";\nimport { comparePrimitives } from \"../fable-library-js.4.17.0/Util.js\";\nimport { ExtraCoders } from \"./Types.fs.js\";\n\nexport const empty = new ExtraCoders(\"\", empty_1({\n Compare: comparePrimitives,\n}));\n\n","import { int, float, string, int64, object } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { uncurry2 } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Valuation_AssetKeyNumbers_$reflection, Valuation_AssetKeyNumbers } from \"./Shared/ApiDataTypes.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { newGuid } from \"./fable_modules/fable-library-js.4.17.0/Guid.js\";\nimport { add } from \"./fable_modules/fable-library-js.4.17.0/Map.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, int64 as int64_1 } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, int64 as int64_2 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { empty } from \"./fable_modules/Thoth.Json.6.0.0/Extra.fs.js\";\nimport { ExtraCoders } from \"./fable_modules/Thoth.Json.6.0.0/Types.fs.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { FetchError } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { cons, ofArray, empty as empty_1 } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"./fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"./fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { obj_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\n\nexport const assetKeyNumbersDecoder = (path_6) => ((v_2) => object((x) => {\n let objectArg_5, objectArg_6, objectArg_7;\n return new Valuation_AssetKeyNumbers((objectArg_5 = x.Required, objectArg_5.Field(\"NumShares\", uncurry2(int64))), (objectArg_6 = x.Required, objectArg_6.Field(\"LastQuote\", (path_2, v) => object((y) => {\n let objectArg, objectArg_1;\n return {\n Date: (objectArg = y.Required, objectArg.Field(\"Date\", string)),\n Price: (objectArg_1 = y.Required, objectArg_1.Field(\"Price\", float)),\n };\n }, path_2, v))), (objectArg_7 = x.Optional, objectArg_7.Field(\"LastShort\", (path_5, v_1) => object((y_1) => {\n let objectArg_2, objectArg_3, objectArg_4;\n return {\n Date: (objectArg_2 = y_1.Required, objectArg_2.Field(\"Date\", string)),\n NumShares: (objectArg_3 = y_1.Required, objectArg_3.Field(\"NumShares\", uncurry2(int))),\n Percentage: (objectArg_4 = y_1.Required, objectArg_4.Field(\"Percentage\", float)),\n };\n }, path_5, v_1))));\n}, path_6, v_2));\n\nexport function fetchAssetKeyNumbers(assetId, callback) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let copyOfStruct, data_1, caseStrategy_1, extra_4;\n const extraDecoders = new ExtraCoders((copyOfStruct = newGuid(), copyOfStruct), add(\"System.Int64\", [int64_1, int64_2], empty.Coders));\n return ((data_1 = undefined, (caseStrategy_1 = undefined, (extra_4 = extraDecoders, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty_1(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty_1()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_1, extra_4)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/asset/key-numbers/${assetId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(assetKeyNumbersDecoder, Auto_generateBoxedDecoderCached_Z6670B51(Valuation_AssetKeyNumbers_$reflection(), unwrap(caseStrategy_1), unwrap(extra_4))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))).then((_arg_2) => {\n callback(_arg_2);\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\n","import { Record } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, array_type, record_type, float64_type, string_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { empty, singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { ResponsiveContainer, ComposedChart, Legend, LineChart, ReferenceLine, Line, Tooltip, YAxis, XAxis } from \"recharts\";\nimport { quoteToString, utcDateToLocalDate } from \"../Utils.js\";\nimport { cons, empty as empty_1, ofArray } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { int32ToString, uncurry2, createObj } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { format } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { Interop_reactApi as Interop_reactApi_1 } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { useReact_useEffectOnce_3A5B6456, useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { FetchError } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { DataServerBaseUrl } from \"../Session.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { LoadingIndicator_loadingIndicator, Alert_snackError } from \"../ViewHelpers.js\";\nimport { MuiHelpers_createElement } from \"../Feliz.MaterialUI/Mui.js\";\nimport { Checkbox, FormControlLabel } from \"@mui/material\";\nimport { tryLast } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { DefaultBorder, Dimensions_TextSmall } from \"../Design.js\";\nimport { StockRating__ToTextColorCode, StockRating, StockRating__ToColorCode } from \"../Shared/Shared.js\";\nimport { AssetBanner } from \"../Content/Ads.js\";\n\nclass AssetRSI extends Record {\n constructor(Date$, RSI, Close) {\n super();\n this.Date = Date$;\n this.RSI = RSI;\n this.Close = Close;\n }\n}\n\nfunction AssetRSI_$reflection() {\n return record_type(\"Investfora.AssetTA.AssetRSI\", [], AssetRSI, () => [[\"Date\", string_type], [\"RSI\", float64_type], [\"Close\", float64_type]]);\n}\n\nfunction rsiChart(data, showReferenceLines, showClose) {\n let properties_16, elements_1, properties_9, elements;\n const properties_17 = ofArray([[\"minWidth\", 250], [\"minHeight\", 210], [\"children\", !showClose ? ((properties_16 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", data], [\"margin\", {\n top: defaultArg(0, 0),\n right: defaultArg(0, 0),\n left: defaultArg(0, 0),\n bottom: defaultArg(0, 0),\n }], (elements_1 = toList(delay(() => append(singleton(Interop_reactApi.createElement(XAxis, {\n dataKey: \"Date\",\n tickFormatter: (tick_3) => (`${utcDateToLocalDate(tick_3)}`),\n })), delay(() => {\n let properties_11;\n return append(singleton((properties_11 = ofArray([[\"orientation\", \"right\"], [\"tickFormatter\", (tick_4) => (`${~~tick_4}`)], [\"domain\", [0, 100]]]), Interop_reactApi.createElement(YAxis, createObj(properties_11)))), delay(() => append(singleton(Interop_reactApi.createElement(Tooltip, {\n formatter: (delegateArg_3, delegateArg_1_1, delegateArg_2_1) => format('{0:' + \"0.00\" + '}', delegateArg_3),\n })), delay(() => append(singleton(Interop_reactApi.createElement(Line, {\n dataKey: \"RSI\",\n stroke: \"#5F5566\",\n strokeWidth: 3,\n dot: false,\n })), delay(() => (showReferenceLines ? append(singleton(Interop_reactApi.createElement(ReferenceLine, {\n y: 70,\n label: \"Overkjøpt\",\n strokeWidth: 2,\n })), delay(() => singleton(Interop_reactApi.createElement(ReferenceLine, {\n y: 30,\n label: \"Oversolgt\",\n strokeWidth: 2,\n })))) : empty())))))));\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements_1))])]), Interop_reactApi.createElement(LineChart, createObj(properties_16)))) : ((properties_9 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", data], [\"margin\", {\n top: defaultArg(0, 0),\n right: defaultArg(0, 0),\n left: defaultArg(0, 0),\n bottom: defaultArg(0, 0),\n }], (elements = toList(delay(() => append(singleton(Interop_reactApi.createElement(XAxis, {\n dataKey: \"Date\",\n tickFormatter: (tick) => (`${utcDateToLocalDate(tick)}`),\n })), delay(() => {\n let properties_1;\n return append(singleton((properties_1 = ofArray([[\"yAxisId\", \"left\"], [\"tickFormatter\", (tick_1) => {\n if (tick_1 >= 1000000000) {\n const bn = tick_1 / 1000000000;\n return `${format('{0:' + \"0.0\" + '}', bn)} mrd`;\n }\n else if (tick_1 >= 1000000) {\n const mill = tick_1 / 1000000;\n return `${format('{0:' + \"0.0\" + '}', mill)}m`;\n }\n else if (tick_1 >= 1000) {\n const k = tick_1 / 1000;\n return `${format('{0:' + \"0.0\" + '}', k)}k`;\n }\n else {\n return `${tick_1}`;\n }\n }], [\"domain\", [\"auto\", \"auto\"]]]), Interop_reactApi.createElement(YAxis, createObj(properties_1)))), delay(() => {\n let properties_2;\n return append(singleton((properties_2 = ofArray([[\"yAxisId\", \"right\"], [\"orientation\", \"right\"], [\"tickFormatter\", (tick_2) => (`${~~tick_2}`)], [\"domain\", [\"auto\", \"auto\"]]]), Interop_reactApi.createElement(YAxis, createObj(properties_2)))), delay(() => append(singleton(Interop_reactApi.createElement(Tooltip, {\n formatter: (delegateArg, delegateArg_1, delegateArg_2) => format('{0:' + \"0.00\" + '}', delegateArg),\n })), delay(() => append(showReferenceLines ? append(singleton(Interop_reactApi.createElement(ReferenceLine, {\n y: 70,\n label: \"Overkjøpt\",\n yAxisId: \"right\",\n strokeWidth: 2,\n })), delay(() => singleton(Interop_reactApi.createElement(ReferenceLine, {\n y: 30,\n label: \"Oversolgt\",\n yAxisId: \"right\",\n strokeWidth: 2,\n })))) : empty(), delay(() => append(singleton(Interop_reactApi.createElement(Legend, {})), delay(() => append(singleton(Interop_reactApi.createElement(Line, {\n dataKey: \"Close\",\n stroke: \"var(--text-dim)\",\n strokeWidth: 3,\n dot: false,\n yAxisId: \"left\",\n })), delay(() => singleton(Interop_reactApi.createElement(Line, {\n dataKey: \"RSI\",\n stroke: \"#5F5566\",\n strokeWidth: 3,\n dot: false,\n yAxisId: \"right\",\n }))))))))))));\n }));\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))])]), Interop_reactApi.createElement(ComposedChart, createObj(properties_9))))]]);\n return Interop_reactApi.createElement(ResponsiveContainer, createObj(properties_17));\n}\n\nexport function RelativeStrengthIndex(relativeStrengthIndexInputProps) {\n let elems_7, elems_6;\n const ticker = relativeStrengthIndexInputProps.ticker;\n const market = relativeStrengthIndexInputProps.market;\n const patternInput = useFeliz_React__React_useState_Static_1505(undefined);\n const rsi = patternInput[0];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(undefined);\n const setErrMsg = patternInput_1[1];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(true);\n const showReferenceLines = patternInput_2[0];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(false);\n const showClose = patternInput_3[0];\n useReact_useEffectOnce_3A5B6456(() => {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(AssetRSI_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty_1(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty_1()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/ta/rsi/${market}/${ticker}`, properties_3).then((_arg_1) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg_1, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(AssetRSI_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_2) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_2), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_3) => {\n const res = _arg_3;\n if (res.tag === 1) {\n setErrMsg(\"Kunne ikke laste teknisk analyse for aksje. Vennligst prøv igjen senere.\");\n return Promise.resolve();\n }\n else {\n patternInput[1](res.fields[0]);\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n padding: 2 + \"vw\",\n }], (elems_7 = [Alert_snackError(patternInput_1[0], () => {\n setErrMsg(undefined);\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"left\",\n gap: 10 + \"px \",\n }], (elems_6 = toList(delay(() => {\n let elems;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }], (elems = [createElement(\"h2\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: 500,\n margin: 0,\n },\n children: \"Relative Strength Index (RSI)\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])))), delay(() => {\n let rsi_1;\n return append(singleton(createElement(\"p\", {\n style: {\n margin: 0,\n },\n children: `RSI (14) utvikling over siste ${(rsi != null) ? ((rsi_1 = rsi, int32ToString(rsi_1.length))) : \"90\"} handelsdager for aksjen. Tradisjonelt vurderer man en RSI verdi over 70 som overkjøpt og verdi under 30 som oversolgt ifølge teknisk analyse. Utregningen er gjort med J. Welles Wilder's originale formell, ofte kalt \"Wilder's Smoothing Method\".`,\n })), delay(() => {\n const matchValue_1 = rsi;\n if (matchValue_1 != null) {\n const x_2 = matchValue_1;\n return append(singleton(rsiChart(x_2, showReferenceLines, showClose)), delay(() => {\n let elems_1;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n }], (elems_1 = [MuiHelpers_createElement(FormControlLabel, [[\"label\", \"Vis referanselinjer\"], [\"checked\", showReferenceLines], [\"onChange\", (e) => {\n patternInput_2[1](e.target.checked);\n }], [\"control\", MuiHelpers_createElement(Checkbox, [[\"size\", \"small\"]])]]), MuiHelpers_createElement(FormControlLabel, [[\"label\", \"Vis sluttkurs\"], [\"checked\", showClose], [\"onChange\", (e_1) => {\n patternInput_3[1](e_1.target.checked);\n }], [\"control\", MuiHelpers_createElement(Checkbox, [[\"size\", \"small\"]])]])], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])))), delay(() => {\n let elems_5, elems_3, elems_4, l_1, l_2, l_3;\n const latest = tryLast(x_2);\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }], (elems_5 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_3 = toList(delay(() => {\n let elems_2;\n if (latest != null) {\n const l = latest;\n return append(singleton(createElement(\"span\", createObj(ofArray([[\"style\", {}], (elems_2 = [createElement(\"span\", {\n children: [\"RSI: \"],\n }), createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: format('{0:' + \"0.00\" + '}', l.RSI),\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))), delay(() => singleton(createElement(\"span\", {\n style: {\n color: \"var(--text-dim)\",\n fontSize: Dimensions_TextSmall,\n },\n children: `Per ${utcDateToLocalDate(l.Date)}`,\n }))));\n }\n else {\n return singleton(createElement(\"span\", {\n children: [\"RSI: N/A\"],\n }));\n }\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_4 = [createElement(\"span\", {\n children: [\"Vurdering: \"],\n }), createElement(\"span\", {\n style: {\n borderRadius: 5,\n padding: 5,\n backgroundColor: (latest != null) ? ((l_1 = latest, (l_1.RSI >= 70) ? \"var(--sell)\" : ((l_1.RSI <= 30) ? \"var(--buy)\" : StockRating__ToColorCode(new StockRating(2, []))))) : \"var(--bg-main)\",\n color: (latest != null) ? ((l_2 = latest, ((l_2.RSI > 30) && (l_2.RSI < 70)) ? StockRating__ToTextColorCode(new StockRating(2, [])) : \"#fff\")) : \"var(--text-main)\",\n },\n children: (latest != null) ? ((l_3 = latest, (l_3.RSI >= 70) ? \"Overkjøpt\" : ((l_3.RSI <= 30) ? \"Oversolgt\" : \"Nøytral\"))) : \"N/A\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_5))])])))), delay(() => {\n let l_4;\n return singleton(createElement(\"span\", {\n children: (latest != null) ? ((l_4 = latest, (l_4.RSI >= 70) ? \"RSI over 70 indikerer at aksjen er overkjøpt\" : ((l_4.RSI <= 30) ? \"RSI under 30 indikerer at aksjen er oversolgt.\" : ((l_4.RSI > 60) ? (`RSI på ${quoteToString(l_4.RSI)} indikerer at aksjen nærmer seg overkjøpt.`) : ((l_4.RSI < 40) ? (`RSI på ${quoteToString(l_4.RSI)} indikerer at aksjen nærmer seg oversolgt.`) : (`RSI på ${quoteToString(l_4.RSI)} gir ingen klar indikasjon på om aksjen er overkjøpt eller oversolgt.`)))))) : \"Ikke nok data\",\n }));\n }));\n }));\n }));\n }\n else {\n return singleton(LoadingIndicator_loadingIndicator());\n }\n }));\n }));\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_6))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_7))])])));\n}\n\nfunction drawAppInfo() {\n let elems_3, elems_2, elems, elems_1;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", createObj(ofArray([[\"display\", \"flex\"], [\"flexDirection\", \"column\"], [\"justifyContent\", \"space-around\"], [\"alignItems\", \"center\"], [\"backgroundColor\", \"#FFFFFF\"], [\"borderRadius\", 5], DefaultBorder, [\"padding\", 1 + \"vw\"], [\"textAlign\", \"left\"]]))], (elems_3 = [createElement(\"span\", {\n children: [\"Få push-varslinger ved endringer i RSI-verdi. Last ned aksje.io appen!\"],\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: 20 + \"px \",\n }], (elems_2 = [createElement(\"a\", createObj(ofArray([[\"style\", {\n lineHeight: 0 + \"px\",\n }], [\"href\", \"https://apps.apple.com/app/aksje-io/id6448765436\"], [\"aria-label\", \"Last ned aksje.io fra Apple App Store\"], (elems = [createElement(\"img\", {\n src: \"/images/app_store_download.svg\",\n target: \"_blank\",\n alt: \"Lenke til aksje.io på Apple App Store\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"a\", createObj(ofArray([[\"style\", {\n lineHeight: 0 + \"px\",\n }], [\"href\", \"https://play.google.com/store/apps/details?id=io.aksje.app&pli=1\"], [\"target\", \"_blank\"], (elems_1 = [createElement(\"img\", {\n style: {\n height: 50,\n },\n src: \"https://play.google.com/intl/en_us/badges/static/images/badges/no_badge_web_generic.png\",\n alt: \"Last ned fra Google Play Store\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])));\n}\n\nexport function TechnicalAnalysis(technicalAnalysisInputProps) {\n let elems;\n const ticker = technicalAnalysisInputProps.ticker;\n const market = technicalAnalysisInputProps.market;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems = [createElement(\"div\", {\n key: \"rsi\",\n children: createElement(RelativeStrengthIndex, {\n market: market,\n ticker: ticker,\n }),\n }), createElement(AssetBanner, null), drawAppInfo()], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])));\n}\n\n","import { toString as toString_1, Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, bool_type, option_type, int32_type, string_type, union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { GenericResponse_$reflection, Post_$reflection, Valuation_AssetKeyNumbers_$reflection, Asset_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { toShortAmountL, formatSpacedLong, utcDateToLocalDate, utcStringToTimePeriod, checkError } from \"../Utils.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { singleton, cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { some, unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoder_437914C6, Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { equals, createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { DefaultBorder, Dimensions_TextSmall } from \"../Design.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { empty as empty_1, singleton as singleton_1, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0, useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { StockRating__ToTextColorCode, StockRating__ToColorCode, StockRating_FromInt_Z524259A4 } from \"../Shared/Shared.js\";\nimport { post } from \"../Content/Post.js\";\nimport { printf, toText, format } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { groupButtonRight, groupButtonLeft, Alert_snackError, pillButton, Dialog_dialogActions, Dialog_dialogContent, Dialog_dialogTitle, Dialog_Dialog, LoadingIndicator_skeleton } from \"../ViewHelpers.js\";\nimport { toFloat64, fromFloat32, toInt64 } from \"../fable_modules/fable-library-js.4.17.0/BigInt.js\";\nimport { AssetQuote } from \"./AssetQuote.js\";\nimport { AssetInsiderTrade } from \"./AssetInsiderTrade.js\";\nimport { AssetBanner } from \"../Content/Ads.js\";\nimport { TopShort, AssetShort } from \"./AssetShort.js\";\nimport { Target, PostFeed } from \"../Content/PostFeed.js\";\nimport { fetchAssetKeyNumbers } from \"../Promises.js\";\nimport { TechnicalAnalysis } from \"./AssetTA.js\";\n\nclass SectionView extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Summary\", \"TA\"];\n }\n}\n\nfunction SectionView_$reflection() {\n return union_type(\"Investfora.Asset.SectionView\", [], SectionView, () => [[], []]);\n}\n\nfunction SectionView__ToKey(this$) {\n if (this$.tag === 1) {\n return \"ta-section\";\n }\n else {\n return \"summary-section\";\n }\n}\n\nclass ContentView extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Feed\", \"Reviews\", \"Posts\", \"InsiderTrades\", \"Shorts\"];\n }\n}\n\nfunction ContentView_$reflection() {\n return union_type(\"Investfora.Asset.ContentView\", [], ContentView, () => [[], [], [], [], []]);\n}\n\nfunction ContentView__ToKey(this$) {\n switch (this$.tag) {\n case 1:\n return \"review-view\";\n case 2:\n return \"posts-view\";\n case 3:\n return \"insider-trades-view\";\n case 4:\n return \"shorts-view\";\n default:\n return \"feed-view\";\n }\n}\n\nclass Model extends Record {\n constructor(Ticker, MarketTicker, AssetId, MarketId, AssetName, MarketName, AssetInfo, KeyNumbers, ErrorMsg, CurrentSection, CurrentContent, IsFavorite, MaxFavorites, ActiveReview) {\n super();\n this.Ticker = Ticker;\n this.MarketTicker = MarketTicker;\n this.AssetId = (AssetId | 0);\n this.MarketId = (MarketId | 0);\n this.AssetName = AssetName;\n this.MarketName = MarketName;\n this.AssetInfo = AssetInfo;\n this.KeyNumbers = KeyNumbers;\n this.ErrorMsg = ErrorMsg;\n this.CurrentSection = CurrentSection;\n this.CurrentContent = CurrentContent;\n this.IsFavorite = IsFavorite;\n this.MaxFavorites = MaxFavorites;\n this.ActiveReview = ActiveReview;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Asset.Model\", [], Model, () => [[\"Ticker\", string_type], [\"MarketTicker\", string_type], [\"AssetId\", int32_type], [\"MarketId\", int32_type], [\"AssetName\", string_type], [\"MarketName\", string_type], [\"AssetInfo\", option_type(Asset_$reflection())], [\"KeyNumbers\", option_type(Valuation_AssetKeyNumbers_$reflection())], [\"ErrorMsg\", option_type(string_type)], [\"CurrentSection\", SectionView_$reflection()], [\"CurrentContent\", ContentView_$reflection()], [\"IsFavorite\", option_type(bool_type)], [\"MaxFavorites\", bool_type], [\"ActiveReview\", option_type(Post_$reflection())]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"AssetInfoResponse\", \"KeyNumbersResponse\", \"IsFavoriteResponse\", \"FavoriteResponse\", \"UnFavoriteResponse\", \"SetSectionView\", \"SetContentView\", \"ActiveResponse\", \"RemoveActive\", \"DismissMaxFavorites\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Asset.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Asset_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Asset_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Valuation_AssetKeyNumbers_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Valuation_AssetKeyNumbers_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [bool_type, FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", bool_type]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", SectionView_$reflection()]], [[\"Item\", ContentView_$reflection()]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Post_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Post_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [], [], []]);\n}\n\nfunction init(market, ticker) {\n return new Model(ticker.toLocaleUpperCase(), market, assetid, marketid, assetname, marketname, undefined, undefined, undefined, new SectionView(0, []), new ContentView(0, []), undefined, false, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, \"Kunne ikke laste nøkkeltall. Vennligst prøv igjen senere.\", model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n }\n else {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, res_1.fields[0], model.ErrorMsg, model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n }\n }\n case 2: {\n const res_2 = msg.fields[0];\n if (res_2.tag === 1) {\n return model;\n }\n else {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, res_2.fields[0], model.MaxFavorites, model.ActiveReview);\n }\n }\n case 3: {\n const res_3 = msg.fields[0];\n if (res_3.tag === 1) {\n const err = res_3.fields[0];\n let matchResult, y_1;\n if (err.tag === 2) {\n if ((err.fields[0].status) === 403) {\n matchResult = 0;\n y_1 = err.fields[0];\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0:\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, model.IsFavorite, true, model.ActiveReview);\n default: {\n checkError(err);\n return model;\n }\n }\n }\n else if (res_3.fields[0].Result === \"success\") {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, true, model.MaxFavorites, model.ActiveReview);\n }\n else {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, \"Kunne ikke legge til som favoritt. Vennligst prøv igjen senere.\", model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n }\n }\n case 4: {\n const res_4 = msg.fields[0];\n if (res_4.tag === 1) {\n checkError(res_4.fields[0]);\n return model;\n }\n else if (res_4.fields[0].Result === \"success\") {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, false, model.MaxFavorites, model.ActiveReview);\n }\n else {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, \"Kunne ikke fjerne fra favoritter. Vennligst prøv igjen senere..\", model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n }\n }\n case 7: {\n const res_5 = msg.fields[0];\n if (res_5.tag === 0) {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, res_5.fields[0]);\n }\n else {\n return model;\n }\n }\n case 8:\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, undefined);\n case 5:\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, msg.fields[0], model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n case 6:\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, msg.fields[0], model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n case 9:\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, model.IsFavorite, false, model.ActiveReview);\n case 10:\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, undefined, model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, model.AssetInfo, model.KeyNumbers, \"Kunne ikke laste informasjon om aksje.\", model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n }\n else {\n return new Model(model.Ticker, model.MarketTicker, model.AssetId, model.MarketId, model.AssetName, model.MarketName, res.fields[0], model.KeyNumbers, model.ErrorMsg, model.CurrentSection, model.CurrentContent, model.IsFavorite, model.MaxFavorites, model.ActiveReview);\n }\n }\n }\n}\n\nfunction fetchAssetInfo(marketTicker, assetTicker, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(Asset_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/asset/${marketTicker}/${assetTicker}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Asset_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchFavoriteState(assetId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(bool_type, undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/favorite/${assetId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(bool_type, unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(2, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction favorite(assetId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n return ((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(\"\"), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/favorite/${assetId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(3, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction unFavorite(assetId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"DELETE\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/favorite/${assetId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(4, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchActive(assetId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(Post_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/review/active/${assetId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Post_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(7, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction drawAssetInfo(model, dispatch) {\n let elems_4, elems, elems_3;\n const separator = () => createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n },\n children: \"-\",\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"left\",\n marginTop: 3.5 + \"vh\",\n padding: 2 + \"vw\",\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n }], (elems_4 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"baseline\",\n justifyContent: \"space-between\",\n }], (elems = [createElement(\"h1\", {\n style: {\n marginBottom: 0,\n marginTop: 0,\n fontSize: 2 + \"rem\",\n fontWeight: \"bold\",\n },\n children: model.AssetName,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"baseline\",\n gap: ((0 + \"px \") + 10) + \"px\",\n }], (elems_3 = toList(delay(() => append(singleton_1(createElement(\"span\", {\n children: [model.Ticker],\n })), delay(() => append(singleton_1(separator()), delay(() => {\n let matchValue, ai_1, elems_1;\n return append((matchValue = model.AssetInfo, (matchValue != null) ? ((matchValue.Delisted != null) ? ((ai_1 = matchValue, singleton_1(createElement(\"span\", {\n children: [`Unotert (tidligere ${model.MarketName})`],\n })))) : singleton_1(createElement(\"a\", createObj(ofArray([[\"href\", `/market/${model.MarketTicker}`], (elems_1 = [createElement(\"span\", {\n style: {\n textDecorationLine: \"underline\",\n },\n children: model.MarketName,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))))) : singleton_1(createElement(\"a\", createObj(ofArray([[\"href\", `/market/${model.MarketTicker}`], (elems_1 = [createElement(\"span\", {\n style: {\n textDecorationLine: \"underline\",\n },\n children: model.MarketName,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))))), delay(() => {\n if (isAuthenticated) {\n const matchValue_1 = model.IsFavorite;\n if (matchValue_1 != null) {\n const isFavorite = matchValue_1;\n return append(singleton_1(separator()), delay(() => {\n let elems_2;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n padding: 0,\n border: \"none\",\n fontSize: 1 + \"rem\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"baseline\",\n background: \"none\",\n gap: ((0 + \"px \") + 3) + \"px\",\n }], [\"onClick\", (_arg) => {\n if (isFavorite) {\n unFavorite(model.AssetId, dispatch);\n }\n else {\n favorite(model.AssetId, dispatch);\n }\n }], (elems_2 = [createElement(\"i\", createObj(toList(delay(() => append(singleton_1([\"style\", createObj(toList(delay(() => (isFavorite ? singleton_1([\"color\", \"#FF0000\"]) : singleton_1([\"color\", \"var(--text-main)\"])))))]), delay(() => (isFavorite ? singleton_1([\"className\", \"fas fa-heart\"]) : singleton_1([\"className\", \"far fa-heart\"])))))))), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n marginTop: 2,\n },\n children: isFavorite ? \"Favoritt\" : \"Merk som favoritt\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])]))));\n }));\n }\n else {\n return empty_1();\n }\n }\n else {\n return empty_1();\n }\n }));\n })))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])));\n}\n\nfunction DrawActiveReview(drawActiveReviewInputProps) {\n let elems_7;\n const dispatch = drawActiveReviewInputProps.dispatch;\n const x = drawActiveReviewInputProps.x;\n const patternInput = useFeliz_React__React_useState_Static_1505(true);\n const summaryView = patternInput[0];\n const rating = StockRating_FromInt_Z524259A4(x.Rating);\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_7 = toList(delay(() => {\n let elems;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n paddingBottom: 5,\n fontSize: 0.8 + \"rem\",\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n maxWidth: 250,\n \"border-bottom\": \"none\",\n \"border-top-left-radius\": `${5}px`,\n \"border-top-right-radius\": `${5}px`,\n padding: 5,\n backgroundColor: \"#FFFFFF\",\n marginBottom: -1,\n zIndex: 10,\n }], (elems = [createElement(\"span\", {\n children: [\"Du har en aktiv analyse på denne aksjen\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let elems_5, elems_1, elems_4;\n return append(!summaryView ? singleton_1(post(x, (_arg) => {\n dispatch(new Message(8, []));\n })) : singleton_1(createElement(\"div\", createObj(ofArray([[\"className\", \"active-review-holder\"], (elems_5 = [createElement(\"div\", createObj(ofArray([[\"className\", \"active-review-rating\"], [\"style\", {\n backgroundColor: StockRating__ToColorCode(rating),\n }], (elems_1 = [createElement(\"span\", {\n style: {\n color: StockRating__ToTextColorCode(rating),\n },\n children: toString_1(rating),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexGrow: 1,\n justifyContent: \"space-around\",\n }], (elems_4 = toList(delay(() => {\n let elems_2;\n const matchValue = x.ReviewInfo;\n if (matchValue != null) {\n const ri = matchValue;\n const period = utcStringToTimePeriod(ri.Until);\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n padding: 5,\n paddingLeft: 15,\n justifyContent: \"center\",\n }], (elems_2 = toList(delay(() => {\n const matchValue_1 = ri.TargetPrice;\n if (matchValue_1 != null) {\n const tp = matchValue_1;\n return append(singleton_1(createElement(\"span\", {\n style: {\n color: \"var(--text-dim)\",\n fontSize: 0.7 + \"rem\",\n },\n children: \"Kursmål\",\n })), delay(() => {\n let arg_1;\n return singleton_1(createElement(\"span\", {\n style: {\n whiteSpace: \"nowrap\",\n },\n children: (arg_1 = format('{0:' + \"0.00\" + '}', tp), toText(printf(\"%s %s\"))(ri.Currency)(arg_1)),\n }));\n }));\n }\n else {\n return singleton_1(createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n },\n children: \"Ingen kursmål\",\n }));\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))), delay(() => {\n let elems_3;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n }], (elems_3 = [createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n },\n children: period,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))));\n }));\n }\n else {\n return empty_1();\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])))), delay(() => {\n let elems_6;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"flex-end\",\n paddingTop: 5,\n }], (elems_6 = [createElement(\"button\", {\n className: \"pill-button-small\",\n children: summaryView ? \"Vis full analyse\" : \"Vis oppsummering\",\n onClick: (_arg_1) => {\n patternInput[1](!summaryView);\n },\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])]))));\n }));\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])])));\n}\n\nfunction drawKeyNumbers(model) {\n let elems_1, arg_1, arg_3, arg_5, arg_7;\n const keyNumber = (x) => createElement(\"span\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: 500,\n fontStyle: \"italic\",\n },\n children: x,\n });\n const extraInfo = (x_1) => createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n color: \"var(--text-dim)\",\n },\n children: x_1,\n });\n const keyBox = (title, x_2) => {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n flexGrow: 1,\n padding: 1 + \"vw\",\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n }], (elems = toList(delay(() => append(singleton_1(createElement(\"span\", {\n style: {\n fontSize: 1 + \"rem\",\n fontWeight: 500,\n },\n children: title,\n })), delay(() => ((model.KeyNumbers == null) ? append(singleton_1(LoadingIndicator_skeleton(ofArray([[\"width\", 100], [\"height\", 48]]))), delay(() => singleton_1(LoadingIndicator_skeleton(ofArray([[\"width\", 100], [\"height\", 19]]))))) : x_2))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n };\n let currency;\n const matchValue = model.AssetInfo;\n currency = ((matchValue != null) ? (` ${matchValue.Currency}`) : \"\");\n return createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-around\",\n }], (elems_1 = [(arg_1 = toList(delay(() => {\n const matchValue_1 = model.KeyNumbers;\n if (matchValue_1 != null) {\n const kn = matchValue_1;\n return append(singleton_1(keyNumber(format('{0:' + \"0.00\" + '}', kn.LastQuote.Price))), delay(() => singleton_1(extraInfo(`Per ${utcDateToLocalDate(kn.LastQuote.Date)}`))));\n }\n else {\n return empty_1();\n }\n })), keyBox(\"Siste sluttkurs\", arg_1)), (arg_3 = toList(delay(() => {\n const matchValue_2 = model.KeyNumbers;\n if (matchValue_2 != null) {\n return singleton_1(keyNumber(formatSpacedLong(matchValue_2.NumShares)));\n }\n else {\n return empty_1();\n }\n })), keyBox(\"Antall aksjer\", arg_3)), (arg_5 = toList(delay(() => {\n const matchValue_3 = model.KeyNumbers;\n if (matchValue_3 != null) {\n const kn_2 = matchValue_3;\n return append(singleton_1(keyNumber(`${toShortAmountL(toInt64(fromFloat32(kn_2.LastQuote.Price * toFloat64(kn_2.NumShares))))}`)), delay(() => singleton_1(extraInfo(`Per sluttkurs ${utcDateToLocalDate(kn_2.LastQuote.Date)}`))));\n }\n else {\n return empty_1();\n }\n })), keyBox(`Markedsverdi${currency}`, arg_5)), (arg_7 = toList(delay(() => {\n let p;\n const matchValue_4 = model.KeyNumbers;\n if (matchValue_4 != null) {\n const matchValue_5 = matchValue_4.LastShort;\n if (matchValue_5 != null) {\n const ls = matchValue_5;\n return append(singleton_1(keyNumber((p = (ls.Percentage / 100), format('{0:' + \"0.00%\" + '}', p)))), delay(() => singleton_1(extraInfo(`Siste ${utcDateToLocalDate(ls.Date)}`))));\n }\n else {\n return append(singleton_1(keyNumber(\"N/A\")), delay(() => singleton_1(extraInfo(\"Ingen short data\"))));\n }\n }\n else {\n return empty_1();\n }\n })), keyBox(\"Andel short\", arg_7))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nfunction drawDelistedInfo() {\n let elems, children;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"left\",\n padding: 2 + \"vw\",\n backgroundColor: \"#FFFFFF\",\n borderRadius: 5,\n border: (((1 + \"px \") + \"solid\") + \" \") + \"#e1e1e1\",\n }], (elems = [(children = ofArray([createElement(\"i\", {\n style: {\n marginRight: 10,\n color: \"#FF8C00\",\n fontSize: 20 + \"px\",\n },\n className: \"fas fa-info-circle\",\n }), \"Denne aksjen er ikke lengre notert. Du kan fortsatt se tidligere data og historikk på denne siden.\"]), createElement(\"p\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction maxFavorites(dispatch) {\n let elems_3, value_7, elems_2, elems, elems_1;\n return createElement(Dialog_Dialog, {\n onClose: () => {\n dispatch(new Message(9, []));\n },\n children: ofArray([Dialog_dialogTitle(\"Max antall favorittaksjer nådd\"), Dialog_dialogContent(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: ((20 + \"px \") + 20) + \"px\",\n maxWidth: 500,\n }], (elems_3 = [(value_7 = \"Du har nådd grensen for max antall favorittaksjer uten aksje.io+ abonnement. Abonner på aksje.io+ og få muligheten til å legge til ubegrenset antall favoritter. Du kan også fjerne andre favorittaksjer.\", createElement(\"p\", {\n children: [value_7],\n })), createElement(\"p\", {\n children: [\"Last ned aksje.io appen for å komme i gang!\"],\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n gap: 10 + \"px \",\n marginTop: 10,\n }], (elems_2 = [createElement(\"a\", createObj(ofArray([[\"style\", {\n lineHeight: 0 + \"px\",\n }], [\"href\", \"https://apps.apple.com/app/aksje-io/id6448765436\"], [\"aria-label\", \"Last ned aksje.io fra Apple App Store\"], (elems = [createElement(\"img\", {\n src: \"/images/app_store_download.svg\",\n target: \"_blank\",\n alt: \"Lenke til aksje.io på Apple App Store\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"a\", createObj(ofArray([[\"style\", {\n lineHeight: 0 + \"px\",\n }], [\"href\", \"https://play.google.com/store/apps/details?id=io.aksje.app&pli=1\"], [\"target\", \"_blank\"], (elems_1 = [createElement(\"img\", {\n style: {\n height: 50,\n },\n src: \"https://play.google.com/intl/en_us/badges/static/images/badges/no_badge_web_generic.png\",\n alt: \"Last ned fra Google Play Store\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))))), Dialog_dialogActions(singleton(pillButton(empty(), \"Lukk\", (_arg_1) => {\n dispatch(new Message(9, []));\n })))]),\n });\n}\n\nfunction drawAppInfo(ai) {\n let elems_3, elems_2, elems, elems_1;\n const info = `Få push-varslinger ved nye innsidehandler og short-oppdateringer${(ai != null) ? (` for ${ai.Name}`) : \"\"}. Last ned aksje.io appen!`;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", createObj(ofArray([[\"display\", \"flex\"], [\"flexDirection\", \"column\"], [\"justifyContent\", \"space-around\"], [\"alignItems\", \"center\"], [\"backgroundColor\", \"#FFFFFF\"], [\"borderRadius\", 5], DefaultBorder, [\"padding\", 1 + \"vw\"], [\"textAlign\", \"left\"]]))], (elems_3 = [createElement(\"span\", {\n children: [info],\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: 20 + \"px \",\n }], (elems_2 = [createElement(\"a\", createObj(ofArray([[\"style\", {\n lineHeight: 0 + \"px\",\n }], [\"href\", \"https://apps.apple.com/app/aksje-io/id6448765436\"], [\"aria-label\", \"Last ned aksje.io fra Apple App Store\"], (elems = [createElement(\"img\", {\n src: \"/images/app_store_download.svg\",\n target: \"_blank\",\n alt: \"Lenke til aksje.io på Apple App Store\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"a\", createObj(ofArray([[\"style\", {\n lineHeight: 0 + \"px\",\n }], [\"href\", \"https://play.google.com/store/apps/details?id=io.aksje.app&pli=1\"], [\"target\", \"_blank\"], (elems_1 = [createElement(\"img\", {\n style: {\n height: 50,\n },\n src: \"https://play.google.com/intl/en_us/badges/static/images/badges/no_badge_web_generic.png\",\n alt: \"Last ned fra Google Play Store\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])));\n}\n\nfunction drawSummarySection(model, dispatch) {\n const xs_5 = toList(delay(() => append(singleton_1(drawKeyNumbers(model)), delay(() => append(singleton_1(createElement(AssetQuote, {\n assetId: assetid,\n market: model.MarketTicker,\n ticker: model.Ticker,\n })), delay(() => append(singleton_1(createElement(AssetInsiderTrade, {\n assetId: assetid,\n })), delay(() => append(singleton_1(createElement(AssetBanner, null)), delay(() => append(singleton_1(createElement(AssetShort, {\n assetId: assetid,\n })), delay(() => append(singleton_1(createElement(TopShort, {\n market: model.MarketTicker,\n ticker: model.Ticker,\n })), delay(() => append(singleton_1(drawAppInfo(model.AssetInfo)), delay(() => {\n let matchValue, active;\n return append((matchValue = model.ActiveReview, (matchValue != null) ? ((active = matchValue, singleton_1(createElement(DrawActiveReview, {\n x: active,\n dispatch: dispatch,\n })))) : (empty_1())), delay(() => {\n let elems_2, elems_1;\n const li$0027 = (cw, title) => createElement(\"li\", createObj(toList(delay(() => append(singleton_1([\"onClick\", (_arg) => {\n dispatch(new Message(6, [cw]));\n }]), delay(() => append(equals(model.CurrentContent, cw) ? singleton_1([\"className\", \"is-active\"]) : empty_1(), delay(() => {\n let elems;\n return singleton_1((elems = [createElement(\"a\", {\n children: title,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))]));\n }))))))));\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"className\", \"tab-menu\"], (elems_2 = [createElement(\"ul\", createObj(singleton((elems_1 = [li$0027(new ContentView(0, []), \"Feed\"), li$0027(new ContentView(1, []), \"Analyser\"), li$0027(new ContentView(2, []), \"Innlegg\"), li$0027(new ContentView(3, []), \"Innsidehandel\"), li$0027(new ContentView(4, []), \"Short-endringer\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))]))))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))), delay(() => {\n let elems_3;\n return singleton_1(createElement(\"div\", createObj(ofArray([[\"key\", ContentView__ToKey(model.CurrentContent)], (elems_3 = toList(delay(() => {\n const matchValue_1 = model.CurrentContent;\n return (matchValue_1.tag === 1) ? singleton_1(createElement(PostFeed, {\n target: new Target(2, [model.AssetId]),\n includeAds: true,\n })) : ((matchValue_1.tag === 2) ? singleton_1(createElement(PostFeed, {\n target: new Target(1, [model.AssetId]),\n includeAds: true,\n })) : ((matchValue_1.tag === 3) ? singleton_1(createElement(PostFeed, {\n target: new Target(4, [model.AssetId]),\n includeAds: true,\n })) : ((matchValue_1.tag === 4) ? singleton_1(createElement(PostFeed, {\n target: new Target(3, [model.AssetId]),\n includeAds: true,\n })) : singleton_1(createElement(PostFeed, {\n target: new Target(0, [model.AssetId]),\n includeAds: true,\n })))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))));\n }));\n }));\n }))))))))))))))));\n return react.createElement(react.Fragment, {}, ...xs_5);\n}\n\nexport function Asset(assetInputProps) {\n let elems_1;\n const ticker = assetInputProps.ticker;\n const market = assetInputProps.market;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(market, ticker));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchAssetInfo(model_1.MarketTicker, model_1.Ticker, dispatch);\n fetchAssetKeyNumbers(assetid, (arg) => {\n dispatch(new Message(1, [arg]));\n });\n if (isAuthenticated) {\n fetchFavoriteState(assetid, dispatch);\n fetchActive(assetid, dispatch);\n }\n });\n return createElement(\"div\", createObj(ofArray([[\"className\", \"asset-column default-gap\"], (elems_1 = toList(delay(() => append(singleton_1(Alert_snackError(model_1.ErrorMsg, () => {\n dispatch(new Message(10, []));\n })), delay(() => append(model_1.MaxFavorites ? singleton_1(maxFavorites(dispatch)) : empty_1(), delay(() => append(singleton_1(drawAssetInfo(model_1, dispatch)), delay(() => {\n let matchValue, ai_1;\n return append((matchValue = model_1.AssetInfo, (matchValue != null) ? ((matchValue.Delisted != null) ? ((ai_1 = matchValue, singleton_1(drawDelistedInfo()))) : (empty_1())) : (empty_1())), delay(() => {\n let elems;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems = [groupButtonLeft(equals(model_1.CurrentSection, new SectionView(0, [])), (_arg_2) => {\n if (!equals(model_1.CurrentSection, new SectionView(0, []))) {\n dispatch(new Message(5, [new SectionView(0, [])]));\n }\n }, [\"Oversikt\"]), groupButtonRight(equals(model_1.CurrentSection, new SectionView(1, [])), (_arg_3) => {\n if (!equals(model_1.CurrentSection, new SectionView(1, []))) {\n dispatch(new Message(5, [new SectionView(1, [])]));\n }\n }, [\"Teknisk analyse\"])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => ((model_1.CurrentSection.tag === 1) ? singleton_1(createElement(TechnicalAnalysis, {\n market: model_1.MarketTicker,\n ticker: model_1.Ticker,\n })) : singleton_1(drawSummarySection(model_1, dispatch)))));\n }));\n })))))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\n","import { Record, Union } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, array_type, option_type, string_type, union_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { Analytics_Average_$reflection, Asset_$reflection, Market_$reflection } from \"./Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { singleton as singleton_1, cons, ofArray, empty } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"./fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"./fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { equals, createObj, comparePrimitives, uncurry2 } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { DataServerBaseUrl } from \"./Session.js\";\nimport { map as map_1, sortByDescending, sortBy } from \"./fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { append, empty as empty_1, singleton, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { LoadingIndicator_skeleton, Alert_snackError } from \"./ViewHelpers.js\";\nimport { Dimensions_TextSmall } from \"./Design.js\";\n\nclass Sort extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"NameDesc\", \"NameAsc\", \"TickerDesc\", \"TickerAsc\"];\n }\n}\n\nfunction Sort_$reflection() {\n return union_type(\"Investfora.Market.Sort\", [], Sort, () => [[], [], [], []]);\n}\n\nclass Model extends Record {\n constructor(SortOrder, MarketTicker, MarketInfo, Assets, AvgRating, ErrorMsg) {\n super();\n this.SortOrder = SortOrder;\n this.MarketTicker = MarketTicker;\n this.MarketInfo = MarketInfo;\n this.Assets = Assets;\n this.AvgRating = AvgRating;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Market.Model\", [], Model, () => [[\"SortOrder\", Sort_$reflection()], [\"MarketTicker\", string_type], [\"MarketInfo\", option_type(Market_$reflection())], [\"Assets\", option_type(array_type(Asset_$reflection()))], [\"AvgRating\", option_type(Analytics_Average_$reflection())], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"MarketResponse\", \"AssetsResponse\", \"AverageResponse\", \"SetSortOrder\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Market.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Market_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Market_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Asset_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(Asset_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Analytics_Average_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Analytics_Average_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", Sort_$reflection()]], []]);\n}\n\nfunction init(ticker) {\n return new Model(new Sort(1, []), ticker, undefined, undefined, undefined, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n return new Model(model.SortOrder, model.MarketTicker, model.MarketInfo, model.Assets, model.AvgRating, \"Could not load assets for this market.\");\n }\n else {\n return new Model(model.SortOrder, model.MarketTicker, model.MarketInfo, res_1.fields[0], model.AvgRating, model.ErrorMsg);\n }\n }\n case 2: {\n const res_2 = msg.fields[0];\n if (res_2.tag === 1) {\n return model;\n }\n else {\n return new Model(model.SortOrder, model.MarketTicker, model.MarketInfo, model.Assets, res_2.fields[0], model.ErrorMsg);\n }\n }\n case 3:\n return new Model(msg.fields[0], model.MarketTicker, model.MarketInfo, model.Assets, model.AvgRating, model.ErrorMsg);\n case 4:\n return new Model(model.SortOrder, model.MarketTicker, model.MarketInfo, model.Assets, model.AvgRating, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return new Model(model.SortOrder, model.MarketTicker, model.MarketInfo, model.Assets, model.AvgRating, \"Could not load market info.\");\n }\n else {\n return new Model(model.SortOrder, model.MarketTicker, res.fields[0], model.Assets, model.AvgRating, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction fetchMarketInfo(ticker, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(Market_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/market/ticker/${ticker}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Market_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchAssets(ticker, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Asset_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/market/assets/${ticker}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Asset_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(1, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchAverage(ticker, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(Analytics_Average_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/market/average?ticker=${ticker}&period=active`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Analytics_Average_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(2, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction listAssets(model, assets, dispatch) {\n let children_4, children, elems_9, elems_3, elems_2, elems_1, elems_6, elems_5, elems_4, elems_8, children_2;\n let x_5;\n const x = assets;\n const matchValue = model.SortOrder;\n x_5 = ((matchValue.tag === 1) ? sortBy((y_2) => y_2.Name, x, {\n Compare: comparePrimitives,\n }) : ((matchValue.tag === 2) ? sortByDescending((y_4) => y_4.Ticker, x, {\n Compare: comparePrimitives,\n }) : ((matchValue.tag === 3) ? sortBy((y_6) => y_6.Ticker, x, {\n Compare: comparePrimitives,\n }) : sortByDescending((y) => y.Name.toLocaleLowerCase(), x, {\n Compare: comparePrimitives,\n }))));\n const td$0027 = (txt, link) => {\n let elems;\n return createElement(\"td\", createObj(ofArray([[\"style\", {\n padding: 16,\n }], (elems = [createElement(\"a\", {\n href: link,\n children: txt,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n };\n return createElement(\"div\", {\n style: {\n width: 100 + \"%\",\n maxWidth: 800,\n },\n children: (children_4 = ofArray([(children = singleton_1(createElement(\"tr\", createObj(ofArray([[\"style\", {\n backgroundColor: \"var(--bg-normal)\",\n }], (elems_9 = [createElement(\"th\", createObj(ofArray([[\"style\", {\n color: \"#f6f6f6\",\n cursor: \"pointer\",\n }], [\"onClick\", (_arg) => {\n if (equals(model.SortOrder, new Sort(3, []))) {\n dispatch(new Message(3, [new Sort(2, [])]));\n }\n else {\n dispatch(new Message(3, [new Sort(3, [])]));\n }\n }], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n }], (elems_2 = [\"Ticker\", createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 10,\n marginLeft: 5,\n }], (elems_1 = toList(delay(() => (equals(model.SortOrder, new Sort(3, [])) ? singleton(createElement(\"span\", {\n className: \"fas fa-caret-down\",\n })) : (equals(model.SortOrder, new Sort(2, [])) ? singleton(createElement(\"span\", {\n className: \"fas fa-caret-up\",\n })) : empty_1())))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])]))), createElement(\"th\", createObj(ofArray([[\"style\", {\n color: \"#f6f6f6\",\n cursor: \"pointer\",\n }], [\"onClick\", (_arg_1) => {\n if (equals(model.SortOrder, new Sort(1, []))) {\n dispatch(new Message(3, [new Sort(0, [])]));\n }\n else {\n dispatch(new Message(3, [new Sort(1, [])]));\n }\n }], (elems_6 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n }], (elems_5 = [\"Navn\", createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 10,\n marginLeft: 5,\n }], (elems_4 = toList(delay(() => (equals(model.SortOrder, new Sort(1, [])) ? singleton(createElement(\"span\", {\n className: \"fas fa-caret-down\",\n })) : (equals(model.SortOrder, new Sort(0, [])) ? singleton(createElement(\"span\", {\n className: \"fas fa-caret-up\",\n })) : empty_1())))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])]))), createElement(\"th\", createObj(ofArray([[\"style\", {\n color: \"#f6f6f6\",\n }], (elems_8 = [createElement(\"div\", {\n style: {\n display: \"flex\",\n },\n children: Interop_reactApi.Children.toArray([\"ISIN\"]),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_8))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_9))])])))), createElement(\"thead\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n })), (children_2 = map_1((x_6) => {\n let elems_10;\n const link_1 = (x_6.Type === 1) ? (`/stock/${x_6.Market.Ticker}/${x_6.Ticker}`) : (`/crypto/${x_6.Ticker}`);\n return createElement(\"tr\", createObj(ofArray([[\"style\", {\n backgroundColor: \"#fff\",\n }], (elems_10 = [td$0027(x_6.Ticker, link_1), td$0027(x_6.Name, link_1), td$0027(x_6.ISIN, link_1)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_10))])])));\n }, x_5), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n }))]), createElement(\"table\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n })),\n });\n}\n\nexport function Market(marketInputProps) {\n let elems_1;\n const ticker = marketInputProps.ticker;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(ticker));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchMarketInfo(ticker, dispatch);\n fetchAssets(ticker, dispatch);\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: 2 + \"vw\",\n }], (elems_1 = toList(delay(() => append(singleton(Alert_snackError(model_1.ErrorMsg, () => {\n dispatch(new Message(4, []));\n })), delay(() => {\n let matchValue;\n return append(singleton(createElement(\"h1\", {\n className: \"title is-1\",\n style: {\n textAlign: \"center\",\n },\n children: (matchValue = model_1.MarketInfo, (matchValue != null) ? matchValue.Name : model_1.MarketTicker),\n })), delay(() => append(singleton(createElement(\"p\", {\n style: {\n fontSize: Dimensions_TextSmall,\n },\n children: \"Du kan også lete etter aksjer som ikke lengre er notert gjennom søkefunksjonen.\",\n })), delay(() => {\n let elems;\n const matchValue_1 = model_1.Assets;\n if (matchValue_1 == null) {\n const loadingBar = () => LoadingIndicator_skeleton(ofArray([[\"width\", 100 + \"%\"], [\"marginTop\", 10], [\"minHeight\", 50]]));\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 100 + \"%\",\n maxWidth: 800,\n }], (elems = [loadingBar(), loadingBar(), loadingBar(), loadingBar()], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))));\n }\n else {\n return singleton(listAssets(model_1, matchValue_1, dispatch));\n }\n }))));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\n","import { Union, Record } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { DataServer_Short_ShortEvent_$reflection, DataServer_Short_ShortPosition_$reflection, DataServer_Short_LargestShortEntry_$reflection, DataServer_Short_TopShortEntry_$reflection, DataServer_Short_ShareActivityDate_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { int32_type, obj_type, union_type, record_type, string_type, option_type, array_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { singleton as singleton_1, cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { DataServerBaseUrl } from \"../Session.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { comparePrimitives, createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { empty as empty_1, singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Dimensions_TextExtraSmall, Dimensions_TextSmall, DefaultBorder } from \"../Design.js\";\nimport { sortByDescending, map as map_1 } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { Interop_reactApi as Interop_reactApi_1 } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { ResponsiveContainer, ComposedChart, Bar, Tooltip, YAxis, XAxis } from \"recharts\";\nimport { shortPercentageToString, utcDateToLocalDate, toShortAmountL, utcDateToLocalDayAndMonth } from \"../Utils.js\";\nimport { LoadingIndicator_assetListEntryLoading, LoadingIndicator_skeleton } from \"../ViewHelpers.js\";\nimport { fromFloat32, toInt64 } from \"../fable_modules/fable-library-js.4.17.0/BigInt.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\n\nclass Model extends Record {\n constructor(DailyChanges, HighestPercentage, HighestValuation, LargestPositions, LatestShort, ErrorMsg) {\n super();\n this.DailyChanges = DailyChanges;\n this.HighestPercentage = HighestPercentage;\n this.HighestValuation = HighestValuation;\n this.LargestPositions = LargestPositions;\n this.LatestShort = LatestShort;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Short.Model\", [], Model, () => [[\"DailyChanges\", option_type(array_type(DataServer_Short_ShareActivityDate_$reflection()))], [\"HighestPercentage\", option_type(array_type(DataServer_Short_TopShortEntry_$reflection()))], [\"HighestValuation\", option_type(array_type(DataServer_Short_LargestShortEntry_$reflection()))], [\"LargestPositions\", option_type(array_type(DataServer_Short_ShortPosition_$reflection()))], [\"LatestShort\", option_type(array_type(DataServer_Short_ShortEvent_$reflection()))], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"DailyChangesResponse\", \"HighestPercentageResponse\", \"HighestValuationResponse\", \"LargestPositionsResponse\", \"LatestResponse\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Short.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_Short_ShareActivityDate_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_Short_ShareActivityDate_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_Short_TopShortEntry_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_Short_TopShortEntry_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_Short_LargestShortEntry_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_Short_LargestShortEntry_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_Short_ShortPosition_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_Short_ShortPosition_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_Short_ShortEvent_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_Short_ShortEvent_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], []]);\n}\n\nfunction init() {\n return new Model(undefined, undefined, undefined, undefined, undefined, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n return model;\n }\n else {\n return new Model(model.DailyChanges, res_1.fields[0], model.HighestValuation, model.LargestPositions, model.LatestShort, model.ErrorMsg);\n }\n }\n case 2: {\n const res_2 = msg.fields[0];\n if (res_2.tag === 1) {\n return model;\n }\n else {\n return new Model(model.DailyChanges, model.HighestPercentage, res_2.fields[0], model.LargestPositions, model.LatestShort, model.ErrorMsg);\n }\n }\n case 3: {\n const res_3 = msg.fields[0];\n if (res_3.tag === 1) {\n return model;\n }\n else {\n return new Model(model.DailyChanges, model.HighestPercentage, model.HighestValuation, res_3.fields[0], model.LatestShort, model.ErrorMsg);\n }\n }\n case 4: {\n const res_4 = msg.fields[0];\n if (res_4.tag === 1) {\n return model;\n }\n else {\n return new Model(model.DailyChanges, model.HighestPercentage, model.HighestValuation, model.LargestPositions, res_4.fields[0], model.ErrorMsg);\n }\n }\n case 5:\n return new Model(model.DailyChanges, model.HighestPercentage, model.HighestValuation, model.LargestPositions, model.LatestShort, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return model;\n }\n else {\n return new Model(res.fields[0], model.HighestPercentage, model.HighestValuation, model.LargestPositions, model.LatestShort, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction fetchDailyChanges(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_ShareActivityDate_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/daily-changes`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_ShareActivityDate_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchHighestPercentage(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_TopShortEntry_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/highest-short?num=8`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_TopShortEntry_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(1, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchHighestValuation(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_LargestShortEntry_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/highest-by-value?num=8`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_LargestShortEntry_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(2, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchLargestPositions(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_ShortPosition_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/largest-positions?num=8`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_ShortPosition_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(3, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchLatest(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_ShortEvent_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/latest-short`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_ShortEvent_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(4, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nexport function sectionTitle(x) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n borderBottom: (((3 + \"px \") + \"solid\") + \" \") + \"var(--bg-normal)\",\n flexGrow: 1,\n maxWidth: 400,\n marginBottom: 2 + \"vh\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: 500,\n margin: 0,\n userSelect: \"none\",\n },\n children: x,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function section(maxWidth, children) {\n return createElement(\"div\", {\n style: createObj(toList(delay(() => append(singleton([\"display\", \"flex\"]), delay(() => append(singleton([\"flexDirection\", \"column\"]), delay(() => append(singleton([\"backgroundColor\", \"#FFFFFF\"]), delay(() => append(singleton([\"padding\", 1 + \"vw\"]), delay(() => append(singleton([\"borderRadius\", 5]), delay(() => append(singleton(DefaultBorder), delay(() => {\n const matchValue = maxWidth;\n if (matchValue != null) {\n return singleton([\"maxWidth\", matchValue]);\n }\n else {\n return empty_1();\n }\n }))))))))))))))),\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nfunction shortInfo() {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n marginTop: 10,\n fontSize: Dimensions_TextSmall,\n fontStyle: \"italic\",\n }], (elems = [createElement(\"span\", {\n children: [\"Basert på short-posisjoner større eller lik 0.5% av utestående aksjer\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nclass DataPoint extends Record {\n constructor(Dato, Opp, Ned) {\n super();\n this.Dato = Dato;\n this.Opp = (Opp | 0);\n this.Ned = (Ned | 0);\n }\n}\n\nfunction DataPoint_$reflection() {\n return record_type(\"Investfora.Short.DataPoint\", [], DataPoint, () => [[\"Dato\", string_type], [\"Opp\", int32_type], [\"Ned\", int32_type]]);\n}\n\nfunction drawDailyChanges(x) {\n const legend = (color, txt) => {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: ((5 + \"px \") + 5) + \"px\",\n fontSize: Dimensions_TextSmall,\n userSelect: \"none\",\n }], (elems = [createElement(\"div\", {\n style: {\n width: 15,\n height: 15,\n backgroundColor: color,\n },\n }), createElement(\"span\", {\n children: [txt],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n };\n return section(undefined, toList(delay(() => append(singleton(sectionTitle(\"Endring i posisjoner per dag siste 60 dager\")), delay(() => {\n let properties_10, properties_9, elements;\n const matchValue = x;\n return (matchValue != null) ? append(singleton((properties_10 = ofArray([[\"minWidth\", 250], [\"minHeight\", 210], [\"children\", (properties_9 = ofArray([[\"width\", 450], [\"height\", 300], [\"data\", map_1((d) => (new DataPoint(d.Date, d.Raises, d.Covers)), matchValue)], [\"margin\", {\n top: defaultArg(10, 0),\n right: defaultArg(10, 0),\n left: defaultArg(0, 0),\n bottom: defaultArg(10, 0),\n }], (elements = ofArray([Interop_reactApi_1.createElement(XAxis, {\n dataKey: \"Dato\",\n tickFormatter: (t) => (`${utcDateToLocalDayAndMonth(t)}`),\n }), Interop_reactApi_1.createElement(YAxis, {}), Interop_reactApi_1.createElement(Tooltip, {}), Interop_reactApi_1.createElement(Bar, {\n dataKey: \"Opp\",\n fill: \"#36cc08\",\n stackId: \"a\",\n }), Interop_reactApi_1.createElement(Bar, {\n dataKey: \"Ned\",\n fill: \"#cc3608\",\n stackId: \"a\",\n })]), [\"children\", Interop_reactApi.Children.toArray(Array.from(elements))])]), Interop_reactApi_1.createElement(ComposedChart, createObj(properties_9)))]]), Interop_reactApi_1.createElement(ResponsiveContainer, createObj(properties_10)))), delay(() => {\n let elems_2;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: ((20 + \"px \") + 20) + \"px\",\n justifyContent: \"center\",\n }], (elems_2 = [legend(\"#36cc08\", \"Antall nye/økte short-posisjoner\"), legend(\"#cc3608\", \"Antall reduserte/inndekkede short-posisjoner\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))), delay(() => singleton(shortInfo())));\n })) : singleton(LoadingIndicator_skeleton(ofArray([[\"minHeight\", 210], [\"width\", 100 + \"%\"], [\"minWidth\", 250]])));\n })))));\n}\n\nexport function td$0027(children) {\n return createElement(\"td\", {\n style: {\n padding: 5,\n lineHeight: 1.5,\n },\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function assetNameColumn(ticker, market, name) {\n let elems_1, elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n whiteSpace: \"nowrap\",\n userSelect: \"none\",\n maxWidth: 120,\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n }], (elems_1 = [createElement(\"a\", createObj(ofArray([[\"href\", `/stock/${market}/${ticker}`], (elems = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: ticker,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: name,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nfunction valuationColumn(lastPrice, numShares, lastPriceDate) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n whiteSpace: \"nowrap\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: `${toShortAmountL(toInt64(fromFloat32(lastPrice * numShares)))}`,\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: `Per sluttkurs ${utcDateToLocalDate(lastPriceDate)}`,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction dateShortColumn(shortDate) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: `${utcDateToLocalDate(shortDate)}`,\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: \"Dato short\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction drawHighestShort(x) {\n return section(undefined, toList(delay(() => append(singleton(sectionTitle(\"Størst andel short\")), delay(() => {\n let matchValue, children_4, children_2;\n return append((matchValue = x, (matchValue != null) ? singleton((children_4 = singleton_1((children_2 = map_1((z_1) => {\n let elems;\n const children = ofArray([td$0027([assetNameColumn(z_1.Ticker, z_1.Market, z_1.Name)]), td$0027([createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: shortPercentageToString(z_1.Percentage),\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: \"Av utestående\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))]), td$0027([dateShortColumn(z_1.ShortDate)])]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n }, sortByDescending((z) => z.Percentage, matchValue, {\n Compare: comparePrimitives,\n })), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n }))), createElement(\"table\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n }))) : append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => singleton(LoadingIndicator_assetListEntryLoading())))))))), delay(() => singleton(shortInfo())));\n })))));\n}\n\nfunction drawLargestValue(x) {\n return section(undefined, toList(delay(() => append(singleton(sectionTitle(\"Største markedsverdi av short\")), delay(() => {\n let matchValue, children_4, children_2;\n return append((matchValue = x, (matchValue != null) ? singleton((children_4 = singleton_1((children_2 = map_1((z_1) => {\n const children = ofArray([td$0027([assetNameColumn(z_1.Ticker, z_1.Market, z_1.Name)]), td$0027([valuationColumn(z_1.LastPrice, z_1.NumShares, z_1.LastPriceDate)])]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n }, sortByDescending((z) => (z.LastPrice * z.NumShares), matchValue, {\n Compare: comparePrimitives,\n })), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n }))), createElement(\"table\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n }))) : append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => singleton(LoadingIndicator_assetListEntryLoading())))))))), delay(() => singleton(shortInfo())));\n })))));\n}\n\nfunction drawLargestPositions(x) {\n return section(undefined, toList(delay(() => append(singleton(sectionTitle(\"Største posisjoner\")), delay(() => {\n let matchValue, y, elems_2, children_4, children_2;\n return append((matchValue = x, (matchValue != null) ? ((y = matchValue, singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n overflowX: \"auto\",\n maxWidth: 91.5 + \"vw\",\n }], (elems_2 = [(children_4 = singleton_1((children_2 = map_1((z_1) => {\n let elems_1, elems;\n const children = ofArray([td$0027([valuationColumn(z_1.LastClose, z_1.NumShares, z_1.LastCloseDate)]), td$0027([assetNameColumn(z_1.Ticker, z_1.Market, z_1.Name)]), td$0027([createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n whiteSpace: \"nowrap\",\n userSelect: \"none\",\n }], (elems_1 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n maxWidth: 250,\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: z_1.Institution,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: `${z_1.NumShares} aksjer (${shortPercentageToString(z_1.Percent)})`,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))])]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n }, sortByDescending((z) => (z.LastClose * z.NumShares), y, {\n Compare: comparePrimitives,\n })), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n }))), createElement(\"table\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n }))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))))) : append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => singleton(LoadingIndicator_assetListEntryLoading())))))))), delay(() => singleton(shortInfo())));\n })))));\n}\n\nexport function ShortOverview() {\n let elems_1, elems;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init());\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchDailyChanges(dispatch);\n fetchHighestPercentage(dispatch);\n fetchHighestValuation(dispatch);\n fetchLargestPositions(dispatch);\n fetchLatest(dispatch);\n });\n return createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n padding: 1 + \"vw\",\n }], (elems_1 = [drawDailyChanges(model_1.DailyChanges), createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n }], (elems = [drawHighestShort(model_1.HighestPercentage), drawLargestValue(model_1.HighestValuation), drawLargestPositions(model_1.LargestPositions)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\n","import { Union, Record } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection, DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection, DataServer_InsiderTrade_InsiderTradeSummary_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { obj_type, union_type, record_type, string_type, array_type, option_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { singleton as singleton_1, cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { DataServerBaseUrl } from \"../Session.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { comparePrimitives, int32ToString, createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { Dimensions_TextExtraSmall, Dimensions_TextSmall } from \"../Design.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { shortPercentageToString, utcDateToLocalDate, toShortAmountL, toPercentageChange } from \"../Utils.js\";\nimport { format } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { LoadingIndicator_assetListEntryLoading, LoadingIndicator_skeleton, Tooltip_wrapTooltip } from \"../ViewHelpers.js\";\nimport { fromInt32, op_Multiply, toInt64 } from \"../fable_modules/fable-library-js.4.17.0/BigInt.js\";\nimport { assetNameColumn, td$0027, sectionTitle, section } from \"./Short.js\";\nimport { sortByDescending, map as map_1 } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { Target, PostFeed } from \"../Content/PostFeed.js\";\nimport { InsiderTradeOverview } from \"../Content/Ads.js\";\n\nclass Model extends Record {\n constructor(Summary, LargestTransactions, LargestPercentages, ErrorMsg) {\n super();\n this.Summary = Summary;\n this.LargestTransactions = LargestTransactions;\n this.LargestPercentages = LargestPercentages;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.InsiderTrades.Model\", [], Model, () => [[\"Summary\", option_type(DataServer_InsiderTrade_InsiderTradeSummary_$reflection())], [\"LargestTransactions\", option_type(array_type(DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection()))], [\"LargestPercentages\", option_type(array_type(DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection()))], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"SummaryResponse\", \"TransactionsResponse\", \"PercentagesResponse\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.InsiderTrades.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [DataServer_InsiderTrade_InsiderTradeSummary_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", DataServer_InsiderTrade_InsiderTradeSummary_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], []]);\n}\n\nfunction init() {\n return new Model(undefined, undefined, undefined, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n return new Model(model.Summary, model.LargestTransactions, model.LargestPercentages, \"Kunne ikke laste største innsidehandler. Vennligst prøv igjen senere.\");\n }\n else {\n return new Model(model.Summary, res_1.fields[0], model.LargestPercentages, model.ErrorMsg);\n }\n }\n case 2: {\n const res_2 = msg.fields[0];\n if (res_2.tag === 1) {\n return new Model(model.Summary, model.LargestTransactions, model.LargestPercentages, \"Kunne ikke laste største innsidehandler. Vennligst prøv igjen senere.\");\n }\n else {\n return new Model(model.Summary, model.LargestTransactions, res_2.fields[0], model.ErrorMsg);\n }\n }\n case 3:\n return new Model(model.Summary, model.LargestTransactions, model.LargestPercentages, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return new Model(model.Summary, model.LargestTransactions, model.LargestPercentages, \"Kunne ikke laste innsidehandel oppsummering. Vennligst prøv igjen senere.\");\n }\n else {\n return new Model(res.fields[0], model.LargestTransactions, model.LargestPercentages, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction fetchSummary(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(DataServer_InsiderTrade_InsiderTradeSummary_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/insider-trade/summary`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(DataServer_InsiderTrade_InsiderTradeSummary_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchTransactions(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/insider-trade/largest-transactions?period=14d`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(1, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchPercentages(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/insider-trade/largest-percentage?period=14d`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(2, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction aiInfo() {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n marginTop: 10,\n fontSize: Dimensions_TextSmall,\n fontStyle: \"italic\",\n }], (elems = [createElement(\"span\", {\n children: [\"Denne oppsummeringen er AI-generert av ChatGPT fra børsmeldingen. Med forbehold om feil.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction periodIndicator(txt) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n borderRadius: 25,\n padding: ((2 + \"px \") + 9) + \"px\",\n fontSize: Dimensions_TextSmall,\n border: (((2 + \"px \") + \"solid\") + \" \") + \"var(--bg-normal)\",\n color: \"var(--text-main)\",\n marginBottom: 2 + \"vh\",\n whiteSpace: \"nowrap\",\n }], (elems = [createElement(\"span\", {\n children: [txt],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction drawSummary(x) {\n let elems_4, elems_7;\n const highlightedHolder = (children) => createElement(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"center\",\n alignItems: \"center\",\n width: 100 + \"%\",\n maxWidth: 240,\n },\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n const highlighted = (title, content, currentValue, prevValue, desc) => {\n let x_2, y, elems_1, elems_2;\n let changeColor;\n const x_1 = currentValue | 0;\n const p = prevValue | 0;\n changeColor = ((x_1 > p) ? \"var(--buy)\" : ((x_1 < p) ? \"var(--sell)\" : \"var(--text-main)\"));\n const pctChange = (prevValue === 0) ? \"(0%%)\" : (` (${(x_2 = toPercentageChange(currentValue, prevValue), (y = format('{0:' + \"0.0\" + '}', x_2), (x_2 > 0) ? (`+${y}`) : y))}%)`);\n return highlightedHolder([createElement(\"span\", createObj(ofArray([[\"style\", {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-main)\",\n }], (elems_1 = [title, createElement(\"span\", {\n style: {\n color: changeColor,\n fontSize: Dimensions_TextSmall,\n },\n children: pctChange,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))), createElement(\"span\", createObj(ofArray([[\"style\", {\n fontWeight: \"bold\",\n fontSize: 1.2 + \"rem\",\n whiteSpace: \"nowrap\",\n }], (elems_2 = [createElement(\"span\", {\n children: [content],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])]))), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-dim)\",\n },\n children: desc,\n })]);\n };\n const highlightedAsset = (title_1, content_1, desc_1) => highlightedHolder(toList(delay(() => append(singleton(createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-main)\",\n },\n children: title_1,\n })), delay(() => {\n let elems_3;\n const matchValue = content_1;\n if (matchValue != null) {\n const c = matchValue;\n return append(singleton(createElement(\"a\", createObj(ofArray([[\"style\", {}], [\"href\", `/stock/${c.Market}/${c.Ticker}`], (elems_3 = [Tooltip_wrapTooltip(c.Name, createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n fontSize: 1.2 + \"rem\",\n },\n children: `${c.Ticker}.${c.Market}`,\n }))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))), delay(() => singleton(createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-dim)\",\n },\n children: desc_1(c.Type),\n }))));\n }\n else {\n return append(singleton(createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: \"N/A\",\n })), delay(() => singleton(createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n color: \"var(--text-dim)\",\n },\n children: \"Ingen for periode\",\n }))));\n }\n })))));\n const compNumbers = (c_1, p_2) => {\n const diff = (c_1 - p_2) | 0;\n if (diff === 0) {\n return \"Lik forrige periode\";\n }\n else {\n return `${diff} ${(diff > 0) ? \"over\" : \"under\"} forrige periode`;\n }\n };\n const compValue = (c_2, p_3) => {\n const diff_1 = (c_2 - p_3) | 0;\n if (diff_1 === 0) {\n return \"Lik forrige periode\";\n }\n else {\n const comp_1 = (diff_1 > 0) ? \"mer\" : \"mindre\";\n return `${toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(diff_1)), 1000n)))} ${comp_1} enn forrige periode`;\n }\n };\n return section(undefined, [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: ((15 + \"px \") + 15) + \"px\",\n }], (elems_4 = [sectionTitle(\"Oppsummering innsidehandel\"), periodIndicator(\"14 dager\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n gap: (((2 + \"vh\") + \" \") + 0) + \"px\",\n }], (elems_7 = toList(delay(() => {\n let elems_5;\n if (x != null) {\n const y_2 = x;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-around\",\n alignItems: \"baseline\",\n gap: ((30 + \"px \") + 10) + \"px\",\n }], (elems_5 = [highlighted(\"Innsidehandler\", int32ToString(y_2.NumTrades), y_2.NumTrades, y_2.PrevNumTrades, compNumbers(y_2.NumTrades, y_2.PrevNumTrades)), highlighted(\"Innsidekjøp\", int32ToString(y_2.NumBought), y_2.NumBought, y_2.PrevNumBought, compNumbers(y_2.NumBought, y_2.PrevNumBought)), highlighted(\"Innsidesalg\", int32ToString(y_2.NumSold), y_2.NumSold, y_2.PrevNumSold, compNumbers(y_2.NumSold, y_2.PrevNumSold)), highlighted(\"Estimert verdi\", `${toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(y_2.TotalEstimatedValue)), 1000n)))} NOK`, y_2.TotalEstimatedValue, y_2.PrevTotalEstimatedValue, compValue(y_2.TotalEstimatedValue, y_2.PrevTotalEstimatedValue)), highlighted(\"Estimert verdi av kjøp\", `${toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(y_2.TotalEstimatedValueBought)), 1000n)))} NOK`, y_2.TotalEstimatedValueBought, y_2.PrevTotalEstimatedValueBought, compValue(y_2.TotalEstimatedValueBought, y_2.PrevTotalEstimatedValueBought)), highlighted(\"Estimert verdi av salg\", `${toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(y_2.TotalEstimateValueSold)), 1000n)))} NOK`, y_2.TotalEstimateValueSold, y_2.PrevTotalEstimatedValueSold, compValue(y_2.TotalEstimateValueSold, y_2.PrevTotalEstimatedValueSold))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])))), delay(() => {\n let elems_6;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-around\",\n alignItems: \"baseline\",\n gap: ((30 + \"px \") + 10) + \"px\",\n }], (elems_6 = [highlightedAsset(\"Flest handler\", y_2.MostTrades, (n) => (`${n} kjøp og salg`)), highlightedAsset(\"Størst handelsverdi\", y_2.HighestTradeValue, (n_1) => (`${toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(n_1)), 1000n)))} NOK kjøpt og solgt`)), highlightedAsset(\"Flest kjøp\", y_2.MostBoughtByNum, (n_2) => (`${n_2} innsidekjøp`)), highlightedAsset(\"Størst kjøpeverdi\", y_2.MostBoughtByValue, (n_3) => (`${toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(n_3)), 1000n)))} NOK kjøpt`)), highlightedAsset(\"Flest salg\", y_2.MostSoldByNum, (n_4) => (`${n_4} innsidesalg`)), highlightedAsset(\"Størst salgsverdi\", y_2.MostSoldByValue, (n_5) => (`${toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(n_5)), 1000n)))}NOK solgt`))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])]))));\n }));\n }\n else {\n return singleton(LoadingIndicator_skeleton(ofArray([[\"minWidth\", 250], [\"width\", 100 + \"%\"], [\"minHeight\", 210]])));\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])])))]);\n}\n\nfunction dateBoughtColumn(x) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: `${utcDateToLocalDate(x)}`,\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: \"Dato meldt\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction drawLargestTransactions(x) {\n return section(470, toList(delay(() => {\n let elems;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: ((15 + \"px \") + 15) + \"px\",\n }], (elems = [sectionTitle(\"Største handler etter estimert verdi\"), periodIndicator(\"14 dager\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let matchValue, children_4, children_2;\n return append((matchValue = x, (matchValue != null) ? singleton((children_4 = singleton_1((children_2 = map_1((z_1) => {\n let elems_1;\n const children = ofArray([td$0027([assetNameColumn(z_1.Ticker, z_1.Market, z_1.Name)]), td$0027([createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n }], (elems_1 = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: toShortAmountL(toInt64(op_Multiply(toInt64(fromInt32(z_1.EstValueKs)), 1000n))),\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: \"NOK\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))]), td$0027([dateBoughtColumn(z_1.Date)])]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n }, sortByDescending((z) => {\n if (z.EstValueKs < 0) {\n return (z.EstValueKs * -1) | 0;\n }\n else {\n return z.EstValueKs | 0;\n }\n }, matchValue, {\n Compare: comparePrimitives,\n })), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n }))), createElement(\"table\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n }))) : append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => singleton(LoadingIndicator_assetListEntryLoading())))))))), delay(() => singleton(aiInfo())));\n }));\n })));\n}\n\nfunction drawLargestPercentages(x) {\n return section(470, toList(delay(() => {\n let elems;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: ((15 + \"px \") + 15) + \"px\",\n }], (elems = [sectionTitle(\"Største handler andel av utestående aksjer\"), periodIndicator(\"14 dager\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let matchValue, children_4, children_2;\n return append((matchValue = x, (matchValue != null) ? singleton((children_4 = singleton_1((children_2 = map_1((z_1) => {\n let elems_1;\n const children = ofArray([td$0027([assetNameColumn(z_1.Ticker, z_1.Market, z_1.Name)]), td$0027([createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n }], (elems_1 = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: shortPercentageToString(z_1.Percentage),\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextExtraSmall,\n },\n children: \"Av utestående\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))]), td$0027([dateBoughtColumn(z_1.Date)])]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n }, sortByDescending((z) => {\n if (z.Percentage < 0) {\n return (z.Percentage * -1) | 0;\n }\n else {\n return z.Percentage | 0;\n }\n }, matchValue, {\n Compare: comparePrimitives,\n })), createElement(\"tbody\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n }))), createElement(\"table\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n }))) : append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => singleton(LoadingIndicator_assetListEntryLoading())))))))), delay(() => singleton(aiInfo())));\n }));\n })));\n}\n\nexport function InsiderTrades() {\n let elems_7, elems_4, elems_3, elems_1, elems, elems_2, elems_6, elems_5;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init());\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchSummary(dispatch);\n fetchTransactions(dispatch);\n fetchPercentages(dispatch);\n });\n return createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n padding: 1 + \"vw\",\n }], (elems_7 = [drawSummary(model_1.Summary), createElement(\"div\", createObj(ofArray([[\"className\", \"default-gap\"], [\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n }], (elems_4 = [drawLargestTransactions(model_1.LargestTransactions), drawLargestPercentages(model_1.LargestPercentages), createElement(\"div\", createObj(ofArray([[\"key\", \"latest-trades-holder\"], [\"style\", {\n maxWidth: 650,\n }], (elems_3 = [section(undefined, [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }], (elems_1 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n borderBottom: (((3 + \"px \") + \"solid\") + \" \") + \"var(--bg-normal)\",\n flexGrow: 1,\n maxWidth: 400,\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: 500,\n margin: 0,\n userSelect: \"none\",\n },\n children: \"Siste registrerte handler\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"span\", {\n style: {\n color: \"var(--bg-normal)\",\n },\n className: \"fas fa-broadcast-tower\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))]), createElement(\"div\", createObj(ofArray([[\"style\", {\n maxHeight: 600,\n overflowY: \"auto\",\n }], (elems_2 = [createElement(PostFeed, {\n target: new Target(5, []),\n includeAds: false,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n width: 100 + \"%\",\n }], (elems_6 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 100 + \"%\",\n maxWidth: 1200,\n }], (elems_5 = [createElement(InsiderTradeOverview, null)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])])));\n}\n\n","import { compare } from \"./Util.js\";\nimport { unfold, delay } from \"./Seq.js\";\nimport { toUInt64, toInt64, op_Addition, fromZero } from \"./BigInt.js\";\nimport { op_Addition as op_Addition_1, fromParts } from \"./Decimal.js\";\nexport function makeRangeStepFunction(step, stop, zero, add) {\n const stepComparedWithZero = compare(step, zero) | 0;\n if (stepComparedWithZero === 0) {\n throw new Error(\"The step of a range cannot be zero\");\n }\n const stepGreaterThanZero = stepComparedWithZero > 0;\n return (x) => {\n const comparedWithLast = compare(x, stop) | 0;\n return ((stepGreaterThanZero && (comparedWithLast <= 0)) ? true : (!stepGreaterThanZero && (comparedWithLast >= 0))) ? [x, add(x, step)] : undefined;\n };\n}\nexport function integralRangeStep(start, step, stop, zero, add) {\n const stepFn = makeRangeStepFunction(step, stop, zero, add);\n return delay(() => unfold(stepFn, start));\n}\nexport function rangeBigInt(start, step, stop) {\n return integralRangeStep(start, step, stop, fromZero(), op_Addition);\n}\nexport function rangeDecimal(start, step, stop) {\n return integralRangeStep(start, step, stop, fromParts(0, 0, 0, false, 0), op_Addition_1);\n}\nexport function rangeDouble(start, step, stop) {\n return integralRangeStep(start, step, stop, 0, (x, y) => (x + y));\n}\nexport function rangeInt64(start, step, stop) {\n return integralRangeStep(start, step, stop, 0n, (x, y) => toInt64(op_Addition(x, y)));\n}\nexport function rangeUInt64(start, step, stop) {\n return integralRangeStep(start, step, stop, 0n, (x, y) => toUInt64(op_Addition(x, y)));\n}\nexport function rangeChar(start, stop) {\n const intStop = stop.charCodeAt(0) | 0;\n return delay(() => unfold((c) => {\n if (c <= intStop) {\n return [String.fromCharCode(c), c + 1];\n }\n else {\n return undefined;\n }\n }, start.charCodeAt(0)));\n}\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, option_type, bool_type, record_type, string_type, union_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { ImageForm_$reflection, ImageForm as ImageForm_1, GenericResponse_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { split } from \"../fable_modules/fable-library-js.4.17.0/String.js\";\nimport { item as item_1 } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { cons, empty as empty_1, singleton as singleton_1, item as item_2, length, ofArray } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { uncurry2, createObj } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { map, empty, singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { LoadingIndicator_loadingIndicatorSmall, pillButtonSmall, Dialog_dialogActions, Dialog_dialogContent, Dialog_Dialog, Alert_snackError, Image_circledImage } from \"../ViewHelpers.js\";\nimport { rangeDouble } from \"../fable_modules/fable-library-js.4.17.0/Range.js\";\nimport { unwrap, map as map_1, defaultArg, some } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport * as imageresize from \"../../Content/imageresize.js\";\nimport { useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\n\nexport class ImageSource extends Union {\n constructor() {\n super();\n this.tag = 0;\n this.fields = [];\n }\n cases() {\n return [\"User\"];\n }\n}\n\nexport function ImageSource_$reflection() {\n return union_type(\"Investfora.ImageForm.ImageSource\", [], ImageSource, () => [[]]);\n}\n\nexport function ImageSource__UploadPath(this$) {\n return \"/api/user/image/upload\";\n}\n\nclass Image extends Record {\n constructor(Data, Filename, FileExt) {\n super();\n this.Data = Data;\n this.Filename = Filename;\n this.FileExt = FileExt;\n }\n}\n\nfunction Image_$reflection() {\n return record_type(\"Investfora.ImageForm.Image\", [], Image, () => [[\"Data\", string_type], [\"Filename\", string_type], [\"FileExt\", string_type]]);\n}\n\nclass Model extends Record {\n constructor(Target, Processing, Image, ErrorMsg, Uploaded) {\n super();\n this.Target = Target;\n this.Processing = Processing;\n this.Image = Image;\n this.ErrorMsg = ErrorMsg;\n this.Uploaded = Uploaded;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.ImageForm.Model\", [], Model, () => [[\"Target\", ImageSource_$reflection()], [\"Processing\", bool_type], [\"Image\", option_type(Image_$reflection())], [\"ErrorMsg\", option_type(string_type)], [\"Uploaded\", bool_type]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"ImageSelected\", \"Commit\", \"CommitResponse\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.ImageForm.Message\", [], Message, () => [[[\"Item1\", string_type], [\"Item2\", string_type], [\"Item3\", string_type]], [], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], []]);\n}\n\nfunction init(x) {\n return new Model(x, false, undefined, undefined, false);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1:\n return new Model(model.Target, true, model.Image, undefined, model.Uploaded);\n case 2: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n const err = res.fields[0];\n return new Model(model.Target, false, model.Image, (err.tag === 2) ? (((err.fields[0].status) === 401) ? \"Du har ikke rettigheter til å oppdatere dette bildet.\" : (((err.fields[0].status) === 413) ? \"Valgt bilde er for stort.\" : \"Kunne ikke oppdatere bilde. Vennligst prøv igjen senere.\")) : \"Kunne ikke oppdatere bilde. Vennligst prøv igjen senere.\", model.Uploaded);\n }\n else {\n const x_1 = res.fields[0];\n if (x_1.Result === \"success\") {\n return model;\n }\n else {\n return new Model(model.Target, false, model.Image, x_1.Message, model.Uploaded);\n }\n }\n }\n case 3:\n return new Model(model.Target, model.Processing, model.Image, undefined, model.Uploaded);\n default:\n return new Model(model.Target, model.Processing, new Image(msg.fields[0], msg.fields[1], msg.fields[2]), model.ErrorMsg, model.Uploaded);\n }\n}\n\nfunction parseFileExt(fileExt) {\n let x;\n try {\n if ((x = fileExt, (x === \"\") ? true : (x == null))) {\n return \"jpeg\";\n }\n else {\n const y = split(fileExt, [\"/\"], undefined, 0);\n if (y.length > 1) {\n const z = item_1(y.length - 1, y);\n const matchValue = z.toLocaleLowerCase();\n switch (matchValue) {\n case \"jpeg\":\n case \"png\":\n return z;\n default:\n return \"jpeg\";\n }\n }\n else {\n return \"jpeg\";\n }\n }\n }\n catch (matchValue_1) {\n return \"jpeg\";\n }\n}\n\nfunction uploaded(onClose) {\n const children = ofArray([createElement(\"span\", {\n style: {\n fontSize: 1.5 + \"rem\",\n marginTop: 10 + \"px\",\n textAlign: \"center\",\n },\n children: \"Bildet er oppdatert!\",\n }), createElement(\"button\", {\n className: \"pill-button\",\n onClick: (_arg) => {\n onClose(true);\n },\n children: \"Lukk\",\n })]);\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nfunction upload(model, dispatch) {\n let elems_1;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: 100 + \"%\",\n }], (elems_1 = toList(delay(() => {\n let matchValue;\n return append((matchValue = model.Image, (matchValue != null) ? singleton(Image_circledImage(200, matchValue.Data)) : (empty())), delay(() => {\n let elems;\n return append(!model.Processing ? singleton(createElement(\"label\", createObj(ofArray([[\"style\", {\n marginTop: 5,\n marginBottom: 10,\n cursor: \"pointer\",\n textDecoration: \"underline\",\n display: \"block\",\n }], (elems = [\"Velg bilde\", createElement(\"input\", {\n type: \"file\",\n accept: \"image/png, image/jpeg\",\n onChange: (ev) => {\n let x_1;\n const fileList = ev.target.files;\n if (!(fileList == null)) {\n const x = toList(delay(() => map((i) => fileList.item(i), rangeDouble(0, 1, fileList.length - 1))));\n try {\n if (length(x) > 0) {\n const file_1 = item_2(0, x);\n const fileExt = parseFileExt(file_1.name);\n let filename;\n const matchValue_1 = file_1.name;\n filename = (((x_1 = matchValue_1, (x_1 === \"\") ? true : (x_1 == null))) ? (`img.${fileExt}`) : matchValue_1);\n const reader = new FileReader();\n reader.addEventListener(\"load\", (_arg) => {\n const arg = reader.result;\n imageresize.imgScale(arg, 512, 512, (scaled) => {\n dispatch(new Message(0, [scaled, filename, fileExt]));\n });\n });\n reader.readAsDataURL(file_1);\n }\n }\n catch (e) {\n window.alert(some(e));\n }\n }\n },\n style: {\n display: \"none\",\n },\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))) : empty(), delay(() => singleton(Alert_snackError(model.ErrorMsg, () => {\n dispatch(new Message(3, []));\n }))));\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nexport function ImageForm(imageFormInputProps) {\n let elems;\n const onClose = imageFormInputProps.onClose;\n const src = imageFormInputProps.src;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(src));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n return createElement(Dialog_Dialog, {\n onClose: () => {\n onClose(model_1.Uploaded);\n },\n children: ofArray([Dialog_dialogContent(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n minWidth: 250,\n minHeight: 200,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }], (elems = toList(delay(() => (model_1.Uploaded ? singleton(uploaded(onClose)) : singleton(upload(model_1, dispatch))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))))), Dialog_dialogActions(toList(delay(() => append(singleton(pillButtonSmall(empty_1(), \"Lukk\", (_arg_4) => {\n onClose(model_1.Uploaded);\n })), delay(() => {\n let elems_1;\n return !model_1.Uploaded ? singleton(createElement(\"button\", createObj(ofArray([[\"className\", \"pill-button-small\"], [\"disabled\", model_1.Image == null], [\"onClick\", (_arg_5) => {\n if (!model_1.Processing) {\n const matchValue_1 = model_1.Image;\n if (matchValue_1 != null) {\n const img_1 = matchValue_1;\n const img = new ImageForm_1(img_1.Data, img_1.Filename);\n const dispatch_1 = dispatch;\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n dispatch_1(new Message(1, []));\n const requestPath = ImageSource__UploadPath(model_1.Target);\n return ((body = Auto_generateBoxedEncoder_437914C6(ImageForm_$reflection(), undefined, undefined, undefined)(img), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton_1(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty_1()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n const res = _arg_2;\n let matchResult;\n if (res.tag === 0) {\n if (res.fields[0].Result === \"success\") {\n matchResult = 0;\n }\n else {\n matchResult = 1;\n }\n }\n else {\n matchResult = 1;\n }\n switch (matchResult) {\n case 0: {\n onClose(true);\n return Promise.resolve();\n }\n default: {\n dispatch_1(new Message(2, [res]));\n return Promise.resolve();\n }\n }\n });\n }));\n pr_1.then();\n }\n }\n }], (elems_1 = toList(delay(() => (!model_1.Processing ? singleton(\"Last opp\") : singleton(LoadingIndicator_loadingIndicatorSmall())))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))) : empty();\n })))))]),\n });\n}\n\n","function imgScale (b64, w, h, callback) {\n var canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n var image = new Image();\n image.onload = function(e) {\n if (image.width < w && image.height < h) {\n callback(b64);\n } else {\n var newW = image.width;\n var newH = image.height;\n if (newW > newH) {\n if (newW > w) {\n newH *= h / newW;\n newW = w;\n }\n } else {\n if (newH > h) {\n newW *= w / newH;\n newH = h;\n }\n }\n canvas.width = newW;\n canvas.height = newH;\n ctx.drawImage(image,\n 0, 0, image.width, image.height,\n 0, 0, canvas.width, canvas.height\n );\n var content = canvas.toDataURL();\n callback(content);\n }\n };\n\n image.src = b64;\n}\nexport {imgScale};","import { Union, Record } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, union_type, record_type, bool_type, string_type, option_type, array_type, int32_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { Post_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { map, sort, tryHead, sortByDescending, append } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { parseAsUtc } from \"../Utils.js\";\nimport { Array_distinctBy } from \"../fable_modules/fable-library-js.4.17.0/Seq2.js\";\nimport { createObj, uncurry2, comparePrimitives, numberHash } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { compare } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { empty as empty_1, append as append_1, singleton, delay, toList, fold } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { unwrap, map as map_1, defaultArg, toArray } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { post } from \"../Content/Post.js\";\nimport { LoadingIndicator_loadingIndicator } from \"../ViewHelpers.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\n\nclass Model extends Record {\n constructor(UserId, Posts, ErrorMsg, LastReviewId, More) {\n super();\n this.UserId = (UserId | 0);\n this.Posts = Posts;\n this.ErrorMsg = ErrorMsg;\n this.LastReviewId = LastReviewId;\n this.More = More;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.UserFeed.Model\", [], Model, () => [[\"UserId\", int32_type], [\"Posts\", option_type(array_type(Post_$reflection()))], [\"ErrorMsg\", option_type(string_type)], [\"LastReviewId\", option_type(int32_type)], [\"More\", bool_type]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"PostsResponse\", \"AppendPost\", \"RemovePost\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.UserFeed.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Post_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(Post_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", Post_$reflection()]], [[\"Item\", int32_type]], []]);\n}\n\nfunction init(userId) {\n return new Model(userId, undefined, undefined, undefined, true);\n}\n\nfunction update(model, msg) {\n let matchValue_2, matchValue_3, array_6, matchValue, lowest, matchValue_1, l;\n switch (msg.tag) {\n case 1: {\n const x_4 = msg.fields[0];\n return new Model(model.UserId, (matchValue_2 = model.Posts, (matchValue_2 == null) ? [x_4] : append([x_4], matchValue_2)), model.ErrorMsg, model.LastReviewId, model.More);\n }\n case 2:\n return new Model(model.UserId, (matchValue_3 = model.Posts, (matchValue_3 != null) ? ((array_6 = matchValue_3, array_6.filter((a) => (a.Id !== msg.fields[0])))) : undefined), model.ErrorMsg, model.LastReviewId, model.More);\n case 3:\n return new Model(model.UserId, model.Posts, undefined, model.LastReviewId, model.More);\n default: {\n const res = msg.fields[0];\n if (res.tag === 0) {\n const x = res.fields[0];\n const p = sortByDescending((z_1) => parseAsUtc(z_1.Published), Array_distinctBy((z) => z.Id, (matchValue = model.Posts, (matchValue != null) ? append(matchValue, x) : x), {\n Equals: (x_1, y_1) => (x_1 === y_1),\n GetHashCode: numberHash,\n }), {\n Compare: compare,\n });\n return new Model(model.UserId, p, model.ErrorMsg, (lowest = tryHead(sort(map((y_4) => y_4.Id, p.filter((y_3) => (y_3.Type === \"review\")), Int32Array), {\n Compare: comparePrimitives,\n })), (matchValue_1 = model.LastReviewId, (matchValue_1 != null) ? ((l = (matchValue_1 | 0), fold((_arg, z_2) => {\n if (z_2 < l) {\n return z_2 | 0;\n }\n else {\n return l | 0;\n }\n }, l, toArray(lowest)))) : lowest)), x.length > 0);\n }\n else {\n return new Model(model.UserId, model.Posts, \"Something went wrong. Could not load reviews.\", model.LastReviewId, model.More);\n }\n }\n }\n}\n\nfunction fetchUserPosts(userId, revId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const r = fold((_arg, x) => (`?rid=${x}`), \"\", toArray(revId));\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Post_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/user/mostrecent/${userId}${r}`, properties_3).then((_arg_1) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg_1, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Post_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_2) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_2), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_3) => {\n dispatch(new Message(0, [_arg_3]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction noContentMessage(header, txt) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 100 + \"%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }], (elems = [createElement(\"span\", {\n children: [header],\n }), createElement(\"br\", {}), createElement(\"p\", {\n children: [txt],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction view(model, dispatch) {\n let elems_2;\n const matchValue = model.Posts;\n if (matchValue != null) {\n const x = matchValue;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n gap: (((1 + \"vw\") + \" \") + 0) + \"px\",\n width: 100 + \"%\",\n }], (elems_2 = toList(delay(() => {\n let elems, xs_1;\n return (x.length === 0) ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 100 + \"%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }], (elems = [createElement(\"p\", {\n children: [\"Denne brukeren har ikke publisert noen analyser enda.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))) : append_1(singleton((xs_1 = map((y) => post(y, (arg) => {\n dispatch(new Message(2, [arg]));\n }), x), react.createElement(react.Fragment, {}, ...xs_1))), delay(() => {\n let elems_1;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n }], (elems_1 = toList(delay(() => (model.More ? singleton(createElement(\"button\", {\n className: \"pill-button-small\",\n onClick: (_arg) => {\n fetchUserPosts(model.UserId, model.LastReviewId, dispatch);\n },\n children: \"Mer\",\n })) : empty_1()))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))));\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n }\n else {\n return LoadingIndicator_loadingIndicator();\n }\n}\n\nexport function Feed(feedInputProps) {\n const userId = feedInputProps.userId;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(userId));\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchUserPosts(userId, model_1.LastReviewId, dispatch);\n });\n return view(model_1, dispatch);\n}\n\n","import { toString as toString_2, Union, Record } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, union_type, record_type, bool_type, array_type, option_type, string_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { UserReview_$reflection, UserStatistics_$reflection, UserInfo_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { int32ToString, createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0, useFeliz_React__React_useState_Static_1505 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { empty as empty_1, singleton, append, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Alert_snackError, LoadingIndicator_loadingIndicatorSmall, LoadingIndicator_loadingIndicator, Image_userCircle } from \"../ViewHelpers.js\";\nimport { ImageSource, ImageForm } from \"../Content/ImageForm.js\";\nimport { now, toString as toString_1 } from \"../fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { utcStringToLocalTimeSpan } from \"../Utils.js\";\nimport { ReportObject, Report } from \"../Content/ReportForm.js\";\nimport { DefaultBorder, Dimensions_DefaultPadding } from \"../Design.js\";\nimport { map as map_1 } from \"../fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { StockRating__ToTextColorCode, StockRating__ToColorCode, StockRating_FromInt_Z524259A4 } from \"../Shared/Shared.js\";\nimport { Feed } from \"./UserFeed.js\";\n\nclass Model extends Record {\n constructor(Username, UserInfo, UserStatistics, Reviews, ShowAllReviews, ErrorMsg) {\n super();\n this.Username = Username;\n this.UserInfo = UserInfo;\n this.UserStatistics = UserStatistics;\n this.Reviews = Reviews;\n this.ShowAllReviews = ShowAllReviews;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.User.Model\", [], Model, () => [[\"Username\", string_type], [\"UserInfo\", option_type(UserInfo_$reflection())], [\"UserStatistics\", option_type(UserStatistics_$reflection())], [\"Reviews\", option_type(array_type(UserReview_$reflection()))], [\"ShowAllReviews\", bool_type], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"UserInfoResponse\", \"StatisticsResponse\", \"ReviewsResponse\", \"ToggleShowAllReviews\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.User.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [UserInfo_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", UserInfo_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [UserStatistics_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", UserStatistics_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(UserReview_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(UserReview_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [], []]);\n}\n\nfunction init(username) {\n return new Model(username, undefined, undefined, undefined, false, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 1) {\n return model;\n }\n else {\n return new Model(model.Username, model.UserInfo, res_1.fields[0], model.Reviews, model.ShowAllReviews, model.ErrorMsg);\n }\n }\n case 2: {\n const res_2 = msg.fields[0];\n if (res_2.tag === 1) {\n return model;\n }\n else {\n return new Model(model.Username, model.UserInfo, model.UserStatistics, res_2.fields[0], model.ShowAllReviews, model.ErrorMsg);\n }\n }\n case 3:\n return new Model(model.Username, model.UserInfo, model.UserStatistics, model.Reviews, true, model.ErrorMsg);\n case 4:\n return new Model(model.Username, model.UserInfo, model.UserStatistics, model.Reviews, model.ShowAllReviews, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return new Model(model.Username, model.UserInfo, model.UserStatistics, model.Reviews, model.ShowAllReviews, \"Kunne ikke laste brukerinfo. Vennligst prøv igjen senere.\");\n }\n else {\n return new Model(model.Username, res.fields[0], model.UserStatistics, model.Reviews, model.ShowAllReviews, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction fetchReviews(userId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(UserReview_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/user/reviews/${userId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(UserReview_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(2, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchStatistics(userId, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(UserStatistics_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/user/stats/${userId}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(UserStatistics_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(1, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction fetchUserInfo(username, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(UserInfo_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`/api/user/${username}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(UserInfo_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n const res = _arg_2;\n dispatch(new Message(0, [res]));\n if (res.tag === 0) {\n const x_1 = res.fields[0];\n fetchReviews(x_1.UserId, dispatch);\n fetchStatistics(x_1.UserId, dispatch);\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n}\n\nfunction DrawImage(uInfo) {\n let elems;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const showForm = patternInput[0];\n const setShowForm = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(undefined);\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n margin: ((0 + \"px \") + 20) + \"px\",\n }], (elems = toList(delay(() => append(singleton(Image_userCircle(uInfo.UserId, 150, true, patternInput_1[0])), delay(() => (uInfo.IsMe ? append(singleton(createElement(\"button\", {\n style: {\n cursor: \"pointer\",\n marginTop: 5,\n border: \"none\",\n background: \"none\",\n color: \"var(--text-main)\",\n },\n onClick: (_arg) => {\n setShowForm(!showForm);\n },\n children: \"Endre\",\n })), delay(() => (showForm ? singleton(createElement(ImageForm, {\n src: new ImageSource(),\n onClose: (didChange) => {\n if (didChange) {\n patternInput_1[1](toString_1(now(), \"mmss\"));\n }\n setShowForm(false);\n },\n })) : empty_1()))) : empty_1()))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction DrawBaseInfo(uInfo) {\n let elems_2;\n const patternInput = useFeliz_React__React_useState_Static_1505(false);\n const showReport = patternInput[0];\n const setShowReport = patternInput[1];\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n margin: ((0 + \"px \") + 20) + \"px\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n }], (elems_2 = toList(delay(() => {\n let elems;\n return append(singleton(createElement(\"span\", createObj(ofArray([[\"style\", {\n fontSize: 2.5 + \"rem\",\n fontWeight: \"bold\",\n }], (elems = toList(delay(() => append(singleton(uInfo.Username), delay(() => (uInfo.Official ? singleton(createElement(\"span\", {\n style: {\n marginLeft: 5,\n color: \"var(--text-main)\",\n },\n className: \"fas fa-shield-alt\",\n })) : empty_1()))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => append(uInfo.Official ? singleton(createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n display: \"block\",\n color: \"var(--text-main)\",\n },\n children: \"Aksje.io administrator\",\n })) : empty_1(), delay(() => append(singleton(createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n },\n children: `Ble med ${utcStringToLocalTimeSpan(uInfo.Joined)}`,\n })), delay(() => {\n let elems_1;\n return ((isAuthenticated) && !uInfo.IsMe) ? append(singleton(createElement(\"button\", createObj(ofArray([[\"className\", \"pill-button-small\"], [\"onClick\", (_arg) => {\n setShowReport(!showReport);\n }], [\"style\", {\n marginTop: 10 + \"px\",\n }], (elems_1 = [createElement(\"span\", {\n style: {\n marginRight: 5,\n },\n className: \"fas fa-flag\",\n }), createElement(\"span\", {\n children: [\"Rapporter\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))), delay(() => (showReport ? singleton(createElement(Report, {\n target: new ReportObject(4, [uInfo.UserId]),\n onClose: () => {\n setShowReport(false);\n },\n })) : empty_1()))) : empty_1();\n }))))));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n}\n\nfunction drawStats(stats) {\n let elems_1;\n const statEntry = (title, entry) => {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontSize: 0.8 + \"rem\",\n fontStyle: \"italic\",\n },\n children: title,\n }), createElement(\"span\", {\n style: {\n fontSize: 1.7 + \"rem\",\n color: \"var(--text-main)\",\n fontWeight: \"bold\",\n margin: ((0 + \"px \") + 5) + \"px\",\n },\n children: entry,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n };\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n margin: ((0 + \"px \") + 20) + \"px\",\n }], (elems_1 = [statEntry(\"Antall analyser\", int32ToString(stats.NumReviews)), statEntry(\"Antall kommentarer\", int32ToString(stats.NumReplies))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nfunction drawUserInfo(model) {\n let elems_2;\n return createElement(\"div\", createObj(ofArray([[\"style\", createObj(ofArray([[\"marginTop\", 3.5 + \"vh\"], [\"padding\", Dimensions_DefaultPadding], [\"backgroundColor\", \"#FFFFFF\"], [\"borderRadius\", 5], DefaultBorder, [\"display\", \"flex\"], [\"flexWrap\", \"wrap\"], [\"justifyContent\", \"space-around\"]]))], (elems_2 = toList(delay(() => {\n let elems;\n const matchValue = model.UserInfo;\n if (matchValue != null) {\n const uInfo = matchValue;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"center\",\n }], (elems = [createElement(DrawImage, uInfo), createElement(DrawBaseInfo, uInfo)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let elems_1;\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n }], (elems_1 = toList(delay(() => {\n const matchValue_1 = model.UserStatistics;\n return (matchValue_1 != null) ? singleton(drawStats(matchValue_1)) : singleton(LoadingIndicator_loadingIndicator());\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))));\n }));\n }\n else {\n return singleton(LoadingIndicator_loadingIndicator());\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n}\n\nfunction drawReviews(model, dispatch) {\n let elems_8;\n return createElement(\"div\", createObj(ofArray([[\"style\", createObj(ofArray([[\"backgroundColor\", \"#FFFFFF\"], [\"padding\", Dimensions_DefaultPadding], [\"borderRadius\", 5], DefaultBorder, [\"display\", \"flex\"], [\"flexDirection\", \"column\"], [\"alignItems\", \"center\"]]))], (elems_8 = toList(delay(() => {\n let elems;\n return append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems = [createElement(\"span\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: 500,\n },\n children: \"Aktive analyser\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let elems_7;\n const matchValue = model.Reviews;\n if (matchValue != null) {\n const reviews = matchValue;\n const aboveThreshold = reviews.length > 7;\n const reviewsToShow = aboveThreshold ? (model.ShowAllReviews ? reviews : reviews.slice(0, (7 - 1) + 1)) : reviews;\n return (reviews.length === 0) ? singleton(createElement(\"span\", {\n children: [\"Ingen analyser enda\"],\n })) : append(singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"center\",\n width: 100 + \"%\",\n margin: (((1 + \"vw\") + \" \") + 0) + \"px\",\n gap: ((10 + \"px \") + 10) + \"px\",\n }], (elems_7 = map_1((x) => {\n let elems_6, elems_2, elems_1, elems_5, elems_4, elems_3;\n const rating = StockRating_FromInt_Z524259A4(x.Rating);\n const link = (x.AssetType === 1) ? (`/stock/${x.Market}/${x.Asset}`) : (`/crypto/${x.Asset}`);\n return createElement(\"div\", createObj(ofArray([[\"className\", \"review-listing-holder-tiny\"], (elems_6 = [createElement(\"div\", createObj(ofArray([[\"className\", \"review-listing-rating-tiny\"], [\"style\", {\n backgroundColor: StockRating__ToColorCode(rating),\n textAlign: \"center\",\n }], (elems_2 = [createElement(\"a\", createObj(ofArray([[\"href\", `/post?src=rv&sid=${x.ReviewId}`], (elems_1 = [createElement(\"span\", {\n style: {\n color: StockRating__ToTextColorCode(rating),\n },\n children: toString_2(rating),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexGrow: 1,\n justifyContent: \"space-between\",\n }], (elems_5 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 5,\n }], (elems_4 = [createElement(\"a\", createObj(ofArray([[\"href\", link], (elems_3 = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n fontSize: 0.8 + \"rem\",\n },\n children: (x.AssetType === 2) ? x.Asset : (`${x.Asset}.${x.Market}`),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_5))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_6))])])));\n }, reviewsToShow), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_7))])])))), delay(() => (aboveThreshold ? append(singleton(createElement(\"br\", {})), delay(() => singleton(createElement(\"button\", {\n className: \"pill-button-small\",\n onClick: (_arg) => {\n dispatch(new Message(3, []));\n },\n children: \"Vis alle\",\n })))) : empty_1())));\n }\n else {\n return singleton(LoadingIndicator_loadingIndicatorSmall());\n }\n }));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_8))])])));\n}\n\nfunction drawMostRecentReviews(model) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n }], (elems = toList(delay(() => {\n const matchValue = model.UserInfo;\n if (matchValue != null) {\n const ui = matchValue;\n return singleton(createElement(Feed, {\n userId: ui.UserId,\n }));\n }\n else {\n return empty_1();\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction view(model, dispatch) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"asset-column\"], (elems = [Alert_snackError(model.ErrorMsg, () => {\n dispatch(new Message(4, []));\n }), drawUserInfo(model), drawReviews(model, dispatch), drawMostRecentReviews(model)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport function User(userInputProps) {\n const username = userInputProps.username;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init(username));\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchUserInfo(username, dispatch);\n });\n return view(patternInput[0], dispatch);\n}\n\n","import { Record, Union } from \"../fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, record_type, option_type, string_type, union_type, int32_type } from \"../fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { PostProps_$reflection } from \"../Pages.js\";\nimport { Post_$reflection } from \"../Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"../fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"../fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"../fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"../fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { cons, ofArray, empty } from \"../fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"../fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"../fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"../fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"../fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"../fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createObj, uncurry2 } from \"../fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport { Interop_reactApi } from \"../fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0, useReact_useCallback_1CA17B65 } from \"../fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { empty as empty_1, singleton, delay, toList } from \"../fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { LoadingIndicator_postLoadingIndicator } from \"../ViewHelpers.js\";\nimport { post as post_1 } from \"./Post.js\";\nimport { Dimensions_DefaultPadding } from \"../Design.js\";\n\nclass PostSource extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Asset\", \"Review\", \"InsiderTrade\", \"Short\", \"Invalid\"];\n }\n}\n\nfunction PostSource_$reflection() {\n return union_type(\"Investfora.PostView.PostSource\", [], PostSource, () => [[[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], [[\"Item\", int32_type]], []]);\n}\n\nfunction PostSource_FromProps_6B69E059(x) {\n if (x != null) {\n const y = x;\n const matchValue = y.Src.toLocaleLowerCase();\n switch (matchValue) {\n case \"ap\":\n return new PostSource(0, [y.SrcId]);\n case \"rv\":\n return new PostSource(1, [y.SrcId]);\n case \"it\":\n return new PostSource(2, [y.SrcId]);\n case \"sh\":\n return new PostSource(3, [y.SrcId]);\n default:\n return new PostSource(4, []);\n }\n }\n else {\n return new PostSource(4, []);\n }\n}\n\nclass LoadResult extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Loading\", \"Denied\", \"NotFound\", \"ErrorMsg\", \"Success\"];\n }\n}\n\nfunction LoadResult_$reflection() {\n return union_type(\"Investfora.PostView.LoadResult\", [], LoadResult, () => [[], [], [], [[\"Item\", string_type]], []]);\n}\n\nclass Model extends Record {\n constructor(Props, Source, Post, Load) {\n super();\n this.Props = Props;\n this.Source = Source;\n this.Post = Post;\n this.Load = Load;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.PostView.Model\", [], Model, () => [[\"Props\", option_type(PostProps_$reflection())], [\"Source\", PostSource_$reflection()], [\"Post\", option_type(Post_$reflection())], [\"Load\", LoadResult_$reflection()]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"PostResponse\", \"PostRemoved\", \"RetryLoad\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.PostView.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [Post_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", Post_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [], []]);\n}\n\nfunction init(props) {\n return new Model(props, PostSource_FromProps_6B69E059(props), undefined, new LoadResult(0, []));\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1:\n return new Model(undefined, model.Source, undefined, model.Load);\n case 2:\n return new Model(model.Props, model.Source, model.Post, new LoadResult(0, []));\n default: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n const err = res.fields[0];\n return new Model(model.Props, model.Source, model.Post, (err.tag === 2) ? (((err.fields[0].status) === 401) ? (new LoadResult(1, [])) : (((err.fields[0].status) === 404) ? (new LoadResult(2, [])) : (new LoadResult(3, [\"Kunne ikke laste innlegg. Vennligst prøv på nytt senere.\"])))) : ((err.tag === 3) ? (new LoadResult(3, [\"En nettverksfeil oppsto, kunne ikke laste innlegg. Kontroller nettverkstilkoblingen og prøv på nytt.\"])) : (new LoadResult(3, [\"Kunne ikke laste innlegg. Vennligst prøv på nytt senere.\"]))));\n }\n else {\n return new Model(model.Props, model.Source, res.fields[0], model.Load);\n }\n }\n }\n}\n\nfunction loadPost(src, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n const requestPath = (src.tag === 0) ? (`/api/asset/post/${src.fields[0]}`) : ((src.tag === 1) ? (`/api/review/${src.fields[0]}`) : ((src.tag === 2) ? (`/api/asset/insider-trade/${src.fields[0]}`) : ((src.tag === 3) ? (`/api/asset/short/event/${src.fields[0]}`) : \"\")));\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(Post_$reflection(), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(Post_$reflection(), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n dispatch(new Message(0, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction errMsg(title, txt) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n marginTop: 20 + \"vh\",\n }], [\"className\", \"centered-flex\"], (elems = [createElement(\"span\", {\n className: \"title is-3\",\n children: title,\n }), createElement(\"span\", {\n style: {\n maxWidth: 400 + \"px\",\n },\n children: txt,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nfunction drawPost(model, dispatch) {\n const onRemove = useReact_useCallback_1CA17B65((_arg) => {\n dispatch(new Message(1, []));\n });\n const children = toList(delay(() => {\n let elems_1;\n const matchValue = model.Post;\n if (matchValue == null) {\n if (model.Source.tag === 4) {\n return singleton(errMsg(\"Ugyldig lenke.\", \"Det ser ut til at lenken du prøvde åpne er ugyldig. Om du prøvde åpne denne siden gjennom å lime inn en lenke sjekk at du fikk med deg hele adressen.\"));\n }\n else {\n const matchValue_2 = model.Load;\n switch (matchValue_2.tag) {\n case 0:\n return singleton(LoadingIndicator_postLoadingIndicator());\n case 1:\n return singleton(errMsg(\"Ikke tilgang\", \"Dette innlegget kan kun sees av medlemmer av gruppen innlegget ble publisert i.\"));\n case 2:\n return singleton(errMsg(\"Fant ikke innlegg\", \"Innlegget du leter etter ble ikke funnet. Det kan være fjernet eller nettadressen er feil.\"));\n case 3:\n return singleton(createElement(\"div\", createObj(ofArray([[\"className\", \"centered-flex\"], (elems_1 = [createElement(\"button\", {\n className: \"pill-button\",\n onClick: (_arg_1) => {\n const pr = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n dispatch(new Message(2, []));\n return (new Promise(resolve => setTimeout(resolve, 500))).then(() => {\n loadPost(model.Source, dispatch);\n return Promise.resolve();\n });\n }));\n pr.then();\n },\n children: Interop_reactApi.Children.toArray([\"Prøv på nytt\"]),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))));\n default: {\n return empty_1();\n }\n }\n }\n }\n else {\n return singleton(post_1(matchValue, onRemove));\n }\n }));\n return createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n });\n}\n\nexport function PostView(postViewInputProps) {\n let elems;\n const post = postViewInputProps.post;\n const initialModel = init(post);\n const patternInput = useReact_useReducer_2B9E6EA0(update, initialModel);\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n if (initialModel.Source.tag === 4) {\n }\n else {\n loadPost(initialModel.Source, dispatch);\n }\n });\n return createElement(\"div\", createObj(ofArray([[\"className\", \"asset-column\"], [\"style\", {\n padding: Dimensions_DefaultPadding,\n }], (elems = [drawPost(patternInput[0], dispatch)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\n","import { Union, Record } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, union_type, record_type, bool_type, int32_type, option_type, array_type, string_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { SearchEntry_$reflection } from \"./Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { unwrap, map, defaultArg, some } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"./fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { cons, ofArray, empty, singleton } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { keyValueList } from \"./fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createObj, uncurry2 } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { empty as empty_1, singleton as singleton_1, append, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { LoadingIndicator_loadingIndicator, Alert_snackError } from \"./ViewHelpers.js\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { map as map_1 } from \"./fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { useFeliz_React__React_useState_Static_1505, useReact_useReducer_2B9E6EA0 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { MuiHelpers_createElement } from \"./Feliz.MaterialUI/Mui.js\";\nimport { TextField } from \"@mui/material\";\n\nclass Model extends Record {\n constructor(Term, Results, EventId, Processing, ErrorMsg) {\n super();\n this.Term = Term;\n this.Results = Results;\n this.EventId = (EventId | 0);\n this.Processing = Processing;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Search.Model\", [], Model, () => [[\"Term\", string_type], [\"Results\", option_type(array_type(SearchEntry_$reflection()))], [\"EventId\", int32_type], [\"Processing\", bool_type], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"UpdateTerm\", \"SearchResult\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Search.Message\", [], Message, () => [[[\"Item\", string_type]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(SearchEntry_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(SearchEntry_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], []]);\n}\n\nfunction init() {\n return new Model(\"\", undefined, 0, false, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return new Model(model.Term, model.Results, model.EventId, false, \"Something went wrong. Could not perform search.\");\n }\n else {\n return new Model(model.Term, res.fields[0], model.EventId, false, undefined);\n }\n }\n case 2:\n return new Model(model.Term, model.Results, model.EventId, model.Processing, undefined);\n default: {\n const x = msg.fields[0];\n if (x.length === 0) {\n return new Model(\"\", undefined, model.EventId, false, undefined);\n }\n else {\n return new Model(x, model.Results, model.EventId + 1, true, model.ErrorMsg);\n }\n }\n }\n}\n\nfunction trySearch(term, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n return (term.length > 0) ? (((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(term), (decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(SearchEntry_$reflection()), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/search\", properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(SearchEntry_$reflection()), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Message(1, [_arg_2]));\n return Promise.resolve();\n })) : (Promise.resolve());\n }));\n pr_1.then();\n}\n\nfunction typeToName(x) {\n switch (x) {\n case \"Stock\":\n return \"Aksje\";\n case \"User\":\n return \"Bruker\";\n case \"Market\":\n return \"Marked\";\n default:\n return x;\n }\n}\n\nfunction drawResults(model, dispatch) {\n let elems_1;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"search-result\"], (elems_1 = toList(delay(() => append(singleton_1(Alert_snackError(model.ErrorMsg, () => {\n dispatch(new Message(2, []));\n })), delay(() => append(model.Processing ? singleton_1(LoadingIndicator_loadingIndicator()) : empty_1(), delay(() => {\n let elems;\n return singleton_1(createElement(\"table\", createObj(ofArray([[\"style\", {}], (elems = toList(delay(() => {\n let children, xs_3;\n const matchValue = model.Results;\n if (matchValue != null) {\n const x = matchValue;\n return (x.length === 0) ? singleton_1((children = singleton(createElement(\"td\", {\n children: [\"Ingen søkeresultater\"],\n })), createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))) : singleton_1((xs_3 = map_1((y) => {\n let children_2, children_4;\n const children_6 = ofArray([(children_2 = singleton(createElement(\"a\", {\n href: y.Link,\n children: y.Name,\n })), createElement(\"td\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_2)),\n })), (children_4 = singleton(createElement(\"a\", {\n href: y.Link,\n children: y.Extra,\n })), createElement(\"td\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_4)),\n })), createElement(\"td\", {\n style: {\n width: 10 + \"%\",\n },\n children: typeToName(y.Type),\n })]);\n return createElement(\"tr\", {\n children: Interop_reactApi.Children.toArray(Array.from(children_6)),\n });\n }, x), react.createElement(react.Fragment, {}, ...xs_3)));\n }\n else {\n return empty_1();\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))));\n })))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\nexport function Search() {\n let elems_1;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init());\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(0);\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: 2 + \"vw\",\n }], (elems_1 = toList(delay(() => {\n let elems;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"className\", \"search-bar\"], (elems = [MuiHelpers_createElement(TextField, [[\"autoFocus\", true], [\"type\", \"text\"], [\"defaultValue\", model_1.Term], [\"onChange\", (e) => {\n const x = e.target.value;\n dispatch(new Message(0, [x]));\n window.clearTimeout(patternInput_1[0]);\n patternInput_1[1](window.setTimeout((_arg) => {\n trySearch(x, dispatch);\n }, 500));\n }], [\"variant\", \"outlined\"], [\"label\", \"Søk i aksjer og brukere\"], [\"style\", {\n minWidth: 250 + \"px\",\n width: 100 + \"%\",\n }]])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => (((model_1.Processing ? true : (model_1.Results != null)) ? true : (model_1.ErrorMsg != null)) ? singleton_1(drawResults(model_1, dispatch)) : empty_1())));\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n}\n\n","import { Union, Record } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { obj_type, union_type, array_type, bool_type, anonRecord_type, option_type, record_type, string_type, int32_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { fromString as fromString_1, string, int, object } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createObj, uncurry2 } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Notifications_Notification_$reflection, Notifications_EntityInfo, Notifications_EntityInfo_$reflection } from \"./Shared/ApiDataTypes.js\";\nimport { choose, append, map } from \"./fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { unwrap, map as map_1, defaultArg, some } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { FetchError } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"./fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"./fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { cons, ofArray, empty } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoder_Z6670B51, Auto_generateBoxedDecoderCached_Z6670B51 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { LoadingIndicator_loadingIndicator, Alert_snackError, Image_userCircle, Image_iconAvatar } from \"./ViewHelpers.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { empty as empty_1, singleton, append as append_1, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Dimensions_DefaultPadding, DefaultBorder, Dimensions_DefaultGap } from \"./Design.js\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { defaultOf } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { utcStringToLocalTimeSpan } from \"./Utils.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\n\nclass PostInfo extends Record {\n constructor(Id, Type) {\n super();\n this.Id = (Id | 0);\n this.Type = Type;\n }\n}\n\nfunction PostInfo_$reflection() {\n return record_type(\"Investfora.Notifications.PostInfo\", [], PostInfo, () => [[\"Id\", int32_type], [\"Type\", string_type]]);\n}\n\nfunction PostInfo_get_Decode() {\n return (path_1) => ((v) => object((x) => {\n let objectArg, objectArg_1;\n return new PostInfo((objectArg = x.Required, objectArg.Field(\"Id\", uncurry2(int))), (objectArg_1 = x.Required, objectArg_1.Field(\"Type\", string)));\n }, path_1, v));\n}\n\nclass NotificationContent extends Record {\n constructor(Type, Desc, GroupInfo, UserInfo, Link, AssetInfo, PostInfo) {\n super();\n this.Type = (Type | 0);\n this.Desc = Desc;\n this.GroupInfo = GroupInfo;\n this.UserInfo = UserInfo;\n this.Link = Link;\n this.AssetInfo = AssetInfo;\n this.PostInfo = PostInfo;\n }\n}\n\nfunction NotificationContent_$reflection() {\n return record_type(\"Investfora.Notifications.NotificationContent\", [], NotificationContent, () => [[\"Type\", int32_type], [\"Desc\", string_type], [\"GroupInfo\", option_type(Notifications_EntityInfo_$reflection())], [\"UserInfo\", option_type(Notifications_EntityInfo_$reflection())], [\"Link\", option_type(string_type)], [\"AssetInfo\", option_type(anonRecord_type([\"Market\", string_type], [\"Name\", string_type], [\"Ticker\", string_type]))], [\"PostInfo\", option_type(PostInfo_$reflection())]]);\n}\n\nfunction NotificationContent_get_Decode() {\n const EntityInfoDecode = (path_1, v) => object((x) => {\n let objectArg_1;\n let Id;\n const objectArg = x.Required;\n Id = objectArg.Field(\"Id\", uncurry2(int));\n return new Notifications_EntityInfo((objectArg_1 = x.Required, objectArg_1.Field(\"Name\", string)), Id);\n }, path_1, v);\n return (path_4) => ((v_1) => object((x_1) => {\n let objectArg_2, objectArg_3, objectArg_4, objectArg_5, objectArg_6, arg_15, objectArg_7;\n return new NotificationContent((objectArg_2 = x_1.Required, objectArg_2.Field(\"Type\", uncurry2(int))), (objectArg_3 = x_1.Required, objectArg_3.Field(\"Desc\", string)), (objectArg_4 = x_1.Optional, objectArg_4.Field(\"GroupInfo\", EntityInfoDecode)), (objectArg_5 = x_1.Optional, objectArg_5.Field(\"UserInfo\", EntityInfoDecode)), (objectArg_6 = x_1.Optional, objectArg_6.Field(\"Link\", string)), undefined, (arg_15 = PostInfo_get_Decode(), (objectArg_7 = x_1.Optional, objectArg_7.Field(\"PostInfo\", uncurry2(arg_15)))));\n }, path_4, v_1));\n}\n\nclass Entry extends Record {\n constructor(Content, Id, Notified, Read) {\n super();\n this.Content = Content;\n this.Id = (Id | 0);\n this.Notified = Notified;\n this.Read = Read;\n }\n}\n\nfunction Entry_$reflection() {\n return record_type(\"Investfora.Notifications.Entry\", [], Entry, () => [[\"Content\", NotificationContent_$reflection()], [\"Id\", int32_type], [\"Notified\", string_type], [\"Read\", bool_type]]);\n}\n\nclass Model extends Record {\n constructor(Notifications, ErrorMsg) {\n super();\n this.Notifications = Notifications;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Notifications.Model\", [], Model, () => [[\"Notifications\", option_type(array_type(Entry_$reflection()))], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"AddNotifications\", \"SetRead\", \"SetError\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Notifications.Message\", [], Message, () => [[[\"Item\", array_type(Entry_$reflection())]], [[\"Item\", array_type(int32_type)]], [[\"Item\", string_type]], []]);\n}\n\nfunction init() {\n return new Model(undefined, undefined);\n}\n\nfunction update(model, msg) {\n let matchValue_1, matchValue;\n switch (msg.tag) {\n case 1:\n return new Model((matchValue_1 = model.Notifications, (matchValue_1 != null) ? map((n) => {\n if (msg.fields[0].some((y_1) => (n.Id === y_1))) {\n return new Entry(n.Content, n.Id, n.Notified, true);\n }\n else {\n return n;\n }\n }, matchValue_1) : undefined), model.ErrorMsg);\n case 2:\n return new Model(model.Notifications, msg.fields[0]);\n case 3:\n return new Model(model.Notifications, undefined);\n default: {\n const x = msg.fields[0];\n return new Model((matchValue = model.Notifications, (matchValue != null) ? append(matchValue, x) : x), model.ErrorMsg);\n }\n }\n}\n\nfunction dismissNotifications(x, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let data_1, caseStrategy_2, extra_2;\n return ((data_1 = some(Auto_generateBoxedEncoder_437914C6(array_type(int32_type), undefined, undefined, undefined)(x)), (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(undefined, (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/notifications\", properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(undefined, Auto_generateBoxedDecoderCached_Z6670B51(obj_type, unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))).then((_arg_2) => {\n if (_arg_2.tag === 0) {\n dispatch(new Message(1, [x]));\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n}\n\nfunction fetchNotifications(dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Notifications_Notification_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/notifications\", properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Notifications_Notification_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n const res = _arg_2;\n if (res.tag === 0) {\n const x_1 = res.fields[0];\n return PromiseBuilder__Delay_62FBFDE1(promise, () => {\n dispatch(new Message(0, [choose((y) => {\n const matchValue_1 = fromString_1(uncurry2(NotificationContent_get_Decode()), y.Blob);\n if (matchValue_1.tag === 0) {\n return new Entry(matchValue_1.fields[0], y.Id, y.Notified, y.Read);\n }\n else {\n return undefined;\n }\n }, x_1)]));\n return (x_1.length > 0) ? ((new Promise(resolve => setTimeout(resolve, 2000))).then(() => {\n const y_1 = map((z_2) => z_2.Id, x_1.filter((z_1) => !z_1.Read), Int32Array);\n if (y_1.length > 0) {\n dismissNotifications(y_1, dispatch);\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n })) : (Promise.resolve());\n }).catch((_arg_4) => {\n dispatch(new Message(2, [\"Kunne ikke laste varsler. Vennligst prøv igjen senere.\"]));\n return Promise.resolve();\n });\n }\n else {\n dispatch(new Message(2, [\"Kunne ikke laste varsler. Vennligst prøv igjen senere.\"]));\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n}\n\nfunction drawNotification(x) {\n let elems_4, elems_1, elems_3;\n const fallBackAvatar = () => Image_iconAvatar(40, \"fas fa-bell\");\n return createElement(\"div\", createObj(ofArray([[\"key\", x.Id], [\"style\", createObj(toList(delay(() => append_1(singleton([\"display\", \"flex\"]), delay(() => append_1(singleton([\"marginBottom\", 5]), delay(() => append_1(singleton([\"width\", 100 + \"%\"]), delay(() => append_1(singleton([\"maxWidth\", 450]), delay(() => append_1(singleton([\"padding\", Dimensions_DefaultGap]), delay(() => append_1(singleton([\"transition\", \"background-color 1s linear\"]), delay(() => append_1(singleton([\"borderRadius\", 5]), delay(() => append_1(singleton(DefaultBorder), delay(() => (!x.Read ? append_1(singleton([\"backgroundColor\", \"var(--bg-light)\"]), delay(() => singleton([\"color\", \"#FFFFFF\"]))) : append_1(singleton([\"backgroundColor\", \"#FFFFFF\"]), delay(() => singleton([\"color\", \"#363636\"])))))))))))))))))))))))], (elems_4 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n marginRight: 15,\n }], (elems_1 = toList(delay(() => {\n let elems;\n const matchValue = x.Content.Type | 0;\n switch (matchValue) {\n case 1:\n case 2:\n case 3: {\n const matchValue_1 = x.Content.UserInfo;\n if (matchValue_1 != null) {\n const ui = matchValue_1;\n return singleton(createElement(\"a\", createObj(ofArray([[\"href\", `/user/${ui.Name}`], (elems = [Image_userCircle(ui.Id, 40, false, undefined)], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))));\n }\n else {\n return singleton(fallBackAvatar());\n }\n }\n case 4:\n case 5:\n case 6:\n return singleton(Image_iconAvatar(40, \"fas fa-thumbs-up\"));\n case 7:\n case 8:\n case 9:\n case 16:\n case 17:\n case 18:\n case 19:\n return singleton(defaultOf());\n default:\n return singleton(fallBackAvatar());\n }\n })), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n }], (elems_3 = [createElement(\"a\", createObj(toList(delay(() => {\n let matchValue_2;\n return append_1((matchValue_2 = x.Content.Link, (matchValue_2 != null) ? singleton([\"href\", matchValue_2]) : (empty_1())), delay(() => {\n let elems_2;\n return singleton((elems_2 = [createElement(\"span\", {\n style: createObj(toList(delay(() => append_1(x.Read ? singleton([\"color\", \"#363636\"]) : singleton([\"color\", \"#FFFFFF\"]), delay(() => singleton([\"userSelect\", \"none\"])))))),\n children: x.Content.Desc,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))]));\n }));\n })))), createElement(\"span\", {\n style: {\n fontSize: 0.7 + \"rem\",\n userSelect: \"none\",\n },\n children: utcStringToLocalTimeSpan(x.Notified),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_4))])])));\n}\n\nfunction view(model, dispatch) {\n let elems_2;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n padding: Dimensions_DefaultPadding,\n alignItems: \"center\",\n }], (elems_2 = toList(delay(() => append_1(singleton(Alert_snackError(model.ErrorMsg, () => {\n dispatch(new Message(3, []));\n })), delay(() => append_1(singleton(createElement(\"span\", {\n className: \"title is-2\",\n style: {\n textAlign: \"center\",\n marginBottom: Dimensions_DefaultPadding,\n },\n children: \"Varsler\",\n })), delay(() => {\n let xs_2, elems;\n const matchValue = model.Notifications;\n if (matchValue != null) {\n const x = matchValue;\n return append_1(singleton((xs_2 = map(drawNotification, x), react.createElement(react.Fragment, {}, ...xs_2))), delay(() => {\n let elems_1;\n return (x.length === 0) ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n margin: 10,\n }], (elems_1 = [createElement(\"span\", {\n children: \"Ingen varsler\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))) : empty_1();\n }));\n }\n else {\n return singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n margin: 10,\n alignItems: \"center\",\n }], (elems = [LoadingIndicator_loadingIndicator()], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))));\n }\n })))))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n}\n\nexport function Notifications() {\n const patternInput = useReact_useReducer_2B9E6EA0(update, init());\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchNotifications(dispatch);\n });\n return view(patternInput[0], dispatch);\n}\n\n","import { Union, Record } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { Post_$reflection } from \"./Shared/ApiDataTypes.js\";\nimport { obj_type, union_type, record_type, int32_type, bool_type, string_type, option_type, array_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { FetchError, FetchError_$reflection } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { FeedPreferences, storeFeedPreference, tryGetFeedPreferences } from \"./LocalStorage.js\";\nimport { mapIndexed, map, sort, tryHead, sortByDescending, append } from \"./fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { parseAsUtc } from \"./Utils.js\";\nimport { Array_distinctBy } from \"./fable_modules/fable-library-js.4.17.0/Seq2.js\";\nimport { createObj, uncurry2, comparePrimitives, stringHash } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { compare } from \"./fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { empty as empty_1, singleton, append as append_1, delay, toList, fold } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { unwrap, map as map_1, defaultArg, toArray } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { printf, toText } from \"./fable_modules/fable-library-js.4.17.0/String.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { cons, ofArray, empty } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"./fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"./fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { LoadingIndicator_postLoadingIndicator, Alert_snackError } from \"./ViewHelpers.js\";\nimport { DefaultBorder } from \"./Design.js\";\nimport { MuiHelpers_createElement } from \"./Feliz.MaterialUI/Mui.js\";\nimport { Checkbox, FormControlLabel } from \"@mui/material\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { post } from \"./Content/Post.js\";\nimport { FeedEntry } from \"./Content/Ads.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\n\nclass Model extends Record {\n constructor(Posts, ErrorMsg, IncludeShort, LastReviewId, LastAssetPostId, LastShortEventDate, ShortSkips, LastInsiderTradeId, More) {\n super();\n this.Posts = Posts;\n this.ErrorMsg = ErrorMsg;\n this.IncludeShort = IncludeShort;\n this.LastReviewId = LastReviewId;\n this.LastAssetPostId = LastAssetPostId;\n this.LastShortEventDate = LastShortEventDate;\n this.ShortSkips = ShortSkips;\n this.LastInsiderTradeId = LastInsiderTradeId;\n this.More = More;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Feed.Model\", [], Model, () => [[\"Posts\", option_type(array_type(Post_$reflection()))], [\"ErrorMsg\", option_type(string_type)], [\"IncludeShort\", bool_type], [\"LastReviewId\", option_type(int32_type)], [\"LastAssetPostId\", option_type(int32_type)], [\"LastShortEventDate\", option_type(string_type)], [\"ShortSkips\", option_type(int32_type)], [\"LastInsiderTradeId\", option_type(int32_type)], [\"More\", bool_type]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"PostsResponse\", \"ToggleIncludeShort\", \"AppendPost\", \"RemovePost\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Feed.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Post_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(Post_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", bool_type]], [[\"Item\", Post_$reflection()]], [[\"Item\", int32_type]], []]);\n}\n\nfunction init() {\n let matchValue;\n return new Model(undefined, undefined, (matchValue = tryGetFeedPreferences(), (matchValue.tag === 0) ? matchValue.fields[0].IncludeShort : true), undefined, undefined, undefined, undefined, undefined, true);\n}\n\nfunction update(model, msg) {\n let matchValue_5, matchValue_6, array_21, matchValue, lse, array_16, array_15, lowest_3, matchValue_4, l_3;\n switch (msg.tag) {\n case 1: {\n const x_7 = msg.fields[0];\n storeFeedPreference(new FeedPreferences(x_7));\n return new Model(x_7 ? [] : model.Posts, model.ErrorMsg, x_7, x_7 ? undefined : model.LastReviewId, x_7 ? undefined : model.LastAssetPostId, x_7 ? undefined : model.LastShortEventDate, x_7 ? undefined : model.ShortSkips, model.LastInsiderTradeId, true);\n }\n case 2: {\n const x_8 = msg.fields[0];\n return new Model((matchValue_5 = model.Posts, (matchValue_5 == null) ? [x_8] : append([x_8], matchValue_5)), model.ErrorMsg, model.IncludeShort, model.LastReviewId, model.LastAssetPostId, model.LastShortEventDate, model.ShortSkips, model.LastInsiderTradeId, model.More);\n }\n case 3:\n return new Model((matchValue_6 = model.Posts, (matchValue_6 != null) ? ((array_21 = matchValue_6, array_21.filter((a) => (a.Id !== msg.fields[0])))) : undefined), model.ErrorMsg, model.IncludeShort, model.LastReviewId, model.LastAssetPostId, model.LastShortEventDate, model.ShortSkips, model.LastInsiderTradeId, model.More);\n case 4:\n return new Model(model.Posts, undefined, model.IncludeShort, model.LastReviewId, model.LastAssetPostId, model.LastShortEventDate, model.ShortSkips, model.LastInsiderTradeId, model.More);\n default: {\n const res = msg.fields[0];\n if (res.tag === 0) {\n const x = res.fields[0];\n const p = sortByDescending((z_1) => parseAsUtc(z_1.Published), Array_distinctBy((z) => (`${z.Type}-${z.Id}`), (matchValue = model.Posts, (matchValue != null) ? append(matchValue, x) : x), {\n Equals: (x_1, y_3) => (x_1 === y_3),\n GetHashCode: stringHash,\n }), {\n Compare: compare,\n });\n let lastReviewId;\n const lowest = tryHead(sort(map((y_6) => y_6.Id, p.filter((y_5) => (y_5.Type === \"review\")), Int32Array), {\n Compare: comparePrimitives,\n }));\n const matchValue_1 = model.LastReviewId;\n if (matchValue_1 != null) {\n const l = matchValue_1 | 0;\n lastReviewId = fold((_arg, z_2) => {\n if (z_2 < l) {\n return z_2 | 0;\n }\n else {\n return l | 0;\n }\n }, l, toArray(lowest));\n }\n else {\n lastReviewId = lowest;\n }\n let lastAssetPostId;\n const lowest_1 = tryHead(sort(map((y_9) => y_9.Id, p.filter((y_8) => (y_8.Type === \"asset-post\")), Int32Array), {\n Compare: comparePrimitives,\n }));\n const matchValue_2 = model.LastAssetPostId;\n if (matchValue_2 != null) {\n const l_1 = matchValue_2 | 0;\n lastAssetPostId = fold((_arg_1, z_3) => {\n if (z_3 < l_1) {\n return z_3 | 0;\n }\n else {\n return l_1 | 0;\n }\n }, l_1, toArray(lowest_1));\n }\n else {\n lastAssetPostId = lowest_1;\n }\n let patternInput;\n const lowest_2 = tryHead(sort(map((y_12) => y_12.Published, p.filter((y_11) => (y_11.Type === \"short-event\"))), {\n Compare: comparePrimitives,\n }));\n const matchValue_3 = model.LastShortEventDate;\n if (matchValue_3 != null) {\n const l_2 = matchValue_3;\n const newLowest = fold((_arg_2, z_4) => {\n if (z_4 < l_2) {\n return z_4;\n }\n else {\n return l_2;\n }\n }, l_2, toArray(lowest_2));\n patternInput = [newLowest, newLowest !== l_2];\n }\n else {\n patternInput = [lowest_2, false];\n }\n const lastShortEventDate = patternInput[0];\n return new Model(p, model.ErrorMsg, model.IncludeShort, lastReviewId, lastAssetPostId, lastShortEventDate, patternInput[1] ? undefined : ((lastShortEventDate != null) ? ((lse = lastShortEventDate, (array_16 = ((array_15 = p.filter((e) => (e.Type === \"short-event\")), array_15.filter((e_1) => (e_1.Published === lse)))), array_16.length))) : undefined), (lowest_3 = tryHead(sort(map((y_15) => y_15.Id, p.filter((y_14) => (y_14.Type === \"insider-trade\")), Int32Array), {\n Compare: comparePrimitives,\n })), (matchValue_4 = model.LastInsiderTradeId, (matchValue_4 != null) ? ((l_3 = (matchValue_4 | 0), fold((_arg_3, z_5) => {\n if (z_5 < l_3) {\n return z_5 | 0;\n }\n else {\n return l_3 | 0;\n }\n }, l_3, toArray(lowest_3)))) : lowest_3)), x.length > 0);\n }\n else {\n const err = res.fields[0];\n return new Model(model.Posts, (err.tag === 2) ? (((err.fields[0].status) === 401) ? \"Kunne ikke laste feed, ikke innlogget. Vennligst logg inn på nytt.\" : \"Kunne ikke laste feed. Vennligst prøv igjen senere.\") : \"Kunne ikke laste feed. Vennligst prøv igjen senere.\", model.IncludeShort, model.LastReviewId, model.LastAssetPostId, model.LastShortEventDate, model.ShortSkips, model.LastInsiderTradeId, model.More);\n }\n }\n }\n}\n\nfunction fetchFeed(revId, apId, seDt, seSkip, itId, includeShort, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n let requestPath;\n const r = fold((_arg, x) => (`&rid=${x}`), \"\", toArray(revId));\n const a = fold((_arg_1, x_1) => (`&pid=${x_1}`), \"\", toArray(apId));\n const seDt$0027 = fold((_arg_2, x_2) => (`&sedt=${x_2}`), \"\", toArray(seDt));\n const se = fold((_arg_3, x_3) => (`&se_skip=${x_3}`), \"\", toArray(seSkip));\n const insider = fold((_arg_4, x_4) => (`&itid=${x_4}`), \"\", toArray(itId));\n const excludeShort = includeShort ? \"\" : \"&include_short=false\";\n const q = ((((((revId != null) ? true : (apId != null)) ? true : (seDt != null)) ? true : (seSkip != null)) ? true : (itId != null)) ? true : !includeShort) ? \"?\" : \"\";\n requestPath = toText(printf(\"/api/feed%s%s%s%s%s%s%s\"))(q)(r)(a)(seDt$0027)(se)(insider)(excludeShort);\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Post_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map_1((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg_5) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg_5, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Post_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_6) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_6), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg_7) => (new FSharpResult$2(1, [new FetchError(3, [arg_7])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_7) => {\n dispatch(new Message(0, [_arg_7]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction view(model, dispatch) {\n let elems_3;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"feed\"], [\"style\", {\n height: 100 + \"%\",\n marginBottom: 5 + \"vh\",\n }], (elems_3 = toList(delay(() => append_1(singleton(Alert_snackError(model.ErrorMsg, () => {\n dispatch(new Message(4, []));\n })), delay(() => {\n let elems;\n return append_1(singleton(createElement(\"div\", createObj(ofArray([[\"style\", createObj(ofArray([DefaultBorder, [\"backgroundColor\", \"#FFFFFF\"]]))], (elems = [MuiHelpers_createElement(FormControlLabel, [[\"label\", \"Inkluder short-oppdateringer\"], [\"checked\", model.IncludeShort], [\"style\", {\n margin: ((0 + \"px \") + 5) + \"px\",\n }], [\"control\", MuiHelpers_createElement(Checkbox, [[\"color\", \"primary\"]])], [\"onChange\", (e) => {\n const b = e.target.checked;\n dispatch(new Message(1, [b]));\n if (b) {\n fetchFeed(undefined, undefined, undefined, undefined, undefined, true, dispatch);\n }\n }]])], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))), delay(() => {\n let elems_1, xs_5;\n const matchValue = model.Posts;\n if (matchValue != null) {\n const x = matchValue;\n return (x.length === 0) ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 100 + \"%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n textAlign: \"center\",\n }], (elems_1 = [createElement(\"span\", {\n style: {\n fontSize: 2 + \"rem\",\n fontWeight: \"bold\",\n margin: ((20 + \"px \") + 0) + \"px\",\n },\n children: \"Her var det tomt\",\n }), createElement(\"br\", {}), createElement(\"p\", {\n children: [\"Analyser og innlegg fra dine favorittaksjer dukker opp her.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))) : append_1(singleton((xs_5 = mapIndexed((i, y) => {\n const xs_4 = toList(delay(() => append_1(singleton(post(y, (arg) => {\n dispatch(new Message(3, [arg]));\n })), delay(() => ((((i + 1) % 3) === 0) ? singleton(createElement(FeedEntry, null)) : empty_1())))));\n return react.createElement(react.Fragment, {}, ...xs_4);\n }, x), react.createElement(react.Fragment, {}, ...xs_5))), delay(() => {\n let elems_2;\n return model.More ? singleton(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n margin: ((10 + \"px \") + 0) + \"px\",\n }], (elems_2 = [createElement(\"button\", {\n className: \"pill-button-small\",\n onClick: (_arg_1) => {\n fetchFeed(model.LastReviewId, model.LastAssetPostId, model.LastShortEventDate, model.ShortSkips, model.LastInsiderTradeId, model.IncludeShort, dispatch);\n },\n children: \"Last mer\",\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])))) : empty_1();\n }));\n }\n else {\n return append_1(singleton(LoadingIndicator_postLoadingIndicator()), delay(() => singleton(LoadingIndicator_postLoadingIndicator())));\n }\n }));\n })))), [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_3))])])));\n}\n\nexport function Feed() {\n const initialModel = init();\n const patternInput = useReact_useReducer_2B9E6EA0(update, initialModel);\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchFeed(initialModel.LastReviewId, initialModel.LastAssetPostId, initialModel.LastShortEventDate, initialModel.ShortSkips, model_1.LastInsiderTradeId, initialModel.IncludeShort, dispatch);\n });\n return view(model_1, dispatch);\n}\n\n","import { toString as toString_1, Union, Record } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { DataServer_InsiderTrade_InsiderTradeEvent_$reflection, Analytics_ReviewEntry_$reflection } from \"./Shared/ApiDataTypes.js\";\nimport { obj_type, union_type, record_type, string_type, option_type, array_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { FetchError, FetchError_$reflection } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { cons, ofArray, empty } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { Types_RequestProperties } from \"./fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { keyValueList } from \"./fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { unwrap, map, defaultArg } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6 } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { DataServerBaseUrl } from \"./Session.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createObj, uncurry2 } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { LoadingIndicator_assetListEntryLoading, assetListHolder } from \"./ViewHelpers.js\";\nimport { singleton, append, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { map as map_1 } from \"./fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { StockRating__ToTextColorCode, StockRating__ToColorCode, StockRating_FromInt_Z524259A4 } from \"./Shared/Shared.js\";\nimport { toText } from \"./fable_modules/fable-library-js.4.17.0/String.js\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { Feed } from \"./Feed.js\";\nimport { DefaultBorder } from \"./Design.js\";\nimport { SquareAd } from \"./Content/Ads.js\";\n\nclass Model extends Record {\n constructor(LatestReviews, LatestInsiderTrades, ErrorMsg) {\n super();\n this.LatestReviews = LatestReviews;\n this.LatestInsiderTrades = LatestInsiderTrades;\n this.ErrorMsg = ErrorMsg;\n }\n}\n\nfunction Model_$reflection() {\n return record_type(\"Investfora.Home.Model\", [], Model, () => [[\"LatestReviews\", option_type(array_type(Analytics_ReviewEntry_$reflection()))], [\"LatestInsiderTrades\", option_type(array_type(DataServer_InsiderTrade_InsiderTradeEvent_$reflection()))], [\"ErrorMsg\", option_type(string_type)]]);\n}\n\nclass Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"LatestReviewsResponse\", \"LatestInsiderTradesResponse\", \"DismissError\"];\n }\n}\n\nfunction Message_$reflection() {\n return union_type(\"Investfora.Home.Message\", [], Message, () => [[[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(Analytics_ReviewEntry_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(Analytics_ReviewEntry_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [array_type(DataServer_InsiderTrade_InsiderTradeEvent_$reflection()), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", array_type(DataServer_InsiderTrade_InsiderTradeEvent_$reflection())]], [[\"ErrorValue\", FetchError_$reflection()]]])]], []]);\n}\n\nfunction init() {\n return new Model(undefined, undefined, undefined);\n}\n\nfunction update(model, msg) {\n switch (msg.tag) {\n case 1: {\n const res_1 = msg.fields[0];\n if (res_1.tag === 0) {\n return new Model(model.LatestReviews, res_1.fields[0], model.ErrorMsg);\n }\n else {\n return model;\n }\n }\n case 2:\n return new Model(model.LatestReviews, model.LatestInsiderTrades, undefined);\n default: {\n const res = msg.fields[0];\n if (res.tag === 0) {\n return new Model(res.fields[0], model.LatestInsiderTrades, model.ErrorMsg);\n }\n else {\n return model;\n }\n }\n }\n}\n\n/**\n * Fetches the latest published reviews\n */\nexport function fetchLatestReviews(callback) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Analytics_ReviewEntry_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}${\"/api/asset/mostrecent\"}`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Analytics_ReviewEntry_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n callback(_arg_2);\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\n/**\n * Fetches the latest registered insider trade entries\n */\nexport function fetchLatestInsiderTrades(callback) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeEvent_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/insider-trade/latest`, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_InsiderTrade_InsiderTradeEvent_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n callback(_arg_2);\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nexport function drawReviews(x$0027, title) {\n return assetListHolder(toList(delay(() => append(singleton(createElement(\"span\", {\n style: {\n color: \"var(--text-dim)\",\n fontStyle: \"italic\",\n paddingLeft: 7,\n },\n children: title,\n })), delay(() => {\n let xs_5;\n const matchValue = x$0027;\n return (matchValue != null) ? singleton((xs_5 = map_1((y) => {\n let elems_1, elems;\n const rating = StockRating_FromInt_Z524259A4(y.Rating);\n const link = (y.AssetType === 2) ? (`/crypto/${y.AssetTicker}`) : toText(`/stock/${y.MarketTicker}/${y.AssetTicker}`);\n const ticker = (y.AssetType === 2) ? y.AssetTicker : (`${y.AssetTicker}.${y.MarketTicker}`);\n return createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-holder\"], [\"style\", {\n margin: 5,\n }], (elems_1 = [createElement(\"div\", {\n className: \"review-listing-rating\",\n style: {\n backgroundColor: StockRating__ToColorCode(rating),\n color: StockRating__ToTextColorCode(rating),\n },\n children: createElement(\"span\", {\n children: [toString_1(rating)],\n }),\n }), createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-name\"], (elems = [createElement(\"a\", {\n href: link,\n children: ticker,\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])));\n }, matchValue), react.createElement(react.Fragment, {}, ...xs_5))) : append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton(LoadingIndicator_assetListEntryLoading()), delay(() => singleton(LoadingIndicator_assetListEntryLoading())))))))));\n })))));\n}\n\nexport function Home() {\n let elems_2, elems_1, elems;\n const patternInput = useReact_useReducer_2B9E6EA0(update, init());\n const dispatch = patternInput[1];\n useReact_useEffectOnce_3A5B6456(() => {\n fetchLatestInsiderTrades((arg) => {\n dispatch(new Message(1, [arg]));\n });\n fetchLatestReviews((arg_1) => {\n dispatch(new Message(0, [arg_1]));\n });\n });\n return createElement(\"div\", createObj(ofArray([[\"className\", \"home-holder\"], (elems_2 = [createElement(Feed, null), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n width: 100 + \"%\",\n maxWidth: 450,\n gap: (((1 + \"vw\") + \" \") + 0) + \"px\",\n }], (elems_1 = [createElement(\"div\", createObj(ofArray([[\"style\", createObj(ofArray([[\"display\", \"flex\"], [\"flexDirection\", \"column\"], [\"alignItems\", \"center\"], [\"width\", 100 + \"%\"], [\"maxWidth\", 450], [\"backgroundColor\", \"#FFFFFF\"], DefaultBorder, [\"borderRadius\", 5]]))], (elems = [drawReviews(patternInput[0].LatestReviews, \"Siste analyser fra brukere\")], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])]))), createElement(\"div\", {\n style: {\n width: 100 + \"%\",\n },\n children: createElement(SquareAd, null),\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems_2))])])));\n}\n\n","import { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport react_google_recaptcha from \"react-google-recaptcha\";\nimport { comparePrimitives, uncurry2, createObj } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { toString as toString_1, Union, Record } from \"./fable_modules/fable-library-js.4.17.0/Types.js\";\nimport { array_type, anonRecord_type, obj_type, union_type, record_type, option_type, bool_type, string_type } from \"./fable_modules/fable-library-js.4.17.0/Reflection.js\";\nimport { Post_$reflection, DataServer_Short_ShortEvent_$reflection, Analytics_AssetMeta_$reflection, Analytics_AssetCount_$reflection, DataServer_Short_TopShortEntry_$reflection, Post, PostShortInfo, ShortEventPosition, User as User_1, AppleAuthRequest_$reflection, AppleAuthRequest, OAuthRegisterRequest_$reflection, OAuthRegisterRequest, OAuthAuthResponse_$reflection, RegisterRequest_$reflection, RegisterRequest, GenericResponse_$reflection } from \"./Shared/ApiDataTypes.js\";\nimport { FetchError, FetchError_$reflection } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { FSharpResult$2 } from \"./fable_modules/fable-library-js.4.17.0/Result.js\";\nimport { format, printf, toText, split } from \"./fable_modules/fable-library-js.4.17.0/String.js\";\nimport { mapIndexed, sortByDescending, map as map_1, item as item_2 } from \"./fable_modules/fable-library-js.4.17.0/Array.js\";\nimport { isMatch } from \"./fable_modules/fable-library-js.4.17.0/RegExp.js\";\nimport { PromiseBuilder__Delay_62FBFDE1, PromiseBuilder__Run_212F1D4B } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Auto_generateBoxedEncoderCached_437914C6, Auto_generateBoxedEncoder_437914C6 } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { Auto_generateBoxedDecoderCached_Z6670B51, Auto_generateBoxedDecoder_Z6670B51 } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { unwrap, map, defaultArg, some } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { PromiseBuilder__Delay_62FBFDE1 as PromiseBuilder__Delay_62FBFDE1_1, PromiseBuilder__Run_212F1D4B as PromiseBuilder__Run_212F1D4B_1 } from \"./fable_modules/Fable.Promise.2.0.0/Promise.fs.js\";\nimport { promise as promise_1 } from \"./fable_modules/Fable.Promise.2.0.0/PromiseImpl.fs.js\";\nimport { Helper_fetch, Helper_withContentTypeJson, Helper_withProperties } from \"./fable_modules/Thoth.Fetch.3.0.1/Fetch.fs.js\";\nimport { Types_RequestProperties } from \"./fable_modules/Fable.Fetch.2.1.0/Fetch.fs.js\";\nimport { cons, ofArray, empty, singleton } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { keyValueList } from \"./fable_modules/fable-library-js.4.17.0/MapUtil.js\";\nimport { toString } from \"./fable_modules/Thoth.Json.6.0.0/Encode.fs.js\";\nimport { fromString } from \"./fable_modules/Thoth.Json.6.0.0/Decode.fs.js\";\nimport { createElement } from \"react\";\nimport React from \"react\";\nimport * as react from \"react\";\nimport { useReact_useEffectOnce_3A5B6456, useReact_useReducer_2B9E6EA0, useFeliz_React__React_useState_Static_1505 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { MuiHelpers_createElement } from \"./Feliz.MaterialUI/Mui.js\";\nimport { Checkbox, FormControlLabel, TextField } from \"@mui/material\";\nimport { Interop_reactApi as Interop_reactApi_1 } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { append, empty as empty_1, singleton as singleton_1, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Tooltip_wrapTooltip, LoadingIndicator_skeleton, LoadingIndicator_assetListEntryLoading, assetListEntry, Tooltip_tooltipHeader, assetListHolder, LoadingIndicator_postLoadingIndicator, Image_userCircle, Alert_errorAlert, LoadingIndicator_loadingIndicatorSmall } from \"./ViewHelpers.js\";\nimport react_apple_login from \"react-apple-login\";\nimport { GoogleLogin } from \"@react-oauth/google\";\nimport { toString as toString_2, utcNow, op_Subtraction, parse, toUniversalTime } from \"./fable_modules/fable-library-js.4.17.0/Date.js\";\nimport { days } from \"./fable_modules/fable-library-js.4.17.0/TimeSpan.js\";\nimport { Interop_reactApi as Interop_reactApi_2 } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { ResponsiveContainer, PieChart, Pie, Cell, Label, Legend } from \"recharts\";\nimport { StockRating__ToTextColorCode, StockRating, StockRating__ToColorCode } from \"./Shared/Shared.js\";\nimport { Dimensions_TextSmall } from \"./Design.js\";\nimport { post } from \"./Content/Post.js\";\nimport { toShortAmount, utcDateToLocalDate } from \"./Utils.js\";\nimport { fetchLatestReviews, fetchLatestInsiderTrades, drawReviews } from \"./Home.js\";\nimport { DataServerBaseUrl } from \"./Session.js\";\n\nexport function Register_Recaptcha_recaptchaContainer(props) {\n return Interop_reactApi.createElement(react_google_recaptcha, createObj(props));\n}\n\nclass Register_Model extends Record {\n constructor(Username, Email, Password, PasswordRepeat, AcceptTerms, ValidUsername, ValidEmail, ValidPassword, Recaptched, Processing, ErrorMsg, Successful) {\n super();\n this.Username = Username;\n this.Email = Email;\n this.Password = Password;\n this.PasswordRepeat = PasswordRepeat;\n this.AcceptTerms = AcceptTerms;\n this.ValidUsername = ValidUsername;\n this.ValidEmail = ValidEmail;\n this.ValidPassword = ValidPassword;\n this.Recaptched = Recaptched;\n this.Processing = Processing;\n this.ErrorMsg = ErrorMsg;\n this.Successful = Successful;\n }\n}\n\nfunction Register_Model_$reflection() {\n return record_type(\"Investfora.Landing.Register.Model\", [], Register_Model, () => [[\"Username\", string_type], [\"Email\", string_type], [\"Password\", string_type], [\"PasswordRepeat\", string_type], [\"AcceptTerms\", bool_type], [\"ValidUsername\", bool_type], [\"ValidEmail\", bool_type], [\"ValidPassword\", bool_type], [\"Recaptched\", bool_type], [\"Processing\", bool_type], [\"ErrorMsg\", option_type(string_type)], [\"Successful\", bool_type]]);\n}\n\nclass Register_Message extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"UpdateUsername\", \"UpdateEmail\", \"UpdatePassword\", \"UpdatePasswordRepeat\", \"ToggleAcceptTerms\", \"TryRegister\", \"SetRecaptched\", \"RecaptchaResponse\", \"RegisterResponse\", \"SetError\"];\n }\n}\n\nfunction Register_Message_$reflection() {\n return union_type(\"Investfora.Landing.Register.Message\", [], Register_Message, () => [[[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", string_type]], [[\"Item\", bool_type]], [], [[\"Item\", bool_type]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", union_type(\"Microsoft.FSharp.Core.FSharpResult`2\", [GenericResponse_$reflection(), FetchError_$reflection()], FSharpResult$2, () => [[[\"ResultValue\", GenericResponse_$reflection()]], [[\"ErrorValue\", FetchError_$reflection()]]])]], [[\"Item\", option_type(string_type)]]]);\n}\n\nfunction Register_init() {\n return new Register_Model(\"\", \"\", \"\", \"\", false, true, true, true, false, false, undefined, false);\n}\n\nexport function Register_validateEmail(x) {\n const l = x.length > 5;\n const at = x.indexOf(\"@\") >= 0;\n const dot = x.indexOf(\".\") >= 0;\n const splitted = split(x, [\"@\"], undefined, 0);\n if (splitted.length > 1) {\n if (((((l && at) && dot) && (item_2(1, splitted).length > 2)) && (item_2(0, splitted).length > 0)) && (item_2(1, splitted).indexOf(\".\") >= 0)) {\n return !(((x.indexOf(\",\") >= 0) ? true : (x.indexOf(\"\\'\") >= 0)) ? true : (x.indexOf(\"\\\\\") >= 0));\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n}\n\nfunction Register_validateCredentials(un, email, pw1, pw2) {\n const usernameLength = (un.length >= 3) && (un.length <= 16);\n const usernameChars = isMatch(/^[0-9A-Za-z]+$/gu, un);\n const email_1 = Register_validateEmail(email);\n const pwLength = pw1.length >= 8;\n const pwsMatch = pw1 === pw2;\n if (usernameLength) {\n if (usernameChars) {\n if (email_1) {\n if (pwLength) {\n if (pwsMatch) {\n return new FSharpResult$2(0, [undefined]);\n }\n else {\n return new FSharpResult$2(1, [\"Passwords don\\'t match.\"]);\n }\n }\n else {\n return new FSharpResult$2(1, [\"Password is too short.\"]);\n }\n }\n else {\n return new FSharpResult$2(1, [\"Invalid email.\"]);\n }\n }\n else {\n return new FSharpResult$2(1, [\"Username can only contain letters and numbers.\"]);\n }\n }\n else {\n return new FSharpResult$2(1, [\"Username must be between 3 ang 16 characters.\"]);\n }\n}\n\nfunction Register_update(model, msg) {\n switch (msg.tag) {\n case 1:\n return new Register_Model(model.Username, msg.fields[0], model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, model.Processing, model.ErrorMsg, model.Successful);\n case 2:\n return new Register_Model(model.Username, model.Email, msg.fields[0], model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, model.Processing, model.ErrorMsg, model.Successful);\n case 3:\n return new Register_Model(model.Username, model.Email, model.Password, msg.fields[0], model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, model.Processing, model.ErrorMsg, model.Successful);\n case 4:\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, msg.fields[0], model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, model.Processing, model.ErrorMsg, model.Successful);\n case 5: {\n const matchValue = Register_validateCredentials(model.Username, model.Email, model.Password, model.PasswordRepeat);\n if (matchValue.tag === 1) {\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, model.Processing, matchValue.fields[0], model.Successful);\n }\n else {\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, true, undefined, model.Successful);\n }\n }\n case 8: {\n const result = msg.fields[0];\n if (result.tag === 0) {\n const resp = result.fields[0];\n if (resp.Result === \"success\") {\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, false, model.ErrorMsg, true);\n }\n else {\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, false, resp.Message, model.Successful);\n }\n }\n else {\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, false, \"Something went wrong, could not perform registration\", model.Successful);\n }\n }\n case 6:\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, msg.fields[0], model.Processing, model.ErrorMsg, model.Successful);\n case 7: {\n const res = msg.fields[0];\n if (res.tag === 1) {\n return model;\n }\n else if (res.fields[0].Result === \"success\") {\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, true, model.Processing, model.ErrorMsg, model.Successful);\n }\n else {\n return model;\n }\n }\n case 9:\n return new Register_Model(model.Username, model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, model.Processing, msg.fields[0], model.Successful);\n default:\n return new Register_Model(msg.fields[0], model.Email, model.Password, model.PasswordRepeat, model.AcceptTerms, model.ValidUsername, model.ValidEmail, model.ValidPassword, model.Recaptched, model.Processing, model.ErrorMsg, model.Successful);\n }\n}\n\nfunction Register_validateRecaptcha(token, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n return ((body = Auto_generateBoxedEncoder_437914C6(string_type, undefined, undefined, undefined)(token), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/recaptcha\", properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Register_Message(7, [_arg_2]));\n return Promise.resolve();\n });\n }));\n pr_1.then();\n}\n\nfunction Register_tryRegister(username, email, p1, p2, dispatch) {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n dispatch(new Register_Message(5, []));\n const matchValue = Register_validateCredentials(username, email, p1, p2);\n if (matchValue.tag === 0) {\n const req = new RegisterRequest(username, p1, email);\n return ((body = Auto_generateBoxedEncoder_437914C6(RegisterRequest_$reflection(), undefined, undefined, undefined)(req), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/sign-up\", properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue_1;\n return Promise.resolve((matchValue_1 = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue_1.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_1.fields[0]])])) : (new FSharpResult$2(0, [matchValue_1.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n dispatch(new Register_Message(8, [_arg_2]));\n return Promise.resolve();\n });\n }\n else {\n return Promise.resolve();\n }\n }));\n pr_1.then();\n}\n\nexport class Register_OAuthTarget extends Union {\n constructor(tag, fields) {\n super();\n this.tag = tag;\n this.fields = fields;\n }\n cases() {\n return [\"Google\", \"Apple\"];\n }\n}\n\nexport function Register_OAuthTarget_$reflection() {\n return union_type(\"Investfora.Landing.Register.OAuthTarget\", [], Register_OAuthTarget, () => [[[\"Item\", OAuthAuthResponse_$reflection()]], [[\"Item\", OAuthAuthResponse_$reflection()]]]);\n}\n\nexport function Register_OAuthRegister(register_OAuthRegisterInputProps) {\n let elems_2, children, elems_1;\n const target = register_OAuthRegisterInputProps.target;\n const patternInput = useFeliz_React__React_useState_Static_1505(\"\");\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(true);\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(false);\n const setProcessing = patternInput_2[1];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(undefined);\n const setErrMsg = patternInput_3[1];\n const patternInput_4 = useFeliz_React__React_useState_Static_1505(false);\n const terms = patternInput_4[0];\n const title = (target.tag === 1) ? \"Apple\" : \"Google\";\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n maxWidth: 340,\n gap: ((15 + \"px \") + 0) + \"px\",\n color: \"#FFFFFF\",\n }], (elems_2 = [createElement(\"p\", {\n style: {\n color: \"#FFFFFF\",\n },\n children: `Denne ${title}-kontoen og e-post adressen er ikke registrert på eksisterende aksje.io bruker. Fyll inn et brukernavn i feltet under for å komme i gang.`,\n }), MuiHelpers_createElement(TextField, [[\"autoFocus\", true], [\"variant\", \"outlined\"], [\"label\", \"Brukernavn\"], [\"autoComplete\", \"username\"], [\"onChange\", (e) => {\n const u = e.target.value;\n const trimmed_1 = u.trim();\n patternInput[1](trimmed_1);\n patternInput_1[1](trimmed_1.length > 0);\n }], [\"error\", !patternInput_1[0]], [\"style\", {\n minWidth: 250 + \"px\",\n color: \"#FFFFFF\",\n }], [\"inputProps\", {\n style: {\n color: \"#FFFFFF\",\n fontSize: 1.3 + \"rem\",\n },\n }]]), createElement(\"span\", {\n children: [\"Kun brukernavnet er synlig for andre brukere på aksje.io.\"],\n }), MuiHelpers_createElement(TextField, [[\"id\", \"email-field\"], [\"variant\", \"outlined\"], [\"label\", \"E-post adresse\"], [\"type\", \"email\"], [\"disabled\", true], [\"value\", (target.tag === 1) ? target.fields[0].Email : target.fields[0].Email], [\"style\", {\n minWidth: 250 + \"px\",\n color: \"#FFFFFF\",\n }], [\"inputProps\", {\n style: {\n color: \"#FFFFFF\",\n fontSize: 1.3 + \"rem\",\n },\n }]]), MuiHelpers_createElement(FormControlLabel, [[\"label\", (children = ofArray([\"Jeg har lest og aksepterer \", createElement(\"a\", {\n style: {\n textDecoration: \"underline\",\n color: \"#FFFFFF\",\n },\n target: \"_blank\",\n href: \"/terms-of-use\",\n children: \"brukervilkårene\",\n })]), createElement(\"span\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))], [\"control\", MuiHelpers_createElement(Checkbox, [[\"style\", {\n color: \"#FFFFFF\",\n }], [\"checked\", terms], [\"onChange\", (e_1) => {\n patternInput_4[1](e_1.target.checked);\n }], [\"color\", \"primary\"]])]]), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"center\",\n minHeight: 40,\n }], (elems_1 = toList(delay(() => {\n let elems;\n return terms ? singleton_1(createElement(\"button\", createObj(ofArray([[\"type\", \"submit\"], [\"className\", \"pill-button\"], [\"style\", {\n width: 250,\n backgroundColor: \"#FFFFFF\",\n color: \"var(--text-main)\",\n }], [\"onClick\", (e_2) => {\n e_2.preventDefault();\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let body, decoder, data_1, caseStrategy_3, extra_3;\n const trimmed = patternInput[0].trim();\n if (!((trimmed.length >= 3) && (trimmed.length <= 16))) {\n setErrMsg(\"Brukernavnet må være mellom 3 og 16 tegn\");\n return Promise.resolve();\n }\n else {\n setErrMsg(undefined);\n setProcessing(true);\n const req = new OAuthRegisterRequest((target.tag === 1) ? target.fields[0].Token : target.fields[0].Token, trimmed);\n const requestPath = (target.tag === 1) ? \"/api/apple-auth/register\" : \"/api/google-auth/register\";\n return ((body = Auto_generateBoxedEncoder_437914C6(OAuthRegisterRequest_$reflection(), undefined, undefined, undefined)(req), (decoder = Auto_generateBoxedDecoder_Z6670B51(GenericResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(requestPath, properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(GenericResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n const res = _arg_2;\n if (res.tag === 0) {\n const x_1 = res.fields[0];\n if (x_1.Result === \"success\") {\n window.location.reload(true);\n return Promise.resolve();\n }\n else {\n setErrMsg(x_1.Message);\n setProcessing(false);\n return Promise.resolve();\n }\n }\n else {\n setErrMsg(\"Kunne ikke registrere bruker. Vennligst prøv igjen senere\");\n setProcessing(false);\n return Promise.resolve();\n }\n });\n }\n }));\n pr_1.then();\n }], (elems = toList(delay(() => (patternInput_2[0] ? singleton_1(LoadingIndicator_loadingIndicatorSmall()) : singleton_1(\"Registrer deg\")))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])))) : empty_1();\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])]))), Alert_errorAlert(patternInput_3[0], () => {\n setErrMsg(undefined);\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])));\n}\n\nfunction Register_registrationView(model, dispatch, handleGoogleToken, handleAppleToken) {\n let elems_12;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"register-form\"], (elems_12 = toList(delay(() => append(singleton_1(createElement(\"span\", {\n style: {\n fontSize: 1.4 + \"rem\",\n color: \"#FFFFFF\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n },\n children: \"Registrer deg på Aksje.io\",\n })), delay(() => {\n let elems_3, elems_2, props_4;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n marginTop: 30,\n gap: ((20 + \"px \") + 0) + \"px\",\n }], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n padding: 2,\n }], (elems_2 = [(props_4 = [[\"clientId\", \"io.aksje.www\"], [\"redirectURI\", `https://${window.location.host}/apple-auth`], [\"usePopup\", true], [\"callback\", (res) => {\n console.log(some(\"apple login callback\"));\n console.log(some(res));\n handleAppleToken(res);\n }], [\"scope\", \"email\"], [\"responseMode\", \"query\"], [\"render\", (renderProps) => {\n let elems_1, elems;\n return createElement(\"button\", createObj(ofArray([[\"onClick\", (_arg) => {\n renderProps.onClick();\n }], [\"style\", {\n backgroundColor: \"white\",\n color: \"#202124\",\n fontSize: 15 + \"px\",\n minWidth: 190,\n maxWidth: 400,\n borderRadius: 25,\n height: 40,\n cursor: \"pointer\",\n }], (elems_1 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n gap: ((0 + \"px \") + 5) + \"px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n padding: ((0 + \"px \") + 5) + \"px\",\n }], (elems = [createElement(\"i\", {\n style: {\n fontSize: 25 + \"px\",\n },\n className: \"fab fa-apple px-2\",\n }), \"Logg inn med Apple\"], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])));\n }]], Interop_reactApi.createElement(react_apple_login, createObj(props_4)))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])]))), Interop_reactApi.createElement(GoogleLogin, {\n size: \"large\",\n shape: \"pill\",\n theme: \"filled_white\",\n onSuccess: (x_10) => {\n console.log(some(`onSuccess: ${x_10}`));\n console.log(some(`onSuccess: ${toString_1(x_10)}`));\n console.log(some(`credential: ${x_10.credential}`));\n handleGoogleToken(x_10.credential);\n },\n onError: (x_12) => {\n console.log(some(`onError: ${x_12}`));\n },\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])))), delay(() => {\n let elems_5, elems_4;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"space-around\",\n gap: ((5 + \"px \") + 5) + \"px\",\n alignItems: \"center\",\n width: 100 + \"%\",\n maxWidth: 350,\n margin: ((30 + \"px \") + 0) + \"px\",\n }], (elems_5 = [createElement(\"div\", {\n style: {\n flexGrow: 2,\n height: 2,\n backgroundColor: \"#FFFFFF\",\n },\n }), createElement(\"div\", createObj(ofArray([[\"style\", {\n flexGrow: 1,\n textAlign: \"center\",\n color: \"#FFFFFF\",\n }], (elems_4 = [createElement(\"span\", {\n style: {\n fontSize: 1.3 + \"rem\",\n },\n children: \"eller\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))])]))), createElement(\"div\", {\n style: {\n flexGrow: 2,\n height: 2,\n backgroundColor: \"#FFFFFF\",\n },\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_5))])])))), delay(() => append(singleton_1(MuiHelpers_createElement(TextField, [[\"id\", \"username-field\"], [\"variant\", \"outlined\"], [\"label\", \"Brukernavn\"], [\"autoComplete\", \"username\"], [\"onChange\", (e) => {\n dispatch(new Register_Message(0, [e.target.value]));\n }], [\"onKeyDown\", (e_1) => {\n if (e_1.code === \"Enter\") {\n window.document.getElementById(\"email-field\").focus();\n }\n }], [\"error\", !model.ValidUsername], [\"size\", \"small\"], [\"style\", {\n marginTop: 10,\n minWidth: 250,\n }], [\"inputProps\", {\n style: {\n fontSize: 1.3 + \"rem\",\n },\n }]])), delay(() => append(singleton_1(MuiHelpers_createElement(TextField, [[\"id\", \"email-field\"], [\"variant\", \"outlined\"], [\"label\", \"E-post\"], [\"type\", \"email\"], [\"autoComplete\", \"email\"], [\"onChange\", (e_2) => {\n dispatch(new Register_Message(1, [e_2.target.value]));\n }], [\"onKeyDown\", (e_3) => {\n if (e_3.code === \"Enter\") {\n window.document.getElementById(\"password1-field\").focus();\n }\n }], [\"error\", !model.ValidEmail], [\"size\", \"small\"], [\"style\", {\n marginTop: 10,\n minWidth: 250,\n }], [\"inputProps\", {\n style: {\n fontSize: 1.3 + \"rem\",\n },\n }]])), delay(() => append(singleton_1(MuiHelpers_createElement(TextField, [[\"id\", \"password1-field\"], [\"variant\", \"outlined\"], [\"label\", \"Passord\"], [\"type\", \"password\"], [\"autoComplete\", \"new-password\"], [\"onChange\", (e_4) => {\n dispatch(new Register_Message(2, [e_4.target.value]));\n }], [\"onKeyDown\", (e_5) => {\n if (e_5.code === \"Enter\") {\n window.document.getElementById(\"password2-field\").focus();\n }\n }], [\"error\", !model.ValidPassword], [\"size\", \"small\"], [\"style\", {\n marginTop: 10,\n minWidth: 250,\n }], [\"inputProps\", {\n style: {\n fontSize: 1.3 + \"rem\",\n },\n }]])), delay(() => append(singleton_1(MuiHelpers_createElement(TextField, [[\"id\", \"password2-field\"], [\"variant\", \"outlined\"], [\"label\", \"Gjenta passord\"], [\"type\", \"password\"], [\"onChange\", (e_6) => {\n dispatch(new Register_Message(3, [e_6.target.value]));\n }], [\"error\", !model.ValidPassword], [\"size\", \"small\"], [\"style\", {\n marginTop: 10,\n marginBottom: 10,\n minWidth: 250,\n }], [\"inputProps\", {\n style: {\n fontSize: 1.3 + \"rem\",\n },\n }]])), delay(() => {\n let elems_7;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 40,\n }], (elems_7 = toList(delay(() => {\n let elems_6;\n return ((((model.Username.length > 0) && (model.Email.length > 0)) && (model.Password.length > 0)) && (model.PasswordRepeat.length > 0)) ? singleton_1(MuiHelpers_createElement(FormControlLabel, [[\"label\", createElement(\"span\", createObj(ofArray([[\"style\", {\n color: \"#FFFFFF\",\n }], (elems_6 = [\"Jeg har lest og aksepterer \", createElement(\"a\", {\n style: {\n textDecoration: \"underline\",\n color: \"#FFFFFF\",\n },\n target: \"_blank\",\n href: \"/terms-of-use\",\n children: \"brukervilkårene\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_6))])])))], [\"control\", MuiHelpers_createElement(Checkbox, [[\"style\", {\n color: \"var(--text-main)\",\n }], [\"checked\", model.AcceptTerms], [\"onChange\", (e_7) => {\n dispatch(new Register_Message(4, [e_7.target.checked]));\n }], [\"color\", \"primary\"], [\"size\", \"small\"]])]])) : empty_1();\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_7))])])))), delay(() => {\n let elems_8;\n return append(!model.AcceptTerms ? singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n color: \"#FFFFFF\",\n }], (elems_8 = [createElement(\"span\", {\n children: [\"Allerede registrert?\"],\n }), createElement(\"a\", {\n style: {\n textDecoration: \"underline\",\n marginLeft: 10,\n color: \"#FFFFFF\",\n },\n href: \"/sign-in\",\n children: \"Logg inn\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_8))])])))) : empty_1(), delay(() => {\n let elems_9;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n marginTop: 15,\n display: \"flex\",\n justifyContent: \"center\",\n }], (elems_9 = toList(delay(() => ((model.AcceptTerms && !model.Recaptched) ? singleton_1(Register_Recaptcha_recaptchaContainer([[\"sitekey\", \"6Lfptv8mAAAAAOjwVLP08rOqUO0zDXpcQ4kvDCul\"], [\"onChange\", (s) => {\n if (s == null) {\n dispatch(new Register_Message(6, [false]));\n }\n else {\n Register_validateRecaptcha(s, dispatch);\n }\n }], [\"theme\", \"dark\"], [\"onExpired\", () => {\n dispatch(new Register_Message(6, [false]));\n }]])) : empty_1()))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_9))])])))), delay(() => {\n let elems_11, elems_10;\n return append((model.AcceptTerms && model.Recaptched) ? singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n minHeight: 50,\n marginTop: 10,\n minWidth: 250,\n textAlign: \"center\",\n }], (elems_11 = [createElement(\"button\", createObj(ofArray([[\"className\", \"pill-button\"], [\"style\", {\n minWidth: 250 + \"px\",\n backgroundColor: \"#FFFFFF\",\n color: \"var(--text-main)\",\n }], [\"onClick\", (_arg_2) => {\n Register_tryRegister(model.Username, model.Email, model.Password, model.PasswordRepeat, dispatch);\n }], (elems_10 = toList(delay(() => (model.Processing ? singleton_1(LoadingIndicator_loadingIndicatorSmall()) : singleton_1(\"Registrer deg\")))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_10))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_11))])])))) : empty_1(), delay(() => singleton_1(Alert_errorAlert(model.ErrorMsg, () => {\n dispatch(new Register_Message(9, [undefined]));\n }))));\n }));\n }));\n }));\n }))))))))));\n }));\n })))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_12))])])));\n}\n\nfunction Register_drawBanned(until, banReason) {\n let elems_2;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 100 + \"%\",\n maxWidth: 340,\n padding: 5,\n display: \"flex\",\n flexDirection: \"column\",\n gap: ((20 + \"px \") + 0) + \"px\",\n fontSize: 1.3 + \"rem\",\n }], (elems_2 = toList(delay(() => {\n let elems;\n return append(singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n padding: 5,\n textAlign: \"center\",\n borderRadius: 5,\n fontWeight: \"bold\",\n color: \"#FFFFFF\",\n }], (elems = [createElement(\"span\", {\n children: [\"Denne brukeren er utestengt fra aksje.io.\"],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])))), delay(() => {\n let matchValue, u, elems_1;\n return append((matchValue = until, (matchValue != null) ? ((u = matchValue, singleton_1(createElement(\"div\", createObj(ofArray([[\"style\", {\n textAlign: \"center\",\n color: \"#FFFFFF\",\n }], (elems_1 = [createElement(\"span\", {\n children: [u],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])))))) : (empty_1())), delay(() => singleton_1(createElement(\"p\", {\n style: {\n marginTop: 10,\n textAlign: \"center\",\n color: \"#FFFFFF\",\n },\n children: banReason,\n }))));\n }));\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])));\n}\n\nexport function Register_Register() {\n let elems, value_22;\n const patternInput = useReact_useReducer_2B9E6EA0(Register_update, Register_init());\n const model_1 = patternInput[0];\n const dispatch = patternInput[1];\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(undefined);\n const appleRegisterForm = patternInput_1[0];\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(undefined);\n const googleRegisterForm = patternInput_2[0];\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(undefined);\n const setBanned = patternInput_3[1];\n const banned = patternInput_3[0];\n if (!model_1.Successful) {\n if (banned == null) {\n if (googleRegisterForm != null) {\n const grf = googleRegisterForm;\n return createElement(Register_OAuthRegister, {\n target: new Register_OAuthTarget(0, [grf]),\n });\n }\n else if (appleRegisterForm != null) {\n const arf = appleRegisterForm;\n return createElement(Register_OAuthRegister, {\n target: new Register_OAuthTarget(1, [arf]),\n });\n }\n else {\n return Register_registrationView(model_1, dispatch, (x_2) => {\n const pr_3 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let item_1, body_3, decoder_3, data_5, caseStrategy_12, extra_12;\n return ((item_1 = {\n Token: x_2,\n }, (body_3 = Auto_generateBoxedEncoder_437914C6(anonRecord_type([\"Token\", string_type]), undefined, undefined, undefined)(item_1), (decoder_3 = Auto_generateBoxedDecoder_Z6670B51(OAuthAuthResponse_$reflection(), undefined, undefined), (data_5 = some(body_3), (caseStrategy_12 = undefined, (extra_12 = undefined, (() => {\n let properties_6;\n try {\n const properties_3_1 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_6 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_5, empty()), 0)])]), defaultArg(map((data_1_2) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_12, extra_12)(data_1_2))]), properties_6), data_5), properties_6)));\n const pr_2 = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/google-auth/authenticate\", properties_3_1).then((_arg_3) => {\n let response_3, decoder_1_2;\n return ((response_3 = _arg_3, (decoder_1_2 = defaultArg(decoder_3, Auto_generateBoxedDecoderCached_Z6670B51(OAuthAuthResponse_$reflection(), unwrap(caseStrategy_12), unwrap(extra_12))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_3.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_3.text().then((_arg_4) => {\n let matchValue_3;\n return Promise.resolve((matchValue_3 = fromString(uncurry2(decoder_1_2), _arg_4), (matchValue_3.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_3.fields[0]])])) : (new FSharpResult$2(0, [matchValue_3.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_3])])))).then((_arg_1_2) => (Promise.resolve(_arg_1_2)))))))));\n }))));\n return pr_2.then(void 0, ((arg_3) => (new FSharpResult$2(1, [new FetchError(3, [arg_3])]))));\n }\n catch (exn_1) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn_1])])))));\n }\n })()))))))).then((_arg_5) => {\n let matchValue_4, x_4, numDays_1, arg_4;\n const res_1 = _arg_5;\n if (res_1.tag === 0) {\n const r_1 = res_1.fields[0];\n switch (r_1.Result.Result) {\n case \"success\": {\n window.location.reload(true);\n return Promise.resolve();\n }\n case \"not-exist\": {\n patternInput_2[1](r_1);\n return Promise.resolve();\n }\n case \"banned\": {\n setBanned([(matchValue_4 = r_1.Result.BanUntil, (matchValue_4 != null) ? ((x_4 = toUniversalTime(parse(matchValue_4)), (numDays_1 = (days(op_Subtraction(x_4, utcNow())) | 0), (arg_4 = toString_2(x_4, \"dd/MM/yyyy\"), toText(printf(\"Til %s (%i dager igjen)\"))(arg_4)(numDays_1))))) : undefined), r_1.Result.Message]);\n return Promise.resolve();\n }\n default: {\n dispatch(new Register_Message(9, [r_1.Result.Message]));\n return Promise.resolve();\n }\n }\n }\n else {\n dispatch(new Register_Message(9, [\"Kunne ikke registrere bruker deg inn. Vennligst prøv igjen senere.\"]));\n return Promise.resolve();\n }\n });\n }));\n pr_3.then();\n }, (callback) => {\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let matchValue, body, decoder, data_1, caseStrategy_3, extra_3;\n if (callback.error == null) {\n const req = new AppleAuthRequest(callback.authorization.code, callback.authorization.id_token, (matchValue = callback.user, (matchValue != null) ? matchValue.email : undefined));\n return ((body = Auto_generateBoxedEncoder_437914C6(AppleAuthRequest_$reflection(), undefined, undefined, undefined)(req), (decoder = Auto_generateBoxedDecoder_Z6670B51(OAuthAuthResponse_$reflection(), undefined, undefined), (data_1 = some(body), (caseStrategy_3 = undefined, (extra_3 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(singleton(new Types_RequestProperties(3, [\"cors\"])), (properties_2 = ofArray([new Types_RequestProperties(0, [\"POST\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_3, extra_3)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/apple-auth/authenticate\", properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(OAuthAuthResponse_$reflection(), unwrap(caseStrategy_3), unwrap(extra_3))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue_1;\n return Promise.resolve((matchValue_1 = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue_1.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_1.fields[0]])])) : (new FSharpResult$2(0, [matchValue_1.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })())))))).then((_arg_2) => {\n let matchValue_2, x_1, numDays, arg_1;\n const res = _arg_2;\n if (res.tag === 0) {\n const r = res.fields[0];\n switch (r.Result.Result) {\n case \"success\": {\n window.location.reload(true);\n return Promise.resolve();\n }\n case \"not-exist\": {\n patternInput_1[1](r);\n return Promise.resolve();\n }\n case \"banned\": {\n setBanned([(matchValue_2 = r.Result.BanUntil, (matchValue_2 != null) ? ((x_1 = toUniversalTime(parse(matchValue_2)), (numDays = (days(op_Subtraction(x_1, utcNow())) | 0), (arg_1 = toString_2(x_1, \"dd/MM/yyyy\"), toText(printf(\"Til %s (%i dager igjen)\"))(arg_1)(numDays))))) : undefined), r.Result.Message]);\n return Promise.resolve();\n }\n default: {\n dispatch(new Register_Message(9, [r.Result.Message]));\n return Promise.resolve();\n }\n }\n }\n else {\n dispatch(new Register_Message(9, [\"Kunne ikke logge deg inn. Vennligst prøv igjen senere.\"]));\n return Promise.resolve();\n }\n });\n }\n else {\n return Promise.resolve();\n }\n }));\n pr_1.then();\n });\n }\n }\n else {\n return Register_drawBanned(banned[0], banned[1]);\n }\n }\n else {\n return createElement(\"div\", createObj(ofArray([[\"className\", \"login-form\"], [\"style\", {\n textAlign: \"center\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontSize: 1.7 + \"rem\",\n marginBottom: 25,\n padding: 10 + \"px\",\n },\n children: \"Brukerkonto opprettet!\",\n }), createElement(\"br\", {}), createElement(\"p\", createObj(ofArray([[\"style\", {\n maxWidth: 500,\n textAlign: \"center\",\n }], (value_22 = \"Du kan nå logge inn med din nye bruker på aksje.io. Du må bekrefte din e-post adresse før du kan publisere innhold til aksje.io. En e-post med instruksjoner om hvordan du kan bekrefte din e-post adresse er sendt til e-post adressen du registrerte brukeren med.\", [\"children\", value_22])]))), createElement(\"a\", {\n style: {\n color: \"#FFFFFF\",\n backgroundColor: \"var(--text-main)\",\n marginTop: 20,\n },\n className: \"pill-button\",\n href: \"/sign-in\",\n children: \"Logg inn\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])));\n }\n}\n\nconst demoData = [{\n name: \"Kjøp\",\n value: 42,\n}, {\n name: \"Svakt kjøp\",\n value: 21,\n}, {\n name: \"Hold\",\n value: 29,\n}, {\n name: \"Svakt salg\",\n value: 27,\n}, {\n name: \"Selg\",\n value: 19,\n}];\n\nfunction demoGraph() {\n let elems_2, properties_10, properties_9, elements_1, properties_8, elements, properties_3, properties_4, properties_5, properties_6, properties_7;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n height: 300,\n width: 300,\n fontSize: 0.7 + \"rem\",\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n }], (elems_2 = [(properties_10 = singleton([\"children\", (properties_9 = ofArray([[\"margin\", {\n top: defaultArg(10, 0),\n right: defaultArg(0, 0),\n left: defaultArg(0, 0),\n bottom: defaultArg(30, 0),\n }], (elements_1 = ofArray([Interop_reactApi_2.createElement(Legend, {}), Interop_reactApi_2.createElement(Label, {}), (properties_8 = ofArray([[\"data\", demoData], [\"dataKey\", \"value\"], (elements = ofArray([(properties_3 = ofArray([[\"key\", \"Kjøp\"], [\"fill\", StockRating__ToColorCode(new StockRating(0, []))]]), Interop_reactApi_2.createElement(Cell, createObj(properties_3))), (properties_4 = ofArray([[\"key\", \"Svakt kjøp\"], [\"fill\", StockRating__ToColorCode(new StockRating(1, []))]]), Interop_reactApi_2.createElement(Cell, createObj(properties_4))), (properties_5 = ofArray([[\"key\", \"Hold\"], [\"fill\", StockRating__ToColorCode(new StockRating(2, []))]]), Interop_reactApi_2.createElement(Cell, createObj(properties_5))), (properties_6 = ofArray([[\"key\", \"Svakt salg\"], [\"fill\", StockRating__ToColorCode(new StockRating(3, []))]]), Interop_reactApi_2.createElement(Cell, createObj(properties_6))), (properties_7 = ofArray([[\"key\", \"Selg\"], [\"fill\", StockRating__ToColorCode(new StockRating(4, []))]]), Interop_reactApi_2.createElement(Cell, createObj(properties_7)))]), [\"children\", [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements))]])]), Interop_reactApi_2.createElement(Pie, createObj(properties_8)))]), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elements_1))])]), Interop_reactApi_2.createElement(PieChart, createObj(properties_9)))]), Interop_reactApi_2.createElement(ResponsiveContainer, createObj(properties_10)))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])));\n}\n\nexport function demoPost(rating, votes, tp) {\n let elems_14, elems, elems_13, elems_10, elems_6, elems_3, elems_1, elems_2, elems_5, elems_4, elems_8, children, elems_7, elems_9, elems_12, elems_11;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"post\"], [\"key\", \"demo-post\"], [\"style\", {\n minWidth: 350,\n }], (elems_14 = [createElement(\"div\", createObj(ofArray([[\"className\", \"post-header\"], (elems = [createElement(\"span\", {\n style: {\n fontSize: 1.225 + \"rem\",\n },\n children: \"Din favorittaksje\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"post-content-holder\"], (elems_13 = [createElement(\"div\", createObj(ofArray([[\"className\", \"post-content\"], (elems_10 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n }], (elems_6 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flex: 0.5,\n }], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n marginRight: 10,\n }], (elems_1 = [Image_userCircle(1, 50, false, undefined)], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n }], (elems_2 = [createElement(\"span\", {\n style: {\n color: \"var(--bg-dark)\",\n fontWeight: 500,\n },\n children: \"Bruker\",\n }), createElement(\"span\", {\n style: {\n fontSize: Dimensions_TextSmall,\n },\n children: \"~10 minutter siden\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flex: 0.5,\n alignItems: \"center\",\n padding: 3,\n justifyContent: \"flex-end\",\n }], (elems_5 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n backgroundColor: StockRating__ToColorCode(rating),\n padding: 10,\n width: 100,\n borderRadius: 5,\n textAlign: \"center\",\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.35px\",\n userSelect: \"none\",\n }], (elems_4 = [createElement(\"span\", {\n style: {\n color: StockRating__ToTextColorCode(rating),\n },\n children: toString_1(rating),\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_5))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_6))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"post-review-info\"], (elems_8 = [(children = ofArray([createElement(\"span\", {\n style: {\n marginRight: 5,\n color: \"#DC143C\",\n },\n className: \"fas fa-bullseye\",\n }), createElement(\"span\", createObj(ofArray([[\"style\", {\n marginRight: 15,\n }], (elems_7 = [\"Kursmål \", createElement(\"b\", {\n children: [tp],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_7))])])))]), createElement(\"div\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_8))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_9 = [createElement(\"p\", {\n style: {\n color: \"var(--text-main)\",\n fontSize: 1 + \"rem\",\n margin: 0,\n padding: 0,\n },\n children: \"...\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_9))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_10))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"post-rating-holder\"], (elems_12 = [createElement(\"div\", createObj(ofArray([[\"className\", \"post-rating\"], (elems_11 = [createElement(\"span\", {\n style: {\n color: (votes > 0) ? StockRating__ToColorCode(new StockRating(0, [])) : StockRating__ToColorCode(new StockRating(4, [])),\n paddingRight: 20,\n },\n children: votes,\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_11))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_12))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_13))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_14))])])));\n}\n\nfunction insiderTrades(x) {\n let elems_7, elems, children, elems_1, elems_6, value_15, value_16, elems_5, value_18, elems_4, elems_2, elems_3;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"landing-favorites-holder\"], (elems_7 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 100 + \"%\",\n }], (elems = [(children = ofArray([\"Enkel og informativ oversikt over \", createElement(\"strong\", {\n children: [\"innsidehandler\"],\n })]), createElement(\"h2\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"landing-favorites-img\"], (elems_1 = toList(delay(() => {\n let xs_1;\n if (x != null) {\n const y = x;\n return singleton_1((xs_1 = map_1((i) => post(i, (value_11) => {\n }), (y.length > 2) ? y.slice(0, 1 + 1) : y), react.createElement(react.Fragment, {}, ...xs_1)));\n }\n else {\n return singleton_1(LoadingIndicator_postLoadingIndicator());\n }\n })), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"landing-favorites-text\"], (elems_6 = [(value_15 = \"aksje.io bruker kunstig intelligens (AI) for å hente ut strukturert informasjon om innsidehandler på Oslo børs og presenterer det for deg på en enkel og oversiktlig måte.\", createElement(\"p\", {\n children: [value_15],\n })), (value_16 = \"Få info om antall aksjer, snittpris, innsider m.m for innsidehandler gjort i dine favorittaksjer. aksje.io genererer rapporter og statistikk rundt innsidehandler for aksjer som hjelper deg få bedre innsikt og gjøre bedre investeringer.\", createElement(\"p\", {\n children: [value_16],\n })), createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_5 = [(value_18 = \"Motta push-varslinger ved nye innsidehandler og short-oppdateringer med aksje.io appen. Last ned fra Apple App Store eller Google Play Store.\", createElement(\"p\", {\n children: [value_18],\n })), createElement(\"p\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: 20 + \"px \",\n }], (elems_4 = [createElement(\"a\", createObj(ofArray([[\"href\", \"https://apps.apple.com/app/aksje-io/id6448765436\"], [\"target\", \"_blank\"], (elems_2 = [createElement(\"img\", {\n src: \"/images/app_store_download.svg\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])]))), createElement(\"a\", createObj(ofArray([[\"href\", \"https://play.google.com/store/apps/details?id=io.aksje.app&pli=1\"], [\"target\", \"_blank\"], (elems_3 = [createElement(\"img\", {\n style: {\n height: 50,\n },\n src: \"https://play.google.com/intl/en_us/badges/static/images/badges/no_badge_web_generic.png\",\n alt: \"Last ned fra Google Play Store\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_5))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_6))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_7))])])));\n}\n\nfunction header() {\n let elems_4, elems, children, elems_3, elems_1, elems_2, value_27, value_28;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"landing-header-holder\"], (elems_4 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 100 + \"%\",\n }], (elems = [(children = ofArray([createElement(\"strong\", {\n children: [\"Oppdag og del \"],\n }), \"investeringsidéer\"]), createElement(\"h2\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-around\",\n }], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }], (elems_1 = [demoGraph(), createElement(\"span\", {\n style: {\n fontSize: 0.6 + \"rem\",\n fontStyle: \"italic\",\n },\n children: \"* Graf kun for demonstasjon.\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"landing-header-text\"], (elems_2 = [(value_27 = \"Finn inspirasjon for dine neste investeringer fra analyser og innlegg publisert av brukere på aksje.io.\", createElement(\"p\", {\n children: [value_27],\n })), (value_28 = \"Del dine egne tanker og analyser under dine favorittaksjer. Delta i diskusjoner og hjelp hverandre gjøre bedre investeringsvalg.\", createElement(\"p\", {\n children: [value_28],\n }))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_4))])])));\n}\n\nfunction drawMostViewed(x) {\n return assetListHolder(toList(delay(() => append(singleton_1(Tooltip_tooltipHeader(\"Populære aksjer\", \"Aksjer med mest trafikk siste 14 dager.\")), delay(() => {\n let xs;\n const matchValue = x;\n return (matchValue != null) ? singleton_1((xs = map_1((y) => {\n let matchValue_1;\n return assetListEntry(y.Ticker, (matchValue_1 = y.Name, (matchValue_1 != null) ? matchValue_1 : y.Ticker), (y.Market.toLocaleUpperCase() === \"CRYPTO\") ? (`/crypto/${y.Ticker}`) : (`/stock/${y.Market}/${y.Ticker}`));\n }, matchValue), react.createElement(react.Fragment, {}, ...xs))) : append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => singleton_1(LoadingIndicator_assetListEntryLoading())))))))));\n })))));\n}\n\nfunction drawMostFavorite(x) {\n return assetListHolder(toList(delay(() => append(singleton_1(Tooltip_tooltipHeader(\"Brukeres favorittaksjer\", \"Aksjer flest brukere av aksje.io har markert som favoritt\")), delay(() => {\n let xs;\n const matchValue = x;\n return (matchValue != null) ? singleton_1((xs = map_1((y_2) => assetListEntry(y_2.AssetTicker, y_2.Name, `/stock/${y_2.MarketTicker}/${y_2.AssetTicker}`), sortByDescending((y) => y.Num, matchValue, {\n Compare: comparePrimitives,\n })), react.createElement(react.Fragment, {}, ...xs))) : append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => singleton_1(LoadingIndicator_assetListEntryLoading())))))))));\n })))));\n}\n\nfunction drawMostShorted(x) {\n return assetListHolder(toList(delay(() => append(singleton_1(Tooltip_tooltipHeader(\"Aksjer med størst % andel short\", \"Basert på posisjoner større eller lik 2% av utestående aksjer\")), delay(() => {\n let xs_7;\n const matchValue = x;\n return (matchValue != null) ? singleton_1((xs_7 = map_1((y_2) => {\n let elems_3, elems, p, elems_1, elems_2;\n const link = `/stock/${y_2.Market}/${y_2.Ticker}`;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-holder\"], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: 5,\n whiteSpace: \"nowrap\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n },\n children: (p = (y_2.Percentage / 100), format('{0:' + \"0.00%\" + '}', p)),\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-name\"], (elems_1 = [createElement(\"a\", {\n href: link,\n children: y_2.Name,\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"preview-listing-ticker\"], (elems_2 = [createElement(\"a\", {\n href: link,\n children: y_2.Ticker,\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])));\n }, sortByDescending((y) => y.Percentage, matchValue, {\n Compare: comparePrimitives,\n })), react.createElement(react.Fragment, {}, ...xs_7))) : append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => singleton_1(LoadingIndicator_assetListEntryLoading())))))))));\n })))));\n}\n\nfunction drawExplore(x) {\n return assetListHolder(toList(delay(() => append(singleton_1(Tooltip_tooltipHeader(\"Utforsk aksjer\", \"En tilfeldig samling aksjer registrert på aksje.io\")), delay(() => {\n let xs;\n const matchValue = x;\n return (matchValue != null) ? singleton_1((xs = map_1((y) => assetListEntry(y.Ticker, y.Name, `/stock/${y.Market}/${y.Ticker}`), matchValue), react.createElement(react.Fragment, {}, ...xs))) : append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => append(singleton_1(LoadingIndicator_assetListEntryLoading()), delay(() => singleton_1(LoadingIndicator_assetListEntryLoading())))))))));\n })))));\n}\n\nfunction signup() {\n let elems_1, elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n flexGrow: 1,\n }], [\"className\", \"landing-signup\"], (elems_1 = [createElement(\"div\", createObj(ofArray([[\"className\", \"landing-signup-box\"], (elems = [createElement(Register_Register, null)], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])));\n}\n\nconst demoShort = new Post(700, \"short-event\", \"\", 0, new User_1(-1, \"\", false), 0, 0, \"2023-05-03\", 0, false, [], 0, false, undefined, undefined, undefined, {\n Market: \"OSE\",\n Name: \"Nordic Semiconductor\",\n Ticker: \"NOD\",\n Type: 1,\n}, undefined, new PostShortInfo(443, 392, 7577259, 8566131, \"2023-05-04\", [new ShortEventPosition(9, \"WorldQuant LLC\", 1602364, 1602364), new ShortEventPosition(18, \"JPMorgan Asset Management (UK) Ltd\", 1489762, 1489762), new ShortEventPosition(19, \"Sylebra Capital Limited\", 3269501, 3269501), new ShortEventPosition(28, \"Canada Pension Plan Investment Board\", 1215632, 1215632), new ShortEventPosition(30, \"BlackRock Investment Management (UK) Limited\", 0, 988872)]), undefined);\n\nfunction favorites() {\n let elems_3, elems, children, elems_1, elems_2, value_17, value_19;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"landing-favorites-holder\"], (elems_3 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n width: 100 + \"%\",\n }], (elems = [(children = ofArray([\"Analyser, innlegg, innsidehandler og short-oppdateringer for \", createElement(\"strong\", {\n children: [\"dine favorittaksjer\"],\n }), \" gjennom din \", createElement(\"strong\", {\n children: [\"feed\"],\n })]), createElement(\"h2\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"landing-favorites-img\"], (elems_1 = [demoPost(new StockRating(0, []), 4, \"NOK 158.70\"), post(demoShort, (value_13) => {\n }), demoPost(new StockRating(3, []), 8, \"NOK 69.12\")], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])]))), createElement(\"div\", createObj(ofArray([[\"className\", \"landing-favorites-text\"], (elems_2 = [createElement(\"p\", createObj(singleton((value_17 = \"Marker aksjer som favoritt og nye analyser, innlegg, innsidehandler og short-oppdateringer publisert på aksje.io vil dukke opp i din feed.\", [\"children\", value_17])))), createElement(\"p\", createObj(singleton((value_19 = \"Vil du ha oppdateringer på 2 eller 20 aksjer? Det bestemmer du selv. Bygg din favorittliste slik som du selv ønsker.\", [\"children\", value_19]))))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_3))])])));\n}\n\nfunction joinNow() {\n let elems_2, elems, elems_1;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: 5 + \"vw\",\n gap: ((5 + \"vh\") + \" \") + (5 + \"vh\"),\n }], (elems_2 = [createElement(\"span\", createObj(ofArray([[\"style\", {\n fontSize: 1.7 + \"rem\",\n marginBottom: 20,\n textAlign: \"center\",\n }], (elems = [\"Bli med på aksje.io - \", createElement(\"strong\", {\n children: [\"det er gratis!\"],\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), createElement(\"a\", {\n className: \"pill-button\",\n href: \"/sign-up\",\n children: \"Registrer deg\",\n }), createElement(\"span\", createObj(ofArray([[\"style\", {\n color: \"var(--text-dim)\",\n }], (elems_1 = [\"Allerede registrert? \", createElement(\"a\", {\n href: \"/sign-in\",\n style: {\n color: \"var(--text-dim)\",\n textDecorationLine: \"underline\",\n },\n children: \"Logg inn\",\n })], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_2))])])));\n}\n\nfunction latestContentHolder(children) {\n return createElement(\"div\", {\n style: {\n width: 100 + \"%\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: 10,\n flexGrow: 1,\n },\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n });\n}\n\nfunction latestListHolder(children) {\n return createElement(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n gap: ((2 + \"vw\") + \" \") + (2 + \"vw\"),\n padding: 7,\n },\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n });\n}\n\nfunction latestListItemHolder(hide, children) {\n return createElement(\"div\", createObj(toList(delay(() => append(hide ? singleton_1([\"className\", \"hide-small-screens\"]) : empty_1(), delay(() => append(singleton_1([\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n width: 200,\n userSelect: \"none\",\n }]), delay(() => singleton_1([\"children\", Interop_reactApi_1.Children.toArray(Array.from(children))])))))))));\n}\n\nfunction latestDate(x) {\n const children = singleton(createElement(\"span\", {\n style: {\n fontSize: 0.75 + \"rem\",\n },\n children: utcDateToLocalDate(x),\n }));\n return createElement(\"div\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n });\n}\n\nfunction latestLoadingIndicator() {\n const indicator = () => LoadingIndicator_skeleton(ofArray([[\"height\", 48], [\"width\", 100 + \"%\"], [\"maxWidth\", 200]]));\n const xs = [indicator(), indicator(), indicator(), indicator(), indicator(), indicator(), indicator(), indicator(), indicator(), indicator()];\n return react.createElement(react.Fragment, {}, ...xs);\n}\n\nfunction drawLatestInsiderTrades(x) {\n return latestContentHolder([createElement(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"center\",\n },\n children: Tooltip_tooltipHeader(\"Siste registrerte innsidehandler\", \"Denne oppsummeringen er AI-generert av ChatGPT fra børsmeldingen. Med forbehold om feil.\"),\n }), latestListHolder(toList(delay(() => {\n let xs_4;\n return (x != null) ? singleton_1((xs_4 = mapIndexed((i, e_1) => {\n let children_2, elems, children;\n const plusSign = (e_1.NumShares > 0) ? \"+\" : \"\";\n return latestListItemHolder(i > 4, [(children_2 = ofArray([createElement(\"a\", createObj(ofArray([[\"href\", `/stock/${e_1.Market}/${e_1.Ticker}`], (elems = [Tooltip_wrapTooltip(e_1.Name, createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n userSelect: \"none\",\n },\n children: e_1.Ticker,\n }))], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), (children = ofArray([\": \", createElement(\"span\", {\n style: {\n color: (e_1.NumShares > 0) ? \"var(--buy)\" : ((e_1.NumShares < 0) ? \"var(--sell)\" : \"var(--text-dim)\"),\n },\n children: `${plusSign}${toShortAmount(e_1.NumShares)} aksjer`,\n })]), createElement(\"span\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n }))]), createElement(\"div\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children_2)),\n })), latestDate(e_1.Date)]);\n }, sortByDescending((e) => e.Date, x, {\n Compare: comparePrimitives,\n })), react.createElement(react.Fragment, {}, ...xs_4))) : singleton_1(latestLoadingIndicator());\n })))]);\n}\n\nfunction drawLatestShort(x) {\n return latestContentHolder([createElement(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"center\",\n },\n children: Tooltip_tooltipHeader(\"Siste registrerte short\", \"Basert på short-posisjoner større eller lik 0.5% av utestående aksjer\"),\n }), latestListHolder(toList(delay(() => {\n let xs_5;\n return (x != null) ? singleton_1((xs_5 = mapIndexed((i, e_1) => {\n let children, elems;\n return latestListItemHolder(i > 4, [(children = ofArray([createElement(\"a\", {\n href: `/stock/${e_1.Market}/${e_1.Ticker}`,\n children: Tooltip_wrapTooltip(e_1.Name, createElement(\"span\", {\n style: {\n fontWeight: \"bold\",\n userSelect: \"none\",\n },\n children: e_1.Ticker,\n })),\n }), createElement(\"span\", createObj(singleton((elems = toList(delay(() => append(singleton_1(\": \"), delay(() => append(singleton_1(createElement(\"span\", {\n children: [`${e_1.NewPercent / 100}%`],\n })), delay(() => {\n const matchValue = e_1.ChangePercent;\n if (matchValue != null) {\n const c = matchValue | 0;\n return append(singleton_1(\" (\"), delay(() => append(singleton_1(createElement(\"span\", {\n style: {\n marginRight: 3,\n },\n className: (c > 0) ? \"fas fa-arrow-up\" : \"fas fa-arrow-down\",\n })), delay(() => singleton_1(createElement(\"span\", {\n children: [`${c / 100}%)`],\n }))))));\n }\n else {\n return empty_1();\n }\n })))))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))]))))]), createElement(\"div\", {\n children: Interop_reactApi_1.Children.toArray(Array.from(children)),\n })), latestDate(e_1.Date)]);\n }, sortByDescending((e) => e.Date, x, {\n Compare: comparePrimitives,\n })), react.createElement(react.Fragment, {}, ...xs_5))) : singleton_1(latestLoadingIndicator());\n })))]);\n}\n\nfunction stats(latest, mostViewed, mostFavorite, mostShorted, explore, latestInsiderTrades, latestShort) {\n let elems_1, elems;\n return createElement(\"div\", createObj(ofArray([[\"className\", \"landing-preview\"], (elems_1 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n justifyContent: \"space-around\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n padding: 10,\n flexGrow: 1,\n }], (elems = toList(delay(() => append(singleton_1(drawMostShorted(mostShorted)), delay(() => append(singleton_1(drawMostFavorite(mostFavorite)), delay(() => append(singleton_1(drawExplore(explore)), delay(() => {\n const matchValue = latest;\n if (matchValue != null) {\n const x = matchValue;\n return (x.length > 0) ? singleton_1(drawReviews(x, \"Siste analyser\")) : empty_1();\n }\n else {\n return empty_1();\n }\n })))))))), [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), drawLatestInsiderTrades(latestInsiderTrades), drawLatestShort(latestShort)], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])));\n}\n\nexport function LandingPage() {\n let elems_1, elems;\n const patternInput = useFeliz_React__React_useState_Static_1505(undefined);\n const patternInput_1 = useFeliz_React__React_useState_Static_1505(undefined);\n const patternInput_2 = useFeliz_React__React_useState_Static_1505(undefined);\n const patternInput_3 = useFeliz_React__React_useState_Static_1505(undefined);\n const patternInput_4 = useFeliz_React__React_useState_Static_1505(undefined);\n const patternInput_5 = useFeliz_React__React_useState_Static_1505(undefined);\n const patternInput_6 = useFeliz_React__React_useState_Static_1505(undefined);\n useReact_useEffectOnce_3A5B6456(() => {\n const pr_5 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder_6, data_9, caseStrategy_18, extra_18;\n return ((decoder_6 = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_TopShortEntry_$reflection()), undefined, undefined), (data_9 = undefined, (caseStrategy_18 = undefined, (extra_18 = undefined, (() => {\n let properties_9;\n try {\n const properties_3_2 = Helper_withProperties(empty(), (properties_9 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_9, empty()), 0)])]), defaultArg(map((data_1_3) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_18, extra_18)(data_1_3))]), properties_9), data_9), properties_9)));\n const pr_4 = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/highest-short?num=5`, properties_3_2).then((_arg_6) => {\n let response_5, decoder_1_3;\n return ((response_5 = _arg_6, (decoder_1_3 = defaultArg(decoder_6, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_TopShortEntry_$reflection()), unwrap(caseStrategy_18), unwrap(extra_18))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_5.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_5.text().then((_arg_7) => {\n let matchValue_2;\n return Promise.resolve((matchValue_2 = fromString(uncurry2(decoder_1_3), _arg_7), (matchValue_2.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_2.fields[0]])])) : (new FSharpResult$2(0, [matchValue_2.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_5])])))).then((_arg_1_3) => (Promise.resolve(_arg_1_3)))))))));\n }))));\n return pr_4.then(void 0, ((arg_2) => (new FSharpResult$2(1, [new FetchError(3, [arg_2])]))));\n }\n catch (exn_2) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn_2])])))));\n }\n })()))))).then((_arg_8) => {\n const res_2 = _arg_8;\n if (res_2.tag === 0) {\n patternInput_3[1](res_2.fields[0]);\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n });\n }));\n pr_5.then();\n const pr_1 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder, data_1, caseStrategy_2, extra_2;\n return ((decoder = Auto_generateBoxedDecoder_Z6670B51(array_type(Analytics_AssetCount_$reflection()), undefined, undefined), (data_1 = undefined, (caseStrategy_2 = undefined, (extra_2 = undefined, (() => {\n let properties_2;\n try {\n const properties_3 = Helper_withProperties(empty(), (properties_2 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_1, empty()), 0)])]), defaultArg(map((data_1_1) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_2, extra_2)(data_1_1))]), properties_2), data_1), properties_2)));\n const pr = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/stats/most-favorite\", properties_3).then((_arg) => {\n let response_1, decoder_1_1;\n return ((response_1 = _arg, (decoder_1_1 = defaultArg(decoder, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Analytics_AssetCount_$reflection()), unwrap(caseStrategy_2), unwrap(extra_2))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_1.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_1.text().then((_arg_1) => {\n let matchValue;\n return Promise.resolve((matchValue = fromString(uncurry2(decoder_1_1), _arg_1), (matchValue.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue.fields[0]])])) : (new FSharpResult$2(0, [matchValue.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_1])])))).then((_arg_1_1) => (Promise.resolve(_arg_1_1)))))))));\n }))));\n return pr.then(void 0, ((arg) => (new FSharpResult$2(1, [new FetchError(3, [arg])]))));\n }\n catch (exn) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn])])))));\n }\n })()))))).then((_arg_2) => {\n const res = _arg_2;\n if (res.tag === 0) {\n patternInput[1](res.fields[0]);\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n });\n }));\n pr_1.then();\n const pr_3 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder_3, data_5, caseStrategy_10, extra_10;\n return ((decoder_3 = Auto_generateBoxedDecoder_Z6670B51(array_type(Analytics_AssetMeta_$reflection()), undefined, undefined), (data_5 = undefined, (caseStrategy_10 = undefined, (extra_10 = undefined, (() => {\n let properties_6;\n try {\n const properties_3_1 = Helper_withProperties(empty(), (properties_6 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_5, empty()), 0)])]), defaultArg(map((data_1_2) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_10, extra_10)(data_1_2))]), properties_6), data_5), properties_6)));\n const pr_2 = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/stats/explore\", properties_3_1).then((_arg_3) => {\n let response_3, decoder_1_2;\n return ((response_3 = _arg_3, (decoder_1_2 = defaultArg(decoder_3, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Analytics_AssetMeta_$reflection()), unwrap(caseStrategy_10), unwrap(extra_10))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_3.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_3.text().then((_arg_4) => {\n let matchValue_1;\n return Promise.resolve((matchValue_1 = fromString(uncurry2(decoder_1_2), _arg_4), (matchValue_1.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_1.fields[0]])])) : (new FSharpResult$2(0, [matchValue_1.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_3])])))).then((_arg_1_2) => (Promise.resolve(_arg_1_2)))))))));\n }))));\n return pr_2.then(void 0, ((arg_1) => (new FSharpResult$2(1, [new FetchError(3, [arg_1])]))));\n }\n catch (exn_1) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn_1])])))));\n }\n })()))))).then((_arg_5) => {\n const res_1 = _arg_5;\n if (res_1.tag === 0) {\n patternInput_2[1](res_1.fields[0]);\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n });\n }));\n pr_3.then();\n fetchLatestInsiderTrades((res_5) => {\n if (res_5.tag === 0) {\n patternInput_5[1](res_5.fields[0]);\n }\n });\n const pr_7 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder_9, data_13, caseStrategy_26, extra_26;\n return ((decoder_9 = Auto_generateBoxedDecoder_Z6670B51(array_type(DataServer_Short_ShortEvent_$reflection()), undefined, undefined), (data_13 = undefined, (caseStrategy_26 = undefined, (extra_26 = undefined, (() => {\n let properties_12;\n try {\n const properties_3_3 = Helper_withProperties(empty(), (properties_12 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_13, empty()), 0)])]), defaultArg(map((data_1_4) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_26, extra_26)(data_1_4))]), properties_12), data_13), properties_12)));\n const pr_6 = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(`${DataServerBaseUrl}/api/short/latest-short`, properties_3_3).then((_arg_9) => {\n let response_7, decoder_1_4;\n return ((response_7 = _arg_9, (decoder_1_4 = defaultArg(decoder_9, Auto_generateBoxedDecoderCached_Z6670B51(array_type(DataServer_Short_ShortEvent_$reflection()), unwrap(caseStrategy_26), unwrap(extra_26))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_7.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_7.text().then((_arg_10) => {\n let matchValue_3;\n return Promise.resolve((matchValue_3 = fromString(uncurry2(decoder_1_4), _arg_10), (matchValue_3.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_3.fields[0]])])) : (new FSharpResult$2(0, [matchValue_3.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_7])])))).then((_arg_1_4) => (Promise.resolve(_arg_1_4)))))))));\n }))));\n return pr_6.then(void 0, ((arg_3) => (new FSharpResult$2(1, [new FetchError(3, [arg_3])]))));\n }\n catch (exn_3) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn_3])])))));\n }\n })()))))).then((_arg_11) => {\n const res_3 = _arg_11;\n if (res_3.tag === 0) {\n patternInput_4[1](res_3.fields[0]);\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n });\n }));\n pr_7.then();\n const pr_9 = PromiseBuilder__Run_212F1D4B(promise, PromiseBuilder__Delay_62FBFDE1(promise, () => {\n let decoder_12, data_17, caseStrategy_34, extra_34;\n return ((decoder_12 = Auto_generateBoxedDecoder_Z6670B51(array_type(Post_$reflection()), undefined, undefined), (data_17 = undefined, (caseStrategy_34 = undefined, (extra_34 = undefined, (() => {\n let properties_15;\n try {\n const properties_3_4 = Helper_withProperties(empty(), (properties_15 = ofArray([new Types_RequestProperties(0, [\"GET\"]), new Types_RequestProperties(1, [keyValueList(Helper_withContentTypeJson(data_17, empty()), 0)])]), defaultArg(map((data_1_5) => cons(new Types_RequestProperties(2, [toString(0, Auto_generateBoxedEncoderCached_437914C6(obj_type, caseStrategy_34, extra_34)(data_1_5))]), properties_15), data_17), properties_15)));\n const pr_8 = PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Helper_fetch(\"/api/asset/insider-trade/demo\", properties_3_4).then((_arg_12) => {\n let response_9, decoder_1_5;\n return ((response_9 = _arg_12, (decoder_1_5 = defaultArg(decoder_12, Auto_generateBoxedDecoderCached_Z6670B51(array_type(Post_$reflection()), unwrap(caseStrategy_34), unwrap(extra_34))), PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (((response_9.ok) ? PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (response_9.text().then((_arg_13) => {\n let matchValue_4;\n return Promise.resolve((matchValue_4 = fromString(uncurry2(decoder_1_5), _arg_13), (matchValue_4.tag === 1) ? (new FSharpResult$2(1, [new FetchError(1, [matchValue_4.fields[0]])])) : (new FSharpResult$2(0, [matchValue_4.fields[0]]))));\n })))) : (Promise.resolve(new FSharpResult$2(1, [new FetchError(2, [response_9])])))).then((_arg_1_5) => (Promise.resolve(_arg_1_5)))))))));\n }))));\n return pr_8.then(void 0, ((arg_4) => (new FSharpResult$2(1, [new FetchError(3, [arg_4])]))));\n }\n catch (exn_4) {\n return PromiseBuilder__Run_212F1D4B_1(promise_1, PromiseBuilder__Delay_62FBFDE1_1(promise_1, () => (Promise.resolve(new FSharpResult$2(1, [new FetchError(0, [exn_4])])))));\n }\n })()))))).then((_arg_14) => {\n const res_4 = _arg_14;\n if (res_4.tag === 0) {\n patternInput_6[1](res_4.fields[0]);\n return Promise.resolve();\n }\n else {\n return Promise.resolve();\n }\n });\n }));\n pr_9.then();\n fetchLatestReviews((res_6) => {\n if (res_6.tag === 0) {\n patternInput_1[1](res_6.fields[0]);\n }\n });\n });\n return createElement(\"div\", createObj(ofArray([[\"style\", {}], (elems_1 = [createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexWrap: \"wrap\",\n }], (elems = [stats(patternInput_1[0], undefined, patternInput[0], patternInput_3[0], patternInput_2[0], patternInput_5[0], patternInput_4[0]), signup()], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems))])]))), insiderTrades(patternInput_6[0]), header(), favorites(), joinNow()], [\"children\", Interop_reactApi_1.Children.toArray(Array.from(elems_1))])])));\n}\n\n","import { createElement } from \"react\";\nimport React from \"react\";\nimport { createObj } from \"./fable_modules/fable-library-js.4.17.0/Util.js\";\nimport { Interop_reactApi } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { singleton, ofArray } from \"./fable_modules/fable-library-js.4.17.0/List.js\";\nimport { StyleImports_createTheme_argsArray } from \"./Feliz.MaterialUI/Styles.js\";\nimport { fromFlatEntries } from \"./Feliz.MaterialUI/Flatten.js\";\nimport { useFeliz_React__React_useState_Static_1505 } from \"./fable_modules/Feliz.2.7.0/React.fs.js\";\nimport { Page_FromUrl_7F866359 } from \"./Pages.js\";\nimport { RouterModule_urlSegments } from \"./fable_modules/Feliz.Router.4.0.0/Router.fs.js\";\nimport { MuiHelpers_createElement } from \"./Feliz.MaterialUI/Mui.js\";\nimport { ThemeProvider } from \"@mui/material\";\nimport { singleton as singleton_1, empty, append, delay, toList } from \"./fable_modules/fable-library-js.4.17.0/Seq.js\";\nimport { Disclaimer } from \"./Disclaimer.js\";\nimport { Asset } from \"./Asset/Asset.js\";\nimport { Market } from \"./Market.js\";\nimport { InsiderTrades } from \"./Asset/InsiderTrades.js\";\nimport { ShortOverview } from \"./Asset/Short.js\";\nimport { User } from \"./User/User.js\";\nimport { PostView } from \"./Content/PostView.js\";\nimport { unwrap } from \"./fable_modules/fable-library-js.4.17.0/Option.js\";\nimport { Search } from \"./Search.js\";\nimport { Notifications } from \"./Notifications.js\";\nimport { Home } from \"./Home.js\";\nimport { LandingPage } from \"./Landing.js\";\nimport { Interop_reactApi as Interop_reactApi_1 } from \"./fable_modules/Feliz.2.7.0/Interop.fs.js\";\nimport { GoogleOAuthProvider } from \"@react-oauth/google\";\nimport { createRoot } from \"react-dom/client\";\nimport \"../assets/style.scss\";\n\n\nexport function drawNotFound(model, dispatch) {\n let elems;\n return createElement(\"div\", createObj(ofArray([[\"style\", {\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: 80 + \"vh\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }], (elems = [createElement(\"span\", {\n style: {\n fontSize: 2.1 + \"rem\",\n display: \"block\",\n marginBottom: 20,\n },\n children: \"Sorry! Could not find the page you are looking for.\",\n }), createElement(\"p\", {\n children: [\"Confirm that the url you have entered is correct.\"],\n })], [\"children\", Interop_reactApi.Children.toArray(Array.from(elems))])])));\n}\n\nexport const theme = StyleImports_createTheme_argsArray(fromFlatEntries(singleton([\"palette.primary.main\", \"#73ab84\"])));\n\nexport function App() {\n let elements, children;\n const location = useFeliz_React__React_useState_Static_1505(Page_FromUrl_7F866359(RouterModule_urlSegments(window.location.pathname + window.location.search, 2)))[0];\n const props_3 = [[\"clientId\", \"768029527019-r3c69btl1u386u0d709ahcl830e4v67k.apps.googleusercontent.com\"], [\"children\", singleton(MuiHelpers_createElement(ThemeProvider, [[\"theme\", theme], (elements = [(children = toList(delay(() => {\n let matchValue;\n return append((matchValue = location, (matchValue.tag === 0) ? (empty()) : ((matchValue.tag === 7) ? (empty()) : singleton_1(createElement(Disclaimer, null)))), delay(() => {\n const matchValue_1 = location;\n switch (matchValue_1.tag) {\n case 1:\n return singleton_1(createElement(Asset, {\n market: matchValue_1.fields[0],\n ticker: matchValue_1.fields[1],\n }));\n case 2:\n return singleton_1(createElement(Market, {\n ticker: matchValue_1.fields[0],\n }));\n case 3:\n return singleton_1(createElement(InsiderTrades, null));\n case 4:\n return singleton_1(createElement(ShortOverview, null));\n case 5:\n return singleton_1(createElement(User, {\n username: matchValue_1.fields[0],\n }));\n case 6:\n return singleton_1(createElement(PostView, {\n post: unwrap(matchValue_1.fields[0]),\n }));\n case 7:\n return singleton_1(createElement(Search, null));\n case 8:\n return singleton_1(createElement(Notifications, null));\n default:\n return (isAuthenticated) ? singleton_1(createElement(Home, null)) : singleton_1(createElement(LandingPage, null));\n }\n }));\n })), createElement(\"div\", {\n children: Interop_reactApi.Children.toArray(Array.from(children)),\n }))], [\"children\", Interop_reactApi.Children.toArray(Array.from(elements))])]))]];\n return Interop_reactApi_1.createElement(GoogleOAuthProvider, createObj(props_3));\n}\n\nexport const root = createRoot(document.getElementById(\"investfora-app\"));\n\nroot.render(createElement(App, null));\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk\"] = self[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [96], () => (__webpack_require__(6262)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","isArrayLike","x","Array","isArray","ArrayBuffer","isView","disposeSafe","Dispose","isDisposable","sameConstructor","y","_Object$getPrototypeO","_Object$getPrototypeO2","Object","getPrototypeOf","constructor","Enumerator","_createClass","iter","_classCallCheck","this","current","key","value","cur","next","done","Error","getEnumerator","e","GetEnumerator","Symbol","iterator","toIterator","en","hasNext","undefined","Lazy","factory","isValueCreated","get","createdValue","padWithZeros","i","length","toString","padStart","dateOffset","date","date1","offset","kind","getTimezoneOffset","int32ToString","radix","ObjectRef","o","idMap","has","set","count","stringHash","s","h","len","charCodeAt","numberHash","combineHashCodes","hashes","h1","structuralHash","_typeof","bigintHash","_Object$getPrototypeO3","GetHashCode","isHashable","arrayHash","Date","getTime","dateHash","values","map","v","id","equalArraysWith","eq","equalArrays","equals","Equals","isEquatable","compareDates","_Object$getPrototypeO4","xKeys","keys","yKeys","sort","equalObjects","xtime","ytime","comparePrimitives","compareArrays","comp","j","compareArraysWith","compare","CompareTo","isComparable","_Object$getPrototypeO5","compareObjects","createObj","fields","_step","obj","_iterator","_createForOfIteratorHelper","n","kv","err","f","WeakMap","curried","uncurry2","f2","a1","a2","curry2","_curried$get","Interop_reactApi","react","shortDays","longDays","shortMonths","longMonths","parseRepeatToken","format","pos","patternChar","tokenLength","internalPos","parseNextChar","parseQuotedString","beginPos","quoteChar","result","foundQuote","currentChar","concat","dateToStringWithCustomFormat","utc","cursorPos","localizedDate","DateTime","token","day","dayOfWeek","precision","Math","pow","floor","millisecond","padEnd","hour","dateOffsetToString","minute","month","second","getHours","getFullYear","utcOffsetText","toLocalTime","sign","hours","parseInt","substring","minutes","_parseQuotedString2","_slicedToArray","nextChar","String","fromCharCode","nextChar2","isMinus","abs","dateToHalfUTCString","half","str","toISOString","indexOf","_provider","_date$offset","_date$offset3","_date$offset2","dateWithOffset","d","replace","dateToStringWithOffset","toUTCString","toLocaleString","toLocaleDateString","toLocaleTimeString","printOffset","getMonth","getDate","getMinutes","getSeconds","getMilliseconds","dateToISOString","dateToStringWithKind","parseRaw","input","fail","trim","isNaN","m","exec","baseDate","timeInSeconds","timeParts","split","hourPart","parseFloat","toUpperCase","getUTCFullYear","getUTCMonth","getUTCDate","offsetInMinutes","parse","detectUTC","arguments","_parseRaw2","tryParse","defValue","contents","_err","create","year","ms","UTC","setUTCFullYear","setFullYear","dateValue","now","utcNow","today","daysInMonth","isLeapYear","toUniversalTime","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","getUTCDay","getDay","add","ts","newDate","oldTzOffset","newTzOffset","addDays","addYears","newMonth","newYear","_daysInMonth","min","addMonths","newMonth_","yearOffset","op_Subtraction","that","symbol","isNumeric","multiply","BigInt","toFixed","dp","toPrecision","sd","toExponential","toHex","Number","asUintN","escape","matches","reg","startAt","global","lastIndex","lastMatchIndex","index","push","callStack","self","seqToString","_cons$name","cons","entries","_ref","_ref2","join","name","Union","cases","tag","fieldStr","withParens","unionToString","splice","other","Record","recordToJSON","_ref3","_ref4","recordToString","recordGetHashCode","thisNames","recordEquals","recordCompareTo","FSharpRef","contentsOrGetter","setter","getter","fsFormatRegExp","formatRegExp","isLessThan","numericCompare","printf","cont","strParts","strIdx","match","matchIndex","createPrinter","continuePrint","arg","toText","toFail","formatReplacement","rep","flags","padLength","toLowerCase","dateToString","zeroFlag","minusFlag","ch","pad","_strParts","_matches","_result","padArg","slice","_len2","args","_key2","_i","_args","_matches$","_padLength","_len3","_key3","str2","shift","_","idx","pattern","padLeft","intPart","decimalPart","_rep$split2","max","repInt","repDecimal","rightZeros","padRight","thousandGroups","thousands","substr","delimiter","xs","from","isRight","search","RegExp","splitters","options","removeEmpty","filter","splits","findSplits","candidate","startIndex","Some","unwrap","opt","some","toArray","defaultArg","defaultValue","mapping","SR_inputWasEmpty","Helpers_allocateArrayFromCons","append","array1","array2","len1","len2","newArray","setItem_1","item_2","i_1","fill","target","targetIndex","start","mapIndexed","source","choose","chooser","array","res","matchValue","value_2","equals_1","fold","folder","state","folder_1","reduce","comparer","xs_1","Compare","sortBy","projection","sortByDescending","equalsWith","length1","length2","tryHead","item","setItem","foldBack2","acc","differentLengths","size","foldBackIndexed2","_arg","sumBy","adder","GetZero","Add","FSharpList","_Record","head","tail","_this","_inherits","xs_1_mut","ys_1_mut","loop","ys_1","matchValue_1","xt","value_1","yt","i_mut","h_mut","t","c","ListEnumerator$1","it","FSharpList_get_Empty","FSharpList_Cons_305B8EAC","FSharpList__get_IsEmpty","FSharpList__get_Length","FSharpList__get_Head","FSharpList__get_Tail","empty","singleton","isEmpty","tryLast","xs_mut","reverse","ofArrayWithTail","tail_1","item_1","ofArray","ys","root","node","t_2","StyleImports_createTheme_argsArray","createTheme","fromFlatEntries","kvs","setProperty","target_mut","key_mut","value_mut","sepIdx","topKey","nestedKey","target_1","enumerator","forLoopVar","Enumerator_notStarted","Enumerator_alreadyFinished","Enumerator_Seq","Enumerator_FromFunctions$1","dispose","Enumerator_noReset","Enumerator_FromFunctions$1_$ctor_58C54629","Enumerator_generateWhileSome","openf","compute","closef","started","curr","x_1","finish","mkSeq","Enumerator_Seq_$ctor_673A07F2","ofSeq","argName","Operators_NullArg","delay","generator","sources","outerOpt","innerOpt","finished","inner","outer","outerOpt_1","inner_1","outer_1","ie","Enumerator_concat","ar","singleton_1","toArray_1","toList","ofArray_1","xs_3","xs_5","ofSeq_1","generate","contains","found","iterate","action","unitVar","e_1","NumberStyles","ReactInterop_useEffectWithDeps","getDisposable","deps","useEffectReact","disposable","React_createDisposable_3A5B6456","useReact_useReducer_2B9E6EA0","update","initialState","useReducer","useReact_useEffectOnce_3A5B6456","effect","calledOnce","useRef","useReact_useEffect_311B4086","useReact_useCallback_1CA17B65","callbackFunction","dependencies","dependencies_1","useCallback","useReact_useRef_1505","initialValue","useReact_useCallbackRef_7C4B0DD6","callback","lastRenderCallbackRef","callbackRef","useLayoutEffectReact","useFeliz_React__React_useState_Static_1505","initial","useState","getRange","unsigned","bitsize","isValid","style","_res","prefix","digits","AllowHexSpecifier","getRadix","invalidDigits","getInvalidDigits","test","regexMatch","_regexMatch","validResponse","_getRange2","umin","umax","_getRange4","_unused","RouterModule_String_$007CPrefix$007C","RouterModule_String_$007CSuffix$007C","suffix","lastIndexOf","endsWith","RouterModule_urlSegments","path","mode","zs","collect","segment","segment_1","_len7","chars","_key7","trimEnd","y_1","decodeURIComponent","query","renderElement","areEqual","memoElementType","memo","name_1","displayName","Internal_memo_Z1716C242","destroyFunc","renderAfterCalled","onChange","ev","urlChanged","onUrlChanged","routeMode","window","location","pathname","hash","RouterModule_onUrlChange","hashMode","navigator","userAgent","addEventListener","removeEventListener","useReact_useEffect_7331F961","disposeOption","ev_1","document","createEvent","initEvent","dispatchEvent","application","withKey","PostProps","Src","SrcId","_callSuper","Page","_Union","_this2","MuiHelpers_reactElement","createElement","MuiHelpers_createElement","el","properties","TypeInfo","fullname","generics","construct","parent","enumCases","fullName","getHashCode","getGenerics","fullnameHash","genHashes","_toConsumableArray","t1","t2","getRecordElements","k1","v1","k2","v2","record_type","anonRecord_type","_len","_key","option_type","generic","array_type","obj_type","string_type","bool_type","int32_type","int64_type","float64_type","info","elemType","getElementType","_t$generics","isGenericType","isEnum","getGenericTypeDefinition","getEnumUnderlyingType","_t$generics2","getEnumValues","parseEnum","_step2","_iterator2","getEnumCase","getUnionCases","getTupleElements","isTuple","isUnion","isRecord","startsWith","getUnionCaseFields","uci","makeUnion","expectedLength","declaringType","_construct","FSharpResult$2","Result_Map","ResultValue","ErrorValue","dashify","separator","charAt","keyValueList","definedCaseRule","kvPair","assign","caseRule","changeCase","tryGetValue","getItemFromDict","ErrorReason","CaseStrategy","_Union2","ExtraCoders","Hash","Coders","_this3","Util_Cache$1","cache","Map","Util_Cache$1_$ctor","Util_Cache$1__GetOrAdd_43981464","__","outArg","dict","k","addToDict","Util_CachedEncoders","Util_CachedDecoders","Util_Casing_lowerFirst","Util_Casing_convert","caseStrategy","fieldName","replacement","limit","_limit","tmp","withGroups","pLast","groups","_s","sub1","sub2","guidRegex","guidRegexNoHyphen","guidRegexHex","hyphenateGuid","wsTrimAndLowered","_len5","_key5","op_Addition","op_Multiply","fromInt32","fromFloat32","trunc","toInt64","asIntN","toFloat64","_bitsize","isNegative","maxValue","getMaxValue","getPrefix","DateTimeOffset","checkOffsetInRange","offsetMatch","signedRound","ceil","days","totalDays","firstDot","firstColon","r","prototype","toJSON","Uint8Array","MapTreeLeaf$2","MapTreeLeaf$2_$ctor_5BDDA1","MapTreeLeaf$2__get_Key","MapTreeLeaf$2__get_Value","MapTreeNode$2","_MapTreeLeaf$","left","right","MapTreeNode$2_$ctor_Z39DE9543","MapTreeNode$2__get_Left","MapTreeNode$2__get_Right","MapTreeNode$2__get_Height","MapTreeModule_sizeAux","acc_mut","m_mut","m2","mn","MapTreeModule_size","MapTreeModule_mk","l","hl","hr","m2_1","m_2","MapTreeModule_rebalance","m2_2","m_3","m2_3","t1h","t2h","t2$0027","t2l","matchValue_2","t1$0027","matchValue_3","t1r","MapTreeModule_add","MapTreeModule_empty","MapTreeModule_tryFind","comparer_mut","k_mut","MapTreeModule_iterOpt","f_mut","MapTreeModule_iter","MapTreeModule_mapiOpt","l2","r2","MapTreeModule_mapi","MapTreeModule_MapIterator$2","stack","MapTreeModule_collapseLHS","stack_mut","isEmpty_1","empty_1","rest","MapTreeModule_mkIterator","MapTreeModule_current","MapTreeModule_alreadyFinished","MapTreeModule_notStarted","MapTreeModule_mkIEnumerator","MapTreeModule_moveNext","FSharpMap","tree","this$","combineHash","activePatternResult","FSharpMap__ComputeHashCode","that_1","e1","e2","m1","e1c","e2c","map_1","toStringTag","b1","b2","compareWith","kvp1","kvp2","FSharpMap__ContainsKey","FSharpMap__get_Item","arr","MapTreeModule_copyToArray","FSharpMap__get_Count","p","thisArg","iterate_1","FSharpMap_$ctor","MapTreeModule_find","MapTreeModule_mem","table","FSharpMap__Add","tryFind","FSharpMap__TryFind","FSharpMap_Empty","SetTreeLeaf$1","SetTreeLeaf$1_$ctor_2B595","SetTreeLeaf$1__get_Key","SetTreeNode$1","_SetTreeLeaf$","SetTreeNode$1_$ctor_5F465FC9","SetTreeNode$1__get_Left","SetTreeNode$1__get_Right","SetTreeNode$1__get_Height","SetTreeModule_countAux","t_mut","value_3","tn","SetTreeModule_count","SetTreeModule_mk","t2_1","SetTreeModule_rebalance","t2_3","t_3","t2_4","t2_2","SetTreeModule_add","c_1","SetTreeModule_empty","SetTreeModule_mem","SetTreeModule_iter","SetTreeModule_SetIterator$1","SetTreeModule_collapseLHS","x2","xn","SetTreeModule_mkIterator","SetTreeModule_current","SetTreeModule_alreadyFinished","SetTreeModule_notStarted","SetTreeModule_mkIEnumerator","SetTreeModule_moveNext","SetTreeModule_compare","l1_mut","l2_mut","SetTreeModule_compareStacks","l1","x1_3","x2_3","x1n_2","x2n_2","matchResult","t1_6","x1_4","t2_6","x2_4","x1n_3","x2n_3","matchResult_1","t1_7","x1_5","t2_7","x2_5","x1n_4","x2n_4","c_3","x2n_5","c_2","matchResult_2","t1_8","x1_6","t2_8","x2_6","x1n_5","x2n_6","matchResult_3","t1_2","x1","x2_1","x1n","x2n","matchResult_4","t1_4","x1_2","x2_2","x1n_1","x2n_1","SetTreeModule_copyToArray","SetTreeModule_ofSeq","fold_1","SetTreeModule_ofArray","fold_2","SetTreeModule_ofList","e_mut","SetTreeModule_mkFromEnumerator","FSharpSet","FSharpSet__ComputeHashCode","FSharpSet__get_Comparer","FSharpSet__get_Tree","FSharpSet__get_Count","FSharpSet__Contains","set$","Helpers_isUndefined","genericMsg","msg","newLine","JSON","stringify","errorToString","error","reason_1","fromValue","decoder","fromString","SyntaxError","message","string","sbyte","path_1","value_1_1","isFinite","tryParse_3","byte","int16","uint16","int","uint32","int64","tryParse_4","float","decodeMaybeNull","badPathError","fieldNames","currentPath","requestedIndex","copyOfStruct","vArray","list","tokens","acc_1","andThen","cb","unwrapWith","errors","Getters$1","_this_1","required","Field","fieldValue","field","At","decoder_2","firstPath","firstValue","tupledArg","field_1","curPath","curValue","curValue_1","at","Raw","decoder_4","optional","fieldName_1","decoder_5","path_2","fieldNames_1","decoder_7","firstPath_1","firstValue_1","lastValue","optionalAt","decoder_9","v_2","reason","object","builder","getters","Getters$1_$ctor_4A51B60E","head_1","tuple2","decoder1","decoder2","decoder_3","path_3","value_4","a3","uncurry3","decoder_1","arg10$0040","arg20$0040","toMap","MapTreeModule_ofArray","MapTreeModule_ofList","patternInput","MapTreeModule_mkFromEnumerator","MapTreeModule_ofSeq","toSet","FSharpSet_$ctor","mixedArray","decoders","arg_2","extra","predicate","find","name_3","uci_1","makeUnion_1","values_1","map_2","fi","autoDecoder","autoDecodeRecordsAndUnions","isOptional","decoderRef","extra_1","_ref5","_ref6","makeRecord","decoderInfos","reduceRight","delegateArg","delegateArg_1","foldBack","autoObject","decoder_13","decoder_14","decoder_15","tryFind_1","value_5","enumValue","path_4","value_7","path_5","value_8","enumValue_1","path_6","value_10","t_4","path_7","value_11","enumValue_2","x_2","y_2","path_8","value_13","t_5","path_9","value_14","matchValue_4","enumValue_3","x_3","y_3","path_10","value_16","t_6","path_11","value_17","matchValue_5","enumValue_4","x_4","y_4","path_12","value_19","t_7","path_13","value_20","matchValue_6","enumValue_5","x_5","y_5","clo_1","arg_1","t_8","path_14","value_21","path_15","value_22","option","path_16","value_23","d_18","keyDecoder","valueDecoder","decoders_1","path_17","value_24","autoObject2","path_18","value_25","path_19","value_26","decoders_1_mut","errors_mut","append_1","runner","oneOf","path_20","value_28","ctor","d1","decoder_16","path_21","value_29","matchValue_7","path_22","value_31","path_23","value_32","path_24","value_33","path_25","value_34","path_26","value_35","path_27","value_36","tryParse_6","datetime","path_28","value_37","tryParse_7","datetimeOffset","path_29","value_38","tryParse_8","timespan","path_30","value_39","tryParse_2","guid","_arg_6","makeExtra","map_3","Auto_generateBoxedDecoderCached_Z6670B51","caseStrategy_1","toString_12","map_4","Auto_generateBoxedDecoder_Z6670B51","seq","toString_3","seconds","milliseconds","toString_4","unit","space","autoEncodeRecordsAndUnions","skipNullField","encoder","encoderRef","setters","targetKey","encode_1","autoEncoder","source_1","case_","getUnionFields","fieldTypes","target_2","encode_2","encoders","value_9","fullname_1","encoder_2","Value","encoder_3","keyType","valueEncoder","value_12","keyEncoder","clo_2","_arg_1","activePatternResult_1","Auto_generateBoxedEncoderCached_437914C6","skipNullField_1","toString_5","Auto_generateBoxedEncoder_437914C6","disclaimerId","DisclaimerStorage","Accepted","DisclaimerStorage_$reflection","ReviewDraft","_Record2","Rating","TargetPrice","PeriodType","PeriodSpan","PeriodDate","PeriodAllTime","Comment$","CurrentStep","LastUpdated","Comment","ReviewDraft_$reflection","getDraftId","assetId","deleteDraft","localStorage","removeItem","FeedPreferences","_Record3","IncludeShort","FeedPreferences_$reflection","Disclaimer","elems_2","setAccepted","getItem","hasAcceptedDisclaimer","elems_1","elems","children","backgroundColor","color","fontSize","padding","display","alignItems","href","textDecoration","Children","className","onClick","acceptDisclaimer","RegisterRequest","Username","Password","Email","LoginResponse","Result","Message","BanUntil","OAuthAuthResponse","_Record4","Token","_this4","OAuthAuthResponse_$reflection","OAuthRegisterRequest","_Record5","_this5","AppleAuthRequest","_Record6","Code","IdToken","_this6","GenericResponse","_Record8","_this8","GenericResponse_$reflection","SearchEntry","_Record10","Name","Extra","Type","TypeId","Link","Asset","Group","_this10","SearchEntry_$reflection","Market","_Record11","Id","Ticker","Country","NumAssets","_this11","Market_$reflection","_Record12","ISIN","Currency","Delisted","_this12","Asset_$reflection","AssetReviewForm","_Record13","AssetId","PeriodEnd","_this13","User","_Record16","Official","_this16","User_$reflection","Reply","_Record17","ParentId","Content","Votes","NumVotes","IsMine","Published","VoteState","Removed","_this17","Reply_$reflection","ReplyForm","_Record18","_this18","RepliesResponse","_Record19","Replies","_this19","RepliesResponse_$reflection","LinkPreview","_Record20","Title","Desc","Url","ImageUrl","_this20","QuoteEntry","_Record21","Close","Date$","_this21","QuoteEntry_$reflection","ShareSplit","_Record22","FactorBase","FactorChange","_this22","ShareSplit_$reflection","PreviousReviewInfo","_Record23","_this23","PostReviewInfo","_Record24","Until","Expired","LastClose","ClosestClose","Previous","_this24","ShortEventPosition","_Record25","InstitutionId","Institution","PrevNumShares","NewNumShares","_this25","PostShortInfo","_Record26","NewPercentage","PrevPercentage","PositionDate","Positions","_this26","InsiderTradeExchangeInfo","_Record27","AvgPrice","_this27","PostInsiderInfo","_Record28","Insider","NumShares","NewTotal","Controlled","AssetSharesThousands","SourceUrl","ExchangeInfo","_this28","Post","_Record29","NumReplies","Deleted","Updated","ReviewInfo","AssetInfo","GroupInfo","ShortInfo","InsiderInfo","_this29","Post_$reflection","ReportForm","_Record30","Target","TargetId","Reason","_this30","UserInfo","_Record31","UserId","Active","Joined","IsMe","_this31","UserInfo_$reflection","UserStatistics","_Record32","NumReviews","Score","_this32","UserStatistics_$reflection","UserReview","_Record33","ReviewId","AssetType","_this33","UserReview_$reflection","ImageForm","_Record34","Filename","_this34","Analytics_ReviewEntry","_Record40","AssetTicker","MarketTicker","Likes","_this40","Analytics_ReviewEntry_$reflection","Analytics_AssetCount","_Record41","Num","_this41","Analytics_AssetCount_$reflection","Analytics_AssetMeta","_Record45","_this45","Analytics_AssetMeta_$reflection","Notifications_EntityInfo","_Record48","_this48","Notifications_Notification","_Record49","Notified","Read","Blob","_this49","Notifications_Notification_$reflection","DataServer_Quote_QuoteSummaryEntry","_Record51","Change","VolumeChange","_this51","DataServer_Quote_QuoteSummaryEntry_$reflection","DataServer_Quote_PeriodAverage","_Record52","Avg","PeriodStart","_this52","DataServer_Quote_PeriodAverage_$reflection","DataServer_Quote_QuoteSummary","_Record53","Last","Prev","Week","Month","Quarter","Year","AvgQuoteLastTen","AvgQuotePrevTen","AvgVolumeLastTen","AvgVolumePrevTen","_this53","DataServer_Quote_QuoteSummary_$reflection","DataServer_Short_ShareActivityDate","_Record54","Raises","Covers","_this54","DataServer_Short_ShareActivityDate_$reflection","DataServer_Short_TopShortEntry","_Record55","Percentage","ShortDate","_this55","DataServer_Short_TopShortEntry_$reflection","DataServer_Short_LargestShortEntry","_Record56","LastPrice","LastPriceDate","_this56","DataServer_Short_LargestShortEntry_$reflection","DataServer_Short_ShortEvent","_Record57","ChangePercent","OldPercent","NewPercent","_this57","DataServer_Short_ShortEvent_$reflection","DataServer_Short_ShortPosition","_Record58","Percent","LastCloseDate","_this58","DataServer_Short_ShortPosition_$reflection","DataServer_InsiderTrade_InsiderTradeEvent","_Record59","_this59","DataServer_InsiderTrade_InsiderTradeEvent_$reflection","DataServer_InsiderTrade_InsiderTradeEventValuation","_Record60","EstValueKs","_this60","DataServer_InsiderTrade_InsiderTradeEventValuation_$reflection","DataServer_InsiderTrade_InsiderTradeEventPercentage","_Record61","_this61","DataServer_InsiderTrade_InsiderTradeEventPercentage_$reflection","DataServer_InsiderTrade_InsiderTradeSummary","_Record62","NumTrades","PrevNumTrades","NumBought","PrevNumBought","NumSold","PrevNumSold","TotalEstimatedValue","PrevTotalEstimatedValue","TotalEstimatedValueBought","PrevTotalEstimatedValueBought","TotalEstimateValueSold","PrevTotalEstimatedValueSold","MostTrades","MostBoughtByNum","MostBoughtByValue","HighestTradeValue","MostSoldByNum","MostSoldByValue","_this62","DataServer_InsiderTrade_InsiderTradeSummary_$reflection","DataServer_InsiderTrade_InsiderTradeAssetEntry","_Record63","EstValueK","_this63","DataServer_InsiderTrade_InsiderTradeAssetEntry_$reflection","Quote_Quote","_Record64","Volume","_this64","Quote_Quote_$reflection","Quote_MovingAverage","_Record65","NumDays","LastQuote","MA","_this65","Quote_MovingAverage_$reflection","Quote_MovingAverageSummary","_Record66","Twenty","Fifty","Hundred","TwoHundred","_this66","Quote_MovingAverageSummary_$reflection","Valuation_AssetKeyNumbers","_Record67","LastShort","_this67","Short_Institution","_Record68","_this68","Short_ShortTop","_Record69","Shares","_this69","Short_ShortSummary","_Record70","Top","_this70","Short_ShortSummary_$reflection","Short_Event","_Record71","Points","_this71","Short_Event_$reflection","Types_HttpRequestHeaders","Types_RequestProperties","FetchError","Helper_fetch","url","init","fetch","Helper_withContentTypeJson","data","headers","Helper_withProperties","custom","utcStringToLocalTimeSpan","dt","utcStringToTimePeriod","utcDateToLocalDate","toISO8601","parseAsUtc","toShortAmount","x$0027","toShortAmountL","bn","mill","toPercentageChange","old","last","toPositivePercentageChange","change","shortPercentageToString","quoteToString","formatSpacedNumber","minimumFractionDigits","maximumFractionDigits","useGrouping","checkError","status","reload","PromiseBuilder__Delay_62FBFDE1","then","f1","er","Promise","reject","resolve","er_1","catch","er_2","er_3","PromiseBuilder__Run_212F1D4B","success","PromiseBuilder","Dimensions_TextSmall","Dimensions_TextExtraSmall","Dimensions_DefaultPadding","DefaultBorder","StockRating","_Union3","StockRating__ToInt","StockRating_FromInt_Z524259A4","StockRating__ToColorCode","StockRating__ToTextColorCode","ReportReason","_Union4","ReportReason__ToInt","LoadingIndicator_skeleton","styles","LoadingIndicator_postLoadingIndicator","LoadingIndicator_loadingIndicatorSmall","width","height","LoadingIndicator_loadingIndicator","LoadingIndicator_assetListEntryLoading","Alert_alert","onClose","marginRight","Alert_errorAlert","errMsg","dismiss","Alert_SnackError","alert_SnackErrorInputProps","promise","setTimeout","_arg_2","Alert_snackError","errMsg_1","Dialog_dialogTitle","txt","gap","fontWeight","Dialog_dialogContent","flexDirection","Dialog_dialogActions","justifyContent","Dialog_Dialog","dialog_DialogInputProps","ref","closeEffect","event","event_1","Tooltip_Tooltip","tooltip_TooltipInputProps","active","Tooltip_wrapTooltip","Tooltip_tooltipHeader","header","tooltipTitle","fontStyle","paddingLeft","marginLeft","smallIconButton","cursor","margin","border","background","pillButtonSmall","title","textAlign","groupButtonLeft","isActive","groupButtonRight","assetListHolder","marginBottom","maxWidth","assetListEntry","ticker","link","Image_avatar","src","alt","Image_iconAvatar","icon","Image_userCircle","userId","isLarge","randHash","User_usernameText","postRemoved","apply","ReportObject","Report","reportInputProps","patternInput_2","Processing","Reported","updateState","patternInput_1","reportForm","elements","FormControl","InputLabel","Select","_arg_3","rr","MenuItem","TextField","ErrorMsg","elems_3","_arg_5","elems_4","body","data_1","caseStrategy_3","extra_3","requestPath","ReportObject__ReportUrl","properties_2","properties_3","data_1_1","toString_1","PromiseBuilder__Run_212F1D4B_1","promise_1","PromiseBuilder__Delay_62FBFDE1_1","response_1","decoder_1_1","ok","text","_arg_1_1","exn","ContentElement","parseTag","closeIdx","openIdx","diff","beforeOpen","afterOpen","tagStart","tagEnd","hrefOpen","hrefClose","tagDiff","tryGetLink","parseContent","x_mut","y_mut","iter_mut","beforeTag","newList","remaining","parseNext","contentInputProps","createFunction","content","useMemo","whiteSpace","overflowX","LinkForm","Text$","Text","tools","formId","onAdd","onImageSelect","updateLinkForm","linkForm","setValidLink","commitLink","lf","toLocaleLowerCase","linkText","a$0027","setAttribute","innerText","deleteContents","insertNode","getElementById","innerHTML","insertLink","borderBottom","lowered","parentNode","getSelection","anchorNode","focusNode","rangeCount","range","getRangeAt","Range","lastChild","setStart","childNodes","setEnd","dummyNode","appendChild","getSelectedText","preventDefault","kc","e_2","e_3","kc_1","_arg_4","textInput","html","emitChange","emit","contentEditable","onInput","onPaste","onBlur","onFocus","CommentForm","commentFormInputProps","trySetContent","console","log","EditForm","editFormInputProps","post","setError","paddingTop","ParentContent","ParentContent__ReplyFieldId","Model","Parent","FormActive","DeleteForm","model","inputId","focus","tryFocusInput","newReplies","fieldId","updateInputField","res_1","x_6","res_2","newRepliesList_2","res_3","res_4","replyHeader","reply","replyFooter","dispatch","isAuthenticated","replyId","pr_1","ParentContent__ToDeleteUrl_1505","deleteReply","ParentContent__ToUpvoteUrl_1505","upvote","ParentContent__ToDownvoteUrl_1505","downvote","view","xs_13","userSelect","caseStrategy_2","extra_2","fetchAll","elems_6","elems_5","emailVerified","replyForm","ReplyForm_1","postReply","deleteForm","drawDeleteForm","tgt","repliesInputProps","numReplies","replies","PostType","postInputProps","elems_10","elems_9","elems_8","type$0027","compId","eventTime","utcStringToLocalDaySpan","borderRadius","si","flexWrap","elems_7","ii","tradeColor","indicator","flexColumn$0027","infoLabel","contentText","txt_1","flexGrow","nt","ap","wasExchanged","drawInsiderTradePost","children_8","children_2","children_6","th$0027","td$0027","percentageChange","includePlus","borderRight","p_2","includePlus_1","children_4","textOverflow","p_1","drawShortEventPost","ei","Expanded","MenuOpen","CompId","bind$0040","bind$0040_1","bind$0040_2","Count","deleteFormInputProps","setProcessing","setErrMsg","targetText","PostType__get_DeleteUrl","updateInfo","upd","drawRating","post_1","PostType__get_UpvoteUrl","PostType__get_DownVoteUrl","downVote","PostComponent","postComponentInputProps","onRemove","model_1","menuAnchor","onEdited","didDelete","Report_1","drawPostHeader","Popper","posted","flex","rating","textTransform","letterSpacing","ri","tp","cc","isLower","cc_1","lc","change_1","drawPostReviewInfo","EditForm_1","lp","iu","maxHeight","drawLinkPreview","Post_1","PostType_1","host","DataServerBaseUrl","ReportPeriod","ReportPeriod__ToInt","ReportPeriod__ToHttpVar","ReportPresentation","SelectedPeriod","Presentation","MissingInfo","Entries","Summary","MovingAverage","Splits","reduction","reduction_1","fetchQuotes","period","fetchSplits","market","Point","Dato","Kurs","Volum","quotesChart","properties_7","top","bottom","XAxis","dataKey","tickFormatter","tick","properties_1","tick_1","YAxis","Tooltip","Legend","Line","stroke","strokeWidth","dot","properties_5","properties_6","Label","ReferenceLine","Interop_reactApi_1","LineChart","combinedChart","yAxisId","orientation","tick_2","Bar","ComposedChart","subSectionTitle","hideSmall","AssetQuote","assetQuoteInputProps","fetchSummary","fetchMovingAverage","ReportPeriod_FromInt_Z524259A4","minHeight","ResponsiveContainer","drawGraph","lastQuote","q_1","summaryToEntry","f_1","textInlineLoading","marginTop","children_10","lastClose","q_2","s_1","q_3","s_2","q_4","s_3","q_5","s_4","q_6","s_5","q_7","s_6","q_8","s_7","q_9","s_8","q_10","s_9","q_11","l_1","s_10","ltNone","children_12","aqlt","percentDiff","l_3","s_11","ltNone_1","children_14","matchValue_8","av","avg","percentDiff_1","matchValue_9","children_16","drawSummary","q","tdAbove","hideSmall_1","m_1","m_4","m_5","m_6","m_7","th","m_8","drawMovingAverage","PeriodOption","PeriodOption__ToId","Period","po","PeriodOption__ToHttpVar","AssetInsiderTrade","assetInsiderTradeInputProps","PeriodOption_FromId_Z524259A4","elems_13","elems_12","elems_11","buys","sells","numBoughtShares","b","numSoldShares","b_1","numSharesData","boughKs","i_2","soldKs","i_3","valuationData","numText","graphBox","notEnoughData","paddingBottom","properties_23","properties_22","elements_1","properties_21","properties_19","properties_20","Cell","Pie","PieChart","properties_34","properties_33","elements_3","properties_32","elements_2","properties_30","properties_31","handleAds","interval","setInterval","adsbygoogle","pushAd","clearInterval","FeedEntry","isProd","gad","AssetBanner","_defineProperty","SquareAd","InsiderTradeOverview","ReportInterval","ReportInterval__ToInt","SelectedInterval","fetchShort","Aksjer","Prosent","numSharesChart","BarChart","percentageChart","AssetShort","assetShortInputProps","ReportInterval_FromInt_Z524259A4","drawMissingInfo","TopShort","topShortInputProps","s$0027_1","s$0027","loadingIndicator","ValidComment","PostForm","postFormInputProps","autoActive","onPublish","comment","updateModel","disabled","hasComment","textContent","Target__ToRequestPath","req","Target__ToPostType","User_1","loggedInUserId","loggedInUsername","HashSet","items","hashMap","HashSet__Add_2B595","HashSet__Clear","HashSet__Contains_2B595","arrayIndex","HashSet__get_Count","HashSet__Remove_2B595","HashSet__TryFindIndex_2B595","findIndex","v_1","clear","distinctBy","hashSet","Array_distinctBy","PeriodSpan__ToValue","PeriodSpan__ToNumber","TargetStep","Step","AutoOpenMode","WithTargetPrice","ValidPeriod","ValidTarget","RegisterModal","defaultPeriod","updateDraft","periodType","periodSpan","periodDate","draftId","storeDraft","Step__ToDraftId","model$0027","model$0027_1","model$0027_2","PeriodType__Morph_Z721C83C5","PeriodType__UpdateSpanLength_Z524259A4","PeriodType__SetExactDate_7F9DDECF","x_8","model$0027_3","pd","ps","PeriodSpan_FromValue","Step_FromInt_Z524259A4","sectionTitle","summaryTitle","inputHolder","summaryHolder","elevatedText","backwardsButton","prev","drawRatingSummary","drawPeriodSummary","ReviewForm","reviewFormInputProps","onPublished","autoOpenMode","tryGetReviewDraft","lu","asInt","parse_1","Input","drawSetPeriod","asFloat","parse_2","drawSetTarget","currency","onSubmit","drawGiveComment","model_2","validRating","allValid","PeriodSpan__Validate","PeriodType__Validate","request","PeriodSpan__ToDateString","PeriodType__ToPeriodEnd","toString_2","registerModal","drawPublished","ratingButton","drawSetRating","Target__ToPostFormTarget","Target_1","Target__ToSignInText","Posts","LastRevId","LastId","LastInsiderId","LastShortEventDate","ShortSkips","More","lse","x_7","a","lastId","lastRevId","lastInsiderId","z_1","z","lowest","Int32Array","z_2","lowest_1","y_7","y_6","z_3","lowest_2","y_10","y_9","l_2","z_4","lowest_3","y_13","y_12","newLowest","z_5","lastShortEventDate","fetchPosts","seDt","se","lastReviewId","lastPostId","lastInsiderTradeId","seSkip","x_9","_arg_7","x_11","_arg_8","x_12","_arg_9","x_14","_arg_10","x_15","seDt$0027","ActiveForm","AssetForms","assetFormsInputProps","setActive","PostFeed","postFeedInputProps","includeAds","append_2","desc","cantPublishInfo","loginOrRegister","xs_4","assetKeyNumbersDecoder","Required","objectArg","objectArg_1","Price","Optional","objectArg_2","objectArg_3","objectArg_4","AssetRSI","RSI","AssetRSI_$reflection","RelativeStrengthIndex","relativeStrengthIndexInputProps","rsi","showReferenceLines","patternInput_3","showClose","rsi_1","properties_16","properties_9","properties_17","formatter","delegateArg_2","label","tick_3","properties_11","tick_4","delegateArg_3","delegateArg_1_1","delegateArg_2_1","rsiChart","FormControlLabel","checked","Checkbox","latest","l_4","drawAppInfo","lineHeight","TechnicalAnalysis","technicalAnalysisInputProps","SectionView","ContentView","ContentView__ToKey","MarketId","AssetName","MarketName","KeyNumbers","CurrentSection","CurrentContent","IsFavorite","MaxFavorites","ActiveReview","res_5","DrawActiveReview","drawActiveReviewInputProps","summaryView","zIndex","drawSummarySection","arg_3","arg_5","arg_7","keyNumber","extraInfo","keyBox","kn","kn_2","ls","drawKeyNumbers","assetid","ai","li$0027","cw","assetInputProps","toLocaleUpperCase","marketid","assetname","marketname","marketTicker","assetTicker","fetchAssetInfo","extra_4","extraDecoders","random","newGuid","int64_1","int64_2","fetchFavoriteState","fetchActive","maxFavorites","textDecorationLine","isFavorite","unFavorite","favorite","drawAssetInfo","Sort","SortOrder","MarketInfo","Assets","AvgRating","marketInputProps","fetchMarketInfo","fetchAssets","loadingBar","assets","link_1","listAssets","DailyChanges","HighestPercentage","HighestValuation","LargestPositions","LatestShort","section","shortInfo","DataPoint","Opp","Ned","drawDailyChanges","legend","properties_10","utcDateToLocalDayAndMonth","stackId","assetNameColumn","valuationColumn","lastPrice","numShares","lastPriceDate","dateShortColumn","shortDate","drawLargestValue","drawLargestPositions","ShortOverview","fetchDailyChanges","fetchHighestPercentage","fetchHighestValuation","fetchLargestPositions","fetchLatest","LargestTransactions","LargestPercentages","aiInfo","periodIndicator","highlightedHolder","highlighted","currentValue","prevValue","changeColor","pctChange","highlightedAsset","title_1","content_1","desc_1","compNumbers","compValue","p_3","diff_1","comp_1","n_1","n_2","n_3","n_4","n_5","dateBoughtColumn","drawLargestPercentages","InsiderTrades","fetchTransactions","fetchPercentages","overflowY","integralRangeStep","step","stop","zero","stepFn","stepComparedWithZero","stepGreaterThanZero","comparedWithLast","makeRangeStepFunction","st_1","Enumerator_unfold","ImageSource","Image","Data","FileExt","Uploaded","upload","type","accept","fileList","files","filename","file_1","SR_indexOutOfBounds","FSharpList__get_Item_Z524259A4","fileExt","parseFileExt","reader","FileReader","b64","w","canvas","ctx","image","scaled","getContext","onload","newW","newH","drawImage","toDataURL","readAsDataURL","alert","imageFormInputProps","minWidth","img_1","img","ImageForm_1","dispatch_1","LastReviewId","fetchUserPosts","revId","Feed","feedInputProps","Reviews","ShowAllReviews","DrawImage","uInfo","showForm","setShowForm","didChange","DrawBaseInfo","showReport","setShowReport","drawUserInfo","stats","statEntry","entry","drawStats","drawReviews","reviews","aboveThreshold","reviewsToShow","drawMostRecentReviews","ui","userInputProps","username","fetchReviews","fetchStatistics","fetchUserInfo","PostSource","LoadResult","Props","Source","Load","loadPost","drawPost","PostView","postViewInputProps","props","initialModel","PostSource_FromProps_6B69E059","Term","Results","EventId","typeToName","Search","clearTimeout","term","trySearch","drawResults","PostInfo","NotificationContent","Entry","Notifications","fetchNotifications","EntityInfoDecode","fromString_1","arg_15","dismissNotifications","drawNotification","fallBackAvatar","xs_2","LastAssetPostId","LastInsiderTradeId","storeFeedPreference","lastAssetPostId","y_8","y_11","y_15","y_14","fetchFeed","apId","itId","includeShort","insider","excludeShort","tryGetFeedPreferences","LatestReviews","LatestInsiderTrades","fetchLatestReviews","fetchLatestInsiderTrades","Home","Register_Model","PasswordRepeat","AcceptTerms","ValidUsername","ValidEmail","ValidPassword","Recaptched","Successful","Register_Message","Register_validateCredentials","un","email","pw1","pw2","splitted","usernameLength","usernameChars","isMatch","email_1","pwLength","Register_update","resp","Register_OAuthTarget","Register_OAuthRegister","register_OAuthRegisterInputProps","patternInput_4","terms","trimmed_1","trimmed","Register_registrationView","handleGoogleToken","handleAppleToken","props_4","renderProps","react_apple_login","GoogleLogin","shape","theme","onSuccess","x_10","credential","onError","code","e_4","e_5","e_6","e_7","Register_validateRecaptcha","react_google_recaptcha","p1","p2","Register_tryRegister","Register_Register","until","banReason","appleRegisterForm","googleRegisterForm","setBanned","banned","grf","arf","body_3","data_5","caseStrategy_12","extra_12","properties_3_1","data_1_2","response_3","decoder_1_2","_arg_1_2","exn_1","numDays_1","arg_4","r_1","authorization","id_token","user","numDays","u","demoData","demoGraph","properties_8","properties_4","Interop_reactApi_2","demoPost","votes","elems_14","paddingRight","insiderTrades","signup","demoShort","favorites","joinNow","latestContentHolder","latestListHolder","latestListItemHolder","hide","latestDate","latestLoadingIndicator","drawLatestShort","mostViewed","mostFavorite","mostShorted","explore","latestInsiderTrades","latestShort","xs_7","drawMostFavorite","drawExplore","plusSign","LandingPage","patternInput_5","patternInput_6","decoder_6","data_9","caseStrategy_18","extra_18","properties_3_2","data_1_3","response_5","decoder_1_3","_arg_1_3","exn_2","caseStrategy_10","extra_10","data_13","caseStrategy_26","extra_26","properties_12","properties_3_3","data_1_4","response_7","decoder_1_4","_arg_1_4","exn_3","_arg_11","decoder_12","data_17","caseStrategy_34","extra_34","properties_15","properties_3_4","data_1_5","_arg_12","response_9","decoder_1_5","_arg_13","_arg_1_5","exn_4","_arg_14","res_6","App","ticker_1","sid","urlParams","URLSearchParams","Route_$007CQuery$007C_$007C","Page_FromUrl_7F866359","props_3","ThemeProvider","GoogleOAuthProvider","createRoot","render","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","__esModule","ns","def","getOwnPropertyNames","forEach","definition","defineProperty","enumerable","g","globalThis","Function","prop","hasOwnProperty","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","bind","__webpack_exports__"],"sourceRoot":""}