POST /api/generate HTTP/1.1 Content-Type: application/json Authorization: Bearer Host: chadgpt.oxaro.io:11434 Connection: close Transfer-Encoding: chunked 632d {"model":"codellama:7b-code","prompt":"
 \n\n// Language: Javascript (javascript) \n// File uri: file:///Users/nick/.vscode/extensions/rjmacarthy.twinny-2.6.17/out/extension.js (javascript) \n                                  )\n                                : r(\"\");\n                            }),\n                            s.onCancellationRequested(() => {\n                              o.commands.executeCommand(\n                                \"workbench.action.reloadWindow\"\n                              ),\n                                t?.globalState.update(\n                                  `${a.MESSAGE_NAME.twinnyGlobalContext}-${a.MESSAGE_KEY.downloadCancelled}`,\n                                  !0\n                                ),\n                                c();\n                            });\n                        })\n                    )\n                    .then(\n                      () => {\n                        o.window.showInformationMessage(\n                          \"Ollama has been installed. Please reload window to enable twinny.\"\n                        ),\n                          n(!0);\n                      },\n                      () => {\n                        o.window.showErrorMessage(\n                          `Something went wrong when trying to download the model ${e}.`\n                        ),\n                          n(!1);\n                      }\n                    );\n            });\n          });\n        }\n        t.init = async function () {\n          const e = o.workspace.getConfiguration(\"twinny\"),\n            t = e.get(\"fimModelName\"),\n            n = e.get(\"chatModelName\"),\n            c = e.get(\"ollamaBaseUrl\"),\n            l = (0, s.getContext)();\n          if (\"localhost\" !== c) return;\n          (await new Promise((e) => {\n            (0, i.exec)(\"ollama --version\", (t) => {\n              t\n                ? (console.log(\"Ollama is not installed.\"), e(!1))\n                : (0, i.exec)(\"ollama list\", async () => {\n                    console.log(\n                      \"Running 'ollama list' to check if ollama server is running.\"\n                    ),\n                      e(!0);\n                  });\n            });\n          })) ||\n            (await o.window.showInformationMessage(\n              \"Ollama installation required by twinny\",\n              \"Install Ollama\"\n            ),\n            o.env.openExternal(o.Uri.parse(\"https://ollama.ai/download\")));\n          const d = `${a.MESSAGE_NAME.twinnyGlobalContext}-${a.MESSAGE_KEY.downloadCancelled}`,\n            m = l?.globalState.get(d);\n          m || (await r(t), await r(n)),\n            await (async function () {\n              return (\n                (0, i.exec)(\"ollama serve\"),\n                new Promise((e) => setTimeout(() => e(!0), 1e3))\n              );\n            })();\n        };\n      },\n      249: (e, t) => {\n        \"use strict\";\n        Object.defineProperty(t, \"__esModule\", { value: !0 }),\n          (t.languages = void 0),\n          (t.languages = {\n            typescript: {\n              name: \"Typescript\",\n              extensions: [\".ts\", \".cts\", \".mts\"],\n              comment: { start: \"//\" },\n            },\n            typescriptreact: {\n              name: \"Typescript React\",\n              extensions: [\".tsx\"],\n              comment: { start: \"//\" },\n            },\n            javascript: {\n              name: \"Javascript\",\n              extensions: [\".js\", \".jsx\", \".cjs\"],\n              comment: { start: \"//\" },\n            },\n            jsx: {\n              name: \"JSX\",\n              extensions: [\".jsx\"],\n              comment: { start: \"//\" },\n            },\n            html: {\n              name: \"HTML\",\n              extensions: [\".htm\", \".html\"],\n              comment: { start: \"\\x3c!--\", end: \"--\\x3e\" },\n            },\n            css: { name: \"CSS\", extensions: [\".css\"] },\n            sass: {\n              name: \"SASS\",\n              extensions: [\".sass\"],\n              comment: { start: \"//\" },\n            },\n            scss: {\n              name: \"SCSS\",\n              extensions: [\".scss\"],\n              comment: { start: \"//\" },\n            },\n            json: { name: \"JSON\", extensions: [\".json\", \".jsonl\", \".geojson\"] },\n            yaml: {\n              name: \"YAML\",\n              extensions: [\".yml\", \".yaml\"],\n              comment: { start: \"#\" },\n            },\n            xml: {\n              name: \"XML\",\n              extensions: [\".xml\"],\n              comment: { start: \"\\x3c!--\", end: \"--\\x3e\" },\n            },\n            java: {\n              name: \"Java\",\n              extensions: [\".java\"],\n              comment: { start: \"//\" },\n            },\n            kotlin: {\n              name: \"Kotlin\",\n              extensions: [\".kt\", \".ktm\", \".kts\"],\n              comment: { start: \"//\" },\n            },\n            swift: {\n              name: \"Swift\",\n              extensions: [\".swift\"],\n              comment: { start: \"//\" },\n            },\n            \"objective-c\": {\n              name: \"Objective C\",\n              extensions: [\".h\", \".m\", \".mm\"],\n              comment: { start: \"//\" },\n            },\n            rust: {\n              name: \"Rust\",\n              extensions: [\".rs\", \".rs.in\"],\n              comment: { start: \"//\" },\n            },\n            python: {\n              name: \"Python\",\n              extensions: [\".py\"],\n              comment: { start: \"#\" },\n            },\n            c: {\n              name: \"C\",\n              extensions: [\".c\", \".h\"],\n              comment: { start: \"//\" },\n            },\n            cpp: {\n              name: \"C++\",\n              extensions: [\".cpp\", \".h\"],\n              comment: { start: \"//\" },\n            },\n            go: { name: \"Go\", extensions: [\".go\"], comment: { start: \"//\" } },\n            php: {\n              name: \"PHP\",\n              extensions: [\n                \".aw\",\n                \".ctp\",\n                \".fcgi\",\n                \".inc\",\n                \".php\",\n                \".php3\",\n                \".php4\",\n                \".php5\",\n                \".phps\",\n                \".phpt\",\n              ],\n              comment: { start: \"//\" },\n            },\n            bat: {\n              name: \"BAT file\",\n              extensions: [\".bat\", \".cmd\"],\n              comment: { start: \"REM\" },\n            },\n            shellscript: {\n              name: \"Shell\",\n              extensions: [\".bash\", \".sh\"],\n              comment: { start: \"#\" },\n            },\n          });\n      },\n      861: (e, t) => {\n        \"use strict\";\n        Object.defineProperty(t, \"__esModule\", { value: !0 }),\n          (t.chatMessageDeepSeek =\n            t.chatMessageLlama =\n            t.generateDocs =\n            t.addTests =\n            t.refactor =\n            t.addTypes =\n            t.explain =\n            t.getSystemMessage =\n              void 0);\n        const n =\n          \"You are a helpful, respectful and honest coding assistant.\\nAlways reply with using markdown.\\nFor code refactoring, use markdown with code formatting.\\n\";\n        (t.getSystemMessage = (e) =>\n          e.includes(\"deepseek\") ? n : `<>${n}<>`),\n          (t.explain = (e, n) =>\n            `\\n    ${(0, t.getSystemMessage)(\n              n\n            )}\\n    Explain the following code \\`\\`\\`${e}\\`\\`\\` do not waffle on.\\n  `),\n          (t.addTypes = (e, n) =>\n            `\\n    ${(0, t.getSystemMessage)(\n              n\n            )}\\n    Add types to the following code, keep the code the same just add the types \\`\\`\\`${e}\\`\\`\\`.\\n  `),\n          (t.refactor = (e, n) =>\n            `\\n    ${(0, t.getSystemMessage)(\n              n\n            )}\\n    Refactor the following code without altering its functionality:\\n    \\`\\`\\`${e}\\`\\`\\`\\n    Always format responses with Markdown for code blocks. For instance, use \\`typescript\\` or \\`python\\` for code formatting.\\n    If the language of the code is uncertain, default to using \\`typescript\\`.\\n  `),\n          (t.addTests = (e, n) =>\n            `\\n    ${(0, t.getSystemMessage)(\n              n\n            )}\\n    Write unit tests for the following code block:\\n    \\`\\`\\`${e}\\`\\`\\`\\n    Please use the most popular testing library suitable for the language of the code.\\n  `),\n          (t.generateDocs = (e, n) =>\n            `\\n    ${(0, t.getSystemMessage)(\n              n\n            )}\\n    Generate documentation for the following code block:\\n    \\`\\`\\`${e}\\`\\`\\`\\n    Use the most popular documentation tool for the inferred language, e.g., JSDoc for JavaScript.\\n  `),\n          (t.chatMessageLlama = (e, n, i) =>\n            `\\n    ${\n              1 === e.length ? (0, t.getSystemMessage)(i) : \"\"\n            }\\n\\n    ${e\n              .map((e) =>\n                \"user\" === e.role\n                  ? `[INST] ${e.content} ${\n                      n ? ` \\`\\`\\`${n}\\`\\`\\` ` : \"\"\n                    } [/INST]`\n                  : `${e.content}`\n              )\n              .join(\"\\n\")}\\n  `),\n          (t.chatMessageDeepSeek = (e, n, i) =>\n            `\\n    ${\n              1 === e.length ? (0, t.getSystemMessage)(i) : \"\"\n            }\\n\\n    ${e\n              .map((e) =>\n                \"user\" === e.role\n                  ? `### Instruction:\\n          ${e.content} ${\n                      n ? ` \\`\\`\\`${n}\\`\\`\\` ` : \"\"\n                    }`\n                  : `\\n            ### Response:\\n            ${e.content}\\n            <|EOT|>\\n          `\n              )\n              .join(\"\\n\")}\\n  `);\n      },\n      237: (e, t, n) => {\n        \"use strict\";\n        Object.defineProperty(t, \"__esModule\", { value: !0 }),\n          (t.CompletionProvider = void 0);\n        const i = n(496);\n        n(284);\n        const o = n(593),\n          s = n(78),\n          a = n(249);\n        t.CompletionProvider = class {\n          constructor(e) {\n            (this._config = i.workspace.getConfiguration(\"twinny\")),\n              (this._debounceWait = this._config.get(\"debounceWait\")),\n              (this._contextLength = this._config.get(\"contextLength\")),\n              (this._fimModel = this._config.get(\"fimModelName\")),\n              (this._baseUrl = this._config.get(\"ollamaBaseUrl\")),\n              (this._port = this._config.get(\"ollamaApiPort\")),\n              (this._temperature = this._config.get(\"temperature\")),\n              (this._numPredictFim = this._config.get(\"numPredictFim\")),\n              (this._useFileContext = this._config.get(\"useFileContext\")),\n              (this._bearerToken = this._config.get(\"ollamaApiBearerToken\")),\n              (this._currentReq = void 0),\n              (this._isModelAvailable = !0),\n              (this.setModelAvailability = async () => {\n                this._isModelAvailable = await (0, o.getIsModelAvailable)(\n                  this._fimModel\n                );\n              }),\n              (this.destroyStream = () => {\n                this._currentReq?.destroy(), (this._statusBar.text = \"....\");\n              }),\n              (this.getFormattedCompletion = (e, t, n) => {\n                const o = t.selection.active,\n                  s = new i.Range(n.translate(0, -1), t.selection.start),\n                  a = t.document.lineAt(o.line).range.end,\n                  r = new i.Range(o, a),\n                  c = this._document?.getText(r).trim() || \"\",\n                  l = this._document?.getText(s),\n                  d = t.document.lineAt(o).range.start,\n                  m = new i.Range(d, a),\n                  p = this._document?.getText(m);\n                return \"/\" === e.trim() ||\n                  p?.includes(e.trim()) ||\n                  (\"/>\" === e.trim() && p?.includes(\"\n\n          }\n          buildStreamRequest(e) {\n            this._bearerToken && this._bearerToken;\n            const t = {\n              model: this._fimModel,\n              prompt: e,\n              options: {\n                temperature: this._temperature,\n                num_predict: this._numPredictFim || -2,\n              },\n            };\n            return {\n              requestOptions: {\n                hostname: this._baseUrl,\n                port: this._port,\n                path: \"/api/generate\",\n                method: \"POST\",\n                headers: {\n                  \"Content-Type\": \"application/json\",\n                  Authorization: `Bearer ${this._bearerToken}`,\n                },\n              },\n              requestBody: t,\n            };\n          }\n          async provideInlineCompletionItems(e, t) {\n            this._document = e;\n            const n = i.window.activeTextEditor,\n              a = n?.document.languageId;\n            return this._isModelAvailable\n              ? n\n                ? new Promise((n) => {\n                    this._debouncer && clearTimeout(this._debouncer),\n                      (this._debouncer = setTimeout(async () => {\n                        if (!this._config.get(\"enabled\")) return n([]);\n                        const r = this.getFileContext(e.uri),\n                          {\n                            prompt: c,\n                            prefix: l,\n                            suffix: d,\n                          } = this.getPrompt(e, t, r, a),\n                          m = (0, s.getCache)({ prefix: l, suffix: d });\n                        if (m)\n                          return n([\n                            new i.InlineCompletionItem(m, new i.Range(t, t)),\n                          ]);\n                        if (!c) return n([]);\n                        try {\n                          let e = \"\",\n                            i = 0;\n                          (this._statusBar.text = \"$(loading~spin)\"),\n                            (this._statusBar.command = \"twinny.stopGeneration\");\n                          const { requestBody: s, requestOptions: a } =\n                            this.buildStreamRequest(c);\n                          (0, o.streamResponse)({\n                            body: s,\n                            options: a,\n                            onStart: (e) => {\n                              this._currentReq = e;\n                            },\n                            onData: (o, s) => {\n                              const a = JSON.parse(o);\n                              (e += a.response),\n                                (i += 1),\n                                ((1 !== i && \"\\n\" === a.response) ||\n                                  a.response.match(\"\")) &&\n                                  ((this._statusBar.text = \"....\"),\n                                  (e = e.replace(\"\", \"\")),\n                                  s(),\n                                  n(\n                                    this.triggerInlineCompletion({\n                                      completion: e,\n                                      position: t,\n                                      prefix: l,\n                                      suffix: d,\n                                    })\n                                  ));\n                            },\n                          });\n                        } catch (e) {\n                          return (this._statusBar.text = \"$(alert)\"), n([]);\n                        }\n                      }, this._debounceWait));\n                  })\n                : void 0\n              : ((this._statusBar.text = \"$(error)\"),\n                void (this._statusBar.tooltip = `Model ${this._fimModel} not found.`));\n          }\n          getPrompt(e, t, n, i) {\n            const o = this._useFileContext ? this.getFileHeader(i, e.uri) : \"\",\n              { prefix: s, suffix: a } = this.getPositionContext(e, t),\n              r = this._useFileContext ? n : \"\";\n            return this._fimModel.includes(\"deepseek\")\n              ? {\n                  prompt: `<...fim...begin...> ${r}\\n${o}${s} <...fim...hole...>${a} <...fim...end...>`,\n                  prefix: s,\n                  suffix: a,\n                }\n              : {\n                  prompt: `
 ${r}\\n${o}${s} ${a} `,\n                  prefix: s,\n                  suffix: a,\n                };\n          }\n          getFileHeader(e, t) {\n            const n = a.languages[e];\n            return n\n              ? `\\n${n.comment?.start || \"\"} Language: ${n.name} (${e}) ${\n                  n.comment?.end || \"\"\n                }\\n${n.comment?.start || \"\"} File uri: ${t.toString()} (${e}) ${\n                  n.comment?.end || \"\"\n                }\\n`\n              : \"\";\n          }\n          calculateSimilarity(e, t) {\n            const n = e.split(\"/\"),\n              i = t.split(\"/\"),\n              o = n[n.length - 1],\n              s = i[i.length - 1];\n            return (\n              n.slice(0, -1).join(\"/\").score(i.slice(0, -1).join(\"/\"), 0.5) +\n              o.score(s, 0.5)\n            );\n          }\n          getFileContext(e) {\n            const t = [],\n              n = e.toString();\n            for (const e of i.workspace.textDocuments) {\n              if (\n                e.fileName === i.window.activeTextEditor?.document.fileName ||\n                e.fileName.includes(\"git\")\n              )\n                continue;\n              const o = `${this.getFileHeader(\n                e.languageId,\n                e.uri\n              )}${e.getText()}`;\n              this.calculateSimilarity(n.toString(), e.uri.toString()) > 1 &&\n                t.push(o);\n            }\n            return t.join(\"\\n\");\n          }\n          getPositionContext(e, t) {\n            const n = t.line,\n              o = Math.max(0, n - this._contextLength),\n              s = n + this._contextLength,\n              a = new i.Range(o, 0, n, t.character),\n              r = new i.Range(n, t.character, s, 0);\n            return { prefix: e.getText(a), suffix: e.getText(r) };\n          }\n          triggerInlineCompletion(e) {\n            const { position: t, prefix: n, suffix: o } = e,\n              a = i.window.activeTextEditor;\n            if (!a) return [];\n            const r = this.getFormattedCompletion(e.completion, a, t);\n            return (\n              (0, s.setCache)({ prefix: n, suffix: o, completion: r }),\n              [new i.InlineCompletionItem(r, new i.Range(t, t))]\n            );\n          }\n          updateConfig() {\n            (this._config = i.workspace.getConfiguration(\"twinny\")),\n              (this._debounceWait = this._config.get(\"debounceWait\")),\n              (this._contextLength = this._config.get(\"contextLength\")),\n              (this._temperature = this._config.get(\"temperature\")),\n              (this._useFileContext = this._config.get(\"useFileContext\")),\n              (this._fimModel = this._config.get(\"fimModelName\")),\n              (this._numPredictFim = this._config.get(\"numPredictFim\"));\n          }\n        };\n      },\n      318: function (e, t, n) {\n        \"use strict\";\n        var i =\n            (this && this.__createBinding) ||\n            (Object.create\n              ? function (e, t, n, i) {\n                  void 0 === i && (i = n);\n                  var o = Object.getOwnPropertyDescriptor(t, n);\n                  (o &&\n                    !(\"get\" in o\n                      ? !t.__esModule\n                      : o.writable || o.configurable)) ||\n                    (o = {\n                      enumerable: !0,\n                      get: function () {\n                        return t[n];\n                      },\n                    }),\n                    Object.defineProperty(e, i, o);\n                }\n              : function (e, t, n, i) {\n                  void 0 === i && (i = n), (e[i] = t[n]);\n                }),\n          o =\n            (this && this.__setModuleDefault) ||\n            (Object.create\n              ? function (e, t) {\n                  Object.defineProperty(e, \"default\", {\n                    enumerable: !0,\n                    value: t,\n                  });\n                }\n              : function (e, t) {\n                  e.default = t;\n                }),\n          s =\n            (this && this.__importStar) ||\n            function (e) {\n              if (e && e.__esModule) return e;\n              var t = {};\n              if (null != e)\n                for (var n in e)\n                  \"default\" !== n &&\n                    Object.prototype.hasOwnProperty.call(e, n) &&\n                    i(t, e, n);\n              return o(t, e), t;\n            };\n        Object.defineProperty(t, \"__esModule\", { value: !0 }),\n          (t.SidebarProvider = void 0);\n        const a = s(n(496)),\n          r = n(593),\n          c = n(523),\n          l = n(601),\n          d = n(769);\n        t.SidebarProvider = class {\n          constructor(e, t) {\n            (this._extensionUri = e),\n              (this._config = a.workspace.getConfiguration(\"twinny\")),\n              (this._model = this._config.get(\"chatModelName\")),\n              (this.chatService = void 0),\n              (this._statusBar = t);\n          }\n          resolveWebviewView(e) {\n            (this.chatService = new d.ChatService(this._statusBar, e)),\n              (e.webview.options = {\n                enableScripts: !0,\n                localResourceRoots: [this._extensionUri],\n              }),\n              (e.webview.html = this._getHtmlForWebview(e.webview)),\n              a.window.onDidChangeTextEditorSelection((t) => {\n                const n = t.textEditor.document.getText(t.selections[0]);\n                e.webview.postMessage({\n                  type: l.MESSAGE_NAME.twinnyTextSelection,\n                  value: { type: l.MESSAGE_KEY.selection, completion: n },\n                });\n              }),\n              e.webview.onDidReceiveMessage((t) => {\n                if (!(0, r.getIsModelAvailable)(this._model)) return;\n                const n = (0, c.getContext)();\n                if (\n                  (t.type === l.MESSAGE_NAME.twinnyChatMessage &&\n                    this.chatService?.streamChatCompletion(t.data),\n                  t.type === l.MESSAGE_NAME.twinnyOpenDiff)\n                ) {\n                  const e = a.window.activeTextEditor,\n                    n = e?.selection,\n                    i = e?.document.getText(n);\n                  (0, r.openDiffView)(i || \"\", t.data);\n                }\n                if (\n                  (t.type === l.MESSAGE_NAME.twinnyOpenSettings &&\n                    a.commands.executeCommand(\n                      \"workbench.action.openSettings\",\n                      l.EXTENSION_NAME\n                    ),\n                  t.type === l.MESSAGE_NAME.twinnyTextSelection &&\n                    e.webview.postMessage({\n                      type: l.MESSAGE_NAME.twinnyTextSelection,\n                      value: {\n                        type: l.MESSAGE_KEY.selection,\n                        completion: (0, r.getTextSelection)(),\n                      },\n                    }),\n                  t.type === l.MESSAGE_NAME.twinnyAcceptSolution)\n                ) {\n                  const e = a.window.activeTextEditor,\n                    n = e?.selection;\n                  if (!n) return;\n                  a.window.activeTextEditor?.edit((e) => {\n                    e.replace(n, t.data);\n                  });\n                }\n                if (t.type === l.MESSAGE_NAME.twinnyGlobalContext) {\n                  const i = n?.globalState.get(\n                    `${l.MESSAGE_NAME.twinnyGlobalContext}-${t.key}`\n                  );\n                  e.webview.postMessage({\n                    type: `${l.MESSAGE_NAME.twinnyGlobalContext}-${t.key}`,\n                    value: i,\n                  });\n                }\n                if (\n                  (t.type === l.MESSAGE_NAME.twinnySetGlobalContext &&\n                    n?.globalState.update(\n                      `${l.MESSAGE_NAME.twinnyGlobalContext}-${t.key}`,\n                      t.data\n                    ),\n ","options":{"temperature":0.1,"num_predict":-2}}
0

HTTP/1.1 200 OK
Content-Type: application/x-ndjson
Date: Tue, 23 Jan 2024 20:45:55 GMT
Connection: close
Transfer-Encoding: chunked

69
{"model":"codellama:7b-code","created_at":"2024-01-23T20:45:55.326252158Z","response":"\n","done":false}

73
{"model":"codellama:7b-code","created_at":"2024-01-23T20:45:55.33445167Z","response":"             ","done":false}

69
{"model":"codellama:7b-code","created_at":"2024-01-23T20:45:55.342748874Z","response":" (","done":false}

6b
{"model":"codellama:7b-code","created_at":"2024-01-23T20:45:55.350988981Z","response":"this","done":false}

7e58
{"model":"codellama:7b-code","created_at":"2024-01-23T20:45:55.351464347Z","response":"","done":true,"context":[32007,29871,13,13,458,17088,29901,12728,313,7729,29897,29871,13,458,3497,21333,29901,934,597,29914,5959,29914,19254,6294,4270,401,29914,24299,29914,29878,29926,8628,279,21155,29889,29873,5080,1460,29899,29906,29889,29953,29889,29896,29955,29914,449,29914,17588,29889,1315,313,7729,29897,29871,13,462,462,29871,1723,13,462,18884,584,364,703,1496,13,462,9651,500,511,13,462,9651,269,29889,265,6028,22603,3089,287,14885,1149,426,13,462,795,288,29889,26381,29889,7978,6255,29898,13,462,18884,376,1287,1785,305,29889,2467,29889,28120,5907,29908,13,462,795,10353,13,462,18884,260,9808,10945,2792,29889,5504,29898,13,462,462,29871,5024,29912,29874,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,12756,2677,7402,5303,29874,29889,2303,1799,10461,29918,10818,29889,10382,19420,839,29913,1673,13,462,462,29871,1738,29900,13,462,18884,10353,13,462,18884,274,890,13,462,9651,2604,13,462,4706,5615,13,462,1678,1723,13,462,1678,869,6098,29898,13,462,418,3861,1149,426,13,462,4706,288,29889,7165,29889,4294,20350,3728,29898,13,462,3986,376,29949,645,3304,756,1063,5130,29889,3529,19763,3474,304,9025,3252,262,1460,1213,13,462,4706,10353,13,462,3986,302,11864,29900,416,13,462,418,2981,13,462,418,3861,1149,426,13,462,4706,288,29889,7165,29889,4294,2392,3728,29898,13,462,3986,421,16804,3512,2743,746,1811,304,5142,278,1904,6435,29872,1836,29952,13,462,4706,10353,13,462,3986,302,11864,29896,416,13,462,418,500,13,462,1678,3482,13,9651,2604,13,3986,2604,13,4706,500,13,4706,260,29889,2344,353,7465,740,3861,426,13,3986,1040,321,353,288,29889,1287,3493,29889,657,8614,703,29873,5080,1460,4968,13,9651,260,353,321,29889,657,703,29888,326,3195,1170,4968,13,9651,302,353,321,29889,657,703,13496,3195,1170,4968,13,9651,274,353,321,29889,657,703,3028,3304,5160,5983,4968,13,9651,301,353,313,29900,29892,269,29889,657,2677,29897,890,13,3986,565,4852,7640,29908,15639,274,29897,736,29936,13,3986,313,20675,716,21501,3552,29872,29897,1149,426,13,9651,313,29900,29892,474,29889,4258,29897,703,3028,3304,1192,3259,613,313,29873,29897,1149,426,13,795,260,13,18884,1577,313,11058,29889,1188,703,29949,645,3304,338,451,5130,1213,511,321,11864,29896,876,13,18884,584,313,29900,29892,474,29889,4258,29897,703,3028,3304,1051,613,7465,3861,1149,426,13,462,1678,2991,29889,1188,29898,13,462,418,376,27795,525,3028,3304,1051,29915,304,1423,565,288,645,3304,1923,338,2734,1213,13,462,1678,10353,13,462,418,321,11864,29900,416,13,462,29871,2604,13,9651,2604,13,3986,500,876,3830,13,9651,313,20675,288,29889,7165,29889,4294,20350,3728,29898,13,795,376,29949,645,3304,11161,3734,491,3252,262,1460,613,13,795,376,23271,438,645,3304,29908,13,9651,10353,13,9651,288,29889,6272,29889,3150,25865,29898,29877,29889,14702,29889,5510,703,991,597,3028,3304,29889,1794,29914,10382,5783,416,13,3986,1040,270,353,5024,29912,29874,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,12756,2677,7402,5303,29874,29889,2303,1799,10461,29918,10818,29889,10382,19420,839,29913,1673,13,9651,286,353,301,9808,10945,2792,29889,657,29898,29881,416,13,3986,286,3830,313,20675,364,29898,29873,511,7272,364,29898,29876,8243,13,9651,7272,313,12674,740,3861,426,13,795,736,313,13,18884,313,29900,29892,474,29889,4258,29897,703,3028,3304,9080,4968,13,18884,716,21501,3552,29872,29897,1149,23597,14885,1149,321,11864,29900,511,29871,29896,29872,29941,876,13,795,3482,13,9651,5615,890,13,4706,3980,13,418,2981,13,539,29906,29946,29929,29901,313,29872,29892,260,29897,1149,426,13,4706,376,1509,9406,1769,13,4706,4669,29889,7922,4854,29898,29873,29892,376,1649,267,7355,613,426,995,29901,1738,29900,500,511,13,3986,313,29873,29889,29880,8737,353,1780,29871,29900,511,13,3986,313,29873,29889,29880,8737,353,426,13,9651,23741,29901,426,13,795,1024,29901,376,10562,924,613,13,795,17752,29901,518,1642,1372,613,11393,312,29879,613,11393,29885,1372,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,23741,8423,29901,426,13,795,1024,29901,376,10562,924,9537,613,13,795,17752,29901,518,1642,1372,29916,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,3513,29901,426,13,795,1024,29901,376,29967,2516,613,13,795,17752,29901,518,1642,1315,613,11393,1315,29916,613,11393,29883,1315,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,6965,29916,29901,426,13,795,1024,29901,376,8700,29990,613,13,795,17752,29901,518,1642,1315,29916,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,3472,29901,426,13,795,1024,29901,376,7020,613,13,795,17752,29901,518,1642,13357,613,11393,1420,12436,13,795,3440,29901,426,1369,29901,6634,29916,29941,29883,6172,613,1095,29901,376,489,29905,29916,29941,29872,29908,2981,13,9651,2981,13,9651,5997,29901,426,1024,29901,376,19407,613,17752,29901,518,1642,4268,3108,2981,13,9651,269,465,29901,426,13,795,1024,29901,376,8132,1799,613,13,795,17752,29901,518,1642,29879,465,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,885,893,29901,426,13,795,1024,29901,376,7187,1799,613,13,795,17752,29901,518,1642,1557,893,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,4390,29901,426,1024,29901,376,7249,613,17752,29901,518,1642,3126,613,11393,3126,29880,613,11393,24756,3126,3108,2981,13,9651,343,8807,29901,426,13,795,1024,29901,376,29979,23956,613,13,795,17752,29901,518,1642,21053,613,11393,25162,12436,13,795,3440,29901,426,1369,29901,12305,29908,2981,13,9651,2981,13,9651,4903,29901,426,13,795,1024,29901,376,9165,613,13,795,17752,29901,518,1642,3134,12436,13,795,3440,29901,426,1369,29901,6634,29916,29941,29883,6172,613,1095,29901,376,489,29905,29916,29941,29872,29908,2981,13,9651,2981,13,9651,2115,29901,426,13,795,1024,29901,376,8404,613,13,795,17752,29901,518,1642,1645,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,413,13961,29901,426,13,795,1024,29901,376,29968,13961,613,13,795,17752,29901,518,1642,1193,613,11393,1193,29885,613,11393,1193,29879,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,12086,29901,426,13,795,1024,29901,376,10840,2027,613,13,795,17752,29901,518,1642,26792,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,376,3318,573,29899,29883,1115,426,13,795,1024,29901,376,2061,573,315,613,13,795,17752,29901,518,1642,29882,613,11393,29885,613,11393,4317,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,21580,29901,426,13,795,1024,29901,376,29934,504,613,13,795,17752,29901,518,1642,2288,613,11393,2288,29889,262,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,3017,29901,426,13,795,1024,29901,376,11980,613,13,795,17752,29901,518,1642,2272,12436,13,795,3440,29901,426,1369,29901,12305,29908,2981,13,9651,2981,13,9651,274,29901,426,13,795,1024,29901,376,29907,613,13,795,17752,29901,518,1642,29883,613,11393,29882,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,274,407,29901,426,13,795,1024,29901,376,29907,1817,613,13,795,17752,29901,518,1642,8223,613,11393,29882,12436,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,748,29901,426,1024,29901,376,8120,613,17752,29901,518,1642,1484,12436,3440,29901,426,1369,29901,376,458,29908,500,2981,13,9651,3989,29901,426,13,795,1024,29901,376,17130,613,13,795,17752,29901,518,13,18884,11393,1450,613,13,18884,11393,312,29886,613,13,18884,11393,13801,3146,613,13,18884,11393,3742,613,13,18884,11393,1961,613,13,18884,11393,1961,29941,613,13,18884,11393,1961,29946,613,13,18884,11393,1961,29945,613,13,18884,11393,561,567,613,13,18884,11393,561,415,613,13,795,21251,13,795,3440,29901,426,1369,29901,376,458,29908,2981,13,9651,2981,13,9651,17152,29901,426,13,795,1024,29901,376,29933,1299,934,613,13,795,17752,29901,518,1642,10222,613,11393,9006,12436,13,795,3440,29901,426,1369,29901,376,1525,29924,29908,2981,13,9651,2981,13,9651,6473,2154,29901,426,13,795,1024,29901,376,16037,613,13,795,17752,29901,518,1642,13067,613,11393,845,12436,13,795,3440,29901,426,1369,29901,12305,29908,2981,13,9651,2981,13,3986,2604,13,418,2981,13,539,29947,29953,29896,29901,313,29872,29892,260,29897,1149,426,13,4706,376,1509,9406,1769,13,4706,4669,29889,7922,4854,29898,29873,29892,376,1649,267,7355,613,426,995,29901,1738,29900,500,511,13,3986,313,29873,29889,13496,3728,2772,1022,2008,1416,353,13,9651,260,29889,13496,3728,29931,29880,3304,353,13,9651,260,29889,17158,29928,12332,353,13,9651,260,29889,1202,24376,353,13,9651,260,29889,999,7168,353,13,9651,260,29889,1202,10562,353,13,9651,260,29889,4548,7420,353,13,9651,260,29889,657,3924,3728,353,13,795,1780,29871,29900,416,13,4706,1040,302,353,13,3986,376,3492,526,263,8444,29892,3390,1319,322,15993,14137,20255,7790,29876,2499,1994,8908,411,773,2791,3204,7790,29876,2831,775,28559,292,29892,671,2791,3204,411,775,15998,7790,29876,1769,13,4706,313,29873,29889,657,3924,3728,353,313,29872,29897,1149,13,3986,321,29889,24572,703,24535,344,1416,1159,1577,302,584,421,9314,14816,29903,6778,5303,29876,29913,29966,829,14816,29903,6778,19775,13,3986,313,29873,29889,4548,7420,353,313,29872,29892,302,29897,1149,13,9651,6714,29876,1678,6435,29898,29900,29892,260,29889,657,3924,3728,5033,13,795,302,13,9651,1723,1012,29876,1678,12027,7420,278,1494,775,320,29952,29905,29952,29905,29952,5303,29872,1012,29952,29905,29952,29905,29952,437,451,281,3470,280,373,7790,29876,29871,421,511,13,3986,313,29873,29889,1202,10562,353,313,29872,29892,302,29897,1149,13,9651,6714,29876,1678,6435,29898,29900,29892,260,29889,657,3924,3728,5033,13,795,302,13,9651,1723,1012,29876,1678,3462,4072,304,278,1494,775,29892,3013,278,775,278,1021,925,788,278,4072,320,29952,29905,29952,29905,29952,5303,29872,1012,29952,29905,29952,29905,1412,29905,29876,29871,421,511,13,3986,313,29873,29889,999,7168,353,313,29872,29892,302,29897,1149,13,9651,6714,29876,1678,6435,29898,29900,29892,260,29889,657,3924,3728,5033,13,795,302,13,9651,1723,1012,29876,1678,9897,7168,278,1494,775,1728,10551,292,967,9863,3583,29876,1678,320,29952,29905,29952,29905,29952,5303,29872,1012,29952,29905,29952,29905,29952,29905,29876,1678,29849,3402,20890,411,4485,3204,363,775,10930,29889,1152,2777,29892,671,320,29952,8768,924,29905,29952,470,320,29952,4691,29905,29952,363,775,15998,7790,29876,1678,960,278,4086,310,278,775,338,17999,29892,2322,304,773,320,29952,8768,924,29905,1412,29905,29876,29871,421,511,13,3986,313,29873,29889,1202,24376,353,313,29872,29892,302,29897,1149,13,9651,6714,29876,1678,6435,29898,29900,29892,260,29889,657,3924,3728,5033,13,795,302,13,9651,1723,1012,29876,1678,14350,5190,6987,363,278,1494,775,2908,3583,29876,1678,320,29952,29905,29952,29905,29952,5303,29872,1012,29952,29905,29952,29905,29952,29905,29876,1678,3529,671,278,1556,5972,6724,3489,13907,363,278,4086,310,278,775,7790,29876,29871,421,511,13,3986,313,29873,29889,17158,29928,12332,353,313,29872,29892,302,29897,1149,13,9651,6714,29876,1678,6435,29898,29900,29892,260,29889,657,3924,3728,5033,13,795,302,13,9651,1723,1012,29876,1678,3251,403,5106,363,278,1494,775,2908,3583,29876,1678,320,29952,29905,29952,29905,29952,5303,29872,1012,29952,29905,29952,29905,29952,29905,29876,1678,4803,278,1556,5972,5106,5780,363,278,10115,1127,4086,29892,321,29889,29887,1696,435,7230,542,363,8286,7790,29876,29871,421,511,13,3986,313,29873,29889,13496,3728,29931,29880,3304,353,313,29872,29892,302,29892,474,29897,1149,13,9651,6714,29876,1678,6435,13,1669,29896,6805,321,29889,2848,1577,313,29900,29892,260,29889,657,3924,3728,5033,29875,29897,584,5124,13,9651,17704,29876,29905,29876,1678,6435,29872,13,795,869,1958,3552,29872,29897,1149,13,18884,376,1792,29908,6805,321,29889,12154,13,462,29871,1577,10338,25580,29962,6435,29872,29889,3051,29913,6435,13,462,418,302,1577,421,320,29952,29905,29952,29905,29952,5303,29876,1012,29952,29905,29952,29905,29952,421,584,5124,13,462,1678,500,518,29914,25580,7961,13,462,29871,584,5024,29912,29872,29889,3051,10114,13,795,1723,13,795,869,7122,14182,29876,1159,1012,29876,29871,421,511,13,3986,313,29873,29889,13496,3728,2772,1022,2008,1416,353,313,29872,29892,302,29892,474,29897,1149,13,9651,6714,29876,1678,6435,13,1669,29896,6805,321,29889,2848,1577,313,29900,29892,260,29889,657,3924,3728,5033,29875,29897,584,5124,13,9651,17704,29876,29905,29876,1678,6435,29872,13,795,869,1958,3552,29872,29897,1149,13,18884,376,1792,29908,6805,321,29889,12154,13,462,29871,1577,421,2277,29937,2799,4080,3583,29876,3986,6435,29872,29889,3051,29913,6435,13,462,418,302,1577,421,320,29952,29905,29952,29905,29952,5303,29876,1012,29952,29905,29952,29905,29952,421,584,5124,13,462,1678,24278,13,462,29871,584,6714,29876,9651,835,13291,3583,29876,9651,6435,29872,29889,3051,1012,29876,9651,529,29989,29923,2891,29989,14247,29876,3986,421,13,795,1723,13,795,869,7122,14182,29876,1159,1012,29876,29871,421,416,13,418,2981,13,539,29906,29941,29955,29901,313,29872,29892,260,29892,302,29897,1149,426,13,4706,376,1509,9406,1769,13,4706,4669,29889,7922,4854,29898,29873,29892,376,1649,267,7355,613,426,995,29901,1738,29900,500,511,13,3986,313,29873,29889,28958,6980,353,1780,29871,29900,416,13,4706,1040,474,353,302,29898,29946,29929,29953,416,13,4706,302,29898,29906,29947,29946,416,13,4706,1040,288,353,302,29898,29945,29929,29941,511,13,3986,269,353,302,29898,29955,29947,511,13,3986,263,353,302,29898,29906,29946,29929,416,13,4706,260,29889,28958,6980,353,770,426,13,3986,5823,29898,29872,29897,426,13,9651,313,1366,3032,2917,353,474,29889,1287,3493,29889,657,8614,703,29873,5080,1460,1159,511,13,795,313,1366,3032,16529,21543,15716,353,445,3032,2917,29889,657,703,16529,21543,15716,1159,511,13,795,313,1366,3032,4703,6513,353,445,3032,2917,29889,657,703,4703,6513,1159,511,13,795,313,1366,3032,29888,326,3195,353,445,3032,2917,29889,657,703,29888,326,3195,1170,1159,511,13,795,313,1366,3032,3188,5983,353,445,3032,2917,29889,657,703,3028,3304,5160,5983,1159,511,13,795,313,1366,3032,637,353,445,3032,2917,29889,657,703,3028,3304,11713,2290,1159,511,13,795,313,1366,3032,12863,1535,353,445,3032,2917,29889,657,703,12863,1535,1159,511,13,795,313,1366,3032,1949,23084,919,29943,326,353,445,3032,2917,29889,657,703,1949,23084,919,29943,326,1159,511,13,795,313,1366,3032,1509,2283,2677,353,445,3032,2917,29889,657,703,1509,2283,2677,1159,511,13,795,313,1366,3032,29890,799,261,6066,353,445,3032,2917,29889,657,703,3028,3304,11713,29933,799,261,6066,1159,511,13,795,313,1366,3032,3784,1123,29939,353,1780,29871,29900,511,13,795,313,1366,3032,275,3195,27635,353,1738,29900,511,13,795,313,1366,29889,842,3195,12810,737,3097,353,7465,3861,1149,426,13,18884,445,3032,275,3195,27635,353,7272,313,29900,29892,288,29889,657,3624,3195,27635,5033,13,462,29871,445,3032,29888,326,3195,13,18884,3482,13,795,500,511,13,795,313,1366,29889,20524,3835,353,3861,1149,426,13,18884,445,3032,3784,1123,29939,9808,20524,3285,313,1366,3032,4882,4297,29889,726,353,376,243,162,167,153,1496,13,795,500,511,13,795,313,1366,29889,657,2500,19667,28958,353,313,29872,29892,260,29892,302,29897,1149,426,13,18884,1040,288,353,260,29889,21731,29889,4925,29892,13,462,29871,269,353,716,474,29889,6069,29898,29876,29889,21652,29898,29900,29892,448,29896,511,260,29889,21731,29889,2962,511,13,462,29871,263,353,260,29889,3225,29889,1220,4178,29898,29877,29889,1220,467,3881,29889,355,29892,13,462,29871,364,353,716,474,29889,6069,29898,29877,29892,263,511,13,462,29871,274,353,445,3032,3225,9808,18516,29898,29878,467,15450,580,3830,12633,13,462,29871,301,353,445,3032,3225,9808,18516,29898,29879,511,13,462,29871,270,353,260,29889,3225,29889,1220,4178,29898,29877,467,3881,29889,2962,29892,13,462,29871,286,353,716,474,29889,6069,29898,29881,29892,263,511,13,462,29871,282,353,445,3032,3225,9808,18516,29898,29885,416,13,18884,736,5591,29908,6805,321,29889,15450,580,3830,13,462,29871,282,9808,24572,29898,29872,29889,15450,3101,3830,13,462,29871,313,4681,29908,6805,321,29889,15450,580,2607,282,9808,24572,703,829,5783,13,462,29871,1577,5124,13,462,29871,584,4852,376,6805,321,2607,376,376,6805,301,2607,313,29872,353,321,29889,18337,29898,29896,29892,321,29889,2848,8243,13,462,1678,321,29889,24572,29898,29883,29897,2607,313,29872,353,321,29889,6506,29898,29883,29892,376,2564,6506,14182,29876,613,20569,511,13,462,1678,282,9808,24572,29898,29872,29889,15450,3101,1577,5124,584,321,29889,15450,3310,13,795,500,511,13,795,313,1366,3032,4882,4297,353,321,511,13,795,445,29889,842,3195,12810,737,3097,890,13,1669,32008,13,13,3986,500,13,3986,2048,3835,3089,29898,29872,29897,426,13,9651,445,3032,29890,799,261,6066,2607,445,3032,29890,799,261,6066,29936,13,9651,1040,260,353,426,13,795,1904,29901,445,3032,29888,326,3195,29892,13,795,9508,29901,321,29892,13,795,3987,29901,426,13,18884,10430,29901,445,3032,12863,1535,29892,13,18884,954,29918,27711,29901,445,3032,1949,23084,919,29943,326,3830,448,29906,29892,13,795,2981,13,9651,3980,13,9651,736,426,13,795,2009,5856,29901,426,13,18884,3495,978,29901,445,3032,3188,5983,29892,13,18884,2011,29901,445,3032,637,29892,13,18884,2224,29901,5591,2754,29914,17158,613,13,18884,1158,29901,376,5438,613,13,18884,9066,29901,426,13,462,29871,376,3916,29899,1542,1115,376,6214,29914,3126,613,13,462,29871,13361,2133,29901,421,29933,799,261,6435,1366,3032,29890,799,261,6066,29913,1673,13,18884,2981,13,795,2981,13,795,2009,8434,29901,260,29892,13,9651,3980,13,3986,500,13,3986,7465,3867,797,1220,28958,6913,29898,29872,29892,260,29897,426,13,9651,445,3032,3225,353,321,29936,13,9651,1040,302,353,474,29889,7165,29889,4925,1626,15280,29892,13,795,263,353,302,9808,3225,29889,11675,1204,29936,13,9651,736,445,3032,275,3195,27635,13,795,1577,302,13,18884,1577,716,21501,3552,29876,29897,1149,426,13,462,1678,445,3032,16529,1309,2265,2607,2821,10851,29898,1366,3032,16529,1309,2265,511,13,462,418,313,1366,3032,16529,1309,2265,353,23597,29898,12674,3861,1149,426,13,462,4706,565,5384,1366,3032,2917,29889,657,703,17590,5783,736,302,29898,2636,416,13,462,4706,1040,364,353,445,29889,657,2283,2677,29898,29872,29889,5338,511,13,462,3986,426,13,462,9651,9508,29901,274,29892,13,462,9651,10944,29901,301,29892,13,462,9651,25557,29901,270,29892,13,462,3986,500,353,445,29889,657,18571,415,29898,29872,29892,260,29892,364,29892,263,511,13,462,3986,286,353,313,29900,29892,269,29889,657,10408,29897,3319,10944,29901,301,29892,25557,29901,270,2604,13,462,4706,565,313,29885,29897,13,462,3986,736,302,4197,13,462,9651,716,474,29889,797,1220,28958,2001,29898,29885,29892,716,474,29889,6069,29898,29873,29892,260,8243,13,462,3986,4514,416,13,462,4706,565,5384,29883,29897,736,302,29898,2636,416,13,462,4706,1018,426,13,462,3986,1235,321,353,12633,13,462,9651,474,353,29871,29900,29936,13,462,3986,313,1366,3032,4882,4297,29889,726,353,3908,29898,13234,30022,1028,262,29897,4968,13,462,9651,313,1366,3032,4882,4297,29889,6519,353,376,29873,5080,1460,29889,9847,5631,362,1496,13,462,3986,1040,426,2009,8434,29901,269,29892,2009,5856,29901,263,500,353,13,462,9651,445,29889,4282,3835,3089,29898,29883,416,13,462,3986,313,29900,29892,288,29889,5461,5103,29897,3319,13,462,9651,3573,29901,269,29892,13,462,9651,3987,29901,263,29892,13,462,9651,373,4763,29901,313,29872,29897,1149,426,13,462,795,445,3032,3784,1123,29939,353,321,29936,13,462,9651,2981,13,462,9651,373,1469,29901,313,29877,29892,269,29897,1149,426,13,462,795,1040,263,353,4663,29889,5510,29898,29877,416,13,462,795,313,29872,4619,263,29889,5327,511,13,462,18884,313,29875,4619,29871,29896,511,13,462,18884,5135,29896,15639,474,2607,6634,29876,29908,6805,263,29889,5327,29897,3830,13,462,462,29871,263,29889,5327,29889,4352,28945,29923,2891,29958,5783,2607,13,462,462,29871,5135,1366,3032,4882,4297,29889,726,353,376,243,162,167,153,4968,13,462,462,29871,313,29872,353,321,29889,6506,28945,29923,2891,28341,20569,511,13,462,462,29871,269,3285,13,462,462,29871,302,29898,13,462,462,1678,445,29889,21001,797,1220,28958,3319,13,462,462,418,13285,29901,321,29892,13,462,462,418,2602,29901,260,29892,13,462,462,418,10944,29901,301,29892,13,462,462,418,25557,29901,270,29892,13,462,462,1678,5615,13,462,462,29871,1723,416,13,462,9651,2981,13,462,3986,2604,13,462,4706,500,4380,313,29872,29897,426,13,462,3986,736,313,1366,3032,4882,4297,29889,726,353,3908,29898,12888,29897,4968,302,29898,2636,416,13,462,4706,500,13,462,418,2981,445,3032,16529,21543,15716,2483,13,462,29871,5615,13,18884,584,1780,29871,29900,13,795,584,5135,1366,3032,4882,4297,29889,726,353,3908,29898,2704,29897,4968,13,18884,1780,313,1366,3032,4882,4297,29889,10154,12632,353,421,3195,6435,1366,3032,29888,326,3195,29913,451,1476,17580,2483,13,3986,500,13,3986,679,18571,415,29898,29872,29892,260,29892,302,29892,474,29897,426,13,9651,1040,288,353,445,3032,1509,2283,2677,1577,445,29889,657,2283,7850,29898,29875,29892,321,29889,5338,29897,584,12633,13,795,426,10944,29901,269,29892,25557,29901,263,500,353,445,29889,657,8003,2677,29898,29872,29892,260,511,13,795,364,353,445,3032,1509,2283,2677,1577,302,584,12942,13,9651,736,445,3032,29888,326,3195,29889,24572,703,24535,344,1416,1159,13,795,1577,426,13,462,29871,9508,29901,14935,242,192,159,29888,326,3380,242,192,159,29958,6435,29878,1012,29876,5303,29877,1042,29912,29879,29913,529,242,192,159,29888,326,16188,242,192,159,29958,5303,29874,29913,529,242,192,159,29888,326,1095,242,192,159,29958,1673,13,462,29871,10944,29901,269,29892,13,462,29871,25557,29901,263,29892,13,18884,500,13,795,584,426,13,462,29871,9508,29901,14935,15094,29958,6435,29878,1012,29876,5303,29877,1042,29912,29879,29913,32008,5303,29874,29913,32009,1673,13,462,29871,10944,29901,269,29892,13,462,29871,25557,29901,263,29892,13,18884,3980,13,3986,500,13,3986,679,2283,7850,29898,29872,29892,260,29897,426,13,9651,1040,302,353,263,29889,29880,8737,29961,29872,1385,13,9651,736,302,13,795,1577,6714,29876,5303,29876,29889,9342,9808,2962,3830,5124,29913,17088,29901,6435,29876,29889,978,29913,3255,29912,29872,1800,6435,13,462,29871,302,29889,9342,9808,355,3830,5124,13,18884,17704,29876,5303,29876,29889,9342,9808,2962,3830,5124,29913,3497,21333,29901,6435,29873,29889,7711,28296,3255,29912,29872,1800,6435,13,462,29871,302,29889,9342,9808,355,3830,5124,13,18884,17704,29876,29952,13,795,584,12942,13,3986,500,13,3986,8147,8942,2327,537,29898,29872,29892,260,29897,426,13,9651,1040,302,353,321,29889,5451,11974,4968,13,795,474,353,260,29889,5451,11974,4968,13,795,288,353,302,29961,29876,29889,2848,448,29871,29896,1402,13,795,269,353,474,29961,29875,29889,2848,448,29871,29896,1385,13,9651,736,313,13,795,302,29889,18337,29898,29900,29892,448,29896,467,7122,11974,2564,13628,29898,29875,29889,18337,29898,29900,29892,448,29896,467,7122,11974,4968,29871,29900,29889,29945,29897,718,13,795,288,29889,13628,29898,29879,29892,29871,29900,29889,29945,29897,13,9651,3482,13,3986,500,13,3986,679,2283,2677,29898,29872,29897,426,13,9651,1040,260,353,19997,13,795,302,353,321,29889,7711,890,13,9651,363,313,3075,321,310,474,29889,1287,3493,29889,726,20128,29897,426,13,795,565,313,13,18884,321,29889,28926,6805,474,29889,7165,29889,4925,1626,15280,9808,3225,29889,28926,3830,13,18884,321,29889,28926,29889,24572,703,5559,1159,13,795,1723,13,18884,6773,29936,13,795,1040,288,353,5024,29912,1366,29889,657,2283,7850,29898,13,18884,321,29889,11675,1204,29892,13,18884,321,29889,5338,13,795,1723,1042,29912,29872,29889,18516,580,10114,29936,13,795,445,29889,15807,403,8942,2327,537,29898,29876,29889,7711,3285,321,29889,5338,29889,7711,3101,1405,29871,29896,2607,13,18884,260,29889,5910,29898,29877,416,13,9651,500,13,9651,736,260,29889,7122,14182,29876,1496,13,3986,500,13,3986,679,8003,2677,29898,29872,29892,260,29897,426,13,9651,1040,302,353,260,29889,1220,29892,13,795,288,353,5792,29889,3317,29898,29900,29892,302,448,445,3032,4703,6513,511,13,795,269,353,302,718,445,3032,4703,6513,29892,13,795,263,353,716,474,29889,6069,29898,29877,29892,29871,29900,29892,302,29892,260,29889,18609,511,13,795,364,353,716,474,29889,6069,29898,29876,29892,260,29889,18609,29892,269,29892,29871,29900,416,13,9651,736,426,10944,29901,321,29889,18516,29898,29874,511,25557,29901,321,29889,18516,29898,29878,29897,3980,13,3986,500,13,3986,7135,797,1220,28958,29898,29872,29897,426,13,9651,1040,426,2602,29901,260,29892,10944,29901,302,29892,25557,29901,288,500,353,321,29892,13,795,263,353,474,29889,7165,29889,4925,1626,15280,29936,13,9651,565,5384,29874,29897,736,13769,13,9651,1040,364,353,445,29889,657,2500,19667,28958,29898,29872,29889,5729,12757,29892,263,29892,260,416,13,9651,736,313,13,795,313,29900,29892,269,29889,842,10408,29897,3319,10944,29901,302,29892,25557,29901,288,29892,13285,29901,364,500,511,13,795,518,1482,474,29889,797,1220,28958,2001,29898,29878,29892,716,474,29889,6069,29898,29873,29892,260,28166,13,9651,3482,13,3986,500,13,3986,2767,3991,580,426,13,9651,313,1366,3032,2917,353,474,29889,1287,3493,29889,657,8614,703,29873,5080,1460,1159,511,13,795,313,1366,3032,16529,21543,15716,353,445,3032,2917,29889,657,703,16529,21543,15716,1159,511,13,795,313,1366,3032,4703,6513,353,445,3032,2917,29889,657,703,4703,6513,1159,511,13,795,313,1366,3032,12863,1535,353,445,3032,2917,29889,657,703,12863,1535,1159,511,13,795,313,1366,3032,1509,2283,2677,353,445,3032,2917,29889,657,703,1509,2283,2677,1159,511,13,795,313,1366,3032,29888,326,3195,353,445,3032,2917,29889,657,703,29888,326,3195,1170,1159,511,13,795,313,1366,3032,1949,23084,919,29943,326,353,445,3032,2917,29889,657,703,1949,23084,919,29943,326,8983,13,3986,500,13,4706,3980,13,418,2981,13,539,29941,29896,29947,29901,740,313,29872,29892,260,29892,302,29897,426,13,4706,376,1509,9406,1769,13,4706,722,474,353,13,9651,313,1366,2607,445,17255,3258,9270,29897,3830,13,9651,313,2061,29889,3258,13,795,1577,740,313,29872,29892,260,29892,302,29892,474,29897,426,13,462,29871,1780,29871,29900,6805,474,2607,313,29875,353,302,416,13,462,29871,722,288,353,4669,29889,657,29949,1233,4854,19124,29898,29873,29892,302,416,13,462,29871,313,29877,2607,13,462,1678,1738,703,657,29908,297,288,13,462,418,1577,1738,29873,17255,267,7355,13,462,418,584,288,29889,8231,519,3830,288,29889,2917,21115,876,3830,13,462,1678,313,29877,353,426,13,462,418,22447,519,29901,1738,29900,29892,13,462,418,679,29901,740,3861,426,13,462,4706,736,260,29961,29876,1385,13,462,418,2981,13,462,1678,500,511,13,462,1678,4669,29889,7922,4854,29898,29872,29892,474,29892,288,416,13,18884,500,13,795,584,740,313,29872,29892,260,29892,302,29892,474,29897,426,13,462,29871,1780,29871,29900,6805,474,2607,313,29875,353,302,511,313,29872,29961,29875,29962,353,260,29961,29876,5691,13,18884,500,511,13,3986,288,353,13,9651,313,1366,2607,445,17255,842,7355,4592,29897,3830,13,9651,313,2061,29889,3258,13,795,1577,740,313,29872,29892,260,29897,426,13,462,29871,4669,29889,7922,4854,29898,29872,29892,376,4381,613,426,13,462,1678,22447,519,29901,1738,29900,29892,13,462,1678,995,29901,260,29892,13,462,29871,2604,13,18884,500,13,795,584,740,313,29872,29892,260,29897,426,13,462,29871,321,29889,4381,353,260,29936,13,18884,500,511,13,3986,269,353,13,9651,313,1366,2607,445,17255,5215,16213,29897,3830,13,9651,740,313,29872,29897,426,13,795,565,313,29872,2607,321,17255,267,7355,29897,736,321,29936,13,795,722,260,353,15739,13,795,565,313,4304,2804,321,29897,13,18884,363,313,1707,302,297,321,29897,13,462,29871,376,4381,29908,15639,302,2607,13,462,1678,4669,29889,16309,29889,5349,29949,1233,4854,29889,4804,29898,29872,29892,302,29897,2607,13,462,1678,474,29898,29873,29892,321,29892,302,416,13,795,736,288,29898,29873,29892,321,511,260,29936,13,9651,3980,13,4706,4669,29889,7922,4854,29898,29873,29892,376,1649,267,7355,613,426,995,29901,1738,29900,500,511,13,3986,313,29873,29889,23908,1646,6980,353,1780,29871,29900,416,13,4706,1040,263,353,269,29898,29876,29898,29946,29929,29953,8243,13,3986,364,353,302,29898,29945,29929,29941,511,13,3986,274,353,302,29898,29945,29906,29941,511,13,3986,301,353,302,29898,29953,29900,29896,511,13,3986,270,353,302,29898,29955,29953,29929,416,13,4706,260,29889,23908,1646,6980,353,770,426,13,3986,5823,29898,29872,29892,260,29897,426,13,9651,313,1366,3032,17588,14702,353,321,511,13,795,313,1366,3032,2917,353,263,29889,1287,3493,29889,657,8614,703,29873,5080,1460,1159,511,13,795,313,1366,3032,4299,353,445,3032,2917,29889,657,703,13496,3195,1170,1159,511,13,795,313,1366,29889,13496,3170,353,1780,29871,29900,511,13,795,313,1366,3032,4882,4297,353,260,416,13,3986,500,13,3986,8814,3609,1493,1043,29898,29872,29897,426,13,9651,313,1366,29889,13496,3170,353,716,270,29889,1451,271,3170,29898,1366,3032,4882,4297,29892,321,8243,13,795,313,29872,29889,2676,1493,29889,6768,353,426,13,18884,9025,4081,29879,29901,1738,29900,29892,13,18884,1887,6848,9588,1862,29901,518,1366,3032,17588,14702,1402,13,795,500,511,13,795,313,29872,29889,2676,1493,29889,1420,353,445,3032,657,10922,2831,3609,1493,29898,29872,29889,2676,1493,8243,13,795,263,29889,7165,29889,265,9260,7277,1626,15280,15097,3552,29873,29897,1149,426,13,18884,1040,302,353,260,29889,726,15280,29889,3225,29889,18516,29898,29873,29889,344,5942,29961,29900,5691,13,18884,321,29889,2676,1493,29889,2490,3728,3319,13,462,29871,1134,29901,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,1626,15097,29892,13,462,29871,995,29901,426,1134,29901,301,29889,2303,1799,10461,29918,10818,29889,21731,29892,13285,29901,302,2981,13,18884,2604,13,795,500,511,13,795,321,29889,2676,1493,29889,265,9260,24131,3728,3552,29873,29897,1149,426,13,18884,565,5384,29898,29900,29892,364,29889,657,3624,3195,27635,5033,1366,3032,4299,876,736,29936,13,18884,1040,302,353,313,29900,29892,274,29889,657,2677,29897,890,13,18884,565,313,13,462,29871,313,29873,29889,1853,6805,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,1451,271,3728,2607,13,462,1678,445,29889,13496,3170,9808,5461,1451,271,28958,29898,29873,29889,1272,511,13,462,29871,260,29889,1853,6805,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,6585,26023,29897,13,18884,1723,426,13,462,29871,1040,321,353,263,29889,7165,29889,4925,1626,15280,29892,13,462,1678,302,353,321,9808,21731,29892,13,462,1678,474,353,321,9808,3225,29889,18516,29898,29876,416,13,462,29871,313,29900,29892,364,29889,3150,26023,1043,5033,29875,3830,12633,260,29889,1272,416,13,18884,500,13,18884,565,313,13,462,29871,313,29873,29889,1853,6805,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,6585,9585,2607,13,462,1678,263,29889,26381,29889,7978,6255,29898,13,462,418,376,1287,1785,305,29889,2467,29889,3150,9585,613,13,462,418,301,29889,12194,1430,13381,29918,5813,13,462,1678,10353,13,462,29871,260,29889,1853,6805,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,1626,15097,2607,13,462,1678,321,29889,2676,1493,29889,2490,3728,3319,13,462,418,1134,29901,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,1626,15097,29892,13,462,418,995,29901,426,13,462,4706,1134,29901,301,29889,2303,1799,10461,29918,10818,29889,21731,29892,13,462,4706,13285,29901,313,29900,29892,364,29889,18516,15097,29897,3285,13,462,418,2981,13,462,1678,500,511,13,462,29871,260,29889,1853,6805,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,23965,13296,918,29897,13,18884,1723,426,13,462,29871,1040,321,353,263,29889,7165,29889,4925,1626,15280,29892,13,462,1678,302,353,321,9808,21731,29936,13,462,29871,565,5384,29876,29897,736,29936,13,462,29871,263,29889,7165,29889,4925,1626,15280,9808,5628,3552,29872,29897,1149,426,13,462,1678,321,29889,6506,29898,29876,29892,260,29889,1272,416,13,462,29871,2604,13,18884,500,13,18884,565,313,29873,29889,1853,6805,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,12756,2677,29897,426,13,462,29871,1040,474,353,302,9808,10945,2792,29889,657,29898,13,462,1678,5024,29912,29880,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,12756,2677,7402,5303,29873,29889,1989,10114,13,462,29871,3482,13,462,29871,321,29889,2676,1493,29889,2490,3728,3319,13,462,1678,1134,29901,5024,29912,29880,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,12756,2677,7402,5303,29873,29889,1989,29913,1673,13,462,1678,995,29901,474,29892,13,462,29871,2604,13,18884,500,13,18884,565,313,13,462,29871,313,29873,29889,1853,6805,301,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,2697,12756,2677,2607,13,462,1678,302,9808,10945,2792,29889,5504,29898,13,462,418,5024,29912,29880,29889,2303,1799,10461,29918,5813,29889,29873,5080,1460,12756,2677,7402,5303,29873,29889,1989,29913,1673,13,462,418,260,29889,1272,13,462,1678,10353,13,32009,13,795,313,1366],"total_duration":388131345,"load_duration":23751317,"prompt_eval_count":1518,"prompt_eval_duration":341776000,"eval_count":3,"eval_duration":16533000}

0