[{"data":1,"prerenderedAt":5117},["ShallowReactive",2],{"wrun-open-editor-url":3,"indicators:core-concepts/type-system":4},"https://openmarket.xyz/chart/#wrun-open=v1",{"slug":5,"filePath":6,"frontmatter":7,"rawMarkdown":12,"tree":13},"core-concepts/type-system","core-concepts/type-system.md",{"title":8,"description":9,"order":10,"section":11},"Type system","A comprehensive guide to the wrun type system: static typing, how types are inferred from literals, explicit casts, the per-bar value (there is no series type)…",15,"core-concepts","---\ntitle: \"Type system\"\ndescription: \"A comprehensive guide to the wrun type system: static typing, how types are inferred from literals, explicit casts, the per-bar value (there is no series type)…\"\norder: 15\nsection: \"core-concepts\"\n---\n\n\u003C!-- source: docs/indicators/core-concepts/type-system.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Type system\n\nA comprehensive guide to the wrun type system: static typing, how\ntypes are inferred from literals, explicit casts, the per-bar value (there\nis no series type), and the messages the compiler prints when a type does\nnot fit. A\nwrun indicator is AssemblyScript: every value has a fixed width, nothing\nconverts implicitly, and there is no `any`.\n\n## Introduction\n\nThe compiler type-checks the whole file before it runs. There are no\nimplicit conversions between numeric widths, no coercion between strings\nand numbers, and no union types. That strictness is the point: a mismatch\nis a compile error with a line and column, never a wrong number on bar\n1,400.\n\nAt its core the system has two categories of values: **primitives**\n(`f64`, `i32`, `bool`, `string`) and **references** (arrays, maps, class\ninstances). What it does not have is a series type, a value with a whole\nhistory behind it; an indicator's central idea is one value per bar, read\nthrough a function, with history kept explicitly. This page covers\ndeclarations and inference, the primitives, the per-bar model, collections,\nconversion rules, and a complete example.\n\n## Variable declarations and type inference\n\n`let` and `const` declare variables, as in TypeScript. The type comes from\nthe annotation if there is one, otherwise from the initializer, and the\nrule to remember is the literal rule: **a whole-number literal is an\n`i32`, a literal with a decimal point is an `f64`.**\n\n```text\nlet price = 45000.5;     // f64\nlet count = 0;           // i32, because the literal has no point\nlet flag = true;         // bool\nlet name = \"BTCUSDT\";    // string\n\nlet value: f64 = 0;      // annotated: f64 (the literal widens)\nlet cursor: i32 = 0;     // annotated: i32\n```\n\nOnce inferred, the type is fixed. `let count = 0; count = 2.5;` is refused\nwith `Conversion from type 'f64' to 'i32' requires an explicit cast`,\nwhich is also the message you get when a param (always `f64`) meets a\nclass constructor (always `i32`): write `new Sma(i32(p_period()))`.\n\n`const` fixes the binding, not the contents: a `const window = new\nStaticArray\u003Cf64>(50)` is filled and overwritten freely; only `window =\n...` is refused. Module-level TA objects are `let`, because `onStart()`\nrebuilds them at the chosen period.\n\nThe three lifetimes (a local, a module-level variable, a value with\nhistory) are in `core-variables.md`; this page is about what the values\nare.\n\n## Primitive types\n\n**`f64`** is the 64-bit float and the type of everything that crosses the\nhost boundary. Arithmetic on two `f64` values is an `f64`; dividing by zero\ngives `Infinity` or `NaN`, never an error, so guard denominators. `NaN` is\nthe missing value: `isNaN(x)` tests it, `x == x` is false when `x` is\n`NaN`, and every comparison with `NaN` is false.\n\n**`i32`** is the 32-bit integer: periods, counters, cursors, loop bounds,\n`Cross.update()`'s answer. Integer division truncates\n(`7 / 2` is `3`). `i64` exists for epoch-second math (`time-and-sessions.md`).\n\n**`bool`** comes from comparisons and logical operators. A bare number in an\n`if` compiles (nonzero is true), but write the comparison out: `x > 0.0`\nsays what you mean, and `!isNaN(x)` is the only reliable test for a missing\nvalue.\n\n**`string`** is immutable text with `length`, `charCodeAt`, `indexOf`,\n`startsWith`, `+` between strings, and `==` / `\u003C` by code unit. Strings stay\ninside the module and reach the chart only through a declared string slot;\nbuilding one allocates, so per-bar text goes through the line builder\n(`sb_clear`, `sb_text`, `sb_f64`). There is no number-to-string coercion:\n`\"close \" + close` is refused with `Type 'f64' is not assignable to type\n'String'`; write `close.toString()`.\n\n## The per-bar value\n\nAn indicator input is a function: `bar.close()` returns this bar's close\n(and `in_\u003Cname>()` a declared input's), inside `onBar()`. The host calls\n`onBar()` once per bar, oldest\nfirst, so a line you write once still produces a value at every point in\ntime, but the past is not addressable.\n\nWhat holds history:\n\n| Need | Form |\n| --- | --- |\n| the previous bar's close | a module-level `prevClose` assigned at the end of `onBar()` |\n| a 20-bar average, a 14-bar RSI | `new Sma(20)`, `new Rsi(14)`: the class keeps the window, `update(x)` folds one value |\n| the highest high of 20 bars, the close 5 bars back | a `History` per series, read with `max()` and `ago(5)` ([Stats, history and lists](../functions/stats-history-lists.md#history-xn-from-pine)); by hand, a `StaticArray\u003Cf64>` ring buffer of 20 with a cursor |\n| a running total | a module-level accumulator |\n\nImmutability is built in (an input has no setter), and module scope is\nwhere history lives: anything that must survive a call is declared there,\nbecause a local is gone when `onBar()` returns.\n\n### OHLCV data structure\n\nA candle is not one value with six columns. The chart's own candle is\nread one field at a time through `bar`, with no declaration:\n\n```text\nbar.open();\nbar.high();\nbar.low();\nbar.close();\nbar.volume();\nbar.time();   // the timestamp, epoch seconds\n```\n\nA file with no `input` line runs on the chart's own candles. When a file\ndeclares inputs (another feed, a pinned market or interval), the first\n`input` is the primary: it defines the grid (market and interval) every\nother input aligns to ([Data sources](data-sources.md)). There is no\n`priceIndex`: a class takes whichever number you hand it, so\n`sma.update(bar.close())` and `sma.update((bar.high() + bar.low()) / 2.0)`\nare the same call over different sources.\n\n## Arrays and collections\n\nArrays are typed and homogeneous. `StaticArray\u003Cf64>` is a fixed-size\nblock allocated once; `Array\u003Cf64>` grows with `push`; `f64[]` and\n`string[]` literals work; `Map\u003CK, V>` is a key-value store. The element\ntype is fixed at declaration and enforced: pushing a string onto an\n`Array\u003Cf64>` is refused with `Type 'String' is not assignable to type\n'f64'`. Arrays are references: passing one to a function passes the same\nstorage, so a function that writes into it writes into yours. The\nallocation rule applies to all of them: build them in `onStart()` or at\nmodule scope, never per bar (`collections.md`).\n\n```text\nconst periods: i32[] = [10, 20, 50];\nconst window = new StaticArray\u003Cf64>(200);\nconst weights = new Map\u003Cstring, f64>();\n```\n\n## Data sources\n\nAn indicator reads every feed through one form,\n`input(name, source.field, options)`,\nwhere `source` is a source namespace and `field` one of its members (the\nchart's own candle needs no declaration: `bar.close()` and the other\n`bar` fields read it); every input is an `f64`, and the source decides\nwhat the number means. The catalog, the `missing` policy for sparse feeds, and the named\nrefusals for feeds a host cannot fetch are in `data-sources.md`.\n\n## Type conversion and casting\n\nNothing converts on its own. The rules:\n\n- **`f64` to `i32`:** `i32(x)` truncates toward zero. Periods, cursors,\n  and loop bounds derived from a param need it.\n- **`i32` to `f64`:** `f64(n)`. Writing a counter to an output needs it,\n  and so does mixing an `i32` into float arithmetic.\n- **`bool` to a number:** a ternary, `flag ? 1.0 : 0.0`.\n- **A number to a string:** `.toString()`, and only for module-internal\n  text.\n- **Never implicit:** `f64 * i32` is refused; cast one side.\n\n```text\nconst period = i32(p_period());          // f64 to i32\nout_count(f64(hits));                    // i32 to f64\nout_is_long(fast > slow ? 1.0 : 0.0);    // bool to f64\nconst label = \"n=\" + hits.toString();    // i32 to string, inside the module\n```\n\n**Type mismatch errors** name the rule. The ones you will meet:\n\n| Message | Cause | Fix |\n| --- | --- | --- |\n| `AS200: Conversion from type 'f64' to 'i32' requires an explicit cast.` | a param or float where an integer goes | `i32(...)` |\n| `TS2322: Type 'bool' is not assignable to type 'i32'.` | a comparator returning a comparison | return `a > b ? 1 : a \u003C b ? -1 : 0` |\n| `TS2322: Type 'String' is not assignable to type 'f64'.` | a string pushed onto a numeric array | keep the array homogeneous |\n| `TS2329: Index signature is missing in type 'f64'.` | `close[1]` on a number | keep the previous value in a variable |\n| `TS1110: Type expected.` | a function without a return type | annotate: `function f(x: f64): f64` |\n| `AS100: Not implemented: Closures` | an arrow function reading a local of the enclosing function | read module-level state instead (`lambdas-and-reducers.md`) |\n| `AS100: Not implemented: Iterators` | `for (const x of xs)` | an index loop |\n\n## Best practices\n\nAnnotate every module-level `let` and every function signature (the\nannotation is documentation, and it stops the literal rule from making a\nfloat an integer); feed inputs straight into the classes that keep the\nwindows; keep params, inputs, and outputs at the top as top-level\nstatements, state under them, `onStart()` and `onBar()` last.\n\n## Complete example: multi-source momentum\n\nA momentum indicator over three sources: the close for an RSI, the funding\nrate averaged over 24 bars, and liquidations (sparse, so `missing:\n\"zero\"` makes a quiet bar a `0`). The extreme condition is a data-only\ngate and a mark drawn only where it holds.\n\n```typescript sample=cc-types-momentum\n// Configuration: the RSI length, the RSI level, and the funding level.\nparam(\"rsi_period\", 14, { min: 2, max: 100, description: \"RSI period\" });\nparam(\"extreme_rsi\", 30, { min: 1, max: 99, description: \"RSI at or below this is oversold\" });\nparam(\"funding_threshold\", 0.01, { min: 0, max: 100, description: \"Funding below minus this means shorts are paying, in the feed's own units\" });\n// Data sources: price, funding, liquidations.\ninput(\"close\", ohlcv.close);\ninput(\"funding\", funding.rate_close, { description: \"Funding rate at the bar's close\" });\ninput(\"liqs\", liquidations.liquidations, { missing: \"zero\", description: \"Liquidation volume, 0 on quiet bars\" });\n// Visualization: the RSI and its level in one pane, a mark only on extreme bars.\noutput(\"rsi\", line, lower, { color: \"#2962FF\", width: 2, description: \"Relative Strength Index\" });\noutput(\"extreme_rsi\", line, lower, { color: \"#FF6B35\", width: 1, description: \"Extreme RSI level\" });\noutput(\"extreme\", shape, lower, { color: \"#00BA88\", shape_where: \"is_extreme\", description: \"Oversold, shorts paying, liquidations printing\" });\noutput(\"is_extreme\", none, lower);\n\nlet rsi = new Rsi(14);\nlet avgFunding = new Sma(24); // 24 bars of funding, one day on a 1h chart\nlet liqAvg = new Sma(6); // six bars of liquidation volume\nlet extremeLevel: f64 = 30.0;\nlet fundingThreshold: f64 = 0.01;\n\nfunction onStart(): void {\n  rsi = new Rsi(i32(p_rsi_period()));\n  extremeLevel = p_extreme_rsi();\n  fundingThreshold = p_funding_threshold();\n}\n\nfunction onBar(): void {\n  const rsiValue = rsi.update(bar.close()); // f64 in, f64 out\n  const fundingAvg = avgFunding.update(in_funding());\n  const liqRecent = liqAvg.update(in_liqs());\n  // Three bools, combined; NaN on any side makes its comparison false, so a warming source never fires.\n  const oversold: bool = rsiValue \u003C= extremeLevel;\n  const shortsPaying: bool = fundingAvg \u003C -fundingThreshold;\n  const liquidating: bool = liqRecent > 0.0;\n  const extreme: bool = oversold && shortsPaying && liquidating;\n  if (isNaN(rsiValue)) return;\n  out_rsi(rsiValue);\n  out_extreme_rsi(extremeLevel);\n  out_extreme(rsiValue); // the mark sits on the RSI line\n  out_is_extreme(extreme ? 1.0 : 0.0); // bool to f64\n}\n```\n\nWatch the types flow: three `f64` inputs feed three classes that return\n`f64`, those numbers feed comparisons that return `bool`, the bools combine\ninto one `bool`, and the ternary turns it into the `f64` gate output that\nthe `shape` output reads through `shape_where`. Nothing converts on its\nown, and every step is checked before the first bar runs.\n",{"type":14,"children":15,"data":5110,"position":5112},"root",[16,26,29,30,69,70,88,89,105,106,246,247,262,263,362,363,441,442,551,552,651,652,686,687,703,704,917,918,1043,1044,1134,1135,1402,1403,1418,1419,1507,1508,1522,1524,1891,1892,1924,1925,1940,1941,1974,1975,2037,2038,2166,2167,2182,2183,2376,2377,2412,2413,2427,2428,2586,2587,2602,2603,2617,2618,2949,2950,2994,2995,3023,3025,3526,3527,3542,3543,3608,3609,3624,3625,3677,3678,4970,4971],{"type":17,"value":18,"position":19},"comment"," source: docs/indicators/core-concepts/type-system.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":20,"end":23},{"line":21,"column":21,"offset":22},1,0,{"line":21,"column":24,"offset":25},132,131,{"type":27,"value":28},"text","\n",{"type":27,"value":28},{"type":31,"tagName":32,"properties":33,"children":34,"position":66},"element","p",{},[35,45,59],{"type":27,"value":36,"position":37},"A comprehensive guide to the wrun type system: static typing, how\ntypes are inferred from literals, explicit casts, the per-bar value (there\nis no series type), and the messages the compiler prints when a type does\nnot fit. A\nwrun indicator is AssemblyScript: every value has a fixed width, nothing\nconverts implicitly, and there is no ",{"start":38,"end":41},{"line":39,"column":21,"offset":40},5,148,{"line":42,"column":43,"offset":44},10,38,484,{"type":31,"tagName":46,"properties":47,"children":48,"position":56},"code",{},[49],{"type":27,"value":50,"position":51},"any",{"start":52,"end":53},{"line":42,"column":43,"offset":44},{"line":42,"column":54,"offset":55},43,489,{"start":57,"end":58},{"line":42,"column":43,"offset":44},{"line":42,"column":54,"offset":55},{"type":27,"value":60,"position":61},".",{"start":62,"end":63},{"line":42,"column":54,"offset":55},{"line":42,"column":64,"offset":65},44,490,{"start":67,"end":68},{"line":39,"column":21,"offset":40},{"line":42,"column":64,"offset":65},{"type":27,"value":28},{"type":31,"tagName":71,"properties":72,"children":73,"position":84},"h2",{},[74],{"type":27,"value":75,"position":76},"Introduction",{"start":77,"end":81},{"line":78,"column":79,"offset":80},12,4,495,{"line":78,"column":82,"offset":83},16,507,{"start":85,"end":87},{"line":78,"column":21,"offset":86},492,{"line":78,"column":82,"offset":83},{"type":27,"value":28},{"type":31,"tagName":32,"properties":90,"children":91,"position":102},{},[92],{"type":27,"value":93,"position":94},"The compiler type-checks the whole file before it runs. There are no\nimplicit conversions between numeric widths, no coercion between strings\nand numbers, and no union types. That strictness is the point: a mismatch\nis a compile error with a line and column, never a wrong number on bar\n1,400.",{"start":95,"end":98},{"line":96,"column":21,"offset":97},14,509,{"line":99,"column":100,"offset":101},18,7,802,{"start":103,"end":104},{"line":96,"column":21,"offset":97},{"line":99,"column":100,"offset":101},{"type":27,"value":28},{"type":31,"tagName":32,"properties":107,"children":108,"position":243},{},[109,118,136,144,156,163,175,180,193,199,212,218,235],{"type":27,"value":110,"position":111},"At its core the system has two categories of values: ",{"start":112,"end":115},{"line":113,"column":21,"offset":114},20,804,{"line":113,"column":116,"offset":117},54,857,{"type":31,"tagName":119,"properties":120,"children":121,"position":131},"strong",{},[122],{"type":27,"value":123,"position":124},"primitives",{"start":125,"end":128},{"line":113,"column":126,"offset":127},56,859,{"line":113,"column":129,"offset":130},66,869,{"start":132,"end":133},{"line":113,"column":116,"offset":117},{"line":113,"column":134,"offset":135},68,871,{"type":27,"value":137,"position":138},"\n(",{"start":139,"end":140},{"line":113,"column":134,"offset":135},{"line":141,"column":142,"offset":143},21,2,873,{"type":31,"tagName":46,"properties":145,"children":146,"position":153},{},[147],{"type":27,"value":148,"position":149},"f64",{"start":150,"end":151},{"line":141,"column":142,"offset":143},{"line":141,"column":100,"offset":152},878,{"start":154,"end":155},{"line":141,"column":142,"offset":143},{"line":141,"column":100,"offset":152},{"type":27,"value":157,"position":158},", ",{"start":159,"end":160},{"line":141,"column":100,"offset":152},{"line":141,"column":161,"offset":162},9,880,{"type":31,"tagName":46,"properties":164,"children":165,"position":172},{},[166],{"type":27,"value":167,"position":168},"i32",{"start":169,"end":170},{"line":141,"column":161,"offset":162},{"line":141,"column":96,"offset":171},885,{"start":173,"end":174},{"line":141,"column":161,"offset":162},{"line":141,"column":96,"offset":171},{"type":27,"value":157,"position":176},{"start":177,"end":178},{"line":141,"column":96,"offset":171},{"line":141,"column":82,"offset":179},887,{"type":31,"tagName":46,"properties":181,"children":182,"position":190},{},[183],{"type":27,"value":184,"position":185},"bool",{"start":186,"end":187},{"line":141,"column":82,"offset":179},{"line":141,"column":188,"offset":189},22,893,{"start":191,"end":192},{"line":141,"column":82,"offset":179},{"line":141,"column":188,"offset":189},{"type":27,"value":157,"position":194},{"start":195,"end":196},{"line":141,"column":188,"offset":189},{"line":141,"column":197,"offset":198},24,895,{"type":31,"tagName":46,"properties":200,"children":201,"position":209},{},[202],{"type":27,"value":203,"position":204},"string",{"start":205,"end":206},{"line":141,"column":197,"offset":198},{"line":141,"column":207,"offset":208},32,903,{"start":210,"end":211},{"line":141,"column":197,"offset":198},{"line":141,"column":207,"offset":208},{"type":27,"value":213,"position":214},") and ",{"start":215,"end":216},{"line":141,"column":207,"offset":208},{"line":141,"column":43,"offset":217},909,{"type":31,"tagName":119,"properties":219,"children":220,"position":230},{},[221],{"type":27,"value":222,"position":223},"references",{"start":224,"end":227},{"line":141,"column":225,"offset":226},40,911,{"line":141,"column":228,"offset":229},50,921,{"start":231,"end":232},{"line":141,"column":43,"offset":217},{"line":141,"column":233,"offset":234},52,923,{"type":27,"value":236,"position":237}," (arrays, maps, class\ninstances). What it does not have is a series type, a value with a whole\nhistory behind it; an indicator's central idea is one value per bar, read\nthrough a function, with history kept explicitly. This page covers\ndeclarations and inference, the primitives, the per-bar model, collections,\nconversion rules, and a complete example.",{"start":238,"end":239},{"line":141,"column":233,"offset":234},{"line":240,"column":241,"offset":242},26,42,1276,{"start":244,"end":245},{"line":113,"column":21,"offset":114},{"line":240,"column":241,"offset":242},{"type":27,"value":28},{"type":31,"tagName":71,"properties":248,"children":249,"position":258},{},[250],{"type":27,"value":251,"position":252},"Variable declarations and type inference",{"start":253,"end":256},{"line":254,"column":79,"offset":255},28,1281,{"line":254,"column":64,"offset":257},1321,{"start":259,"end":261},{"line":254,"column":21,"offset":260},1278,{"line":254,"column":64,"offset":257},{"type":27,"value":28},{"type":31,"tagName":32,"properties":264,"children":265,"position":359},{},[266,281,288,300,307],{"type":31,"tagName":46,"properties":267,"children":268,"position":278},{},[269],{"type":27,"value":270,"position":271},"let",{"start":272,"end":275},{"line":273,"column":21,"offset":274},30,1323,{"line":273,"column":276,"offset":277},6,1328,{"start":279,"end":280},{"line":273,"column":21,"offset":274},{"line":273,"column":276,"offset":277},{"type":27,"value":282,"position":283}," and ",{"start":284,"end":285},{"line":273,"column":276,"offset":277},{"line":273,"column":286,"offset":287},11,1333,{"type":31,"tagName":46,"properties":289,"children":290,"position":297},{},[291],{"type":27,"value":292,"position":293},"const",{"start":294,"end":295},{"line":273,"column":286,"offset":287},{"line":273,"column":99,"offset":296},1340,{"start":298,"end":299},{"line":273,"column":286,"offset":287},{"line":273,"column":99,"offset":296},{"type":27,"value":301,"position":302}," declare variables, as in TypeScript. The type comes from\nthe annotation if there is one, otherwise from the initializer, and the\nrule to remember is the literal rule: ",{"start":303,"end":304},{"line":273,"column":99,"offset":296},{"line":207,"column":305,"offset":306},39,1508,{"type":31,"tagName":119,"properties":308,"children":309,"position":354},{},[310,319,330,337,348],{"type":27,"value":311,"position":312},"a whole-number literal is an\n",{"start":313,"end":316},{"line":207,"column":314,"offset":315},41,1510,{"line":317,"column":21,"offset":318},33,1539,{"type":31,"tagName":46,"properties":320,"children":321,"position":327},{},[322],{"type":27,"value":167,"position":323},{"start":324,"end":325},{"line":317,"column":21,"offset":318},{"line":317,"column":276,"offset":326},1544,{"start":328,"end":329},{"line":317,"column":21,"offset":318},{"line":317,"column":276,"offset":326},{"type":27,"value":331,"position":332},", a literal with a decimal point is an ",{"start":333,"end":334},{"line":317,"column":276,"offset":326},{"line":317,"column":335,"offset":336},45,1583,{"type":31,"tagName":46,"properties":338,"children":339,"position":345},{},[340],{"type":27,"value":148,"position":341},{"start":342,"end":343},{"line":317,"column":335,"offset":336},{"line":317,"column":228,"offset":344},1588,{"start":346,"end":347},{"line":317,"column":335,"offset":336},{"line":317,"column":228,"offset":344},{"type":27,"value":60,"position":349},{"start":350,"end":351},{"line":317,"column":228,"offset":344},{"line":317,"column":352,"offset":353},51,1589,{"start":355,"end":356},{"line":207,"column":305,"offset":306},{"line":317,"column":357,"offset":358},53,1591,{"start":360,"end":361},{"line":273,"column":21,"offset":274},{"line":317,"column":357,"offset":358},{"type":27,"value":28},{"type":14,"children":364},[365],{"type":31,"tagName":366,"properties":367,"children":371,"data":-1},"pre",{"class":368,"style":369,"tabindex":370},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[372],{"type":31,"tagName":46,"properties":373,"children":376},{"class":374},[375],"language-text",[377,387,388,396,397,405,406,414,415,423,424,432,433],{"type":31,"tagName":378,"properties":379,"children":381},"span",{"class":380},"line",[382],{"type":31,"tagName":378,"properties":383,"children":384},{},[385],{"type":27,"value":386},"let price = 45000.5;     // f64",{"type":27,"value":28},{"type":31,"tagName":378,"properties":389,"children":390},{"class":380},[391],{"type":31,"tagName":378,"properties":392,"children":393},{},[394],{"type":27,"value":395},"let count = 0;           // i32, because the literal has no point",{"type":27,"value":28},{"type":31,"tagName":378,"properties":398,"children":399},{"class":380},[400],{"type":31,"tagName":378,"properties":401,"children":402},{},[403],{"type":27,"value":404},"let flag = true;         // bool",{"type":27,"value":28},{"type":31,"tagName":378,"properties":407,"children":408},{"class":380},[409],{"type":31,"tagName":378,"properties":410,"children":411},{},[412],{"type":27,"value":413},"let name = \"BTCUSDT\";    // string",{"type":27,"value":28},{"type":31,"tagName":378,"properties":416,"children":417},{"class":380},[418],{"type":31,"tagName":378,"properties":419,"children":420},{},[421],{"type":27,"value":422},"",{"type":27,"value":28},{"type":31,"tagName":378,"properties":425,"children":426},{"class":380},[427],{"type":31,"tagName":378,"properties":428,"children":429},{},[430],{"type":27,"value":431},"let value: f64 = 0;      // annotated: f64 (the literal widens)",{"type":27,"value":28},{"type":31,"tagName":378,"properties":434,"children":435},{"class":380},[436],{"type":31,"tagName":378,"properties":437,"children":438},{},[439],{"type":27,"value":440},"let cursor: i32 = 0;     // annotated: i32",{"type":27,"value":28},{"type":31,"tagName":32,"properties":443,"children":444,"position":548},{},[445,453,466,473,486,493,505,513,524,530,543],{"type":27,"value":446,"position":447},"Once inferred, the type is fixed. ",{"start":448,"end":450},{"line":335,"column":21,"offset":449},1880,{"line":335,"column":451,"offset":452},35,1914,{"type":31,"tagName":46,"properties":454,"children":455,"position":463},{},[456],{"type":27,"value":457,"position":458},"let count = 0; count = 2.5;",{"start":459,"end":460},{"line":335,"column":451,"offset":452},{"line":335,"column":461,"offset":462},64,1943,{"start":464,"end":465},{"line":335,"column":451,"offset":452},{"line":335,"column":461,"offset":462},{"type":27,"value":467,"position":468}," is refused\nwith ",{"start":469,"end":470},{"line":335,"column":461,"offset":462},{"line":471,"column":276,"offset":472},46,1960,{"type":31,"tagName":46,"properties":474,"children":475,"position":483},{},[476],{"type":27,"value":477,"position":478},"Conversion from type 'f64' to 'i32' requires an explicit cast",{"start":479,"end":480},{"line":471,"column":276,"offset":472},{"line":471,"column":481,"offset":482},69,2023,{"start":484,"end":485},{"line":471,"column":276,"offset":472},{"line":471,"column":481,"offset":482},{"type":27,"value":487,"position":488},",\nwhich is also the message you get when a param (always ",{"start":489,"end":490},{"line":471,"column":481,"offset":482},{"line":491,"column":126,"offset":492},47,2080,{"type":31,"tagName":46,"properties":494,"children":495,"position":502},{},[496],{"type":27,"value":148,"position":497},{"start":498,"end":499},{"line":491,"column":126,"offset":492},{"line":491,"column":500,"offset":501},61,2085,{"start":503,"end":504},{"line":491,"column":126,"offset":492},{"line":491,"column":500,"offset":501},{"type":27,"value":506,"position":507},") meets a\nclass constructor (always ",{"start":508,"end":509},{"line":491,"column":500,"offset":501},{"line":510,"column":511,"offset":512},48,27,2121,{"type":31,"tagName":46,"properties":514,"children":515,"position":521},{},[516],{"type":27,"value":167,"position":517},{"start":518,"end":519},{"line":510,"column":511,"offset":512},{"line":510,"column":207,"offset":520},2126,{"start":522,"end":523},{"line":510,"column":511,"offset":512},{"line":510,"column":207,"offset":520},{"type":27,"value":525,"position":526},"): write ",{"start":527,"end":528},{"line":510,"column":207,"offset":520},{"line":510,"column":314,"offset":529},2135,{"type":31,"tagName":46,"properties":531,"children":532,"position":540},{},[533],{"type":27,"value":534,"position":535},"new Sma(i32(p_period()))",{"start":536,"end":537},{"line":510,"column":314,"offset":529},{"line":510,"column":538,"offset":539},67,2161,{"start":541,"end":542},{"line":510,"column":314,"offset":529},{"line":510,"column":538,"offset":539},{"type":27,"value":60,"position":544},{"start":545,"end":546},{"line":510,"column":538,"offset":539},{"line":510,"column":134,"offset":547},2162,{"start":549,"end":550},{"line":335,"column":21,"offset":449},{"line":510,"column":134,"offset":547},{"type":27,"value":28},{"type":31,"tagName":32,"properties":553,"children":554,"position":648},{},[555,568,574,586,593,605,611,622,628,641],{"type":31,"tagName":46,"properties":556,"children":557,"position":565},{},[558],{"type":27,"value":292,"position":559},{"start":560,"end":562},{"line":228,"column":21,"offset":561},2164,{"line":228,"column":563,"offset":564},8,2171,{"start":566,"end":567},{"line":228,"column":21,"offset":561},{"line":228,"column":563,"offset":564},{"type":27,"value":569,"position":570}," fixes the binding, not the contents: a ",{"start":571,"end":572},{"line":228,"column":563,"offset":564},{"line":228,"column":510,"offset":573},2211,{"type":31,"tagName":46,"properties":575,"children":576,"position":583},{},[577],{"type":27,"value":578,"position":579},"const window = new StaticArray\u003Cf64>(50)",{"start":580,"end":581},{"line":228,"column":510,"offset":573},{"line":352,"column":188,"offset":582},2252,{"start":584,"end":585},{"line":228,"column":510,"offset":573},{"line":352,"column":188,"offset":582},{"type":27,"value":587,"position":588}," is filled and overwritten freely; only ",{"start":589,"end":590},{"line":352,"column":188,"offset":582},{"line":352,"column":591,"offset":592},62,2292,{"type":31,"tagName":46,"properties":594,"children":595,"position":602},{},[596],{"type":27,"value":597,"position":598},"window = ...",{"start":599,"end":600},{"line":352,"column":591,"offset":592},{"line":233,"column":39,"offset":601},2306,{"start":603,"end":604},{"line":352,"column":591,"offset":592},{"line":233,"column":39,"offset":601},{"type":27,"value":606,"position":607}," is refused. Module-level TA objects are ",{"start":608,"end":609},{"line":233,"column":39,"offset":601},{"line":233,"column":471,"offset":610},2347,{"type":31,"tagName":46,"properties":612,"children":613,"position":619},{},[614],{"type":27,"value":270,"position":615},{"start":616,"end":617},{"line":233,"column":471,"offset":610},{"line":233,"column":352,"offset":618},2352,{"start":620,"end":621},{"line":233,"column":471,"offset":610},{"line":233,"column":352,"offset":618},{"type":27,"value":623,"position":624},", because ",{"start":625,"end":626},{"line":233,"column":352,"offset":618},{"line":233,"column":500,"offset":627},2362,{"type":31,"tagName":46,"properties":629,"children":630,"position":638},{},[631],{"type":27,"value":632,"position":633},"onStart()",{"start":634,"end":635},{"line":233,"column":500,"offset":627},{"line":233,"column":636,"offset":637},72,2373,{"start":639,"end":640},{"line":233,"column":500,"offset":627},{"line":233,"column":636,"offset":637},{"type":27,"value":642,"position":643},"\nrebuilds them at the chosen period.",{"start":644,"end":645},{"line":233,"column":636,"offset":637},{"line":357,"column":646,"offset":647},36,2409,{"start":649,"end":650},{"line":228,"column":21,"offset":561},{"line":357,"column":646,"offset":647},{"type":27,"value":28},{"type":31,"tagName":32,"properties":653,"children":654,"position":683},{},[655,664,676],{"type":27,"value":656,"position":657},"The three lifetimes (a local, a module-level variable, a value with\nhistory) are in ",{"start":658,"end":661},{"line":659,"column":21,"offset":660},55,2411,{"line":126,"column":662,"offset":663},17,2495,{"type":31,"tagName":46,"properties":665,"children":666,"position":673},{},[667],{"type":27,"value":668,"position":669},"core-variables.md",{"start":670,"end":671},{"line":126,"column":662,"offset":663},{"line":126,"column":646,"offset":672},2514,{"start":674,"end":675},{"line":126,"column":662,"offset":663},{"line":126,"column":646,"offset":672},{"type":27,"value":677,"position":678},"; this page is about what the values\nare.",{"start":679,"end":680},{"line":126,"column":646,"offset":672},{"line":681,"column":39,"offset":682},57,2555,{"start":684,"end":685},{"line":659,"column":21,"offset":660},{"line":681,"column":39,"offset":682},{"type":27,"value":28},{"type":31,"tagName":71,"properties":688,"children":689,"position":699},{},[690],{"type":27,"value":691,"position":692},"Primitive types",{"start":693,"end":696},{"line":694,"column":79,"offset":695},59,2560,{"line":694,"column":697,"offset":698},19,2575,{"start":700,"end":702},{"line":694,"column":21,"offset":701},2557,{"line":694,"column":697,"offset":698},{"type":27,"value":28},{"type":31,"tagName":32,"properties":705,"children":706,"position":914},{},[707,728,735,746,752,764,771,783,789,801,807,818,824,836,842,855,861,873,880,891,897,908],{"type":31,"tagName":119,"properties":708,"children":709,"position":723},{},[710],{"type":31,"tagName":46,"properties":711,"children":712,"position":720},{},[713],{"type":27,"value":148,"position":714},{"start":715,"end":718},{"line":500,"column":716,"offset":717},3,2579,{"line":500,"column":563,"offset":719},2584,{"start":721,"end":722},{"line":500,"column":716,"offset":717},{"line":500,"column":563,"offset":719},{"start":724,"end":726},{"line":500,"column":21,"offset":725},2577,{"line":500,"column":42,"offset":727},2586,{"type":27,"value":729,"position":730}," is the 64-bit float and the type of everything that crosses the\nhost boundary. Arithmetic on two ",{"start":731,"end":732},{"line":500,"column":42,"offset":727},{"line":591,"column":733,"offset":734},34,2684,{"type":31,"tagName":46,"properties":736,"children":737,"position":743},{},[738],{"type":27,"value":148,"position":739},{"start":740,"end":741},{"line":591,"column":733,"offset":734},{"line":591,"column":305,"offset":742},2689,{"start":744,"end":745},{"line":591,"column":733,"offset":734},{"line":591,"column":305,"offset":742},{"type":27,"value":747,"position":748}," values is an ",{"start":749,"end":750},{"line":591,"column":305,"offset":742},{"line":591,"column":357,"offset":751},2703,{"type":31,"tagName":46,"properties":753,"children":754,"position":761},{},[755],{"type":27,"value":148,"position":756},{"start":757,"end":758},{"line":591,"column":357,"offset":751},{"line":591,"column":759,"offset":760},58,2708,{"start":762,"end":763},{"line":591,"column":357,"offset":751},{"line":591,"column":759,"offset":760},{"type":27,"value":765,"position":766},"; dividing by zero\ngives ",{"start":767,"end":768},{"line":591,"column":759,"offset":760},{"line":769,"column":100,"offset":770},63,2733,{"type":31,"tagName":46,"properties":772,"children":773,"position":780},{},[774],{"type":27,"value":775,"position":776},"Infinity",{"start":777,"end":778},{"line":769,"column":100,"offset":770},{"line":769,"column":662,"offset":779},2743,{"start":781,"end":782},{"line":769,"column":100,"offset":770},{"line":769,"column":662,"offset":779},{"type":27,"value":784,"position":785}," or ",{"start":786,"end":787},{"line":769,"column":662,"offset":779},{"line":769,"column":141,"offset":788},2747,{"type":31,"tagName":46,"properties":790,"children":791,"position":798},{},[792],{"type":27,"value":793,"position":794},"NaN",{"start":795,"end":796},{"line":769,"column":141,"offset":788},{"line":769,"column":240,"offset":797},2752,{"start":799,"end":800},{"line":769,"column":141,"offset":788},{"line":769,"column":240,"offset":797},{"type":27,"value":802,"position":803},", never an error, so guard denominators. ",{"start":804,"end":805},{"line":769,"column":240,"offset":797},{"line":769,"column":538,"offset":806},2793,{"type":31,"tagName":46,"properties":808,"children":809,"position":815},{},[810],{"type":27,"value":793,"position":811},{"start":812,"end":813},{"line":769,"column":538,"offset":806},{"line":769,"column":636,"offset":814},2798,{"start":816,"end":817},{"line":769,"column":538,"offset":806},{"line":769,"column":636,"offset":814},{"type":27,"value":819,"position":820}," is\nthe missing value: ",{"start":821,"end":822},{"line":769,"column":636,"offset":814},{"line":461,"column":113,"offset":823},2821,{"type":31,"tagName":46,"properties":825,"children":826,"position":833},{},[827],{"type":27,"value":828,"position":829},"isNaN(x)",{"start":830,"end":831},{"line":461,"column":113,"offset":823},{"line":461,"column":273,"offset":832},2831,{"start":834,"end":835},{"line":461,"column":113,"offset":823},{"line":461,"column":273,"offset":832},{"type":27,"value":837,"position":838}," tests it, ",{"start":839,"end":840},{"line":461,"column":273,"offset":832},{"line":461,"column":314,"offset":841},2842,{"type":31,"tagName":46,"properties":843,"children":844,"position":852},{},[845],{"type":27,"value":846,"position":847},"x == x",{"start":848,"end":849},{"line":461,"column":314,"offset":841},{"line":461,"column":850,"offset":851},49,2850,{"start":853,"end":854},{"line":461,"column":314,"offset":841},{"line":461,"column":850,"offset":851},{"type":27,"value":856,"position":857}," is false when ",{"start":858,"end":859},{"line":461,"column":850,"offset":851},{"line":461,"column":461,"offset":860},2865,{"type":31,"tagName":46,"properties":862,"children":863,"position":870},{},[864],{"type":27,"value":865,"position":866},"x",{"start":867,"end":868},{"line":461,"column":461,"offset":860},{"line":461,"column":538,"offset":869},2868,{"start":871,"end":872},{"line":461,"column":461,"offset":860},{"line":461,"column":538,"offset":869},{"type":27,"value":874,"position":875}," is\n",{"start":876,"end":877},{"line":461,"column":538,"offset":869},{"line":878,"column":21,"offset":879},65,2872,{"type":31,"tagName":46,"properties":881,"children":882,"position":888},{},[883],{"type":27,"value":793,"position":884},{"start":885,"end":886},{"line":878,"column":21,"offset":879},{"line":878,"column":276,"offset":887},2877,{"start":889,"end":890},{"line":878,"column":21,"offset":879},{"line":878,"column":276,"offset":887},{"type":27,"value":892,"position":893},", and every comparison with ",{"start":894,"end":895},{"line":878,"column":276,"offset":887},{"line":878,"column":733,"offset":896},2905,{"type":31,"tagName":46,"properties":898,"children":899,"position":905},{},[900],{"type":27,"value":793,"position":901},{"start":902,"end":903},{"line":878,"column":733,"offset":896},{"line":878,"column":305,"offset":904},2910,{"start":906,"end":907},{"line":878,"column":733,"offset":896},{"line":878,"column":305,"offset":904},{"type":27,"value":909,"position":910}," is false.",{"start":911,"end":912},{"line":878,"column":305,"offset":904},{"line":878,"column":850,"offset":913},2920,{"start":915,"end":916},{"line":500,"column":21,"offset":725},{"line":878,"column":850,"offset":913},{"type":27,"value":28},{"type":31,"tagName":32,"properties":919,"children":920,"position":1040},{},[921,941,947,959,965,977,984,996,1002,1014,1020,1033],{"type":31,"tagName":119,"properties":922,"children":923,"position":936},{},[924],{"type":31,"tagName":46,"properties":925,"children":926,"position":933},{},[927],{"type":27,"value":167,"position":928},{"start":929,"end":931},{"line":538,"column":716,"offset":930},2924,{"line":538,"column":563,"offset":932},2929,{"start":934,"end":935},{"line":538,"column":716,"offset":930},{"line":538,"column":563,"offset":932},{"start":937,"end":939},{"line":538,"column":21,"offset":938},2922,{"line":538,"column":42,"offset":940},2931,{"type":27,"value":942,"position":943}," is the 32-bit integer: periods, counters, cursors, loop bounds,\n",{"start":944,"end":945},{"line":538,"column":42,"offset":940},{"line":134,"column":21,"offset":946},2996,{"type":31,"tagName":46,"properties":948,"children":949,"position":956},{},[950],{"type":27,"value":951,"position":952},"Cross.update()",{"start":953,"end":954},{"line":134,"column":21,"offset":946},{"line":134,"column":662,"offset":955},3012,{"start":957,"end":958},{"line":134,"column":21,"offset":946},{"line":134,"column":662,"offset":955},{"type":27,"value":960,"position":961},"'s answer. Integer division truncates\n(",{"start":962,"end":963},{"line":134,"column":662,"offset":955},{"line":481,"column":142,"offset":964},3051,{"type":31,"tagName":46,"properties":966,"children":967,"position":974},{},[968],{"type":27,"value":969,"position":970},"7 / 2",{"start":971,"end":972},{"line":481,"column":142,"offset":964},{"line":481,"column":161,"offset":973},3058,{"start":975,"end":976},{"line":481,"column":142,"offset":964},{"line":481,"column":161,"offset":973},{"type":27,"value":978,"position":979}," is ",{"start":980,"end":981},{"line":481,"column":161,"offset":973},{"line":481,"column":982,"offset":983},13,3062,{"type":31,"tagName":46,"properties":985,"children":986,"position":993},{},[987],{"type":27,"value":988,"position":989},"3",{"start":990,"end":991},{"line":481,"column":982,"offset":983},{"line":481,"column":82,"offset":992},3065,{"start":994,"end":995},{"line":481,"column":982,"offset":983},{"line":481,"column":82,"offset":992},{"type":27,"value":997,"position":998},"). ",{"start":999,"end":1000},{"line":481,"column":82,"offset":992},{"line":481,"column":697,"offset":1001},3068,{"type":31,"tagName":46,"properties":1003,"children":1004,"position":1011},{},[1005],{"type":27,"value":1006,"position":1007},"i64",{"start":1008,"end":1009},{"line":481,"column":697,"offset":1001},{"line":481,"column":197,"offset":1010},3073,{"start":1012,"end":1013},{"line":481,"column":697,"offset":1001},{"line":481,"column":197,"offset":1010},{"type":27,"value":1015,"position":1016}," exists for epoch-second math (",{"start":1017,"end":1018},{"line":481,"column":197,"offset":1010},{"line":481,"column":659,"offset":1019},3104,{"type":31,"tagName":46,"properties":1021,"children":1022,"position":1030},{},[1023],{"type":27,"value":1024,"position":1025},"time-and-sessions.md",{"start":1026,"end":1027},{"line":481,"column":659,"offset":1019},{"line":481,"column":1028,"offset":1029},77,3126,{"start":1031,"end":1032},{"line":481,"column":659,"offset":1019},{"line":481,"column":1028,"offset":1029},{"type":27,"value":1034,"position":1035},").",{"start":1036,"end":1037},{"line":481,"column":1028,"offset":1029},{"line":481,"column":1038,"offset":1039},79,3128,{"start":1041,"end":1042},{"line":538,"column":21,"offset":938},{"line":481,"column":1038,"offset":1039},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1045,"children":1046,"position":1131},{},[1047,1068,1074,1086,1092,1105,1112,1124],{"type":31,"tagName":119,"properties":1048,"children":1049,"position":1063},{},[1050],{"type":31,"tagName":46,"properties":1051,"children":1052,"position":1060},{},[1053],{"type":27,"value":184,"position":1054},{"start":1055,"end":1058},{"line":1056,"column":716,"offset":1057},71,3132,{"line":1056,"column":161,"offset":1059},3138,{"start":1061,"end":1062},{"line":1056,"column":716,"offset":1057},{"line":1056,"column":161,"offset":1059},{"start":1064,"end":1066},{"line":1056,"column":21,"offset":1065},3130,{"line":1056,"column":286,"offset":1067},3140,{"type":27,"value":1069,"position":1070}," comes from comparisons and logical operators. A bare number in an\n",{"start":1071,"end":1072},{"line":1056,"column":286,"offset":1067},{"line":636,"column":21,"offset":1073},3207,{"type":31,"tagName":46,"properties":1075,"children":1076,"position":1083},{},[1077],{"type":27,"value":1078,"position":1079},"if",{"start":1080,"end":1081},{"line":636,"column":21,"offset":1073},{"line":636,"column":39,"offset":1082},3211,{"start":1084,"end":1085},{"line":636,"column":21,"offset":1073},{"line":636,"column":39,"offset":1082},{"type":27,"value":1087,"position":1088}," compiles (nonzero is true), but write the comparison out: ",{"start":1089,"end":1090},{"line":636,"column":39,"offset":1082},{"line":636,"column":461,"offset":1091},3270,{"type":31,"tagName":46,"properties":1093,"children":1094,"position":1102},{},[1095],{"type":27,"value":1096,"position":1097},"x > 0.0",{"start":1098,"end":1099},{"line":636,"column":461,"offset":1091},{"line":636,"column":1100,"offset":1101},73,3279,{"start":1103,"end":1104},{"line":636,"column":461,"offset":1091},{"line":636,"column":1100,"offset":1101},{"type":27,"value":1106,"position":1107},"\nsays what you mean, and ",{"start":1108,"end":1109},{"line":636,"column":1100,"offset":1101},{"line":1100,"column":1110,"offset":1111},25,3304,{"type":31,"tagName":46,"properties":1113,"children":1114,"position":1121},{},[1115],{"type":27,"value":1116,"position":1117},"!isNaN(x)",{"start":1118,"end":1119},{"line":1100,"column":1110,"offset":1111},{"line":1100,"column":646,"offset":1120},3315,{"start":1122,"end":1123},{"line":1100,"column":1110,"offset":1111},{"line":1100,"column":646,"offset":1120},{"type":27,"value":1125,"position":1126}," is the only reliable test for a missing\nvalue.",{"start":1127,"end":1128},{"line":1100,"column":646,"offset":1120},{"line":1129,"column":100,"offset":1130},74,3362,{"start":1132,"end":1133},{"line":1056,"column":21,"offset":1065},{"line":1129,"column":100,"offset":1130},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1136,"children":1137,"position":1399},{},[1138,1159,1166,1178,1183,1195,1200,1213,1219,1231,1236,1248,1254,1266,1272,1284,1291,1303,1308,1321,1326,1338,1345,1357,1363,1376,1382,1394],{"type":31,"tagName":119,"properties":1139,"children":1140,"position":1154},{},[1141],{"type":31,"tagName":46,"properties":1142,"children":1143,"position":1151},{},[1144],{"type":27,"value":203,"position":1145},{"start":1146,"end":1149},{"line":1147,"column":716,"offset":1148},76,3366,{"line":1147,"column":286,"offset":1150},3374,{"start":1152,"end":1153},{"line":1147,"column":716,"offset":1148},{"line":1147,"column":286,"offset":1150},{"start":1155,"end":1157},{"line":1147,"column":21,"offset":1156},3364,{"line":1147,"column":982,"offset":1158},3376,{"type":27,"value":1160,"position":1161}," is immutable text with ",{"start":1162,"end":1163},{"line":1147,"column":982,"offset":1158},{"line":1147,"column":1164,"offset":1165},37,3400,{"type":31,"tagName":46,"properties":1167,"children":1168,"position":1175},{},[1169],{"type":27,"value":1170,"position":1171},"length",{"start":1172,"end":1173},{"line":1147,"column":1164,"offset":1165},{"line":1147,"column":335,"offset":1174},3408,{"start":1176,"end":1177},{"line":1147,"column":1164,"offset":1165},{"line":1147,"column":335,"offset":1174},{"type":27,"value":157,"position":1179},{"start":1180,"end":1181},{"line":1147,"column":335,"offset":1174},{"line":1147,"column":491,"offset":1182},3410,{"type":31,"tagName":46,"properties":1184,"children":1185,"position":1192},{},[1186],{"type":27,"value":1187,"position":1188},"charCodeAt",{"start":1189,"end":1190},{"line":1147,"column":491,"offset":1182},{"line":1147,"column":694,"offset":1191},3422,{"start":1193,"end":1194},{"line":1147,"column":491,"offset":1182},{"line":1147,"column":694,"offset":1191},{"type":27,"value":157,"position":1196},{"start":1197,"end":1198},{"line":1147,"column":694,"offset":1191},{"line":1147,"column":500,"offset":1199},3424,{"type":31,"tagName":46,"properties":1201,"children":1202,"position":1210},{},[1203],{"type":27,"value":1204,"position":1205},"indexOf",{"start":1206,"end":1207},{"line":1147,"column":500,"offset":1199},{"line":1147,"column":1208,"offset":1209},70,3433,{"start":1211,"end":1212},{"line":1147,"column":500,"offset":1199},{"line":1147,"column":1208,"offset":1209},{"type":27,"value":1214,"position":1215},",\n",{"start":1216,"end":1217},{"line":1147,"column":1208,"offset":1209},{"line":1028,"column":21,"offset":1218},3435,{"type":31,"tagName":46,"properties":1220,"children":1221,"position":1228},{},[1222],{"type":27,"value":1223,"position":1224},"startsWith",{"start":1225,"end":1226},{"line":1028,"column":21,"offset":1218},{"line":1028,"column":982,"offset":1227},3447,{"start":1229,"end":1230},{"line":1028,"column":21,"offset":1218},{"line":1028,"column":982,"offset":1227},{"type":27,"value":157,"position":1232},{"start":1233,"end":1234},{"line":1028,"column":982,"offset":1227},{"line":1028,"column":10,"offset":1235},3449,{"type":31,"tagName":46,"properties":1237,"children":1238,"position":1245},{},[1239],{"type":27,"value":1240,"position":1241},"+",{"start":1242,"end":1243},{"line":1028,"column":10,"offset":1235},{"line":1028,"column":99,"offset":1244},3452,{"start":1246,"end":1247},{"line":1028,"column":10,"offset":1235},{"line":1028,"column":99,"offset":1244},{"type":27,"value":1249,"position":1250}," between strings, and ",{"start":1251,"end":1252},{"line":1028,"column":99,"offset":1244},{"line":1028,"column":225,"offset":1253},3474,{"type":31,"tagName":46,"properties":1255,"children":1256,"position":1263},{},[1257],{"type":27,"value":1258,"position":1259},"==",{"start":1260,"end":1261},{"line":1028,"column":225,"offset":1253},{"line":1028,"column":64,"offset":1262},3478,{"start":1264,"end":1265},{"line":1028,"column":225,"offset":1253},{"line":1028,"column":64,"offset":1262},{"type":27,"value":1267,"position":1268}," / ",{"start":1269,"end":1270},{"line":1028,"column":64,"offset":1262},{"line":1028,"column":491,"offset":1271},3481,{"type":31,"tagName":46,"properties":1273,"children":1274,"position":1281},{},[1275],{"type":27,"value":1276,"position":1277},"\u003C",{"start":1278,"end":1279},{"line":1028,"column":491,"offset":1271},{"line":1028,"column":228,"offset":1280},3484,{"start":1282,"end":1283},{"line":1028,"column":491,"offset":1271},{"line":1028,"column":228,"offset":1280},{"type":27,"value":1285,"position":1286}," by code unit. Strings stay\ninside the module and reach the chart only through a declared string slot;\nbuilding one allocates, so per-bar text goes through the line builder\n(",{"start":1287,"end":1288},{"line":1028,"column":228,"offset":1280},{"line":1289,"column":142,"offset":1290},80,3658,{"type":31,"tagName":46,"properties":1292,"children":1293,"position":1300},{},[1294],{"type":27,"value":1295,"position":1296},"sb_clear",{"start":1297,"end":1298},{"line":1289,"column":142,"offset":1290},{"line":1289,"column":78,"offset":1299},3668,{"start":1301,"end":1302},{"line":1289,"column":142,"offset":1290},{"line":1289,"column":78,"offset":1299},{"type":27,"value":157,"position":1304},{"start":1305,"end":1306},{"line":1289,"column":78,"offset":1299},{"line":1289,"column":96,"offset":1307},3670,{"type":31,"tagName":46,"properties":1309,"children":1310,"position":1318},{},[1311],{"type":27,"value":1312,"position":1313},"sb_text",{"start":1314,"end":1315},{"line":1289,"column":96,"offset":1307},{"line":1289,"column":1316,"offset":1317},23,3679,{"start":1319,"end":1320},{"line":1289,"column":96,"offset":1307},{"line":1289,"column":1316,"offset":1317},{"type":27,"value":157,"position":1322},{"start":1323,"end":1324},{"line":1289,"column":1316,"offset":1317},{"line":1289,"column":1110,"offset":1325},3681,{"type":31,"tagName":46,"properties":1327,"children":1328,"position":1335},{},[1329],{"type":27,"value":1330,"position":1331},"sb_f64",{"start":1332,"end":1333},{"line":1289,"column":1110,"offset":1325},{"line":1289,"column":317,"offset":1334},3689,{"start":1336,"end":1337},{"line":1289,"column":1110,"offset":1325},{"line":1289,"column":317,"offset":1334},{"type":27,"value":1339,"position":1340},"). There is no number-to-string coercion:\n",{"start":1341,"end":1342},{"line":1289,"column":317,"offset":1334},{"line":1343,"column":21,"offset":1344},81,3731,{"type":31,"tagName":46,"properties":1346,"children":1347,"position":1354},{},[1348],{"type":27,"value":1349,"position":1350},"\"close \" + close",{"start":1351,"end":1352},{"line":1343,"column":21,"offset":1344},{"line":1343,"column":697,"offset":1353},3749,{"start":1355,"end":1356},{"line":1343,"column":21,"offset":1344},{"line":1343,"column":697,"offset":1353},{"type":27,"value":1358,"position":1359}," is refused with ",{"start":1360,"end":1361},{"line":1343,"column":697,"offset":1353},{"line":1343,"column":646,"offset":1362},3766,{"type":31,"tagName":46,"properties":1364,"children":1365,"position":1373},{},[1366],{"type":27,"value":1367,"position":1368},"Type 'f64' is not assignable to type 'String'",{"start":1369,"end":1370},{"line":1343,"column":646,"offset":1362},{"line":1371,"column":42,"offset":1372},82,3813,{"start":1374,"end":1375},{"line":1343,"column":646,"offset":1362},{"line":1371,"column":42,"offset":1372},{"type":27,"value":1377,"position":1378},"; write ",{"start":1379,"end":1380},{"line":1371,"column":42,"offset":1372},{"line":1371,"column":99,"offset":1381},3821,{"type":31,"tagName":46,"properties":1383,"children":1384,"position":1391},{},[1385],{"type":27,"value":1386,"position":1387},"close.toString()",{"start":1388,"end":1389},{"line":1371,"column":99,"offset":1381},{"line":1371,"column":646,"offset":1390},3839,{"start":1392,"end":1393},{"line":1371,"column":99,"offset":1381},{"line":1371,"column":646,"offset":1390},{"type":27,"value":60,"position":1395},{"start":1396,"end":1397},{"line":1371,"column":646,"offset":1390},{"line":1371,"column":1164,"offset":1398},3840,{"start":1400,"end":1401},{"line":1147,"column":21,"offset":1156},{"line":1371,"column":1164,"offset":1398},{"type":27,"value":28},{"type":31,"tagName":71,"properties":1404,"children":1405,"position":1414},{},[1406],{"type":27,"value":1407,"position":1408},"The per-bar value",{"start":1409,"end":1412},{"line":1410,"column":79,"offset":1411},84,3845,{"line":1410,"column":141,"offset":1413},3862,{"start":1415,"end":1417},{"line":1410,"column":21,"offset":1416},3842,{"line":1410,"column":141,"offset":1413},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1420,"children":1421,"position":1504},{},[1422,1430,1442,1449,1461,1467,1479,1486,1497],{"type":27,"value":1423,"position":1424},"An indicator input is a function: ",{"start":1425,"end":1428},{"line":1426,"column":21,"offset":1427},86,3864,{"line":1426,"column":451,"offset":1429},3898,{"type":31,"tagName":46,"properties":1431,"children":1432,"position":1439},{},[1433],{"type":27,"value":1434,"position":1435},"bar.close()",{"start":1436,"end":1437},{"line":1426,"column":451,"offset":1429},{"line":1426,"column":510,"offset":1438},3911,{"start":1440,"end":1441},{"line":1426,"column":451,"offset":1429},{"line":1426,"column":510,"offset":1438},{"type":27,"value":1443,"position":1444}," returns this bar's close\n(and ",{"start":1445,"end":1446},{"line":1426,"column":510,"offset":1438},{"line":1447,"column":276,"offset":1448},87,3942,{"type":31,"tagName":46,"properties":1450,"children":1451,"position":1458},{},[1452],{"type":27,"value":1453,"position":1454},"in_\u003Cname>()",{"start":1455,"end":1456},{"line":1447,"column":276,"offset":1448},{"line":1447,"column":697,"offset":1457},3955,{"start":1459,"end":1460},{"line":1447,"column":276,"offset":1448},{"line":1447,"column":697,"offset":1457},{"type":27,"value":1462,"position":1463}," a declared input's), inside ",{"start":1464,"end":1465},{"line":1447,"column":697,"offset":1457},{"line":1447,"column":510,"offset":1466},3984,{"type":31,"tagName":46,"properties":1468,"children":1469,"position":1476},{},[1470],{"type":27,"value":1471,"position":1472},"onBar()",{"start":1473,"end":1474},{"line":1447,"column":510,"offset":1466},{"line":1447,"column":681,"offset":1475},3993,{"start":1477,"end":1478},{"line":1447,"column":510,"offset":1466},{"line":1447,"column":681,"offset":1475},{"type":27,"value":1480,"position":1481},". The host calls\n",{"start":1482,"end":1483},{"line":1447,"column":681,"offset":1475},{"line":1484,"column":21,"offset":1485},88,4010,{"type":31,"tagName":46,"properties":1487,"children":1488,"position":1494},{},[1489],{"type":27,"value":1471,"position":1490},{"start":1491,"end":1492},{"line":1484,"column":21,"offset":1485},{"line":1484,"column":42,"offset":1493},4019,{"start":1495,"end":1496},{"line":1484,"column":21,"offset":1485},{"line":1484,"column":42,"offset":1493},{"type":27,"value":1498,"position":1499}," once per bar, oldest\nfirst, so a line you write once still produces a value at every point in\ntime, but the past is not addressable.",{"start":1500,"end":1501},{"line":1484,"column":42,"offset":1493},{"line":1502,"column":305,"offset":1503},90,4152,{"start":1505,"end":1506},{"line":1426,"column":21,"offset":1427},{"line":1502,"column":305,"offset":1503},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1509,"children":1510,"position":1519},{},[1511],{"type":27,"value":1512,"position":1513},"What holds history:",{"start":1514,"end":1517},{"line":1515,"column":21,"offset":1516},92,4154,{"line":1515,"column":113,"offset":1518},4173,{"start":1520,"end":1521},{"line":1515,"column":21,"offset":1516},{"line":1515,"column":113,"offset":1518},{"type":27,"value":1523},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":31,"tagName":1525,"properties":1526,"children":1527,"position":1888},"table",{},[1528,1573],{"type":31,"tagName":1529,"properties":1530,"children":1531,"position":1570},"thead",{},[1532],{"type":31,"tagName":1533,"properties":1534,"children":1535,"position":1567},"tr",{},[1536,1553],{"type":31,"tagName":1537,"properties":1538,"children":1539,"position":1548},"th",{},[1540],{"type":27,"value":1541,"position":1542},"Need",{"start":1543,"end":1546},{"line":1544,"column":716,"offset":1545},94,4177,{"line":1544,"column":100,"offset":1547},4181,{"start":1549,"end":1551},{"line":1544,"column":21,"offset":1550},4175,{"line":1544,"column":563,"offset":1552},4182,{"type":31,"tagName":1537,"properties":1554,"children":1555,"position":1563},{},[1556],{"type":27,"value":1557,"position":1558},"Form",{"start":1559,"end":1561},{"line":1544,"column":42,"offset":1560},4184,{"line":1544,"column":96,"offset":1562},4188,{"start":1564,"end":1565},{"line":1544,"column":563,"offset":1552},{"line":1544,"column":82,"offset":1566},4190,{"start":1568,"end":1569},{"line":1544,"column":21,"offset":1550},{"line":1544,"column":82,"offset":1566},{"start":1571,"end":1572},{"line":1544,"column":21,"offset":1550},{"line":1544,"column":82,"offset":1566},{"type":31,"tagName":1574,"properties":1575,"children":1576,"position":1885},"tbody",{},[1577,1639,1716,1849],{"type":31,"tagName":1533,"properties":1578,"children":1579,"position":1636},{},[1580,1597],{"type":31,"tagName":1581,"properties":1582,"children":1583,"position":1592},"td",{},[1584],{"type":27,"value":1585,"position":1586},"the previous bar's close",{"start":1587,"end":1590},{"line":1588,"column":716,"offset":1589},96,4207,{"line":1588,"column":511,"offset":1591},4231,{"start":1593,"end":1595},{"line":1588,"column":21,"offset":1594},4205,{"line":1588,"column":254,"offset":1596},4232,{"type":31,"tagName":1581,"properties":1598,"children":1599,"position":1631},{},[1600,1607,1616,1622],{"type":27,"value":1601,"position":1602},"a module-level ",{"start":1603,"end":1605},{"line":1588,"column":273,"offset":1604},4234,{"line":1588,"column":335,"offset":1606},4249,{"type":31,"tagName":46,"properties":1608,"children":1609,"position":1612},{},[1610],{"type":27,"value":1611},"prevClose",{"start":1613,"end":1614},{"line":1588,"column":335,"offset":1606},{"line":1588,"column":126,"offset":1615},4260,{"type":27,"value":1617,"position":1618}," assigned at the end of ",{"start":1619,"end":1620},{"line":1588,"column":126,"offset":1615},{"line":1588,"column":1289,"offset":1621},4284,{"type":31,"tagName":46,"properties":1623,"children":1624,"position":1626},{},[1625],{"type":27,"value":1471},{"start":1627,"end":1628},{"line":1588,"column":1289,"offset":1621},{"line":1588,"column":1629,"offset":1630},89,4293,{"start":1632,"end":1633},{"line":1588,"column":254,"offset":1596},{"line":1588,"column":1634,"offset":1635},91,4295,{"start":1637,"end":1638},{"line":1588,"column":21,"offset":1594},{"line":1588,"column":1634,"offset":1635},{"type":31,"tagName":1533,"properties":1640,"children":1641,"position":1713},{},[1642,1658],{"type":31,"tagName":1581,"properties":1643,"children":1644,"position":1653},{},[1645],{"type":27,"value":1646,"position":1647},"a 20-bar average, a 14-bar RSI",{"start":1648,"end":1651},{"line":1649,"column":716,"offset":1650},97,4298,{"line":1649,"column":317,"offset":1652},4328,{"start":1654,"end":1656},{"line":1649,"column":21,"offset":1655},4296,{"line":1649,"column":733,"offset":1657},4329,{"type":31,"tagName":1581,"properties":1659,"children":1660,"position":1708},{},[1661,1671,1676,1685,1691,1701],{"type":31,"tagName":46,"properties":1662,"children":1663,"position":1666},{},[1664],{"type":27,"value":1665},"new Sma(20)",{"start":1667,"end":1669},{"line":1649,"column":646,"offset":1668},4331,{"line":1649,"column":850,"offset":1670},4344,{"type":27,"value":157,"position":1672},{"start":1673,"end":1674},{"line":1649,"column":850,"offset":1670},{"line":1649,"column":352,"offset":1675},4346,{"type":31,"tagName":46,"properties":1677,"children":1678,"position":1681},{},[1679],{"type":27,"value":1680},"new Rsi(14)",{"start":1682,"end":1683},{"line":1649,"column":352,"offset":1675},{"line":1649,"column":461,"offset":1684},4359,{"type":27,"value":1686,"position":1687},": the class keeps the window, ",{"start":1688,"end":1689},{"line":1649,"column":461,"offset":1684},{"line":1649,"column":1544,"offset":1690},4389,{"type":31,"tagName":46,"properties":1692,"children":1693,"position":1696},{},[1694],{"type":27,"value":1695},"update(x)",{"start":1697,"end":1698},{"line":1649,"column":1544,"offset":1690},{"line":1649,"column":1699,"offset":1700},105,4400,{"type":27,"value":1702,"position":1703}," folds one value",{"start":1704,"end":1705},{"line":1649,"column":1699,"offset":1700},{"line":1649,"column":1706,"offset":1707},121,4416,{"start":1709,"end":1710},{"line":1649,"column":733,"offset":1657},{"line":1649,"column":1711,"offset":1712},123,4418,{"start":1714,"end":1715},{"line":1649,"column":21,"offset":1655},{"line":1649,"column":1711,"offset":1712},{"type":31,"tagName":1533,"properties":1717,"children":1718,"position":1846},{},[1719,1735],{"type":31,"tagName":1581,"properties":1720,"children":1721,"position":1730},{},[1722],{"type":27,"value":1723,"position":1724},"the highest high of 20 bars, the close 5 bars back",{"start":1725,"end":1728},{"line":1726,"column":716,"offset":1727},98,4421,{"line":1726,"column":357,"offset":1729},4471,{"start":1731,"end":1733},{"line":1726,"column":21,"offset":1732},4419,{"line":1726,"column":116,"offset":1734},4472,{"type":31,"tagName":1581,"properties":1736,"children":1737,"position":1841},{},[1738,1745,1754,1760,1769,1775,1785,1792,1811,1818,1834],{"type":27,"value":1739,"position":1740},"a ",{"start":1741,"end":1743},{"line":1726,"column":126,"offset":1742},4474,{"line":1726,"column":759,"offset":1744},4476,{"type":31,"tagName":46,"properties":1746,"children":1747,"position":1750},{},[1748],{"type":27,"value":1749},"History",{"start":1751,"end":1752},{"line":1726,"column":759,"offset":1744},{"line":1726,"column":538,"offset":1753},4485,{"type":27,"value":1755,"position":1756}," per series, read with ",{"start":1757,"end":1758},{"line":1726,"column":538,"offset":1753},{"line":1726,"column":1502,"offset":1759},4508,{"type":31,"tagName":46,"properties":1761,"children":1762,"position":1765},{},[1763],{"type":27,"value":1764},"max()",{"start":1766,"end":1767},{"line":1726,"column":1502,"offset":1759},{"line":1726,"column":1649,"offset":1768},4515,{"type":27,"value":282,"position":1770},{"start":1771,"end":1772},{"line":1726,"column":1649,"offset":1768},{"line":1726,"column":1773,"offset":1774},102,4520,{"type":31,"tagName":46,"properties":1776,"children":1777,"position":1780},{},[1778],{"type":27,"value":1779},"ago(5)",{"start":1781,"end":1782},{"line":1726,"column":1773,"offset":1774},{"line":1726,"column":1783,"offset":1784},110,4528,{"type":27,"value":1786,"position":1787}," (",{"start":1788,"end":1789},{"line":1726,"column":1783,"offset":1784},{"line":1726,"column":1790,"offset":1791},112,4530,{"type":31,"tagName":1793,"properties":1794,"children":1796,"position":1806},"a",{"href":1795},"../functions/stats-history-lists.md#history-xn-from-pine",[1797],{"type":27,"value":1798,"position":1799},"Stats, history and lists",{"start":1800,"end":1803},{"line":1726,"column":1801,"offset":1802},113,4531,{"line":1726,"column":1804,"offset":1805},137,4555,{"start":1807,"end":1808},{"line":1726,"column":1790,"offset":1791},{"line":1726,"column":1809,"offset":1810},196,4614,{"type":27,"value":1812,"position":1813},"); by hand, a ",{"start":1814,"end":1815},{"line":1726,"column":1809,"offset":1810},{"line":1726,"column":1816,"offset":1817},210,4628,{"type":31,"tagName":46,"properties":1819,"children":1820,"position":1829},{},[1821,1823,1827],{"type":27,"value":1822},"Static",{"type":31,"tagName":1824,"properties":1825,"children":1826},"wbr",{},[],{"type":27,"value":1828},"Array\u003Cf64>",{"start":1830,"end":1831},{"line":1726,"column":1816,"offset":1817},{"line":1726,"column":1832,"offset":1833},228,4646,{"type":27,"value":1835,"position":1836}," ring buffer of 20 with a cursor",{"start":1837,"end":1838},{"line":1726,"column":1832,"offset":1833},{"line":1726,"column":1839,"offset":1840},260,4678,{"start":1842,"end":1843},{"line":1726,"column":116,"offset":1734},{"line":1726,"column":1844,"offset":1845},262,4680,{"start":1847,"end":1848},{"line":1726,"column":21,"offset":1732},{"line":1726,"column":1844,"offset":1845},{"type":31,"tagName":1533,"properties":1850,"children":1851,"position":1882},{},[1852,1868],{"type":31,"tagName":1581,"properties":1853,"children":1854,"position":1863},{},[1855],{"type":27,"value":1856,"position":1857},"a running total",{"start":1858,"end":1861},{"line":1859,"column":716,"offset":1860},99,4683,{"line":1859,"column":99,"offset":1862},4698,{"start":1864,"end":1866},{"line":1859,"column":21,"offset":1865},4681,{"line":1859,"column":697,"offset":1867},4699,{"type":31,"tagName":1581,"properties":1869,"children":1870,"position":1878},{},[1871],{"type":27,"value":1872,"position":1873},"a module-level accumulator",{"start":1874,"end":1876},{"line":1859,"column":141,"offset":1875},4701,{"line":1859,"column":491,"offset":1877},4727,{"start":1879,"end":1880},{"line":1859,"column":697,"offset":1867},{"line":1859,"column":850,"offset":1881},4729,{"start":1883,"end":1884},{"line":1859,"column":21,"offset":1865},{"line":1859,"column":850,"offset":1881},{"start":1886,"end":1887},{"line":1588,"column":21,"offset":1594},{"line":1859,"column":850,"offset":1881},{"start":1889,"end":1890},{"line":1544,"column":21,"offset":1550},{"line":1859,"column":850,"offset":1881},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1893,"children":1894,"position":1921},{},[1895,1904,1915],{"type":27,"value":1896,"position":1897},"Immutability is built in (an input has no setter), and module scope is\nwhere history lives: anything that must survive a call is declared there,\nbecause a local is gone when ",{"start":1898,"end":1901},{"line":1899,"column":21,"offset":1900},101,4731,{"line":1902,"column":273,"offset":1903},103,4905,{"type":31,"tagName":46,"properties":1905,"children":1906,"position":1912},{},[1907],{"type":27,"value":1471,"position":1908},{"start":1909,"end":1910},{"line":1902,"column":273,"offset":1903},{"line":1902,"column":305,"offset":1911},4914,{"start":1913,"end":1914},{"line":1902,"column":273,"offset":1903},{"line":1902,"column":305,"offset":1911},{"type":27,"value":1916,"position":1917}," returns.",{"start":1918,"end":1919},{"line":1902,"column":305,"offset":1911},{"line":1902,"column":510,"offset":1920},4923,{"start":1922,"end":1923},{"line":1899,"column":21,"offset":1900},{"line":1902,"column":510,"offset":1920},{"type":27,"value":28},{"type":31,"tagName":1926,"properties":1927,"children":1928,"position":1936},"h3",{},[1929],{"type":27,"value":1930,"position":1931},"OHLCV data structure",{"start":1932,"end":1934},{"line":1699,"column":39,"offset":1933},4929,{"line":1699,"column":1110,"offset":1935},4949,{"start":1937,"end":1939},{"line":1699,"column":21,"offset":1938},4925,{"line":1699,"column":1110,"offset":1935},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1942,"children":1943,"position":1971},{},[1944,1953,1965],{"type":27,"value":1945,"position":1946},"A candle is not one value with six columns. The chart's own candle is\nread one field at a time through ",{"start":1947,"end":1950},{"line":1948,"column":21,"offset":1949},107,4951,{"line":1951,"column":733,"offset":1952},108,5054,{"type":31,"tagName":46,"properties":1954,"children":1955,"position":1962},{},[1956],{"type":27,"value":1957,"position":1958},"bar",{"start":1959,"end":1960},{"line":1951,"column":733,"offset":1952},{"line":1951,"column":305,"offset":1961},5059,{"start":1963,"end":1964},{"line":1951,"column":733,"offset":1952},{"line":1951,"column":305,"offset":1961},{"type":27,"value":1966,"position":1967},", with no declaration:",{"start":1968,"end":1969},{"line":1951,"column":305,"offset":1961},{"line":1951,"column":500,"offset":1970},5081,{"start":1972,"end":1973},{"line":1948,"column":21,"offset":1949},{"line":1951,"column":500,"offset":1970},{"type":27,"value":28},{"type":14,"children":1976},[1977],{"type":31,"tagName":366,"properties":1978,"children":1979,"data":-1},{"class":368,"style":369,"tabindex":370},[1980],{"type":31,"tagName":46,"properties":1981,"children":1983},{"class":1982},[375],[1984,1992,1993,2001,2002,2010,2011,2019,2020,2028,2029],{"type":31,"tagName":378,"properties":1985,"children":1986},{"class":380},[1987],{"type":31,"tagName":378,"properties":1988,"children":1989},{},[1990],{"type":27,"value":1991},"bar.open();",{"type":27,"value":28},{"type":31,"tagName":378,"properties":1994,"children":1995},{"class":380},[1996],{"type":31,"tagName":378,"properties":1997,"children":1998},{},[1999],{"type":27,"value":2000},"bar.high();",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2003,"children":2004},{"class":380},[2005],{"type":31,"tagName":378,"properties":2006,"children":2007},{},[2008],{"type":27,"value":2009},"bar.low();",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2012,"children":2013},{"class":380},[2014],{"type":31,"tagName":378,"properties":2015,"children":2016},{},[2017],{"type":27,"value":2018},"bar.close();",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2021,"children":2022},{"class":380},[2023],{"type":31,"tagName":378,"properties":2024,"children":2025},{},[2026],{"type":27,"value":2027},"bar.volume();",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2030,"children":2031},{"class":380},[2032],{"type":31,"tagName":378,"properties":2033,"children":2034},{},[2035],{"type":27,"value":2036},"bar.time();   // the timestamp, epoch seconds",{"type":27,"value":28},{"type":31,"tagName":32,"properties":2039,"children":2040,"position":2163},{},[2041,2049,2061,2067,2078,2085,2100,2106,2118,2125,2137,2143,2156],{"type":27,"value":2042,"position":2043},"A file with no ",{"start":2044,"end":2047},{"line":2045,"column":21,"offset":2046},119,5204,{"line":2045,"column":82,"offset":2048},5219,{"type":31,"tagName":46,"properties":2050,"children":2051,"position":2058},{},[2052],{"type":27,"value":2053,"position":2054},"input",{"start":2055,"end":2056},{"line":2045,"column":82,"offset":2048},{"line":2045,"column":1316,"offset":2057},5226,{"start":2059,"end":2060},{"line":2045,"column":82,"offset":2048},{"line":2045,"column":1316,"offset":2057},{"type":27,"value":2062,"position":2063}," line runs on the chart's own candles. When a file\ndeclares inputs (another feed, a pinned market or interval), the first\n",{"start":2064,"end":2065},{"line":2045,"column":1316,"offset":2057},{"line":1706,"column":21,"offset":2066},5348,{"type":31,"tagName":46,"properties":2068,"children":2069,"position":2075},{},[2070],{"type":27,"value":2053,"position":2071},{"start":2072,"end":2073},{"line":1706,"column":21,"offset":2066},{"line":1706,"column":563,"offset":2074},5355,{"start":2076,"end":2077},{"line":1706,"column":21,"offset":2066},{"line":1706,"column":563,"offset":2074},{"type":27,"value":2079,"position":2080}," is the primary: it defines the grid (market and interval) every\nother input aligns to (",{"start":2081,"end":2082},{"line":1706,"column":563,"offset":2074},{"line":2083,"column":197,"offset":2084},122,5443,{"type":31,"tagName":1793,"properties":2086,"children":2088,"position":2096},{"href":2087},"data-sources.md",[2089],{"type":27,"value":2090,"position":2091},"Data sources",{"start":2092,"end":2094},{"line":2083,"column":1110,"offset":2093},5444,{"line":2083,"column":1164,"offset":2095},5456,{"start":2097,"end":2098},{"line":2083,"column":197,"offset":2084},{"line":2083,"column":659,"offset":2099},5474,{"type":27,"value":2101,"position":2102},"). There is no\n",{"start":2103,"end":2104},{"line":2083,"column":659,"offset":2099},{"line":1711,"column":21,"offset":2105},5489,{"type":31,"tagName":46,"properties":2107,"children":2108,"position":2115},{},[2109],{"type":27,"value":2110,"position":2111},"priceIndex",{"start":2112,"end":2113},{"line":1711,"column":21,"offset":2105},{"line":1711,"column":982,"offset":2114},5501,{"start":2116,"end":2117},{"line":1711,"column":21,"offset":2105},{"line":1711,"column":982,"offset":2114},{"type":27,"value":2119,"position":2120},": a class takes whichever number you hand it, so\n",{"start":2121,"end":2122},{"line":1711,"column":982,"offset":2114},{"line":2123,"column":21,"offset":2124},124,5550,{"type":31,"tagName":46,"properties":2126,"children":2127,"position":2134},{},[2128],{"type":27,"value":2129,"position":2130},"sma.update(bar.close())",{"start":2131,"end":2132},{"line":2123,"column":21,"offset":2124},{"line":2123,"column":240,"offset":2133},5575,{"start":2135,"end":2136},{"line":2123,"column":21,"offset":2124},{"line":2123,"column":240,"offset":2133},{"type":27,"value":282,"position":2138},{"start":2139,"end":2140},{"line":2123,"column":240,"offset":2133},{"line":2123,"column":2141,"offset":2142},31,5580,{"type":31,"tagName":46,"properties":2144,"children":2145,"position":2153},{},[2146],{"type":27,"value":2147,"position":2148},"sma.update((bar.high() + bar.low()) / 2.0)",{"start":2149,"end":2150},{"line":2123,"column":2141,"offset":2142},{"line":2123,"column":2151,"offset":2152},75,5624,{"start":2154,"end":2155},{"line":2123,"column":2141,"offset":2142},{"line":2123,"column":2151,"offset":2152},{"type":27,"value":2157,"position":2158},"\nare the same call over different sources.",{"start":2159,"end":2160},{"line":2123,"column":2151,"offset":2152},{"line":2161,"column":241,"offset":2162},125,5666,{"start":2164,"end":2165},{"line":2045,"column":21,"offset":2046},{"line":2161,"column":241,"offset":2162},{"type":27,"value":28},{"type":31,"tagName":71,"properties":2168,"children":2169,"position":2178},{},[2170],{"type":27,"value":2171,"position":2172},"Arrays and collections",{"start":2173,"end":2176},{"line":2174,"column":79,"offset":2175},127,5671,{"line":2174,"column":240,"offset":2177},5693,{"start":2179,"end":2181},{"line":2174,"column":21,"offset":2180},5668,{"line":2174,"column":240,"offset":2177},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2184,"children":2185,"position":2373},{},[2186,2194,2206,2213,2224,2230,2242,2248,2260,2266,2278,2284,2296,2303,2314,2319,2332,2339,2350,2356,2368],{"type":27,"value":2187,"position":2188},"Arrays are typed and homogeneous. ",{"start":2189,"end":2192},{"line":2190,"column":21,"offset":2191},129,5695,{"line":2190,"column":451,"offset":2193},5729,{"type":31,"tagName":46,"properties":2195,"children":2196,"position":2203},{},[2197],{"type":27,"value":2198,"position":2199},"StaticArray\u003Cf64>",{"start":2200,"end":2201},{"line":2190,"column":451,"offset":2193},{"line":2190,"column":357,"offset":2202},5747,{"start":2204,"end":2205},{"line":2190,"column":451,"offset":2193},{"line":2190,"column":357,"offset":2202},{"type":27,"value":2207,"position":2208}," is a fixed-size\nblock allocated once; ",{"start":2209,"end":2210},{"line":2190,"column":357,"offset":2202},{"line":2211,"column":1316,"offset":2212},130,5786,{"type":31,"tagName":46,"properties":2214,"children":2215,"position":2221},{},[2216],{"type":27,"value":1828,"position":2217},{"start":2218,"end":2219},{"line":2211,"column":1316,"offset":2212},{"line":2211,"column":451,"offset":2220},5798,{"start":2222,"end":2223},{"line":2211,"column":1316,"offset":2212},{"line":2211,"column":451,"offset":2220},{"type":27,"value":2225,"position":2226}," grows with ",{"start":2227,"end":2228},{"line":2211,"column":451,"offset":2220},{"line":2211,"column":491,"offset":2229},5810,{"type":31,"tagName":46,"properties":2231,"children":2232,"position":2239},{},[2233],{"type":27,"value":2234,"position":2235},"push",{"start":2236,"end":2237},{"line":2211,"column":491,"offset":2229},{"line":2211,"column":357,"offset":2238},5816,{"start":2240,"end":2241},{"line":2211,"column":491,"offset":2229},{"line":2211,"column":357,"offset":2238},{"type":27,"value":2243,"position":2244},"; ",{"start":2245,"end":2246},{"line":2211,"column":357,"offset":2238},{"line":2211,"column":659,"offset":2247},5818,{"type":31,"tagName":46,"properties":2249,"children":2250,"position":2257},{},[2251],{"type":27,"value":2252,"position":2253},"f64[]",{"start":2254,"end":2255},{"line":2211,"column":659,"offset":2247},{"line":2211,"column":591,"offset":2256},5825,{"start":2258,"end":2259},{"line":2211,"column":659,"offset":2247},{"line":2211,"column":591,"offset":2256},{"type":27,"value":2261,"position":2262}," and\n",{"start":2263,"end":2264},{"line":2211,"column":591,"offset":2256},{"line":25,"column":21,"offset":2265},5830,{"type":31,"tagName":46,"properties":2267,"children":2268,"position":2275},{},[2269],{"type":27,"value":2270,"position":2271},"string[]",{"start":2272,"end":2273},{"line":25,"column":21,"offset":2265},{"line":25,"column":286,"offset":2274},5840,{"start":2276,"end":2277},{"line":25,"column":21,"offset":2265},{"line":25,"column":286,"offset":2274},{"type":27,"value":2279,"position":2280}," literals work; ",{"start":2281,"end":2282},{"line":25,"column":286,"offset":2274},{"line":25,"column":511,"offset":2283},5856,{"type":31,"tagName":46,"properties":2285,"children":2286,"position":2293},{},[2287],{"type":27,"value":2288,"position":2289},"Map\u003CK, V>",{"start":2290,"end":2291},{"line":25,"column":511,"offset":2283},{"line":25,"column":43,"offset":2292},5867,{"start":2294,"end":2295},{"line":25,"column":511,"offset":2283},{"line":25,"column":43,"offset":2292},{"type":27,"value":2297,"position":2298}," is a key-value store. The element\ntype is fixed at declaration and enforced: pushing a string onto an\n",{"start":2299,"end":2300},{"line":25,"column":43,"offset":2292},{"line":2301,"column":21,"offset":2302},133,5970,{"type":31,"tagName":46,"properties":2304,"children":2305,"position":2311},{},[2306],{"type":27,"value":1828,"position":2307},{"start":2308,"end":2309},{"line":2301,"column":21,"offset":2302},{"line":2301,"column":982,"offset":2310},5982,{"start":2312,"end":2313},{"line":2301,"column":21,"offset":2302},{"line":2301,"column":982,"offset":2310},{"type":27,"value":1358,"position":2315},{"start":2316,"end":2317},{"line":2301,"column":982,"offset":2310},{"line":2301,"column":273,"offset":2318},5999,{"type":31,"tagName":46,"properties":2320,"children":2321,"position":2329},{},[2322],{"type":27,"value":2323,"position":2324},"Type 'String' is not assignable to type 'f64'",{"start":2325,"end":2326},{"line":2301,"column":273,"offset":2318},{"line":2327,"column":100,"offset":2328},134,6046,{"start":2330,"end":2331},{"line":2301,"column":273,"offset":2318},{"line":2327,"column":100,"offset":2328},{"type":27,"value":2333,"position":2334},". Arrays are references: passing one to a function passes the same\nstorage, so a function that writes into it writes into yours. The\nallocation rule applies to all of them: build them in ",{"start":2335,"end":2336},{"line":2327,"column":100,"offset":2328},{"line":2337,"column":659,"offset":2338},136,6233,{"type":31,"tagName":46,"properties":2340,"children":2341,"position":2347},{},[2342],{"type":27,"value":632,"position":2343},{"start":2344,"end":2345},{"line":2337,"column":659,"offset":2338},{"line":2337,"column":129,"offset":2346},6244,{"start":2348,"end":2349},{"line":2337,"column":659,"offset":2338},{"line":2337,"column":129,"offset":2346},{"type":27,"value":2351,"position":2352}," or at\nmodule scope, never per bar (",{"start":2353,"end":2354},{"line":2337,"column":129,"offset":2346},{"line":1804,"column":273,"offset":2355},6280,{"type":31,"tagName":46,"properties":2357,"children":2358,"position":2365},{},[2359],{"type":27,"value":2360,"position":2361},"collections.md",{"start":2362,"end":2363},{"line":1804,"column":273,"offset":2355},{"line":1804,"column":471,"offset":2364},6296,{"start":2366,"end":2367},{"line":1804,"column":273,"offset":2355},{"line":1804,"column":471,"offset":2364},{"type":27,"value":1034,"position":2369},{"start":2370,"end":2371},{"line":1804,"column":471,"offset":2364},{"line":1804,"column":510,"offset":2372},6298,{"start":2374,"end":2375},{"line":2190,"column":21,"offset":2191},{"line":1804,"column":510,"offset":2372},{"type":27,"value":28},{"type":14,"children":2378},[2379],{"type":31,"tagName":366,"properties":2380,"children":2381,"data":-1},{"class":368,"style":369,"tabindex":370},[2382],{"type":31,"tagName":46,"properties":2383,"children":2385},{"class":2384},[375],[2386,2394,2395,2403,2404],{"type":31,"tagName":378,"properties":2387,"children":2388},{"class":380},[2389],{"type":31,"tagName":378,"properties":2390,"children":2391},{},[2392],{"type":27,"value":2393},"const periods: i32[] = [10, 20, 50];",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2396,"children":2397},{"class":380},[2398],{"type":31,"tagName":378,"properties":2399,"children":2400},{},[2401],{"type":27,"value":2402},"const window = new StaticArray\u003Cf64>(200);",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2405,"children":2406},{"class":380},[2407],{"type":31,"tagName":378,"properties":2408,"children":2409},{},[2410],{"type":27,"value":2411},"const weights = new Map\u003Cstring, f64>();",{"type":27,"value":28},{"type":31,"tagName":71,"properties":2414,"children":2415,"position":2423},{},[2416],{"type":27,"value":2090,"position":2417},{"start":2418,"end":2421},{"line":2419,"column":79,"offset":2420},145,6435,{"line":2419,"column":82,"offset":2422},6447,{"start":2424,"end":2426},{"line":2419,"column":21,"offset":2425},6432,{"line":2419,"column":82,"offset":2422},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2429,"children":2430,"position":2583},{},[2431,2439,2451,2458,2470,2476,2488,2495,2506,2513,2524,2530,2541,2548,2560,2567,2578],{"type":27,"value":2432,"position":2433},"An indicator reads every feed through one form,\n",{"start":2434,"end":2437},{"line":2435,"column":21,"offset":2436},147,6449,{"line":40,"column":21,"offset":2438},6497,{"type":31,"tagName":46,"properties":2440,"children":2441,"position":2448},{},[2442],{"type":27,"value":2443,"position":2444},"input(name, source.field, options)",{"start":2445,"end":2446},{"line":40,"column":21,"offset":2438},{"line":40,"column":1164,"offset":2447},6533,{"start":2449,"end":2450},{"line":40,"column":21,"offset":2438},{"line":40,"column":1164,"offset":2447},{"type":27,"value":2452,"position":2453},",\nwhere ",{"start":2454,"end":2455},{"line":40,"column":1164,"offset":2447},{"line":2456,"column":100,"offset":2457},149,6541,{"type":31,"tagName":46,"properties":2459,"children":2460,"position":2467},{},[2461],{"type":27,"value":2462,"position":2463},"source",{"start":2464,"end":2465},{"line":2456,"column":100,"offset":2457},{"line":2456,"column":10,"offset":2466},6549,{"start":2468,"end":2469},{"line":2456,"column":100,"offset":2457},{"line":2456,"column":10,"offset":2466},{"type":27,"value":2471,"position":2472}," is a source namespace and ",{"start":2473,"end":2474},{"line":2456,"column":10,"offset":2466},{"line":2456,"column":241,"offset":2475},6576,{"type":31,"tagName":46,"properties":2477,"children":2478,"position":2485},{},[2479],{"type":27,"value":2480,"position":2481},"field",{"start":2482,"end":2483},{"line":2456,"column":241,"offset":2475},{"line":2456,"column":850,"offset":2484},6583,{"start":2486,"end":2487},{"line":2456,"column":241,"offset":2475},{"line":2456,"column":850,"offset":2484},{"type":27,"value":2489,"position":2490}," one of its members (the\nchart's own candle needs no declaration: ",{"start":2491,"end":2492},{"line":2456,"column":850,"offset":2484},{"line":2493,"column":241,"offset":2494},150,6649,{"type":31,"tagName":46,"properties":2496,"children":2497,"position":2503},{},[2498],{"type":27,"value":1434,"position":2499},{"start":2500,"end":2501},{"line":2493,"column":241,"offset":2494},{"line":2493,"column":659,"offset":2502},6662,{"start":2504,"end":2505},{"line":2493,"column":241,"offset":2494},{"line":2493,"column":659,"offset":2502},{"type":27,"value":2507,"position":2508}," and the other\n",{"start":2509,"end":2510},{"line":2493,"column":659,"offset":2502},{"line":2511,"column":21,"offset":2512},151,6677,{"type":31,"tagName":46,"properties":2514,"children":2515,"position":2521},{},[2516],{"type":27,"value":1957,"position":2517},{"start":2518,"end":2519},{"line":2511,"column":21,"offset":2512},{"line":2511,"column":276,"offset":2520},6682,{"start":2522,"end":2523},{"line":2511,"column":21,"offset":2512},{"line":2511,"column":276,"offset":2520},{"type":27,"value":2525,"position":2526}," fields read it); every input is an ",{"start":2527,"end":2528},{"line":2511,"column":276,"offset":2520},{"line":2511,"column":241,"offset":2529},6718,{"type":31,"tagName":46,"properties":2531,"children":2532,"position":2538},{},[2533],{"type":27,"value":148,"position":2534},{"start":2535,"end":2536},{"line":2511,"column":241,"offset":2529},{"line":2511,"column":491,"offset":2537},6723,{"start":2539,"end":2540},{"line":2511,"column":241,"offset":2529},{"line":2511,"column":491,"offset":2537},{"type":27,"value":2542,"position":2543},", and the source decides\nwhat the number means. The catalog, the ",{"start":2544,"end":2545},{"line":2511,"column":491,"offset":2537},{"line":2546,"column":314,"offset":2547},152,6788,{"type":31,"tagName":46,"properties":2549,"children":2550,"position":2557},{},[2551],{"type":27,"value":2552,"position":2553},"missing",{"start":2554,"end":2555},{"line":2546,"column":314,"offset":2547},{"line":2546,"column":228,"offset":2556},6797,{"start":2558,"end":2559},{"line":2546,"column":314,"offset":2547},{"line":2546,"column":228,"offset":2556},{"type":27,"value":2561,"position":2562}," policy for sparse feeds, and the named\nrefusals for feeds a host cannot fetch are in ",{"start":2563,"end":2564},{"line":2546,"column":228,"offset":2556},{"line":2565,"column":491,"offset":2566},153,6883,{"type":31,"tagName":46,"properties":2568,"children":2569,"position":2575},{},[2570],{"type":27,"value":2087,"position":2571},{"start":2572,"end":2573},{"line":2565,"column":491,"offset":2566},{"line":2565,"column":461,"offset":2574},6900,{"start":2576,"end":2577},{"line":2565,"column":491,"offset":2566},{"line":2565,"column":461,"offset":2574},{"type":27,"value":60,"position":2579},{"start":2580,"end":2581},{"line":2565,"column":461,"offset":2574},{"line":2565,"column":878,"offset":2582},6901,{"start":2584,"end":2585},{"line":2435,"column":21,"offset":2436},{"line":2565,"column":878,"offset":2582},{"type":27,"value":28},{"type":31,"tagName":71,"properties":2588,"children":2589,"position":2598},{},[2590],{"type":27,"value":2591,"position":2592},"Type conversion and casting",{"start":2593,"end":2596},{"line":2594,"column":79,"offset":2595},155,6906,{"line":2594,"column":2141,"offset":2597},6933,{"start":2599,"end":2601},{"line":2594,"column":21,"offset":2600},6903,{"line":2594,"column":2141,"offset":2597},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2604,"children":2605,"position":2614},{},[2606],{"type":27,"value":2607,"position":2608},"Nothing converts on its own. The rules:",{"start":2609,"end":2612},{"line":2610,"column":21,"offset":2611},157,6935,{"line":2610,"column":225,"offset":2613},6974,{"start":2615,"end":2616},{"line":2610,"column":21,"offset":2611},{"line":2610,"column":225,"offset":2613},{"type":27,"value":28},{"type":31,"tagName":2619,"properties":2620,"children":2621,"position":2946},"ul",{},[2622,2623,2700,2701,2791,2792,2849,2850,2898,2899,2945],{"type":27,"value":28},{"type":31,"tagName":2624,"properties":2625,"children":2626,"position":2696},"li",{},[2627,2671,2677,2689],{"type":31,"tagName":119,"properties":2628,"children":2629,"position":2666},{},[2630,2643,2649,2660],{"type":31,"tagName":46,"properties":2631,"children":2632,"position":2640},{},[2633],{"type":27,"value":148,"position":2634},{"start":2635,"end":2638},{"line":2636,"column":39,"offset":2637},159,6980,{"line":2636,"column":42,"offset":2639},6985,{"start":2641,"end":2642},{"line":2636,"column":39,"offset":2637},{"line":2636,"column":42,"offset":2639},{"type":27,"value":2644,"position":2645}," to ",{"start":2646,"end":2647},{"line":2636,"column":42,"offset":2639},{"line":2636,"column":96,"offset":2648},6989,{"type":31,"tagName":46,"properties":2650,"children":2651,"position":2657},{},[2652],{"type":27,"value":167,"position":2653},{"start":2654,"end":2655},{"line":2636,"column":96,"offset":2648},{"line":2636,"column":697,"offset":2656},6994,{"start":2658,"end":2659},{"line":2636,"column":96,"offset":2648},{"line":2636,"column":697,"offset":2656},{"type":27,"value":2661,"position":2662},":",{"start":2663,"end":2664},{"line":2636,"column":697,"offset":2656},{"line":2636,"column":113,"offset":2665},6995,{"start":2667,"end":2669},{"line":2636,"column":716,"offset":2668},6978,{"line":2636,"column":188,"offset":2670},6997,{"type":27,"value":2672,"position":2673}," ",{"start":2674,"end":2675},{"line":2636,"column":188,"offset":2670},{"line":2636,"column":1316,"offset":2676},6998,{"type":31,"tagName":46,"properties":2678,"children":2679,"position":2686},{},[2680],{"type":27,"value":2681,"position":2682},"i32(x)",{"start":2683,"end":2684},{"line":2636,"column":1316,"offset":2676},{"line":2636,"column":2141,"offset":2685},7006,{"start":2687,"end":2688},{"line":2636,"column":1316,"offset":2676},{"line":2636,"column":2141,"offset":2685},{"type":27,"value":2690,"position":2691}," truncates toward zero. Periods, cursors,\nand loop bounds derived from a param need it.",{"start":2692,"end":2693},{"line":2636,"column":2141,"offset":2685},{"line":2694,"column":510,"offset":2695},160,7095,{"start":2697,"end":2699},{"line":2636,"column":21,"offset":2698},6976,{"line":2694,"column":510,"offset":2695},{"type":27,"value":28},{"type":31,"tagName":2624,"properties":2702,"children":2703,"position":2787},{},[2704,2746,2751,2763,2770,2781],{"type":31,"tagName":119,"properties":2705,"children":2706,"position":2741},{},[2707,2720,2725,2736],{"type":31,"tagName":46,"properties":2708,"children":2709,"position":2717},{},[2710],{"type":27,"value":167,"position":2711},{"start":2712,"end":2715},{"line":2713,"column":39,"offset":2714},161,7100,{"line":2713,"column":42,"offset":2716},7105,{"start":2718,"end":2719},{"line":2713,"column":39,"offset":2714},{"line":2713,"column":42,"offset":2716},{"type":27,"value":2644,"position":2721},{"start":2722,"end":2723},{"line":2713,"column":42,"offset":2716},{"line":2713,"column":96,"offset":2724},7109,{"type":31,"tagName":46,"properties":2726,"children":2727,"position":2733},{},[2728],{"type":27,"value":148,"position":2729},{"start":2730,"end":2731},{"line":2713,"column":96,"offset":2724},{"line":2713,"column":697,"offset":2732},7114,{"start":2734,"end":2735},{"line":2713,"column":96,"offset":2724},{"line":2713,"column":697,"offset":2732},{"type":27,"value":2661,"position":2737},{"start":2738,"end":2739},{"line":2713,"column":697,"offset":2732},{"line":2713,"column":113,"offset":2740},7115,{"start":2742,"end":2744},{"line":2713,"column":716,"offset":2743},7098,{"line":2713,"column":188,"offset":2745},7117,{"type":27,"value":2672,"position":2747},{"start":2748,"end":2749},{"line":2713,"column":188,"offset":2745},{"line":2713,"column":1316,"offset":2750},7118,{"type":31,"tagName":46,"properties":2752,"children":2753,"position":2760},{},[2754],{"type":27,"value":2755,"position":2756},"f64(n)",{"start":2757,"end":2758},{"line":2713,"column":1316,"offset":2750},{"line":2713,"column":2141,"offset":2759},7126,{"start":2761,"end":2762},{"line":2713,"column":1316,"offset":2750},{"line":2713,"column":2141,"offset":2759},{"type":27,"value":2764,"position":2765},". Writing a counter to an output needs it,\nand so does mixing an ",{"start":2766,"end":2767},{"line":2713,"column":2141,"offset":2759},{"line":2768,"column":1110,"offset":2769},162,7193,{"type":31,"tagName":46,"properties":2771,"children":2772,"position":2778},{},[2773],{"type":27,"value":167,"position":2774},{"start":2775,"end":2776},{"line":2768,"column":1110,"offset":2769},{"line":2768,"column":273,"offset":2777},7198,{"start":2779,"end":2780},{"line":2768,"column":1110,"offset":2769},{"line":2768,"column":273,"offset":2777},{"type":27,"value":2782,"position":2783}," into float arithmetic.",{"start":2784,"end":2785},{"line":2768,"column":273,"offset":2777},{"line":2768,"column":357,"offset":2786},7221,{"start":2788,"end":2790},{"line":2713,"column":21,"offset":2789},7096,{"line":2768,"column":357,"offset":2786},{"type":27,"value":28},{"type":31,"tagName":2624,"properties":2793,"children":2794,"position":2845},{},[2795,2822,2828,2840],{"type":31,"tagName":119,"properties":2796,"children":2797,"position":2817},{},[2798,2811],{"type":31,"tagName":46,"properties":2799,"children":2800,"position":2808},{},[2801],{"type":27,"value":184,"position":2802},{"start":2803,"end":2806},{"line":2804,"column":39,"offset":2805},163,7226,{"line":2804,"column":286,"offset":2807},7232,{"start":2809,"end":2810},{"line":2804,"column":39,"offset":2805},{"line":2804,"column":286,"offset":2807},{"type":27,"value":2812,"position":2813}," to a number:",{"start":2814,"end":2815},{"line":2804,"column":286,"offset":2807},{"line":2804,"column":197,"offset":2816},7245,{"start":2818,"end":2820},{"line":2804,"column":716,"offset":2819},7224,{"line":2804,"column":240,"offset":2821},7247,{"type":27,"value":2823,"position":2824}," a ternary, ",{"start":2825,"end":2826},{"line":2804,"column":240,"offset":2821},{"line":2804,"column":43,"offset":2827},7259,{"type":31,"tagName":46,"properties":2829,"children":2830,"position":2837},{},[2831],{"type":27,"value":2832,"position":2833},"flag ? 1.0 : 0.0",{"start":2834,"end":2835},{"line":2804,"column":43,"offset":2827},{"line":2804,"column":126,"offset":2836},7277,{"start":2838,"end":2839},{"line":2804,"column":43,"offset":2827},{"line":2804,"column":126,"offset":2836},{"type":27,"value":60,"position":2841},{"start":2842,"end":2843},{"line":2804,"column":126,"offset":2836},{"line":2804,"column":681,"offset":2844},7278,{"start":2846,"end":2848},{"line":2804,"column":21,"offset":2847},7222,{"line":2804,"column":681,"offset":2844},{"type":27,"value":28},{"type":31,"tagName":2624,"properties":2851,"children":2852,"position":2894},{},[2853,2869,2875,2887],{"type":31,"tagName":119,"properties":2854,"children":2855,"position":2864},{},[2856],{"type":27,"value":2857,"position":2858},"A number to a string:",{"start":2859,"end":2862},{"line":2860,"column":39,"offset":2861},164,7283,{"line":2860,"column":240,"offset":2863},7304,{"start":2865,"end":2867},{"line":2860,"column":716,"offset":2866},7281,{"line":2860,"column":254,"offset":2868},7306,{"type":27,"value":2672,"position":2870},{"start":2871,"end":2872},{"line":2860,"column":254,"offset":2868},{"line":2860,"column":2873,"offset":2874},29,7307,{"type":31,"tagName":46,"properties":2876,"children":2877,"position":2884},{},[2878],{"type":27,"value":2879,"position":2880},".toString()",{"start":2881,"end":2882},{"line":2860,"column":2873,"offset":2874},{"line":2860,"column":241,"offset":2883},7320,{"start":2885,"end":2886},{"line":2860,"column":2873,"offset":2874},{"line":2860,"column":241,"offset":2883},{"type":27,"value":2888,"position":2889},", and only for module-internal\ntext.",{"start":2890,"end":2891},{"line":2860,"column":241,"offset":2883},{"line":2892,"column":563,"offset":2893},165,7358,{"start":2895,"end":2897},{"line":2860,"column":21,"offset":2896},7279,{"line":2892,"column":563,"offset":2893},{"type":27,"value":28},{"type":31,"tagName":2624,"properties":2900,"children":2901,"position":2941},{},[2902,2918,2923,2935],{"type":31,"tagName":119,"properties":2903,"children":2904,"position":2913},{},[2905],{"type":27,"value":2906,"position":2907},"Never implicit:",{"start":2908,"end":2911},{"line":2909,"column":39,"offset":2910},166,7363,{"line":2909,"column":113,"offset":2912},7378,{"start":2914,"end":2916},{"line":2909,"column":716,"offset":2915},7361,{"line":2909,"column":188,"offset":2917},7380,{"type":27,"value":2672,"position":2919},{"start":2920,"end":2921},{"line":2909,"column":188,"offset":2917},{"line":2909,"column":1316,"offset":2922},7381,{"type":31,"tagName":46,"properties":2924,"children":2925,"position":2932},{},[2926],{"type":27,"value":2927,"position":2928},"f64 * i32",{"start":2929,"end":2930},{"line":2909,"column":1316,"offset":2922},{"line":2909,"column":733,"offset":2931},7392,{"start":2933,"end":2934},{"line":2909,"column":1316,"offset":2922},{"line":2909,"column":733,"offset":2931},{"type":27,"value":2936,"position":2937}," is refused; cast one side.",{"start":2938,"end":2939},{"line":2909,"column":733,"offset":2931},{"line":2909,"column":500,"offset":2940},7419,{"start":2942,"end":2944},{"line":2909,"column":21,"offset":2943},7359,{"line":2909,"column":500,"offset":2940},{"type":27,"value":28},{"start":2947,"end":2948},{"line":2636,"column":21,"offset":2698},{"line":2909,"column":500,"offset":2940},{"type":27,"value":28},{"type":14,"children":2951},[2952],{"type":31,"tagName":366,"properties":2953,"children":2954,"data":-1},{"class":368,"style":369,"tabindex":370},[2955],{"type":31,"tagName":46,"properties":2956,"children":2958},{"class":2957},[375],[2959,2967,2968,2976,2977,2985,2986],{"type":31,"tagName":378,"properties":2960,"children":2961},{"class":380},[2962],{"type":31,"tagName":378,"properties":2963,"children":2964},{},[2965],{"type":27,"value":2966},"const period = i32(p_period());          // f64 to i32",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2969,"children":2970},{"class":380},[2971],{"type":31,"tagName":378,"properties":2972,"children":2973},{},[2974],{"type":27,"value":2975},"out_count(f64(hits));                    // i32 to f64",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2978,"children":2979},{"class":380},[2980],{"type":31,"tagName":378,"properties":2981,"children":2982},{},[2983],{"type":27,"value":2984},"out_is_long(fast > slow ? 1.0 : 0.0);    // bool to f64",{"type":27,"value":28},{"type":31,"tagName":378,"properties":2987,"children":2988},{"class":380},[2989],{"type":31,"tagName":378,"properties":2990,"children":2991},{},[2992],{"type":27,"value":2993},"const label = \"n=\" + hits.toString();    // i32 to string, inside the module",{"type":27,"value":28},{"type":31,"tagName":32,"properties":2996,"children":2997,"position":3020},{},[2998,3014],{"type":31,"tagName":119,"properties":2999,"children":3000,"position":3009},{},[3001],{"type":27,"value":3002,"position":3003},"Type mismatch errors",{"start":3004,"end":3007},{"line":3005,"column":716,"offset":3006},175,7679,{"line":3005,"column":1316,"offset":3008},7699,{"start":3010,"end":3012},{"line":3005,"column":21,"offset":3011},7677,{"line":3005,"column":1110,"offset":3013},7701,{"type":27,"value":3015,"position":3016}," name the rule. The ones you will meet:",{"start":3017,"end":3018},{"line":3005,"column":1110,"offset":3013},{"line":3005,"column":461,"offset":3019},7740,{"start":3021,"end":3022},{"line":3005,"column":21,"offset":3011},{"line":3005,"column":461,"offset":3019},{"type":27,"value":3024},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":31,"tagName":1525,"properties":3026,"children":3027,"position":3523},{},[3028,3084],{"type":31,"tagName":1529,"properties":3029,"children":3030,"position":3081},{},[3031],{"type":31,"tagName":1533,"properties":3032,"children":3033,"position":3078},{},[3034,3050,3064],{"type":31,"tagName":1537,"properties":3035,"children":3036,"position":3045},{},[3037],{"type":27,"value":3038,"position":3039},"Message",{"start":3040,"end":3043},{"line":3041,"column":716,"offset":3042},177,7744,{"line":3041,"column":42,"offset":3044},7751,{"start":3046,"end":3048},{"line":3041,"column":21,"offset":3047},7742,{"line":3041,"column":286,"offset":3049},7752,{"type":31,"tagName":1537,"properties":3051,"children":3052,"position":3060},{},[3053],{"type":27,"value":3054,"position":3055},"Cause",{"start":3056,"end":3058},{"line":3041,"column":982,"offset":3057},7754,{"line":3041,"column":99,"offset":3059},7759,{"start":3061,"end":3062},{"line":3041,"column":286,"offset":3049},{"line":3041,"column":697,"offset":3063},7760,{"type":31,"tagName":1537,"properties":3065,"children":3066,"position":3074},{},[3067],{"type":27,"value":3068,"position":3069},"Fix",{"start":3070,"end":3072},{"line":3041,"column":141,"offset":3071},7762,{"line":3041,"column":197,"offset":3073},7765,{"start":3075,"end":3076},{"line":3041,"column":697,"offset":3063},{"line":3041,"column":240,"offset":3077},7767,{"start":3079,"end":3080},{"line":3041,"column":21,"offset":3047},{"line":3041,"column":240,"offset":3077},{"start":3082,"end":3083},{"line":3041,"column":21,"offset":3047},{"line":3041,"column":240,"offset":3077},{"type":31,"tagName":1574,"properties":3085,"children":3086,"position":3520},{},[3087,3147,3212,3265,3327,3390,3463],{"type":31,"tagName":1533,"properties":3088,"children":3089,"position":3144},{},[3090,3109,3125],{"type":31,"tagName":1581,"properties":3091,"children":3092,"position":3104},{},[3093],{"type":31,"tagName":46,"properties":3094,"children":3095,"position":3098},{},[3096],{"type":27,"value":3097},"AS200: Conversion from type 'f64' to 'i32' requires an explicit cast.",{"start":3099,"end":3102},{"line":3100,"column":716,"offset":3101},179,7790,{"line":3100,"column":1129,"offset":3103},7861,{"start":3105,"end":3107},{"line":3100,"column":21,"offset":3106},7788,{"line":3100,"column":2151,"offset":3108},7862,{"type":31,"tagName":1581,"properties":3110,"children":3111,"position":3120},{},[3112],{"type":27,"value":3113,"position":3114},"a param or float where an integer goes",{"start":3115,"end":3117},{"line":3100,"column":1028,"offset":3116},7864,{"line":3100,"column":3118,"offset":3119},115,7902,{"start":3121,"end":3122},{"line":3100,"column":2151,"offset":3108},{"line":3100,"column":3123,"offset":3124},116,7903,{"type":31,"tagName":1581,"properties":3126,"children":3127,"position":3140},{},[3128],{"type":31,"tagName":46,"properties":3129,"children":3130,"position":3133},{},[3131],{"type":27,"value":3132},"i32(...)",{"start":3134,"end":3137},{"line":3100,"column":3135,"offset":3136},118,7905,{"line":3100,"column":3138,"offset":3139},128,7915,{"start":3141,"end":3142},{"line":3100,"column":3123,"offset":3124},{"line":3100,"column":2211,"offset":3143},7917,{"start":3145,"end":3146},{"line":3100,"column":21,"offset":3106},{"line":3100,"column":2211,"offset":3143},{"type":31,"tagName":1533,"properties":3148,"children":3149,"position":3209},{},[3150,3169,3185],{"type":31,"tagName":1581,"properties":3151,"children":3152,"position":3164},{},[3153],{"type":31,"tagName":46,"properties":3154,"children":3155,"position":3158},{},[3156],{"type":27,"value":3157},"TS2322: Type 'bool' is not assignable to type 'i32'.",{"start":3159,"end":3162},{"line":3160,"column":716,"offset":3161},180,7920,{"line":3160,"column":681,"offset":3163},7974,{"start":3165,"end":3167},{"line":3160,"column":21,"offset":3166},7918,{"line":3160,"column":759,"offset":3168},7975,{"type":31,"tagName":1581,"properties":3170,"children":3171,"position":3181},{},[3172],{"type":27,"value":3173,"position":3174},"a comparator returning a comparison",{"start":3175,"end":3178},{"line":3160,"column":3176,"offset":3177},60,7977,{"line":3160,"column":3179,"offset":3180},95,8012,{"start":3182,"end":3183},{"line":3160,"column":759,"offset":3168},{"line":3160,"column":1588,"offset":3184},8013,{"type":31,"tagName":1581,"properties":3186,"children":3187,"position":3204},{},[3188,3195],{"type":27,"value":3189,"position":3190},"return ",{"start":3191,"end":3193},{"line":3160,"column":1726,"offset":3192},8015,{"line":3160,"column":1699,"offset":3194},8022,{"type":31,"tagName":46,"properties":3196,"children":3197,"position":3200},{},[3198],{"type":27,"value":3199},"a > b ? 1 : a \u003C b ? -1 : 0",{"start":3201,"end":3202},{"line":3160,"column":1699,"offset":3194},{"line":3160,"column":2301,"offset":3203},8050,{"start":3205,"end":3206},{"line":3160,"column":1588,"offset":3184},{"line":3160,"column":3207,"offset":3208},135,8052,{"start":3210,"end":3211},{"line":3160,"column":21,"offset":3166},{"line":3160,"column":3207,"offset":3208},{"type":31,"tagName":1533,"properties":3213,"children":3214,"position":3262},{},[3215,3234,3248],{"type":31,"tagName":1581,"properties":3216,"children":3217,"position":3229},{},[3218],{"type":31,"tagName":46,"properties":3219,"children":3220,"position":3223},{},[3221],{"type":27,"value":3222},"TS2322: Type 'String' is not assignable to type 'f64'.",{"start":3224,"end":3227},{"line":3225,"column":716,"offset":3226},181,8055,{"line":3225,"column":694,"offset":3228},8111,{"start":3230,"end":3232},{"line":3225,"column":21,"offset":3231},8053,{"line":3225,"column":3176,"offset":3233},8112,{"type":31,"tagName":1581,"properties":3235,"children":3236,"position":3244},{},[3237],{"type":27,"value":3238,"position":3239},"a string pushed onto a numeric array",{"start":3240,"end":3242},{"line":3225,"column":591,"offset":3241},8114,{"line":3225,"column":1726,"offset":3243},8150,{"start":3245,"end":3246},{"line":3225,"column":3176,"offset":3233},{"line":3225,"column":1859,"offset":3247},8151,{"type":31,"tagName":1581,"properties":3249,"children":3250,"position":3258},{},[3251],{"type":27,"value":3252,"position":3253},"keep the array homogeneous",{"start":3254,"end":3256},{"line":3225,"column":1899,"offset":3255},8153,{"line":3225,"column":2174,"offset":3257},8179,{"start":3259,"end":3260},{"line":3225,"column":1859,"offset":3247},{"line":3225,"column":2190,"offset":3261},8181,{"start":3263,"end":3264},{"line":3225,"column":21,"offset":3231},{"line":3225,"column":2190,"offset":3261},{"type":31,"tagName":1533,"properties":3266,"children":3267,"position":3324},{},[3268,3287,3310],{"type":31,"tagName":1581,"properties":3269,"children":3270,"position":3282},{},[3271],{"type":31,"tagName":46,"properties":3272,"children":3273,"position":3276},{},[3274],{"type":27,"value":3275},"TS2329: Index signature is missing in type 'f64'.",{"start":3277,"end":3280},{"line":3278,"column":716,"offset":3279},182,8184,{"line":3278,"column":116,"offset":3281},8235,{"start":3283,"end":3285},{"line":3278,"column":21,"offset":3284},8182,{"line":3278,"column":659,"offset":3286},8236,{"type":31,"tagName":1581,"properties":3288,"children":3289,"position":3306},{},[3290,3300],{"type":31,"tagName":46,"properties":3291,"children":3292,"position":3295},{},[3293],{"type":27,"value":3294},"close[1]",{"start":3296,"end":3298},{"line":3278,"column":681,"offset":3297},8238,{"line":3278,"column":538,"offset":3299},8248,{"type":27,"value":3301,"position":3302}," on a number",{"start":3303,"end":3304},{"line":3278,"column":538,"offset":3299},{"line":3278,"column":1038,"offset":3305},8260,{"start":3307,"end":3308},{"line":3278,"column":659,"offset":3286},{"line":3278,"column":1289,"offset":3309},8261,{"type":31,"tagName":1581,"properties":3311,"children":3312,"position":3320},{},[3313],{"type":27,"value":3314,"position":3315},"keep the previous value in a variable",{"start":3316,"end":3318},{"line":3278,"column":1371,"offset":3317},8263,{"line":3278,"column":2045,"offset":3319},8300,{"start":3321,"end":3322},{"line":3278,"column":1289,"offset":3309},{"line":3278,"column":1706,"offset":3323},8302,{"start":3325,"end":3326},{"line":3278,"column":21,"offset":3284},{"line":3278,"column":1706,"offset":3323},{"type":31,"tagName":1533,"properties":3328,"children":3329,"position":3387},{},[3330,3349,3363],{"type":31,"tagName":1581,"properties":3331,"children":3332,"position":3344},{},[3333],{"type":31,"tagName":46,"properties":3334,"children":3335,"position":3338},{},[3336],{"type":27,"value":3337},"TS1110: Type expected.",{"start":3339,"end":3342},{"line":3340,"column":716,"offset":3341},183,8305,{"line":3340,"column":511,"offset":3343},8329,{"start":3345,"end":3347},{"line":3340,"column":21,"offset":3346},8303,{"line":3340,"column":254,"offset":3348},8330,{"type":31,"tagName":1581,"properties":3350,"children":3351,"position":3359},{},[3352],{"type":27,"value":3353,"position":3354},"a function without a return type",{"start":3355,"end":3357},{"line":3340,"column":273,"offset":3356},8332,{"line":3340,"column":591,"offset":3358},8364,{"start":3360,"end":3361},{"line":3340,"column":254,"offset":3348},{"line":3340,"column":769,"offset":3362},8365,{"type":31,"tagName":1581,"properties":3364,"children":3365,"position":3383},{},[3366,3373],{"type":27,"value":3367,"position":3368},"annotate: ",{"start":3369,"end":3371},{"line":3340,"column":878,"offset":3370},8367,{"line":3340,"column":2151,"offset":3372},8377,{"type":31,"tagName":46,"properties":3374,"children":3375,"position":3378},{},[3376],{"type":27,"value":3377},"function f(x: f64): f64",{"start":3379,"end":3380},{"line":3340,"column":2151,"offset":3372},{"line":3340,"column":3381,"offset":3382},100,8402,{"start":3384,"end":3385},{"line":3340,"column":769,"offset":3362},{"line":3340,"column":1773,"offset":3386},8404,{"start":3388,"end":3389},{"line":3340,"column":21,"offset":3346},{"line":3340,"column":1773,"offset":3386},{"type":31,"tagName":1533,"properties":3391,"children":3392,"position":3460},{},[3393,3412,3426],{"type":31,"tagName":1581,"properties":3394,"children":3395,"position":3407},{},[3396],{"type":31,"tagName":46,"properties":3397,"children":3398,"position":3401},{},[3399],{"type":27,"value":3400},"AS100: Not implemented: Closures",{"start":3402,"end":3405},{"line":3403,"column":716,"offset":3404},184,8407,{"line":3403,"column":1164,"offset":3406},8441,{"start":3408,"end":3410},{"line":3403,"column":21,"offset":3409},8405,{"line":3403,"column":43,"offset":3411},8442,{"type":31,"tagName":1581,"properties":3413,"children":3414,"position":3422},{},[3415],{"type":27,"value":3416,"position":3417},"an arrow function reading a local of the enclosing function",{"start":3418,"end":3420},{"line":3403,"column":225,"offset":3419},8444,{"line":3403,"column":1859,"offset":3421},8503,{"start":3423,"end":3424},{"line":3403,"column":43,"offset":3411},{"line":3403,"column":3381,"offset":3425},8504,{"type":31,"tagName":1581,"properties":3427,"children":3428,"position":3456},{},[3429,3436,3450],{"type":27,"value":3430,"position":3431},"read module-level state instead (",{"start":3432,"end":3434},{"line":3403,"column":1773,"offset":3433},8506,{"line":3403,"column":3207,"offset":3435},8539,{"type":31,"tagName":46,"properties":3437,"children":3438,"position":3446},{},[3439,3441,3444],{"type":27,"value":3440},"lambdas-and-reducers.",{"type":31,"tagName":1824,"properties":3442,"children":3443},{},[],{"type":27,"value":3445},"md",{"start":3447,"end":3448},{"line":3403,"column":3207,"offset":3435},{"line":3403,"column":2694,"offset":3449},8564,{"type":27,"value":3451,"position":3452},")",{"start":3453,"end":3454},{"line":3403,"column":2694,"offset":3449},{"line":3403,"column":2713,"offset":3455},8565,{"start":3457,"end":3458},{"line":3403,"column":3381,"offset":3425},{"line":3403,"column":2804,"offset":3459},8567,{"start":3461,"end":3462},{"line":3403,"column":21,"offset":3409},{"line":3403,"column":2804,"offset":3459},{"type":31,"tagName":1533,"properties":3464,"children":3465,"position":3517},{},[3466,3485,3502],{"type":31,"tagName":1581,"properties":3467,"children":3468,"position":3480},{},[3469],{"type":31,"tagName":46,"properties":3470,"children":3471,"position":3474},{},[3472],{"type":27,"value":3473},"AS100: Not implemented: Iterators",{"start":3475,"end":3478},{"line":3476,"column":716,"offset":3477},185,8570,{"line":3476,"column":43,"offset":3479},8605,{"start":3481,"end":3483},{"line":3476,"column":21,"offset":3482},8568,{"line":3476,"column":305,"offset":3484},8606,{"type":31,"tagName":1581,"properties":3486,"children":3487,"position":3498},{},[3488],{"type":31,"tagName":46,"properties":3489,"children":3490,"position":3493},{},[3491],{"type":27,"value":3492},"for (const x of xs)",{"start":3494,"end":3496},{"line":3476,"column":314,"offset":3495},8608,{"line":3476,"column":591,"offset":3497},8629,{"start":3499,"end":3500},{"line":3476,"column":305,"offset":3484},{"line":3476,"column":769,"offset":3501},8630,{"type":31,"tagName":1581,"properties":3503,"children":3504,"position":3513},{},[3505],{"type":27,"value":3506,"position":3507},"an index loop",{"start":3508,"end":3510},{"line":3476,"column":878,"offset":3509},8632,{"line":3476,"column":3511,"offset":3512},78,8645,{"start":3514,"end":3515},{"line":3476,"column":769,"offset":3501},{"line":3476,"column":1289,"offset":3516},8647,{"start":3518,"end":3519},{"line":3476,"column":21,"offset":3482},{"line":3476,"column":1289,"offset":3516},{"start":3521,"end":3522},{"line":3100,"column":21,"offset":3106},{"line":3476,"column":1289,"offset":3516},{"start":3524,"end":3525},{"line":3041,"column":21,"offset":3047},{"line":3476,"column":1289,"offset":3516},{"type":27,"value":28},{"type":31,"tagName":71,"properties":3528,"children":3529,"position":3538},{},[3530],{"type":27,"value":3531,"position":3532},"Best practices",{"start":3533,"end":3536},{"line":3534,"column":79,"offset":3535},187,8652,{"line":3534,"column":99,"offset":3537},8666,{"start":3539,"end":3541},{"line":3534,"column":21,"offset":3540},8649,{"line":3534,"column":99,"offset":3537},{"type":27,"value":28},{"type":31,"tagName":32,"properties":3544,"children":3545,"position":3605},{},[3546,3554,3565,3572,3583,3588,3599],{"type":27,"value":3547,"position":3548},"Annotate every module-level ",{"start":3549,"end":3552},{"line":3550,"column":21,"offset":3551},189,8668,{"line":3550,"column":2873,"offset":3553},8696,{"type":31,"tagName":46,"properties":3555,"children":3556,"position":3562},{},[3557],{"type":27,"value":270,"position":3558},{"start":3559,"end":3560},{"line":3550,"column":2873,"offset":3553},{"line":3550,"column":733,"offset":3561},8701,{"start":3563,"end":3564},{"line":3550,"column":2873,"offset":3553},{"line":3550,"column":733,"offset":3561},{"type":27,"value":3566,"position":3567}," and every function signature (the\nannotation is documentation, and it stops the literal rule from making a\nfloat an integer); feed inputs straight into the classes that keep the\nwindows; keep params, inputs, and outputs at the top as top-level\nstatements, state under them, ",{"start":3568,"end":3569},{"line":3550,"column":733,"offset":3561},{"line":3570,"column":2141,"offset":3571},193,8976,{"type":31,"tagName":46,"properties":3573,"children":3574,"position":3580},{},[3575],{"type":27,"value":632,"position":3576},{"start":3577,"end":3578},{"line":3570,"column":2141,"offset":3571},{"line":3570,"column":241,"offset":3579},8987,{"start":3581,"end":3582},{"line":3570,"column":2141,"offset":3571},{"line":3570,"column":241,"offset":3579},{"type":27,"value":282,"position":3584},{"start":3585,"end":3586},{"line":3570,"column":241,"offset":3579},{"line":3570,"column":491,"offset":3587},8992,{"type":31,"tagName":46,"properties":3589,"children":3590,"position":3596},{},[3591],{"type":27,"value":1471,"position":3592},{"start":3593,"end":3594},{"line":3570,"column":491,"offset":3587},{"line":3570,"column":126,"offset":3595},9001,{"start":3597,"end":3598},{"line":3570,"column":491,"offset":3587},{"line":3570,"column":126,"offset":3595},{"type":27,"value":3600,"position":3601}," last.",{"start":3602,"end":3603},{"line":3570,"column":126,"offset":3595},{"line":3570,"column":591,"offset":3604},9007,{"start":3606,"end":3607},{"line":3550,"column":21,"offset":3551},{"line":3570,"column":591,"offset":3604},{"type":27,"value":28},{"type":31,"tagName":71,"properties":3610,"children":3611,"position":3620},{},[3612],{"type":27,"value":3613,"position":3614},"Complete example: multi-source momentum",{"start":3615,"end":3618},{"line":3616,"column":79,"offset":3617},195,9012,{"line":3616,"column":54,"offset":3619},9051,{"start":3621,"end":3623},{"line":3616,"column":21,"offset":3622},9009,{"line":3616,"column":54,"offset":3619},{"type":27,"value":28},{"type":31,"tagName":32,"properties":3626,"children":3627,"position":3674},{},[3628,3637,3650,3656,3667],{"type":27,"value":3629,"position":3630},"A momentum indicator over three sources: the close for an RSI, the funding\nrate averaged over 24 bars, and liquidations (sparse, so ",{"start":3631,"end":3634},{"line":3632,"column":21,"offset":3633},197,9053,{"line":3635,"column":759,"offset":3636},198,9185,{"type":31,"tagName":46,"properties":3638,"children":3639,"position":3647},{},[3640],{"type":27,"value":3641,"position":3642},"missing: \"zero\"",{"start":3643,"end":3644},{"line":3635,"column":759,"offset":3636},{"line":3645,"column":563,"offset":3646},199,9202,{"start":3648,"end":3649},{"line":3635,"column":759,"offset":3636},{"line":3645,"column":563,"offset":3646},{"type":27,"value":3651,"position":3652}," makes a quiet bar a ",{"start":3653,"end":3654},{"line":3645,"column":563,"offset":3646},{"line":3645,"column":2873,"offset":3655},9223,{"type":31,"tagName":46,"properties":3657,"children":3658,"position":3664},{},[3659],{"type":27,"value":370,"position":3660},{"start":3661,"end":3662},{"line":3645,"column":2873,"offset":3655},{"line":3645,"column":207,"offset":3663},9226,{"start":3665,"end":3666},{"line":3645,"column":2873,"offset":3655},{"line":3645,"column":207,"offset":3663},{"type":27,"value":3668,"position":3669},"). The extreme condition is a data-only\ngate and a mark drawn only where it holds.",{"start":3670,"end":3671},{"line":3645,"column":207,"offset":3663},{"line":3672,"column":54,"offset":3673},200,9308,{"start":3675,"end":3676},{"line":3632,"column":21,"offset":3633},{"line":3672,"column":54,"offset":3673},{"type":27,"value":28},{"type":14,"children":3679},[3680],{"type":31,"tagName":366,"properties":3681,"children":3683,"data":-1},{"class":368,"style":369,"tabindex":370,"data-sample":3682},"cc-types-momentum",[3684],{"type":31,"tagName":46,"properties":3685,"children":3688},{"class":3686},[3687],"language-typescript",[3689,3698,3699,3765,3766,3822,3823,3877,3878,3886,3887,3908,3909,3939,3940,3979,3980,3988,3989,4038,4039,4084,4085,4134,4135,4155,4156,4159,4160,4201,4202,4246,4247,4289,4290,4326,4327,4360,4361,4364,4365,4397,4398,4440,4441,4463,4464,4485,4486,4494,4495,4498,4499,4527,4528,4575,4576,4615,4616,4654,4655,4663,4664,4704,4705,4748,4749,4792,4793,4841,4842,4873,4874,4887,4888,4901,4902,4920,4921,4962,4963],{"type":31,"tagName":378,"properties":3690,"children":3691},{"class":380},[3692],{"type":31,"tagName":378,"properties":3693,"children":3695},{"style":3694},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[3696],{"type":27,"value":3697},"// Configuration: the RSI length, the RSI level, and the funding level.",{"type":27,"value":28},{"type":31,"tagName":378,"properties":3700,"children":3701},{"class":380},[3702,3708,3714,3720,3724,3730,3735,3740,3745,3750,3755,3760],{"type":31,"tagName":378,"properties":3703,"children":3705},{"style":3704},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[3706],{"type":27,"value":3707},"param",{"type":31,"tagName":378,"properties":3709,"children":3711},{"style":3710},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[3712],{"type":27,"value":3713},"(",{"type":31,"tagName":378,"properties":3715,"children":3717},{"style":3716},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[3718],{"type":27,"value":3719},"\"rsi_period\"",{"type":31,"tagName":378,"properties":3721,"children":3722},{"style":3710},[3723],{"type":27,"value":157},{"type":31,"tagName":378,"properties":3725,"children":3727},{"style":3726},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[3728],{"type":27,"value":3729},"14",{"type":31,"tagName":378,"properties":3731,"children":3732},{"style":3710},[3733],{"type":27,"value":3734},", { min: ",{"type":31,"tagName":378,"properties":3736,"children":3737},{"style":3726},[3738],{"type":27,"value":3739},"2",{"type":31,"tagName":378,"properties":3741,"children":3742},{"style":3710},[3743],{"type":27,"value":3744},", max: ",{"type":31,"tagName":378,"properties":3746,"children":3747},{"style":3726},[3748],{"type":27,"value":3749},"100",{"type":31,"tagName":378,"properties":3751,"children":3752},{"style":3710},[3753],{"type":27,"value":3754},", description: ",{"type":31,"tagName":378,"properties":3756,"children":3757},{"style":3716},[3758],{"type":27,"value":3759},"\"RSI period\"",{"type":31,"tagName":378,"properties":3761,"children":3762},{"style":3710},[3763],{"type":27,"value":3764}," });",{"type":27,"value":28},{"type":31,"tagName":378,"properties":3767,"children":3768},{"class":380},[3769,3773,3777,3782,3786,3791,3795,3800,3804,3809,3813,3818],{"type":31,"tagName":378,"properties":3770,"children":3771},{"style":3704},[3772],{"type":27,"value":3707},{"type":31,"tagName":378,"properties":3774,"children":3775},{"style":3710},[3776],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":3778,"children":3779},{"style":3716},[3780],{"type":27,"value":3781},"\"extreme_rsi\"",{"type":31,"tagName":378,"properties":3783,"children":3784},{"style":3710},[3785],{"type":27,"value":157},{"type":31,"tagName":378,"properties":3787,"children":3788},{"style":3726},[3789],{"type":27,"value":3790},"30",{"type":31,"tagName":378,"properties":3792,"children":3793},{"style":3710},[3794],{"type":27,"value":3734},{"type":31,"tagName":378,"properties":3796,"children":3797},{"style":3726},[3798],{"type":27,"value":3799},"1",{"type":31,"tagName":378,"properties":3801,"children":3802},{"style":3710},[3803],{"type":27,"value":3744},{"type":31,"tagName":378,"properties":3805,"children":3806},{"style":3726},[3807],{"type":27,"value":3808},"99",{"type":31,"tagName":378,"properties":3810,"children":3811},{"style":3710},[3812],{"type":27,"value":3754},{"type":31,"tagName":378,"properties":3814,"children":3815},{"style":3716},[3816],{"type":27,"value":3817},"\"RSI at or below this is oversold\"",{"type":31,"tagName":378,"properties":3819,"children":3820},{"style":3710},[3821],{"type":27,"value":3764},{"type":27,"value":28},{"type":31,"tagName":378,"properties":3824,"children":3825},{"class":380},[3826,3830,3834,3839,3843,3848,3852,3856,3860,3864,3868,3873],{"type":31,"tagName":378,"properties":3827,"children":3828},{"style":3704},[3829],{"type":27,"value":3707},{"type":31,"tagName":378,"properties":3831,"children":3832},{"style":3710},[3833],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":3835,"children":3836},{"style":3716},[3837],{"type":27,"value":3838},"\"funding_threshold\"",{"type":31,"tagName":378,"properties":3840,"children":3841},{"style":3710},[3842],{"type":27,"value":157},{"type":31,"tagName":378,"properties":3844,"children":3845},{"style":3726},[3846],{"type":27,"value":3847},"0.01",{"type":31,"tagName":378,"properties":3849,"children":3850},{"style":3710},[3851],{"type":27,"value":3734},{"type":31,"tagName":378,"properties":3853,"children":3854},{"style":3726},[3855],{"type":27,"value":370},{"type":31,"tagName":378,"properties":3857,"children":3858},{"style":3710},[3859],{"type":27,"value":3744},{"type":31,"tagName":378,"properties":3861,"children":3862},{"style":3726},[3863],{"type":27,"value":3749},{"type":31,"tagName":378,"properties":3865,"children":3866},{"style":3710},[3867],{"type":27,"value":3754},{"type":31,"tagName":378,"properties":3869,"children":3870},{"style":3716},[3871],{"type":27,"value":3872},"\"Funding below minus this means shorts are paying, in the feed's own units\"",{"type":31,"tagName":378,"properties":3874,"children":3875},{"style":3710},[3876],{"type":27,"value":3764},{"type":27,"value":28},{"type":31,"tagName":378,"properties":3879,"children":3880},{"class":380},[3881],{"type":31,"tagName":378,"properties":3882,"children":3883},{"style":3694},[3884],{"type":27,"value":3885},"// Data sources: price, funding, liquidations.",{"type":27,"value":28},{"type":31,"tagName":378,"properties":3888,"children":3889},{"class":380},[3890,3894,3898,3903],{"type":31,"tagName":378,"properties":3891,"children":3892},{"style":3704},[3893],{"type":27,"value":2053},{"type":31,"tagName":378,"properties":3895,"children":3896},{"style":3710},[3897],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":3899,"children":3900},{"style":3716},[3901],{"type":27,"value":3902},"\"close\"",{"type":31,"tagName":378,"properties":3904,"children":3905},{"style":3710},[3906],{"type":27,"value":3907},", ohlcv.close);",{"type":27,"value":28},{"type":31,"tagName":378,"properties":3910,"children":3911},{"class":380},[3912,3916,3920,3925,3930,3935],{"type":31,"tagName":378,"properties":3913,"children":3914},{"style":3704},[3915],{"type":27,"value":2053},{"type":31,"tagName":378,"properties":3917,"children":3918},{"style":3710},[3919],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":3921,"children":3922},{"style":3716},[3923],{"type":27,"value":3924},"\"funding\"",{"type":31,"tagName":378,"properties":3926,"children":3927},{"style":3710},[3928],{"type":27,"value":3929},", funding.rate_close, { description: ",{"type":31,"tagName":378,"properties":3931,"children":3932},{"style":3716},[3933],{"type":27,"value":3934},"\"Funding rate at the bar's close\"",{"type":31,"tagName":378,"properties":3936,"children":3937},{"style":3710},[3938],{"type":27,"value":3764},{"type":27,"value":28},{"type":31,"tagName":378,"properties":3941,"children":3942},{"class":380},[3943,3947,3951,3956,3961,3966,3970,3975],{"type":31,"tagName":378,"properties":3944,"children":3945},{"style":3704},[3946],{"type":27,"value":2053},{"type":31,"tagName":378,"properties":3948,"children":3949},{"style":3710},[3950],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":3952,"children":3953},{"style":3716},[3954],{"type":27,"value":3955},"\"liqs\"",{"type":31,"tagName":378,"properties":3957,"children":3958},{"style":3710},[3959],{"type":27,"value":3960},", liquidations.liquidations, { missing: ",{"type":31,"tagName":378,"properties":3962,"children":3963},{"style":3716},[3964],{"type":27,"value":3965},"\"zero\"",{"type":31,"tagName":378,"properties":3967,"children":3968},{"style":3710},[3969],{"type":27,"value":3754},{"type":31,"tagName":378,"properties":3971,"children":3972},{"style":3716},[3973],{"type":27,"value":3974},"\"Liquidation volume, 0 on quiet bars\"",{"type":31,"tagName":378,"properties":3976,"children":3977},{"style":3710},[3978],{"type":27,"value":3764},{"type":27,"value":28},{"type":31,"tagName":378,"properties":3981,"children":3982},{"class":380},[3983],{"type":31,"tagName":378,"properties":3984,"children":3985},{"style":3694},[3986],{"type":27,"value":3987},"// Visualization: the RSI and its level in one pane, a mark only on extreme bars.",{"type":27,"value":28},{"type":31,"tagName":378,"properties":3990,"children":3991},{"class":380},[3992,3997,4001,4006,4011,4016,4021,4025,4029,4034],{"type":31,"tagName":378,"properties":3993,"children":3994},{"style":3704},[3995],{"type":27,"value":3996},"output",{"type":31,"tagName":378,"properties":3998,"children":3999},{"style":3710},[4000],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4002,"children":4003},{"style":3716},[4004],{"type":27,"value":4005},"\"rsi\"",{"type":31,"tagName":378,"properties":4007,"children":4008},{"style":3710},[4009],{"type":27,"value":4010},", line, lower, { color: ",{"type":31,"tagName":378,"properties":4012,"children":4013},{"style":3716},[4014],{"type":27,"value":4015},"\"#2962FF\"",{"type":31,"tagName":378,"properties":4017,"children":4018},{"style":3710},[4019],{"type":27,"value":4020},", width: ",{"type":31,"tagName":378,"properties":4022,"children":4023},{"style":3726},[4024],{"type":27,"value":3739},{"type":31,"tagName":378,"properties":4026,"children":4027},{"style":3710},[4028],{"type":27,"value":3754},{"type":31,"tagName":378,"properties":4030,"children":4031},{"style":3716},[4032],{"type":27,"value":4033},"\"Relative Strength Index\"",{"type":31,"tagName":378,"properties":4035,"children":4036},{"style":3710},[4037],{"type":27,"value":3764},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4040,"children":4041},{"class":380},[4042,4046,4050,4054,4058,4063,4067,4071,4075,4080],{"type":31,"tagName":378,"properties":4043,"children":4044},{"style":3704},[4045],{"type":27,"value":3996},{"type":31,"tagName":378,"properties":4047,"children":4048},{"style":3710},[4049],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4051,"children":4052},{"style":3716},[4053],{"type":27,"value":3781},{"type":31,"tagName":378,"properties":4055,"children":4056},{"style":3710},[4057],{"type":27,"value":4010},{"type":31,"tagName":378,"properties":4059,"children":4060},{"style":3716},[4061],{"type":27,"value":4062},"\"#FF6B35\"",{"type":31,"tagName":378,"properties":4064,"children":4065},{"style":3710},[4066],{"type":27,"value":4020},{"type":31,"tagName":378,"properties":4068,"children":4069},{"style":3726},[4070],{"type":27,"value":3799},{"type":31,"tagName":378,"properties":4072,"children":4073},{"style":3710},[4074],{"type":27,"value":3754},{"type":31,"tagName":378,"properties":4076,"children":4077},{"style":3716},[4078],{"type":27,"value":4079},"\"Extreme RSI level\"",{"type":31,"tagName":378,"properties":4081,"children":4082},{"style":3710},[4083],{"type":27,"value":3764},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4086,"children":4087},{"class":380},[4088,4092,4096,4101,4106,4111,4116,4121,4125,4130],{"type":31,"tagName":378,"properties":4089,"children":4090},{"style":3704},[4091],{"type":27,"value":3996},{"type":31,"tagName":378,"properties":4093,"children":4094},{"style":3710},[4095],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4097,"children":4098},{"style":3716},[4099],{"type":27,"value":4100},"\"extreme\"",{"type":31,"tagName":378,"properties":4102,"children":4103},{"style":3710},[4104],{"type":27,"value":4105},", shape, lower, { color: ",{"type":31,"tagName":378,"properties":4107,"children":4108},{"style":3716},[4109],{"type":27,"value":4110},"\"#00BA88\"",{"type":31,"tagName":378,"properties":4112,"children":4113},{"style":3710},[4114],{"type":27,"value":4115},", shape_where: ",{"type":31,"tagName":378,"properties":4117,"children":4118},{"style":3716},[4119],{"type":27,"value":4120},"\"is_extreme\"",{"type":31,"tagName":378,"properties":4122,"children":4123},{"style":3710},[4124],{"type":27,"value":3754},{"type":31,"tagName":378,"properties":4126,"children":4127},{"style":3716},[4128],{"type":27,"value":4129},"\"Oversold, shorts paying, liquidations printing\"",{"type":31,"tagName":378,"properties":4131,"children":4132},{"style":3710},[4133],{"type":27,"value":3764},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4136,"children":4137},{"class":380},[4138,4142,4146,4150],{"type":31,"tagName":378,"properties":4139,"children":4140},{"style":3704},[4141],{"type":27,"value":3996},{"type":31,"tagName":378,"properties":4143,"children":4144},{"style":3710},[4145],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4147,"children":4148},{"style":3716},[4149],{"type":27,"value":4120},{"type":31,"tagName":378,"properties":4151,"children":4152},{"style":3710},[4153],{"type":27,"value":4154},", none, lower);",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4157,"children":4158},{"class":380},[],{"type":27,"value":28},{"type":31,"tagName":378,"properties":4161,"children":4162},{"class":380},[4163,4168,4173,4178,4183,4188,4192,4196],{"type":31,"tagName":378,"properties":4164,"children":4166},{"style":4165},"--shiki-dark:#F97583;--shiki-light:#D73A49",[4167],{"type":27,"value":270},{"type":31,"tagName":378,"properties":4169,"children":4170},{"style":3710},[4171],{"type":27,"value":4172}," rsi ",{"type":31,"tagName":378,"properties":4174,"children":4175},{"style":4165},[4176],{"type":27,"value":4177},"=",{"type":31,"tagName":378,"properties":4179,"children":4180},{"style":4165},[4181],{"type":27,"value":4182}," new",{"type":31,"tagName":378,"properties":4184,"children":4185},{"style":3704},[4186],{"type":27,"value":4187}," Rsi",{"type":31,"tagName":378,"properties":4189,"children":4190},{"style":3710},[4191],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4193,"children":4194},{"style":3726},[4195],{"type":27,"value":3729},{"type":31,"tagName":378,"properties":4197,"children":4198},{"style":3710},[4199],{"type":27,"value":4200},");",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4203,"children":4204},{"class":380},[4205,4209,4214,4218,4222,4227,4231,4236,4241],{"type":31,"tagName":378,"properties":4206,"children":4207},{"style":4165},[4208],{"type":27,"value":270},{"type":31,"tagName":378,"properties":4210,"children":4211},{"style":3710},[4212],{"type":27,"value":4213}," avgFunding ",{"type":31,"tagName":378,"properties":4215,"children":4216},{"style":4165},[4217],{"type":27,"value":4177},{"type":31,"tagName":378,"properties":4219,"children":4220},{"style":4165},[4221],{"type":27,"value":4182},{"type":31,"tagName":378,"properties":4223,"children":4224},{"style":3704},[4225],{"type":27,"value":4226}," Sma",{"type":31,"tagName":378,"properties":4228,"children":4229},{"style":3710},[4230],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4232,"children":4233},{"style":3726},[4234],{"type":27,"value":4235},"24",{"type":31,"tagName":378,"properties":4237,"children":4238},{"style":3710},[4239],{"type":27,"value":4240},"); ",{"type":31,"tagName":378,"properties":4242,"children":4243},{"style":3694},[4244],{"type":27,"value":4245},"// 24 bars of funding, one day on a 1h chart",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4248,"children":4249},{"class":380},[4250,4254,4259,4263,4267,4271,4275,4280,4284],{"type":31,"tagName":378,"properties":4251,"children":4252},{"style":4165},[4253],{"type":27,"value":270},{"type":31,"tagName":378,"properties":4255,"children":4256},{"style":3710},[4257],{"type":27,"value":4258}," liqAvg ",{"type":31,"tagName":378,"properties":4260,"children":4261},{"style":4165},[4262],{"type":27,"value":4177},{"type":31,"tagName":378,"properties":4264,"children":4265},{"style":4165},[4266],{"type":27,"value":4182},{"type":31,"tagName":378,"properties":4268,"children":4269},{"style":3704},[4270],{"type":27,"value":4226},{"type":31,"tagName":378,"properties":4272,"children":4273},{"style":3710},[4274],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4276,"children":4277},{"style":3726},[4278],{"type":27,"value":4279},"6",{"type":31,"tagName":378,"properties":4281,"children":4282},{"style":3710},[4283],{"type":27,"value":4240},{"type":31,"tagName":378,"properties":4285,"children":4286},{"style":3694},[4287],{"type":27,"value":4288},"// six bars of liquidation volume",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4291,"children":4292},{"class":380},[4293,4297,4302,4306,4311,4316,4321],{"type":31,"tagName":378,"properties":4294,"children":4295},{"style":4165},[4296],{"type":27,"value":270},{"type":31,"tagName":378,"properties":4298,"children":4299},{"style":3710},[4300],{"type":27,"value":4301}," extremeLevel",{"type":31,"tagName":378,"properties":4303,"children":4304},{"style":4165},[4305],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4307,"children":4308},{"style":3704},[4309],{"type":27,"value":4310}," f64",{"type":31,"tagName":378,"properties":4312,"children":4313},{"style":4165},[4314],{"type":27,"value":4315}," =",{"type":31,"tagName":378,"properties":4317,"children":4318},{"style":3726},[4319],{"type":27,"value":4320}," 30.0",{"type":31,"tagName":378,"properties":4322,"children":4323},{"style":3710},[4324],{"type":27,"value":4325},";",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4328,"children":4329},{"class":380},[4330,4334,4339,4343,4347,4351,4356],{"type":31,"tagName":378,"properties":4331,"children":4332},{"style":4165},[4333],{"type":27,"value":270},{"type":31,"tagName":378,"properties":4335,"children":4336},{"style":3710},[4337],{"type":27,"value":4338}," fundingThreshold",{"type":31,"tagName":378,"properties":4340,"children":4341},{"style":4165},[4342],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4344,"children":4345},{"style":3704},[4346],{"type":27,"value":4310},{"type":31,"tagName":378,"properties":4348,"children":4349},{"style":4165},[4350],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4352,"children":4353},{"style":3726},[4354],{"type":27,"value":4355}," 0.01",{"type":31,"tagName":378,"properties":4357,"children":4358},{"style":3710},[4359],{"type":27,"value":4325},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4362,"children":4363},{"class":380},[],{"type":27,"value":28},{"type":31,"tagName":378,"properties":4366,"children":4367},{"class":380},[4368,4373,4378,4383,4387,4392],{"type":31,"tagName":378,"properties":4369,"children":4370},{"style":4165},[4371],{"type":27,"value":4372},"function",{"type":31,"tagName":378,"properties":4374,"children":4375},{"style":3704},[4376],{"type":27,"value":4377}," onStart",{"type":31,"tagName":378,"properties":4379,"children":4380},{"style":3710},[4381],{"type":27,"value":4382},"()",{"type":31,"tagName":378,"properties":4384,"children":4385},{"style":4165},[4386],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4388,"children":4389},{"style":3726},[4390],{"type":27,"value":4391}," void",{"type":31,"tagName":378,"properties":4393,"children":4394},{"style":3710},[4395],{"type":27,"value":4396}," {",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4399,"children":4400},{"class":380},[4401,4406,4410,4414,4418,4422,4426,4430,4435],{"type":31,"tagName":378,"properties":4402,"children":4403},{"style":3710},[4404],{"type":27,"value":4405},"  rsi ",{"type":31,"tagName":378,"properties":4407,"children":4408},{"style":4165},[4409],{"type":27,"value":4177},{"type":31,"tagName":378,"properties":4411,"children":4412},{"style":4165},[4413],{"type":27,"value":4182},{"type":31,"tagName":378,"properties":4415,"children":4416},{"style":3704},[4417],{"type":27,"value":4187},{"type":31,"tagName":378,"properties":4419,"children":4420},{"style":3710},[4421],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4423,"children":4424},{"style":3704},[4425],{"type":27,"value":167},{"type":31,"tagName":378,"properties":4427,"children":4428},{"style":3710},[4429],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4431,"children":4432},{"style":3704},[4433],{"type":27,"value":4434},"p_rsi_period",{"type":31,"tagName":378,"properties":4436,"children":4437},{"style":3710},[4438],{"type":27,"value":4439},"()));",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4442,"children":4443},{"class":380},[4444,4449,4453,4458],{"type":31,"tagName":378,"properties":4445,"children":4446},{"style":3710},[4447],{"type":27,"value":4448},"  extremeLevel ",{"type":31,"tagName":378,"properties":4450,"children":4451},{"style":4165},[4452],{"type":27,"value":4177},{"type":31,"tagName":378,"properties":4454,"children":4455},{"style":3704},[4456],{"type":27,"value":4457}," p_extreme_rsi",{"type":31,"tagName":378,"properties":4459,"children":4460},{"style":3710},[4461],{"type":27,"value":4462},"();",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4465,"children":4466},{"class":380},[4467,4472,4476,4481],{"type":31,"tagName":378,"properties":4468,"children":4469},{"style":3710},[4470],{"type":27,"value":4471},"  fundingThreshold ",{"type":31,"tagName":378,"properties":4473,"children":4474},{"style":4165},[4475],{"type":27,"value":4177},{"type":31,"tagName":378,"properties":4477,"children":4478},{"style":3704},[4479],{"type":27,"value":4480}," p_funding_threshold",{"type":31,"tagName":378,"properties":4482,"children":4483},{"style":3710},[4484],{"type":27,"value":4462},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4487,"children":4488},{"class":380},[4489],{"type":31,"tagName":378,"properties":4490,"children":4491},{"style":3710},[4492],{"type":27,"value":4493},"}",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4496,"children":4497},{"class":380},[],{"type":27,"value":28},{"type":31,"tagName":378,"properties":4500,"children":4501},{"class":380},[4502,4506,4511,4515,4519,4523],{"type":31,"tagName":378,"properties":4503,"children":4504},{"style":4165},[4505],{"type":27,"value":4372},{"type":31,"tagName":378,"properties":4507,"children":4508},{"style":3704},[4509],{"type":27,"value":4510}," onBar",{"type":31,"tagName":378,"properties":4512,"children":4513},{"style":3710},[4514],{"type":27,"value":4382},{"type":31,"tagName":378,"properties":4516,"children":4517},{"style":4165},[4518],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4520,"children":4521},{"style":3726},[4522],{"type":27,"value":4391},{"type":31,"tagName":378,"properties":4524,"children":4525},{"style":3710},[4526],{"type":27,"value":4396},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4529,"children":4530},{"class":380},[4531,4536,4541,4545,4550,4555,4560,4565,4570],{"type":31,"tagName":378,"properties":4532,"children":4533},{"style":4165},[4534],{"type":27,"value":4535},"  const",{"type":31,"tagName":378,"properties":4537,"children":4538},{"style":3726},[4539],{"type":27,"value":4540}," rsiValue",{"type":31,"tagName":378,"properties":4542,"children":4543},{"style":4165},[4544],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4546,"children":4547},{"style":3710},[4548],{"type":27,"value":4549}," rsi.",{"type":31,"tagName":378,"properties":4551,"children":4552},{"style":3704},[4553],{"type":27,"value":4554},"update",{"type":31,"tagName":378,"properties":4556,"children":4557},{"style":3710},[4558],{"type":27,"value":4559},"(bar.",{"type":31,"tagName":378,"properties":4561,"children":4562},{"style":3704},[4563],{"type":27,"value":4564},"close",{"type":31,"tagName":378,"properties":4566,"children":4567},{"style":3710},[4568],{"type":27,"value":4569},"()); ",{"type":31,"tagName":378,"properties":4571,"children":4572},{"style":3694},[4573],{"type":27,"value":4574},"// f64 in, f64 out",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4577,"children":4578},{"class":380},[4579,4583,4588,4592,4597,4601,4605,4610],{"type":31,"tagName":378,"properties":4580,"children":4581},{"style":4165},[4582],{"type":27,"value":4535},{"type":31,"tagName":378,"properties":4584,"children":4585},{"style":3726},[4586],{"type":27,"value":4587}," fundingAvg",{"type":31,"tagName":378,"properties":4589,"children":4590},{"style":4165},[4591],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4593,"children":4594},{"style":3710},[4595],{"type":27,"value":4596}," avgFunding.",{"type":31,"tagName":378,"properties":4598,"children":4599},{"style":3704},[4600],{"type":27,"value":4554},{"type":31,"tagName":378,"properties":4602,"children":4603},{"style":3710},[4604],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4606,"children":4607},{"style":3704},[4608],{"type":27,"value":4609},"in_funding",{"type":31,"tagName":378,"properties":4611,"children":4612},{"style":3710},[4613],{"type":27,"value":4614},"());",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4617,"children":4618},{"class":380},[4619,4623,4628,4632,4637,4641,4645,4650],{"type":31,"tagName":378,"properties":4620,"children":4621},{"style":4165},[4622],{"type":27,"value":4535},{"type":31,"tagName":378,"properties":4624,"children":4625},{"style":3726},[4626],{"type":27,"value":4627}," liqRecent",{"type":31,"tagName":378,"properties":4629,"children":4630},{"style":4165},[4631],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4633,"children":4634},{"style":3710},[4635],{"type":27,"value":4636}," liqAvg.",{"type":31,"tagName":378,"properties":4638,"children":4639},{"style":3704},[4640],{"type":27,"value":4554},{"type":31,"tagName":378,"properties":4642,"children":4643},{"style":3710},[4644],{"type":27,"value":3713},{"type":31,"tagName":378,"properties":4646,"children":4647},{"style":3704},[4648],{"type":27,"value":4649},"in_liqs",{"type":31,"tagName":378,"properties":4651,"children":4652},{"style":3710},[4653],{"type":27,"value":4614},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4656,"children":4657},{"class":380},[4658],{"type":31,"tagName":378,"properties":4659,"children":4660},{"style":3694},[4661],{"type":27,"value":4662},"  // Three bools, combined; NaN on any side makes its comparison false, so a warming source never fires.",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4665,"children":4666},{"class":380},[4667,4671,4676,4680,4685,4689,4694,4699],{"type":31,"tagName":378,"properties":4668,"children":4669},{"style":4165},[4670],{"type":27,"value":4535},{"type":31,"tagName":378,"properties":4672,"children":4673},{"style":3726},[4674],{"type":27,"value":4675}," oversold",{"type":31,"tagName":378,"properties":4677,"children":4678},{"style":4165},[4679],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4681,"children":4682},{"style":3704},[4683],{"type":27,"value":4684}," bool",{"type":31,"tagName":378,"properties":4686,"children":4687},{"style":4165},[4688],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4690,"children":4691},{"style":3710},[4692],{"type":27,"value":4693}," rsiValue ",{"type":31,"tagName":378,"properties":4695,"children":4696},{"style":4165},[4697],{"type":27,"value":4698},"\u003C=",{"type":31,"tagName":378,"properties":4700,"children":4701},{"style":3710},[4702],{"type":27,"value":4703}," extremeLevel;",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4706,"children":4707},{"class":380},[4708,4712,4717,4721,4725,4729,4734,4738,4743],{"type":31,"tagName":378,"properties":4709,"children":4710},{"style":4165},[4711],{"type":27,"value":4535},{"type":31,"tagName":378,"properties":4713,"children":4714},{"style":3726},[4715],{"type":27,"value":4716}," shortsPaying",{"type":31,"tagName":378,"properties":4718,"children":4719},{"style":4165},[4720],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4722,"children":4723},{"style":3704},[4724],{"type":27,"value":4684},{"type":31,"tagName":378,"properties":4726,"children":4727},{"style":4165},[4728],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4730,"children":4731},{"style":3710},[4732],{"type":27,"value":4733}," fundingAvg ",{"type":31,"tagName":378,"properties":4735,"children":4736},{"style":4165},[4737],{"type":27,"value":1276},{"type":31,"tagName":378,"properties":4739,"children":4740},{"style":4165},[4741],{"type":27,"value":4742}," -",{"type":31,"tagName":378,"properties":4744,"children":4745},{"style":3710},[4746],{"type":27,"value":4747},"fundingThreshold;",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4750,"children":4751},{"class":380},[4752,4756,4761,4765,4769,4773,4778,4783,4788],{"type":31,"tagName":378,"properties":4753,"children":4754},{"style":4165},[4755],{"type":27,"value":4535},{"type":31,"tagName":378,"properties":4757,"children":4758},{"style":3726},[4759],{"type":27,"value":4760}," liquidating",{"type":31,"tagName":378,"properties":4762,"children":4763},{"style":4165},[4764],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4766,"children":4767},{"style":3704},[4768],{"type":27,"value":4684},{"type":31,"tagName":378,"properties":4770,"children":4771},{"style":4165},[4772],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4774,"children":4775},{"style":3710},[4776],{"type":27,"value":4777}," liqRecent ",{"type":31,"tagName":378,"properties":4779,"children":4780},{"style":4165},[4781],{"type":27,"value":4782},">",{"type":31,"tagName":378,"properties":4784,"children":4785},{"style":3726},[4786],{"type":27,"value":4787}," 0.0",{"type":31,"tagName":378,"properties":4789,"children":4790},{"style":3710},[4791],{"type":27,"value":4325},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4794,"children":4795},{"class":380},[4796,4800,4805,4809,4813,4817,4822,4827,4832,4836],{"type":31,"tagName":378,"properties":4797,"children":4798},{"style":4165},[4799],{"type":27,"value":4535},{"type":31,"tagName":378,"properties":4801,"children":4802},{"style":3726},[4803],{"type":27,"value":4804}," extreme",{"type":31,"tagName":378,"properties":4806,"children":4807},{"style":4165},[4808],{"type":27,"value":2661},{"type":31,"tagName":378,"properties":4810,"children":4811},{"style":3704},[4812],{"type":27,"value":4684},{"type":31,"tagName":378,"properties":4814,"children":4815},{"style":4165},[4816],{"type":27,"value":4315},{"type":31,"tagName":378,"properties":4818,"children":4819},{"style":3710},[4820],{"type":27,"value":4821}," oversold ",{"type":31,"tagName":378,"properties":4823,"children":4824},{"style":4165},[4825],{"type":27,"value":4826},"&&",{"type":31,"tagName":378,"properties":4828,"children":4829},{"style":3710},[4830],{"type":27,"value":4831}," shortsPaying ",{"type":31,"tagName":378,"properties":4833,"children":4834},{"style":4165},[4835],{"type":27,"value":4826},{"type":31,"tagName":378,"properties":4837,"children":4838},{"style":3710},[4839],{"type":27,"value":4840}," liquidating;",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4843,"children":4844},{"class":380},[4845,4850,4854,4859,4864,4869],{"type":31,"tagName":378,"properties":4846,"children":4847},{"style":4165},[4848],{"type":27,"value":4849},"  if",{"type":31,"tagName":378,"properties":4851,"children":4852},{"style":3710},[4853],{"type":27,"value":1786},{"type":31,"tagName":378,"properties":4855,"children":4856},{"style":3704},[4857],{"type":27,"value":4858},"isNaN",{"type":31,"tagName":378,"properties":4860,"children":4861},{"style":3710},[4862],{"type":27,"value":4863},"(rsiValue)) ",{"type":31,"tagName":378,"properties":4865,"children":4866},{"style":4165},[4867],{"type":27,"value":4868},"return",{"type":31,"tagName":378,"properties":4870,"children":4871},{"style":3710},[4872],{"type":27,"value":4325},{"type":27,"value":28},{"type":31,"tagName":378,"properties":4875,"children":4876},{"class":380},[4877,4882],{"type":31,"tagName":378,"properties":4878,"children":4879},{"style":3704},[4880],{"type":27,"value":4881},"  out_rsi",{"type":31,"tagName":378,"properties":4883,"children":4884},{"style":3710},[4885],{"type":27,"value":4886},"(rsiValue);",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4889,"children":4890},{"class":380},[4891,4896],{"type":31,"tagName":378,"properties":4892,"children":4893},{"style":3704},[4894],{"type":27,"value":4895},"  out_extreme_rsi",{"type":31,"tagName":378,"properties":4897,"children":4898},{"style":3710},[4899],{"type":27,"value":4900},"(extremeLevel);",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4903,"children":4904},{"class":380},[4905,4910,4915],{"type":31,"tagName":378,"properties":4906,"children":4907},{"style":3704},[4908],{"type":27,"value":4909},"  out_extreme",{"type":31,"tagName":378,"properties":4911,"children":4912},{"style":3710},[4913],{"type":27,"value":4914},"(rsiValue); ",{"type":31,"tagName":378,"properties":4916,"children":4917},{"style":3694},[4918],{"type":27,"value":4919},"// the mark sits on the RSI line",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4922,"children":4923},{"class":380},[4924,4929,4934,4939,4944,4949,4953,4957],{"type":31,"tagName":378,"properties":4925,"children":4926},{"style":3704},[4927],{"type":27,"value":4928},"  out_is_extreme",{"type":31,"tagName":378,"properties":4930,"children":4931},{"style":3710},[4932],{"type":27,"value":4933},"(extreme ",{"type":31,"tagName":378,"properties":4935,"children":4936},{"style":4165},[4937],{"type":27,"value":4938},"?",{"type":31,"tagName":378,"properties":4940,"children":4941},{"style":3726},[4942],{"type":27,"value":4943}," 1.0",{"type":31,"tagName":378,"properties":4945,"children":4946},{"style":4165},[4947],{"type":27,"value":4948}," :",{"type":31,"tagName":378,"properties":4950,"children":4951},{"style":3726},[4952],{"type":27,"value":4787},{"type":31,"tagName":378,"properties":4954,"children":4955},{"style":3710},[4956],{"type":27,"value":4240},{"type":31,"tagName":378,"properties":4958,"children":4959},{"style":3694},[4960],{"type":27,"value":4961},"// bool to f64",{"type":27,"value":28},{"type":31,"tagName":378,"properties":4964,"children":4965},{"class":380},[4966],{"type":31,"tagName":378,"properties":4967,"children":4968},{"style":3710},[4969],{"type":27,"value":4493},{"type":27,"value":28},{"type":31,"tagName":32,"properties":4972,"children":4973,"position":5107},{},[4974,4982,4993,5000,5011,5017,5028,5035,5046,5052,5063,5070,5082,5088,5100],{"type":27,"value":4975,"position":4976},"Watch the types flow: three ",{"start":4977,"end":4980},{"line":4978,"column":21,"offset":4979},246,11570,{"line":4978,"column":2873,"offset":4981},11598,{"type":31,"tagName":46,"properties":4983,"children":4984,"position":4990},{},[4985],{"type":27,"value":148,"position":4986},{"start":4987,"end":4988},{"line":4978,"column":2873,"offset":4981},{"line":4978,"column":733,"offset":4989},11603,{"start":4991,"end":4992},{"line":4978,"column":2873,"offset":4981},{"line":4978,"column":733,"offset":4989},{"type":27,"value":4994,"position":4995}," inputs feed three classes that return\n",{"start":4996,"end":4997},{"line":4978,"column":733,"offset":4989},{"line":4998,"column":21,"offset":4999},247,11642,{"type":31,"tagName":46,"properties":5001,"children":5002,"position":5008},{},[5003],{"type":27,"value":148,"position":5004},{"start":5005,"end":5006},{"line":4998,"column":21,"offset":4999},{"line":4998,"column":276,"offset":5007},11647,{"start":5009,"end":5010},{"line":4998,"column":21,"offset":4999},{"line":4998,"column":276,"offset":5007},{"type":27,"value":5012,"position":5013},", those numbers feed comparisons that return ",{"start":5014,"end":5015},{"line":4998,"column":276,"offset":5007},{"line":4998,"column":352,"offset":5016},11692,{"type":31,"tagName":46,"properties":5018,"children":5019,"position":5025},{},[5020],{"type":27,"value":184,"position":5021},{"start":5022,"end":5023},{"line":4998,"column":352,"offset":5016},{"line":4998,"column":681,"offset":5024},11698,{"start":5026,"end":5027},{"line":4998,"column":352,"offset":5016},{"line":4998,"column":681,"offset":5024},{"type":27,"value":5029,"position":5030},", the bools combine\ninto one ",{"start":5031,"end":5032},{"line":4998,"column":681,"offset":5024},{"line":5033,"column":42,"offset":5034},248,11727,{"type":31,"tagName":46,"properties":5036,"children":5037,"position":5043},{},[5038],{"type":27,"value":184,"position":5039},{"start":5040,"end":5041},{"line":5033,"column":42,"offset":5034},{"line":5033,"column":82,"offset":5042},11733,{"start":5044,"end":5045},{"line":5033,"column":42,"offset":5034},{"line":5033,"column":82,"offset":5042},{"type":27,"value":5047,"position":5048},", and the ternary turns it into the ",{"start":5049,"end":5050},{"line":5033,"column":82,"offset":5042},{"line":5033,"column":233,"offset":5051},11769,{"type":31,"tagName":46,"properties":5053,"children":5054,"position":5060},{},[5055],{"type":27,"value":148,"position":5056},{"start":5057,"end":5058},{"line":5033,"column":233,"offset":5051},{"line":5033,"column":681,"offset":5059},11774,{"start":5061,"end":5062},{"line":5033,"column":233,"offset":5051},{"line":5033,"column":681,"offset":5059},{"type":27,"value":5064,"position":5065}," gate output that\nthe ",{"start":5066,"end":5067},{"line":5033,"column":681,"offset":5059},{"line":5068,"column":39,"offset":5069},249,11796,{"type":31,"tagName":46,"properties":5071,"children":5072,"position":5079},{},[5073],{"type":27,"value":5074,"position":5075},"shape",{"start":5076,"end":5077},{"line":5068,"column":39,"offset":5069},{"line":5068,"column":78,"offset":5078},11803,{"start":5080,"end":5081},{"line":5068,"column":39,"offset":5069},{"line":5068,"column":78,"offset":5078},{"type":27,"value":5083,"position":5084}," output reads through ",{"start":5085,"end":5086},{"line":5068,"column":78,"offset":5078},{"line":5068,"column":733,"offset":5087},11825,{"type":31,"tagName":46,"properties":5089,"children":5090,"position":5097},{},[5091],{"type":27,"value":5092,"position":5093},"shape_where",{"start":5094,"end":5095},{"line":5068,"column":733,"offset":5087},{"line":5068,"column":491,"offset":5096},11838,{"start":5098,"end":5099},{"line":5068,"column":733,"offset":5087},{"line":5068,"column":491,"offset":5096},{"type":27,"value":5101,"position":5102},". Nothing converts on its\nown, and every step is checked before the first bar runs.",{"start":5103,"end":5104},{"line":5068,"column":491,"offset":5096},{"line":5105,"column":759,"offset":5106},250,11921,{"start":5108,"end":5109},{"line":4978,"column":21,"offset":4979},{"line":5105,"column":759,"offset":5106},{"quirksMode":5111},false,{"start":5113,"end":5114},{"line":21,"column":21,"offset":22},{"line":5115,"column":21,"offset":5116},251,11922,1791265217310]