In [ ]:
. ./nbs_header.ps1
. ./core.ps1
In [ ]:
{ pwsh ../apps/builder/build.ps1 } | Invoke-Block
── markdown ──────────────────────────────────────────────────────────────────── │ # DibParser (Polyglot) ── fsharp ────────────────────────────────────────────────────────────────────── #r @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan dard2.1/FSharp.Control.AsyncSeq.dll" #r @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. 0/System.Reactive.dll" #r @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/ netstandard2.0/System.Reactive.Linq.dll" #r @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" #r @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP arsec.dll" #r @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP arsecCS.dll" ── pwsh ──────────────────────────────────────────────────────────────────────── ls ~/.nuget/packages/argu ── [ 227.05ms - stdout ] ─────────────────────────────────────────────────────── │ 6.2.4 │ ── fsharp ────────────────────────────────────────────────────────────────────── #if !INTERACTIVE open Lib #endif ── fsharp ────────────────────────────────────────────────────────────────────── open Common open FParsec open SpiralFileSystem.Operators ── markdown ──────────────────────────────────────────────────────────────────── │ ## escapeCell (test) ── fsharp ────────────────────────────────────────────────────────────────────── //// test let inline escapeCell input = input |> SpiralSm.split "\n" |> Array.map (function | line when line |> SpiralSm.starts_with "\\#!" || line |> SpiralSm.starts_with "\\#r" -> System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#") | line -> line ) |> SpiralSm.concat "\n" ── fsharp ────────────────────────────────────────────────────────────────────── //// test $"a{nl}\\#!magic{nl}b{nl}" |> escapeCell |> _assertEqual ( $"a{nl}#!magic{nl}b{nl}" ) ── [ 56.47ms - stdout ] ──────────────────────────────────────────────────────── │ "a │ #!magic │ b │ " │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## magicMarker ── fsharp ────────────────────────────────────────────────────────────────────── let magicMarker : Parser<string, unit> = pstring "#!" ── fsharp ────────────────────────────────────────────────────────────────────── //// test "#!magic" |> run magicMarker |> _assertEqual ( Success ("#!", (), Position ("", 2, 1, 3)) ) ── [ 30.63ms - stdout ] ──────────────────────────────────────────────────────── │ Success: "#!" │ │ ── fsharp ────────────────────────────────────────────────────────────────────── //// test "##!magic" |> run magicMarker |> _assertEqual ( Failure ( $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}", ParserError ( Position ("", 0, 1, 1), (), ErrorMessageList (ExpectedString "#!") ), () ) ) ── [ 29.28ms - stdout ] ──────────────────────────────────────────────────────── │ Failure: │ Error in Ln: 1 Col: 1 │ ##!magic │ ^ │ Expecting: '#!' │ │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## magicCommand ── fsharp ────────────────────────────────────────────────────────────────────── let magicCommand = magicMarker >>. manyTill anyChar newline |>> (System.String.Concat >> SpiralSm.trim) ── fsharp ────────────────────────────────────────────────────────────────────── //// test "#!magic a" |> run magicCommand |> _assertEqual ( Success ("magic", (), Position ("", 8, 2, 1)) ) ── [ 18.35ms - stdout ] ──────────────────────────────────────────────────────── │ Success: "magic" │ │ ── fsharp ────────────────────────────────────────────────────────────────────── //// test " #!magic a" |> run magicCommand |> _assertEqual ( Failure ( $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}", ParserError ( Position ("", 0, 1, 1), (), ErrorMessageList (ExpectedString "#!") ), () ) ) ── [ 19.31ms - stdout ] ──────────────────────────────────────────────────────── │ Failure: │ Error in Ln: 1 Col: 1 │ #!magic │ ^ │ Expecting: '#!' │ │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## content ── fsharp ────────────────────────────────────────────────────────────────────── let content = (newline >>. magicMarker) <|> (eof >>. preturn "") |> attempt |> lookAhead |> manyTill anyChar |>> (System.String.Concat >> SpiralSm.trim) ── fsharp ────────────────────────────────────────────────────────────────────── //// test "#!magic a " |> run content |> _assertEqual ( Success ("#!magic a", (), Position ("", 14, 7, 1)) ) ── [ 17.31ms - stdout ] ──────────────────────────────────────────────────────── │ Success: "#!magic │ │ │ a" │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## Output ── fsharp ────────────────────────────────────────────────────────────────────── type Output = | Fs | Md | Spi | Spir ── markdown ──────────────────────────────────────────────────────────────────── │ ## Magic ── fsharp ────────────────────────────────────────────────────────────────────── type Magic = | Fsharp | Markdown | Spiral of Output | Magic of string ── markdown ──────────────────────────────────────────────────────────────────── │ ## kernelOutputs ── fsharp ────────────────────────────────────────────────────────────────────── let inline kernelOutputs magic = match magic with | Fsharp -> [[ Fs ]] | Markdown -> [[ Md ]] | Spiral output -> [[ output ]] | _ -> [[]] ── markdown ──────────────────────────────────────────────────────────────────── │ ## Block ── fsharp ────────────────────────────────────────────────────────────────────── type Block = { magic : Magic content : string } ── markdown ──────────────────────────────────────────────────────────────────── │ ## block ── fsharp ────────────────────────────────────────────────────────────────────── let block = pipe2 magicCommand content (fun magic content -> let magic, content = match magic with | "fsharp" -> Fsharp, content | "markdown" -> Markdown, content | "spiral" -> let output = if content |> SpiralSm.contains "//// real\n" then Spir else Spi let content = if output = Spi then content else content |> SpiralSm.replace "//// real\n\n" "" |> SpiralSm.replace "//// real\n" "" Spiral output, content | magic -> magic |> Magic, content { magic = magic content = content }) ── fsharp ────────────────────────────────────────────────────────────────────── //// test "#!magic a " |> run block |> _assertEqual ( Success ( { magic = Magic "magic"; content = "a" }, (), Position ("", 14, 7, 1) ) ) ── [ 28.18ms - stdout ] ──────────────────────────────────────────────────────── │ Success: { magic = Magic "magic" │ content = "a" } │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## blocks ── fsharp ────────────────────────────────────────────────────────────────────── let blocks = skipMany newline >>. sepEndBy block (skipMany1 newline) ── fsharp ────────────────────────────────────────────────────────────────────── //// test "#!magic1 a \#!magic2 b " |> escapeCell |> run blocks |> _assertEqual ( Success ( [[ { magic = Magic "magic1"; content = "a" } { magic = Magic "magic2"; content = "b" } ]], (), Position ("", 26, 9, 1) ) ) ── [ 39.39ms - stdout ] ──────────────────────────────────────────────────────── │ Success: [{ magic = Magic "magic1" │ content = "a" }; { magic = Magic "magic2" │ content = "b" }] │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## formatBlock ── fsharp ────────────────────────────────────────────────────────────────────── let inline formatBlock output (block : Block) = match output, block with | output, { magic = Markdown; content = content } -> let markdownComment = match output with | Spi | Spir -> "/// " | Fs -> "/// " | _ -> "" content |> SpiralSm.split "\n" |> Array.map (SpiralSm.trim_end [[||]]) |> Array.filter (SpiralSm.ends_with " (test)" >> not) |> Array.map (function | "" -> markdownComment | line -> System.Text.RegularExpressions.Regex.Replace (line, "^\\s*", $"$&{markdownComment}") ) |> SpiralSm.concat "\n" | Fs, { magic = Fsharp; content = content } -> let trimmedContent = content |> SpiralSm.trim if trimmedContent |> SpiralSm.contains "//// test\n" || trimmedContent |> SpiralSm.contains "//// ignore\n" then "" else content |> SpiralSm.split "\n" |> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with "#r" >> not) |> SpiralSm.concat "\n" | (Spi | Spir), { magic = Spiral output'; content = content } when output' = output -> let trimmedContent = content |> SpiralSm.trim if trimmedContent |> SpiralSm.contains "//// test\n" || trimmedContent |> SpiralSm.contains "//// ignore\n" then "" else content | _ -> "" ── fsharp ────────────────────────────────────────────────────────────────────── //// test "#!markdown a b c \#!markdown c \#!fsharp let a = 1" |> escapeCell |> run block |> function | Success (block, _, _) -> formatBlock Fs block | Failure (msg, _, _) -> failwith msg |> _assertEqual "/// a /// /// b /// /// c" ── [ 48.66ms - stdout ] ──────────────────────────────────────────────────────── │ "/// a │ /// │ /// b │ /// │ /// c" │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## formatBlocks ── fsharp ────────────────────────────────────────────────────────────────────── let inline formatBlocks output blocks = blocks |> List.map (fun block -> block, formatBlock output block ) |> List.filter (snd >> (<>) "") |> fun list -> (list, (None, [[]])) ||> List.foldBack (fun (block, content) (lastMagic, acc) -> let lineBreak = if block.magic = Markdown && lastMagic <> Some Markdown && lastMagic <> None then "" else "\n" Some block.magic, $"{content}{lineBreak}" :: acc ) |> snd |> SpiralSm.concat "\n" ── fsharp ────────────────────────────────────────────────────────────────────── //// test "#!markdown a b \#!markdown c \#!fsharp let a = 1 \#!markdown d (test) \#!fsharp //// test let a = 2 \#!markdown e \#!fsharp let a = 3" |> escapeCell |> run blocks |> function | Success (blocks, _, _) -> formatBlocks Fs blocks | Failure (msg, _, _) -> failwith msg |> _assertEqual "/// a /// /// b /// c let a = 1 /// e let a = 3 " ── [ 53.67ms - stdout ] ──────────────────────────────────────────────────────── │ "/// a │ /// │ /// b │ │ /// c │ let a = 1 │ │ /// e │ let a = 3 │ " │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## parse ── fsharp ────────────────────────────────────────────────────────────────────── let inline parse output input = match run blocks input with | Success (blocks, _, _) -> let blocks = blocks |> List.filter (fun block -> block.magic |> kernelOutputs |> List.contains output || block.magic = Markdown ) match blocks with | { magic = Markdown; content = content } :: _ when output = Fs && content |> SpiralSm.starts_with "# " && content |> SpiralSm.ends_with ")" -> let inline indentBlock (block : Block) = { block with content = block.content |> SpiralSm.split "\n" |> Array.fold (fun (lines, isMultiline) line -> let trimmedLine = line |> SpiralSm.trim if trimmedLine = "" then "" :: lines, isMultiline else let inline singleQuoteLine () = trimmedLine |> Seq.sumBy ((=) '"' >> System.Convert.ToInt32) = 1 && trimmedLine |> SpiralSm.contains @"'""'" |> not && trimmedLine |> SpiralSm.ends_with "{" |> not && trimmedLine |> SpiralSm.ends_with "{|" |> not && trimmedLine |> SpiralSm.starts_with "}" |> not && trimmedLine |> SpiralSm.starts_with "|}" |> not match isMultiline, trimmedLine |> SpiralSm.split_string [[| $"{q}{q}{q}" |]] with | false, [[| _; _ |]] -> $" {line}" :: lines, true | true, [[| _; _ |]] -> line :: lines, false | false, _ when singleQuoteLine () -> $" {line}" :: lines, true | false, _ when line |> SpiralSm.starts_with "#" && block.magic = Fsharp -> line :: lines, false | false, _ -> $" {line}" :: lines, false | true, _ when singleQuoteLine () && line |> SpiralSm.starts_with " " -> $" {line}" :: lines, false | true, _ when singleQuoteLine () -> line :: lines, false | true, _ -> line :: lines, true ) ([[]], false) |> fst |> List.rev |> SpiralSm.concat "\n" } let moduleName, namespaceName = System.Text.RegularExpressions.Regex.Match (content, @"# (.*) \((.*)\)$") |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value let moduleBlock = { magic = Fsharp content = $"#if !INTERACTIVE namespace {namespaceName} #endif module {moduleName} =" } blocks |> List.indexed |> List.fold (fun blocks (index, block) -> match index with | 0 -> blocks | 1 -> indentBlock block :: moduleBlock :: blocks | _ -> indentBlock block :: blocks ) [[]] |> List.rev | _ -> blocks |> Result.Ok | Failure (errorMsg, _, _) -> Result.Error errorMsg ── fsharp ────────────────────────────────────────────────────────────────────── //// test let example1 = $"""#!meta {{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name": "fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}} \#!markdown # TestModule (TestNamespace) \#!fsharp \#!import file.dib \#!fsharp \#r "nuget:Expecto" \#!markdown ## ParserLibrary \#!fsharp open System \#!markdown ## x (test) \#!fsharp //// ignore let x = 1 \#!spiral //// test inl x = 1i32 \#!spiral //// real inl x = 2i32 \#!spiral inl x = 3i32 \#!markdown ### TextInput \#!fsharp let str1 = "abc def" let str2 = "abc\ def" let str3 = $"1{{ 1 }}1" let str4 = $"1{{({{| a = 1 |}}).a}}1" let str5 = "abc \ def" let x = match '"' with | '"' -> true | _ -> false let long1 = {q}{q}{q}a{q}{q}{q} let long2 = {q}{q}{q} a {q}{q}{q} \#!fsharp type Position = {{ #if INTERACTIVE line : string #else line : int #endif column : int }}""" |> escapeCell ── fsharp ────────────────────────────────────────────────────────────────────── //// test example1 |> parse Fs |> Result.toOption |> Option.get |> (formatBlocks Fs) |> _assertEqual $"""#if !INTERACTIVE namespace TestNamespace #endif module TestModule = /// ## ParserLibrary open System /// ### TextInput let str1 = "abc def" let str2 = "abc\ def" let str3 = $"1{{ 1 }}1" let str4 = $"1{{({{| a = 1 |}}).a}}1" let str5 = "abc \ def" let x = match '"' with | '"' -> true | _ -> false let long1 = {q}{q}{q}a{q}{q}{q} let long2 = {q}{q}{q} a {q}{q}{q} type Position = {{ #if INTERACTIVE line : string #else line : int #endif column : int }} """ ── [ 155.27ms - stdout ] ─────────────────────────────────────────────────────── │ "#if !INTERACTIVE │ namespace TestNamespace │ #endif │ │ module TestModule = │ │ /// ## ParserLibrary │ open System │ │ /// ### TextInput │ let str1 = "abc │ def" │ │ let str2 = │ "abc\ │ def" │ │ let str3 = │ $"1{ │ 1 │ }1" │ │ let str4 = │ $"1{({| │ a = 1 │ |}).a}1" │ │ let str5 = │ "abc \ │ def" │ │ let x = │ match '"' with │ | '"' -> true │ | _ -> false │ │ let long1 = """a""" │ │ let long2 = │ """ │ a │ """ │ │ type Position = │ { │ #if INTERACTIVE │ line : string │ #else │ line : int │ #endif │ column : int │ } │ " │ │ ── fsharp ────────────────────────────────────────────────────────────────────── //// test example1 |> parse Md |> Result.toOption |> Option.get |> (formatBlocks Md) |> _assertEqual "# TestModule (TestNamespace) ## ParserLibrary ### TextInput " ── [ 129.62ms - stdout ] ─────────────────────────────────────────────────────── │ "# TestModule (TestNamespace) │ │ ## ParserLibrary │ │ ### TextInput │ " │ │ ── fsharp ────────────────────────────────────────────────────────────────────── //// test example1 |> parse Spi |> Result.toOption |> Option.get |> (formatBlocks Spi) |> _assertEqual "/// # TestModule (TestNamespace) /// ## ParserLibrary inl x = 3i32 /// ### TextInput " ── [ 131.30ms - stdout ] ─────────────────────────────────────────────────────── │ "/// # TestModule (TestNamespace) │ │ /// ## ParserLibrary │ inl x = 3i32 │ │ /// ### TextInput │ " │ │ ── fsharp ────────────────────────────────────────────────────────────────────── //// test example1 |> parse Spir |> Result.toOption |> Option.get |> (formatBlocks Spir) |> _assertEqual "/// # TestModule (TestNamespace) /// ## ParserLibrary inl x = 2i32 /// ### TextInput " ── [ 132.11ms - stdout ] ─────────────────────────────────────────────────────── │ "/// # TestModule (TestNamespace) │ │ /// ## ParserLibrary │ inl x = 2i32 │ │ /// ### TextInput │ " │ │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## parseDibCode ── fsharp ────────────────────────────────────────────────────────────────────── let inline parseDibCode output file = async { trace Debug (fun () -> "parseDibCode") (fun () -> $"output: {output} / file: {file} / {_locals ()}") let! input = file |> SpiralFileSystem.read_all_text_async match parse output input with | Result.Ok blocks -> return blocks |> formatBlocks output | Result.Error msg -> return failwith msg } ── markdown ──────────────────────────────────────────────────────────────────── │ ## writeDibCode ── fsharp ────────────────────────────────────────────────────────────────────── let inline writeDibCode output path = async { trace Debug (fun () -> "writeDibCode") (fun () -> $"output: {output} / path: {path} / {_locals ()}") let! result = parseDibCode output path let pathDir = path |> System.IO.Path.GetDirectoryName let fileNameWithoutExt = match output, path |> System.IO.Path.GetFileNameWithoutExtension with | Spir, fileNameWithoutExt -> $"{fileNameWithoutExt}_real" | _, fileNameWithoutExt -> fileNameWithoutExt let outputPath = pathDir </> $"{fileNameWithoutExt}.{output |> string |> SpiralSm.to_lower}" do! result |> SpiralFileSystem.write_all_text_async outputPath } ── markdown ──────────────────────────────────────────────────────────────────── │ ## Arguments ── fsharp ────────────────────────────────────────────────────────────────────── [[<RequireQualifiedAccess>]] type Arguments = | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]] File of file : string * Output interface Argu.IArgParserTemplate with member s.Usage = match s with | File _ -> nameof File ── fsharp ────────────────────────────────────────────────────────────────────── //// test Argu.ArgumentParser.Create<Arguments>().PrintUsage () ── [ 64.85ms - return value ] ────────────────────────────────────────────────── │ "USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> │ │ FILE: │ │ <file> <fs|md|spi|spir> │ File │ │ OPTIONS: │ │ --help display this list of options. │ " │ ── markdown ──────────────────────────────────────────────────────────────────── │ ## main ── fsharp ────────────────────────────────────────────────────────────────────── let main args = let argsMap = args |> Runtime.parseArgsMap<Arguments> let files = argsMap.[[nameof Arguments.File]] |> List.map (function | Arguments.File (path, output) -> path, output ) files |> List.map (fun (path, output) -> path |> writeDibCode output) |> Async.Parallel |> Async.Ignore |> Async.runWithTimeout 30000 |> function | Some () -> 0 | None -> 1 ── fsharp ────────────────────────────────────────────────────────────────────── //// test let args = System.Environment.GetEnvironmentVariable "ARGS" |> SpiralRuntime.split_args |> Result.toArray |> Array.collect id match args with | [[||]] -> 0 | args -> if main args = 0 then 0 else failwith "main failed" ── [ 119.65ms - return value ] ───────────────────────────────────────────────── │ <div class="dni-plaintext"><pre>0 │ </pre></div><style> │ .dni-code-hint { │ font-style: italic; │ overflow: hidden; │ white-space: nowrap; │ } │ .dni-treeview { │ white-space: nowrap; │ } │ .dni-treeview td { │ vertical-align: top; │ text-align: start; │ } │ details.dni-treeview { │ padding-left: 1em; │ } │ table td { │ text-align: start; │ } │ table tr { │ vertical-align: top; │ margin: 0em 0px; │ } │ table tr td pre │ { │ vertical-align: top !important; │ margin: 0em 0px !important; │ } │ table th { │ text-align: start; │ } │ </style> ── [ 120.49ms - stdout ] ─────────────────────────────────────────────────────── │ 00:00:04 d #1 writeDibCode / output: Fs / path: Builder.dib │ 00:00:04 d #2 parseDibCode / output: Fs / file: Builder.dib │ 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Builder.dib"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ # Builder (Polyglot) > > ── fsharp ────────────────────────────────────────────────────────────────────── > #r > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan > dard2.1/FSharp.Control.AsyncSeq.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. > 0/System.Reactive.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/ > netstandard2.0/System.Reactive.Linq.dll" > #r > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" > > ── fsharp ────────────────────────────────────────────────────────────────────── > #if !INTERACTIVE > open Lib > #endif > > ── fsharp ────────────────────────────────────────────────────────────────────── > open Common > open SpiralFileSystem.Operators > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## buildProject > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline buildProject runtime outputDir path = async { > let fullPath = path |> System.IO.Path.GetFullPath > let fileDir = fullPath |> System.IO.Path.GetDirectoryName > let extension = fullPath |> System.IO.Path.GetExtension > > trace Debug > (fun () -> "buildProject") > (fun () -> $"fullPath: {fullPath} / {_locals ()}") > > match extension with > | ".fsproj" -> () > | _ -> failwith "Invalid project file" > > let runtimes = > runtime > |> Option.map List.singleton > |> Option.defaultValue [[ "linux-x64"; "win-x64" ]] > > let outputDir = outputDir |> Option.defaultValue "dist" > > return! > runtimes > |> List.map (fun runtime -> async { > let command = $@"dotnet publish ""{path}"" --configuration Release > --output ""{outputDir}"" --runtime {runtime}" > let! exitCode, _result = > SpiralRuntime.execution_options (fun x -> > { x with > l0 = command > l6 = Some fileDir > } > ) > |> SpiralRuntime.execute_with_options_async > return exitCode > }) > |> Async.Sequential > |> Async.map Array.sum > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## persistCodeProject > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline persistCodeProject packages modules name hash code = async { > trace Debug > (fun () -> "persistCodeProject") > (fun () -> $"packages: {packages} / modules: {modules} / name: {name} / > hash: {hash} / code.Length: {code |> String.length} / {_locals ()}") > > let workspaceRoot = SpiralFileSystem.get_workspace_root () > > let targetDir = > let targetDir = workspaceRoot </> "target/Builder" </> name > match hash with > | Some hash -> targetDir </> "packages" </> hash > | None -> targetDir > targetDir |> System.IO.Directory.CreateDirectory |> ignore > > let filePath = targetDir </> $"{name}.fs" |> System.IO.Path.GetFullPath > do! code |> SpiralFileSystem.write_all_text_exists filePath > > let modulesCode = > modules > |> List.map (fun path -> $"""<Compile Include="{workspaceRoot </> path}" > />""") > |> SpiralSm.concat "\n " > > let fsprojPath = targetDir </> $"{name}.fsproj" > let fsprojCode = $"""<Project Sdk="Microsoft.NET.Sdk"> > <PropertyGroup> > <TargetFramework>net9.0</TargetFramework> > <LangVersion>preview</LangVersion> > <RollForward>Major</RollForward> > <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> > <PublishAot>false</PublishAot> > <PublishTrimmed>false</PublishTrimmed> > <PublishSingleFile>true</PublishSingleFile> > <SelfContained>true</SelfContained> > <Version>0.0.1-alpha.1</Version> > <OutputType>Exe</OutputType> > </PropertyGroup> > > <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('FreeBSD'))"> > <DefineConstants>_FREEBSD</DefineConstants> > </PropertyGroup> > > <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('Linux'))"> > <DefineConstants>_LINUX</DefineConstants> > </PropertyGroup> > > <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('OSX'))"> > <DefineConstants>_OSX</DefineConstants> > </PropertyGroup> > > <PropertyGroup Condition="$([[MSBuild]]::IsOSPlatform('Windows'))"> > <DefineConstants>_WINDOWS</DefineConstants> > </PropertyGroup> > > <ItemGroup> > {modulesCode} > <Compile Include="{filePath}" /> > </ItemGroup> > > <Import Project="{workspaceRoot}/.paket/Paket.Restore.targets" /> > </Project> > """ > do! fsprojCode |> SpiralFileSystem.write_all_text_exists fsprojPath > > let paketReferencesPath = targetDir </> "paket.references" > let paketReferencesCode = > "FSharp.Core" :: packages > |> SpiralSm.concat "\n" > do! paketReferencesCode |> SpiralFileSystem.write_all_text_exists > paketReferencesPath > > return fsprojPath > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## buildCode > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline buildCode runtime packages modules outputDir name code = async { > let! fsprojPath = code |> persistCodeProject packages modules name None > let! exitCode = fsprojPath |> buildProject runtime outputDir > if exitCode <> 0 then > let! fsprojText = fsprojPath |> SpiralFileSystem.read_all_text_async > trace Critical > (fun () -> "buildCode") > (fun () -> $"code: {code |> SpiralSm.ellipsis_end 400} / fsprojText: > {fsprojText} / {_locals ()}") > return exitCode > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "1 + 1 |> ignore" > |> buildCode None [[]] [[]] None "test1" > |> Async.runWithTimeout 180000 > |> _assertEqual (Some 0) > > ── [ 8.97s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:01 d #1 persistCodeProject / packages: [] / > modules: [] / name: test1 / hash: / code.Length: 15 > │ 00:00:02 d #2 buildProject / fullPath: > /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj > │ 00:00:05 d #1 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish > "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" > --configuration Release --output "dist" --runtime linux-x64"; options = { > command = dotnet publish > "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" > --configuration Release --output "dist" --runtime linux-x64; cancellation_token > = None; environment_variables = [||]; on_line = None; stdin = None; trace = > true; working_directory = Some > "/home/runner/work/polyglot/polyglot/target/Builder/test1" } } > │ 00:00:05 v #2 > Determining projects to restore... > │ 00:00:06 v #3 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:06 v #4 > The last full restore is still up to > date. Nothing left to do. > │ 00:00:06 v #5 > Total time taken: 0 milliseconds > │ 00:00:06 v #6 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:06 v #7 > Restoring > /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj > │ 00:00:06 v #8 > Starting restore process. > │ 00:00:06 v #9 > Total time taken: 0 milliseconds > │ 00:00:07 v #10 > Restored > /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj (in 311 > ms). > │ 00:00:09 v #11 > > /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fs(1,16): warning > FS0988: Main module of program is empty: nothing will happen when it is run > [/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj] > │ 00:00:09 v #12 > test1 -> > /home/runner/work/polyglot/polyglot/target/Builder/test1/bin/Release/net9.0/linu > x-x64/test1.dll > │ 00:00:10 v #13 > test1 -> > /home/runner/work/polyglot/polyglot/target/Builder/test1/dist > │ 00:00:10 d #14 runtime.execute_with_options_async / { > exit_code = 0; output_length = 911 } > │ 00:00:10 d #15 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish > "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" > --configuration Release --output "dist" --runtime win-x64"; options = { command > = dotnet publish > "/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj" > --configuration Release --output "dist" --runtime win-x64; cancellation_token = > None; environment_variables = [||]; on_line = None; stdin = None; trace = true; > working_directory = Some > "/home/runner/work/polyglot/polyglot/target/Builder/test1" } } > │ 00:00:10 v #16 > Determining projects to restore... > │ 00:00:11 v #17 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:11 v #18 > The last full restore is still up to > date. Nothing left to do. > │ 00:00:11 v #19 > Total time taken: 0 milliseconds > │ 00:00:11 v #20 > Restored > /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj (in 269 > ms). > │ 00:00:13 v #21 > > /home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fs(1,16): warning > FS0988: Main module of program is empty: nothing will happen when it is run > [/home/runner/work/polyglot/polyglot/target/Builder/test1/test1.fsproj] > │ 00:00:13 v #22 > test1 -> > /home/runner/work/polyglot/polyglot/target/Builder/test1/bin/Release/net9.0/win- > x64/test1.dll > │ 00:00:14 v #23 > test1 -> > /home/runner/work/polyglot/polyglot/target/Builder/test1/dist > │ 00:00:14 d #24 runtime.execute_with_options_async / { > exit_code = 0; output_length = 701 } > │ Some 0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "1 + a |> ignore" > |> buildCode None [[]] [[]] None "test2" > |> Async.runWithTimeout 180000 > |> _assertEqual (Some 2) > > ── [ 6.48s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:10 d #3 persistCodeProject / packages: [] / > modules: [] / name: test2 / hash: / code.Length: 15 > │ 00:00:10 d #4 buildProject / fullPath: > /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj > │ 00:00:14 d #25 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish > "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" > --configuration Release --output "dist" --runtime linux-x64"; options = { > command = dotnet publish > "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" > --configuration Release --output "dist" --runtime linux-x64; cancellation_token > = None; environment_variables = [||]; on_line = None; stdin = None; trace = > true; working_directory = Some > "/home/runner/work/polyglot/polyglot/target/Builder/test2" } } > │ 00:00:14 v #26 > Determining projects to restore... > │ 00:00:15 v #27 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:15 v #28 > The last full restore is still up to > date. Nothing left to do. > │ 00:00:15 v #29 > Total time taken: 0 milliseconds > │ 00:00:15 v #30 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:15 v #31 > Restoring > /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj > │ 00:00:15 v #32 > Starting restore process. > │ 00:00:15 v #33 > Total time taken: 0 milliseconds > │ 00:00:16 v #34 > Restored > /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj (in 263 > ms). > │ 00:00:17 v #35 > > /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fs(1,5): error > FS0039: The value or constructor 'a' is not defined. > [/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj] > │ 00:00:17 d #36 runtime.execute_with_options_async / { > exit_code = 1; output_length = 704 } > │ 00:00:17 d #37 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish > "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" > --configuration Release --output "dist" --runtime win-x64"; options = { command > = dotnet publish > "/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj" > --configuration Release --output "dist" --runtime win-x64; cancellation_token = > None; environment_variables = [||]; on_line = None; stdin = None; trace = true; > working_directory = Some > "/home/runner/work/polyglot/polyglot/target/Builder/test2" } } > │ 00:00:18 v #38 > Determining projects to restore... > │ 00:00:18 v #39 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:18 v #40 > The last full restore is still up to > date. Nothing left to do. > │ 00:00:18 v #41 > Total time taken: 0 milliseconds > │ 00:00:19 v #42 > Restored > /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj (in 269 > ms). > │ 00:00:20 v #43 > > /home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fs(1,5): error > FS0039: The value or constructor 'a' is not defined. > [/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fsproj] > │ 00:00:20 d #44 runtime.execute_with_options_async / { > exit_code = 1; output_length = 496 } > │ 00:00:17 c #5 buildCode / code: 1 + a |> ignore / > fsprojText: <Project Sdk="Microsoft.NET.Sdk"> > │ <PropertyGroup> > │ <TargetFramework>net9.0</TargetFramework> > │ <LangVersion>preview</LangVersion> > │ <RollForward>Major</RollForward> > │ > <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> > │ <PublishAot>false</PublishAot> > │ <PublishTrimmed>false</PublishTrimmed> > │ <PublishSingleFile>true</PublishSingleFile> > │ <SelfContained>true</SelfContained> > │ <Version>0.0.1-alpha.1</Version> > │ <OutputType>Exe</OutputType> > │ </PropertyGroup> > │ > │ <PropertyGroup > Condition="$([MSBuild]::IsOSPlatform('FreeBSD'))"> > │ <DefineConstants>_FREEBSD</DefineConstants> > │ </PropertyGroup> > │ > │ <PropertyGroup > Condition="$([MSBuild]::IsOSPlatform('Linux'))"> > │ <DefineConstants>_LINUX</DefineConstants> > │ </PropertyGroup> > │ > │ <PropertyGroup > Condition="$([MSBuild]::IsOSPlatform('OSX'))"> > │ <DefineConstants>_OSX</DefineConstants> > │ </PropertyGroup> > │ > │ <PropertyGroup > Condition="$([MSBuild]::IsOSPlatform('Windows'))"> > │ <DefineConstants>_WINDOWS</DefineConstants> > │ </PropertyGroup> > │ > │ <ItemGroup> > │ > │ <Compile > Include="/home/runner/work/polyglot/polyglot/target/Builder/test2/test2.fs" /> > │ </ItemGroup> > │ > │ <Import > Project="/home/runner/work/polyglot/polyglot/.paket/Paket.Restore.targets" /> > │ </Project> > │ > │ Some 2 > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## readFile > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline readFile path = async { > let! code = path |> SpiralFileSystem.read_all_text_async > > let code = System.Text.RegularExpressions.Regex.Replace ( > code, > @"( *)(let\s+main\s+.*?\s*=)", > fun m -> m.Groups.[[1]].Value + "[[<EntryPoint>]]\n" + > m.Groups.[[1]].Value + m.Groups.[[2]].Value > ) > > let codeTrim = code |> SpiralSm.trim_end [[||]] > return > if codeTrim |> SpiralSm.ends_with "\n()" > then codeTrim |> SpiralSm.slice 0 ((codeTrim |> String.length) - 3) > else code > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## buildFile > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline buildFile runtime packages modules path = async { > let fullPath = path |> System.IO.Path.GetFullPath > let dir = fullPath |> System.IO.Path.GetDirectoryName > let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension > let! code = fullPath |> readFile > return! code |> buildCode runtime packages modules (dir </> "dist" |> Some) > name > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## persistFile > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline persistFile packages modules path = async { > let fullPath = path |> System.IO.Path.GetFullPath > let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension > let! code = fullPath |> readFile > return! code |> persistCodeProject packages modules name None > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## Arguments > > ── fsharp ────────────────────────────────────────────────────────────────────── > [[<RequireQualifiedAccess>]] > type Arguments = > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce>]] > Path of path : string > | [[<Argu.ArguAttributes.Unique>]] Packages of packages : string list > | [[<Argu.ArguAttributes.Unique>]] Modules of modules : string list > | [[<Argu.ArguAttributes.Unique>]] Runtime of runtime : string > | [[<Argu.ArguAttributes.Unique>]] Persist_Only > > interface Argu.IArgParserTemplate with > member s.Usage = > match s with > | Path _ -> nameof Path > | Packages _ -> nameof Packages > | Modules _ -> nameof Modules > | Runtime _ -> nameof Runtime > | Persist_Only -> nameof Persist_Only > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () > > ── [ 76.34ms - return value ] ────────────────────────────────────────────────── > │ "USAGE: dotnet-repl [--help] [--packages [<packages>...]] > │ [--modules [<modules>...]] [--runtime > <runtime>] > │ [--persist-only] <path> > │ > │ PATH: > │ > │ <path> Path > │ > │ OPTIONS: > │ > │ --packages [<packages>...] > │ Packages > │ --modules [<modules>...] > │ Modules > │ --runtime <runtime> Runtime > │ --persist-only Persist_Only > │ --help display this list of options. > │ " > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## main > > ── fsharp ────────────────────────────────────────────────────────────────────── > let main args = > let argsMap = args |> Runtime.parseArgsMap<Arguments> > > let path = > match argsMap.[[nameof Arguments.Path]] with > | [[ Arguments.Path path ]] -> Some path > | _ -> None > |> Option.get > > let packages = > match argsMap |> Map.tryFind (nameof Arguments.Packages) with > | Some [[ Arguments.Packages packages ]] -> packages > | _ -> [[]] > > let modules = > match argsMap |> Map.tryFind (nameof Arguments.Modules) with > | Some [[ Arguments.Modules modules ]] -> modules > | _ -> [[]] > > let runtime = > match argsMap |> Map.tryFind (nameof Arguments.Runtime) with > | Some [[ Arguments.Runtime runtime ]] -> Some runtime > | _ -> None > > let persistOnly = argsMap |> Map.containsKey (nameof Arguments.Persist_Only) > > if persistOnly > then path |> persistFile packages modules |> Async.map (fun _ -> 0) > else path |> buildFile runtime packages modules > |> Async.runWithTimeout (60000 * 60) > |> function > | Some exitCode -> exitCode > | None -> 1 > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let args = > System.Environment.GetEnvironmentVariable "ARGS" > |> SpiralRuntime.split_args > |> Result.toArray > |> Array.collect id > > match args with > | [[||]] -> 0 > | args -> if main args = 0 then 0 else failwith "main failed" > > ── [ 12.12s - return value ] ─────────────────────────────────────────────────── > │ <div class="dni-plaintext"><pre>0 > │ </pre></div><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 12.12s - stdout ] ───────────────────────────────────────────────────────── > │ 00:00:17 d #6 persistCodeProject / packages: [Argu; > FSharp.Control.AsyncSeq; System.Reactive.Linq] / modules: > [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; > deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Builder / hash: / code.Length: > 8210 > │ 00:00:17 d #7 buildProject / fullPath: > /home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj > │ 00:00:21 d #45 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish > "/home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj" > --configuration Release --output > "/home/runner/work/polyglot/polyglot/apps/builder/dist" --runtime linux-x64"; > options = { command = dotnet publish > "/home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj" > --configuration Release --output > "/home/runner/work/polyglot/polyglot/apps/builder/dist" --runtime linux-x64; > cancellation_token = None; environment_variables = [||]; on_line = None; stdin = > None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot/target/Builder/Builder" } } > │ 00:00:21 v #46 > Determining projects to restore... > │ 00:00:21 v #47 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:21 v #48 > The last full restore is still up to > date. Nothing left to do. > │ 00:00:21 v #49 > Total time taken: 0 milliseconds > │ 00:00:22 v #50 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:22 v #51 > Restoring > /home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj > │ 00:00:22 v #52 > Starting restore process. > │ 00:00:22 v #53 > Total time taken: 0 milliseconds > │ 00:00:23 v #54 > Restored > /home/runner/work/polyglot/polyglot/target/Builder/Builder/Builder.fsproj (in > 287 ms). > │ 00:00:32 v #55 > Builder -> > /home/runner/work/polyglot/polyglot/target/Builder/Builder/bin/Release/net9.0/li > nux-x64/Builder.dll > │ 00:00:33 v #56 > Builder -> > /home/runner/work/polyglot/polyglot/apps/builder/dist > │ 00:00:33 d #57 runtime.execute_with_options_async / { > exit_code = 0; output_length = 690 } > │ 00:00:43 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 27151 } 00:00:43 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:44 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.ipynb to html 00:00:44 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:44 v #7 ! validate(nb) 00:00:45 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:45 v #9 ! return _pygments_highlight( 00:00:45 v #10 ! [NbConvertApp] Writing 335353 bytes to /home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.html 00:00:45 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 902 } 00:00:45 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 902 } 00:00:45 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:45 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:45 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:45 d #16 spiral.run / dib / { exit_code = 0; result_length = 28112 }
In [ ]:
{ pwsh ../deps/spiral/apps/spiral/build.ps1 -fast 1 -SkipFsx 1 } | Invoke-Block
polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/apps/spiral spiral/apps/spiral/build.ps1 / ScriptDir: /home/runner/work/polyglot/polyglot/deps/spiral/apps/spiral / ResolvedScriptDir: /home/runner/work/polyglot/spiral/apps/spiral 00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral / hash: / code.Length: 1450455 polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target: / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral / ProjectName: spiral / Language: rs / Runtime: / root: /home/runner/work/polyglot/polyglot Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha) Thanks to the contributor! @irium Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target/Builder/spiral/spiral.fsproj... Project and references (14 source files) parsed in 3139ms Started Fable compilation... Fable compilation finished in 12953ms ./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs spiral/apps/spiral/build.ps1 / path: /home/runner/work/polyglot/polyglot/target/Builder/spiral/target/rs/spiral.rs warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:146:16 | 146 | if POOL.is_none() { | ^^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: `#[warn(static_mut_refs)]` on by default warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:151:13 | 151 | POOL.as_ref().unwrap() | ^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:170:16 | 170 | if LOCKS.is_none() { | ^^^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:174:13 | 174 | LOCKS.as_ref().unwrap() | ^^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives warning: `fable_library_rust` (lib) generated 4 warnings Compiling spiral v0.0.1 (/home/runner/work/polyglot/spiral/apps/spiral) Finished `release` profile [optimized] target(s) in 17.98s
In [ ]:
{ pwsh ../apps/parser/build.ps1 } | Invoke-Block
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "DibParser.dib"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ # DibParser (Polyglot) > > ── fsharp ────────────────────────────────────────────────────────────────────── > #r > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan > dard2.1/FSharp.Control.AsyncSeq.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. > 0/System.Reactive.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/ > netstandard2.0/System.Reactive.Linq.dll" > #r > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" > #r > @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP > arsec.dll" > #r > @"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP > arsecCS.dll" > > ── pwsh ──────────────────────────────────────────────────────────────────────── > ls ~/.nuget/packages/argu > > ── [ 230.85ms - stdout ] ─────────────────────────────────────────────────────── > │ 6.2.4 > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > #if !INTERACTIVE > open Lib > #endif > > ── fsharp ────────────────────────────────────────────────────────────────────── > open Common > open FParsec > open SpiralFileSystem.Operators > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## escapeCell (test) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let inline escapeCell input = > input > |> SpiralSm.split "\n" > |> Array.map (function > | line when line |> SpiralSm.starts_with "\\#!" || line |> > SpiralSm.starts_with "\\#r" -> > System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#") > | line -> line > ) > |> SpiralSm.concat "\n" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > $"a{nl}\\#!magic{nl}b{nl}" > |> escapeCell > |> _assertEqual ( > $"a{nl}#!magic{nl}b{nl}" > ) > > ── [ 45.26ms - stdout ] ──────────────────────────────────────────────────────── > │ "a > │ #!magic > │ b > │ " > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## magicMarker > > ── fsharp ────────────────────────────────────────────────────────────────────── > let magicMarker : Parser<string, unit> = pstring "#!" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "#!magic" > |> run magicMarker > |> _assertEqual ( > Success ("#!", (), Position ("", 2, 1, 3)) > ) > > ── [ 29.31ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: "#!" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "##!magic" > |> run magicMarker > |> _assertEqual ( > Failure ( > $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}", > ParserError ( > Position ("", 0, 1, 1), > (), > ErrorMessageList (ExpectedString "#!") > ), > () > ) > ) > > ── [ 27.58ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure: > │ Error in Ln: 1 Col: 1 > │ ##!magic > │ ^ > │ Expecting: '#!' > │ > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## magicCommand > > ── fsharp ────────────────────────────────────────────────────────────────────── > let magicCommand = > magicMarker > >>. manyTill anyChar newline > |>> (System.String.Concat >> SpiralSm.trim) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "#!magic > > a" > |> run magicCommand > |> _assertEqual ( > Success ("magic", (), Position ("", 8, 2, 1)) > ) > > ── [ 21.83ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: "magic" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > " #!magic > > a" > |> run magicCommand > |> _assertEqual ( > Failure ( > $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}", > ParserError ( > Position ("", 0, 1, 1), > (), > ErrorMessageList (ExpectedString "#!") > ), > () > ) > ) > > ── [ 22.86ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure: > │ Error in Ln: 1 Col: 1 > │ #!magic > │ ^ > │ Expecting: '#!' > │ > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## content > > ── fsharp ────────────────────────────────────────────────────────────────────── > let content = > (newline >>. magicMarker) <|> (eof >>. preturn "") > |> attempt > |> lookAhead > |> manyTill anyChar > |>> (System.String.Concat >> SpiralSm.trim) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "#!magic > > > a > > > " > |> run content > |> _assertEqual ( > Success ("#!magic > > > a", (), Position ("", 14, 7, 1)) > ) > > ── [ 17.20ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: "#!magic > │ > │ > │ a" > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## Output > > ── fsharp ────────────────────────────────────────────────────────────────────── > type Output = > | Fs > | Md > | Spi > | Spir > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## Magic > > ── fsharp ────────────────────────────────────────────────────────────────────── > type Magic = > | Fsharp > | Markdown > | Spiral of Output > | Magic of string > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## kernelOutputs > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline kernelOutputs magic = > match magic with > | Fsharp -> [[ Fs ]] > | Markdown -> [[ Md ]] > | Spiral output -> [[ output ]] > | _ -> [[]] > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## Block > > ── fsharp ────────────────────────────────────────────────────────────────────── > type Block = > { > magic : Magic > content : string > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## block > > ── fsharp ────────────────────────────────────────────────────────────────────── > let block = > pipe2 > magicCommand > content > (fun magic content -> > let magic, content = > match magic with > | "fsharp" -> Fsharp, content > | "markdown" -> Markdown, content > | "spiral" -> > let output = if content |> SpiralSm.contains "//// real\n" > then Spir else Spi > let content = > if output = Spi > then content > else > content > |> SpiralSm.replace "//// real\n\n" "" > |> SpiralSm.replace "//// real\n" "" > Spiral output, content > | magic -> magic |> Magic, content > { > magic = magic > content = content > }) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "#!magic > > > a > > > " > |> run block > |> _assertEqual ( > Success ( > { magic = Magic "magic"; content = "a" }, > (), > Position ("", 14, 7, 1) > ) > ) > > ── [ 27.96ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: { magic = Magic "magic" > │ content = "a" } > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## blocks > > ── fsharp ────────────────────────────────────────────────────────────────────── > let blocks = > skipMany newline > >>. sepEndBy block (skipMany1 newline) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > > "#!magic1 > > a > > \#!magic2 > > b > > " > |> escapeCell > |> run blocks > |> _assertEqual ( > Success ( > [[ > { magic = Magic "magic1"; content = "a" } > { magic = Magic "magic2"; content = "b" } > ]], > (), > Position ("", 26, 9, 1) > ) > ) > > ── [ 28.55ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: [{ magic = Magic "magic1" > │ content = "a" }; { magic = Magic "magic2" > │ content = "b" }] > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## formatBlock > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline formatBlock output (block : Block) = > match output, block with > | output, { magic = Markdown; content = content } -> > let markdownComment = > match output with > | Spi | Spir -> "/// " > | Fs -> "/// " > | _ -> "" > content > |> SpiralSm.split "\n" > |> Array.map (SpiralSm.trim_end [[||]]) > |> Array.filter (SpiralSm.ends_with " (test)" >> not) > |> Array.map (function > | "" -> markdownComment > | line -> System.Text.RegularExpressions.Regex.Replace (line, > "^\\s*", $"$&{markdownComment}") > ) > |> SpiralSm.concat "\n" > | Fs, { magic = Fsharp; content = content } -> > let trimmedContent = content |> SpiralSm.trim > if trimmedContent |> SpiralSm.contains "//// test\n" > || trimmedContent |> SpiralSm.contains "//// ignore\n" > then "" > else > content > |> SpiralSm.split "\n" > |> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with > "#r" >> not) > |> SpiralSm.concat "\n" > | (Spi | Spir), { magic = Spiral output'; content = content } when output' = > output -> > let trimmedContent = content |> SpiralSm.trim > if trimmedContent |> SpiralSm.contains "//// test\n" > || trimmedContent |> SpiralSm.contains "//// ignore\n" > then "" > else content > | _ -> "" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "#!markdown > > > a > > b > > c > > > \#!markdown > > > c > > > \#!fsharp > > > let a = 1" > |> escapeCell > |> run block > |> function > | Success (block, _, _) -> formatBlock Fs block > | Failure (msg, _, _) -> failwith msg > |> _assertEqual "/// a > /// > /// b > /// > /// c" > > ── [ 37.79ms - stdout ] ──────────────────────────────────────────────────────── > │ "/// a > │ /// > │ /// b > │ /// > │ /// c" > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## formatBlocks > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline formatBlocks output blocks = > blocks > |> List.map (fun block -> > block, formatBlock output block > ) > |> List.filter (snd >> (<>) "") > |> fun list -> > (list, (None, [[]])) > ||> List.foldBack (fun (block, content) (lastMagic, acc) -> > let lineBreak = > if block.magic = Markdown && lastMagic <> Some Markdown && > lastMagic <> None > then "" > else "\n" > Some block.magic, $"{content}{lineBreak}" :: acc > ) > |> snd > |> SpiralSm.concat "\n" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "#!markdown > > > a > > b > > > \#!markdown > > > c > > > \#!fsharp > > > let a = 1 > > \#!markdown > > d (test) > > \#!fsharp > > //// test > > let a = 2 > > \#!markdown > > e > > \#!fsharp > > let a = 3" > |> escapeCell > |> run blocks > |> function > | Success (blocks, _, _) -> formatBlocks Fs blocks > | Failure (msg, _, _) -> failwith msg > |> _assertEqual "/// a > /// > /// b > > /// c > let a = 1 > > /// e > let a = 3 > " > > ── [ 51.00ms - stdout ] ──────────────────────────────────────────────────────── > │ "/// a > │ /// > │ /// b > │ > │ /// c > │ let a = 1 > │ > │ /// e > │ let a = 3 > │ " > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## parse > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline parse output input = > match run blocks input with > | Success (blocks, _, _) -> > let blocks = > blocks > |> List.filter (fun block -> > block.magic |> kernelOutputs |> List.contains output || > block.magic = Markdown > ) > > match blocks with > | { magic = Markdown; content = content } :: _ > when output = Fs > && content |> SpiralSm.starts_with "# " > && content |> SpiralSm.ends_with ")" > -> > let inline indentBlock (block : Block) = > { block with > content = > block.content > |> SpiralSm.split "\n" > |> Array.fold > (fun (lines, isMultiline) line -> > let trimmedLine = line |> SpiralSm.trim > if trimmedLine = "" > then "" :: lines, isMultiline > else > let inline singleQuoteLine () = > trimmedLine |> Seq.sumBy ((=) '"' >> > System.Convert.ToInt32) = 1 > && trimmedLine |> SpiralSm.contains > @"'""'" |> not > && trimmedLine |> SpiralSm.ends_with "{" > |> not > && trimmedLine |> SpiralSm.ends_with > "{|" |> not > && trimmedLine |> SpiralSm.starts_with > "}" |> not > && trimmedLine |> SpiralSm.starts_with > "|}" |> not > > match isMultiline, trimmedLine |> > SpiralSm.split_string [[| $"{q}{q}{q}" |]] with > | false, [[| _; _ |]] -> > $" {line}" :: lines, true > > | true, [[| _; _ |]] -> > line :: lines, false > > | false, _ when singleQuoteLine () -> > $" {line}" :: lines, true > > | false, _ when line |> SpiralSm.starts_with > "#" && block.magic = Fsharp -> > line :: lines, false > > | false, _ -> > $" {line}" :: lines, false > > | true, _ when singleQuoteLine () && line |> > SpiralSm.starts_with " " -> > $" {line}" :: lines, false > > | true, _ when singleQuoteLine () -> > line :: lines, false > > | true, _ -> > line :: lines, true > ) > ([[]], false) > |> fst > |> List.rev > |> SpiralSm.concat "\n" > } > > let moduleName, namespaceName = > System.Text.RegularExpressions.Regex.Match (content, @"# (.*) > \((.*)\)$") > |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value > > let moduleBlock = > { > magic = Fsharp > content = > $"#if !INTERACTIVE > namespace {namespaceName} > #endif > > module {moduleName} =" > } > > blocks > |> List.indexed > |> List.fold > (fun blocks (index, block) -> > match index with > | 0 -> blocks > | 1 -> indentBlock block :: moduleBlock :: blocks > | _ -> indentBlock block :: blocks > ) > [[]] > |> List.rev > | _ -> blocks > |> Result.Ok > | Failure (errorMsg, _, _) -> Result.Error errorMsg > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let example1 = > $"""#!meta > > {{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name": > "fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}} > > \#!markdown > > # TestModule (TestNamespace) > > \#!fsharp > > \#!import file.dib > > \#!fsharp > > \#r "nuget:Expecto" > > \#!markdown > > ## ParserLibrary > > \#!fsharp > > open System > > \#!markdown > > ## x (test) > > \#!fsharp > > //// ignore > > let x = 1 > > \#!spiral > > //// test > > inl x = 1i32 > > \#!spiral > > //// real > > inl x = 2i32 > > \#!spiral > > inl x = 3i32 > > \#!markdown > > ### TextInput > > \#!fsharp > > let str1 = "abc > def" > > let str2 = > "abc\ > def" > > let str3 = > $"1{{ > 1 > }}1" > > let str4 = > $"1{{({{| > a = 1 > |}}).a}}1" > > let str5 = > "abc \ > def" > > let x = > match '"' with > | '"' -> true > | _ -> false > > let long1 = {q}{q}{q}a{q}{q}{q} > > let long2 = > {q}{q}{q} > a > {q}{q}{q} > > \#!fsharp > > type Position = > {{ > #if INTERACTIVE > line : string > #else > line : int > #endif > column : int > }}""" > |> escapeCell > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > example1 > |> parse Fs > |> Result.toOption > |> Option.get > |> (formatBlocks Fs) > |> _assertEqual $"""#if !INTERACTIVE > namespace TestNamespace > #endif > > module TestModule = > > /// ## ParserLibrary > open System > > /// ### TextInput > let str1 = "abc > def" > > let str2 = > "abc\ > def" > > let str3 = > $"1{{ > 1 > }}1" > > let str4 = > $"1{{({{| > a = 1 > |}}).a}}1" > > let str5 = > "abc \ > def" > > let x = > match '"' with > | '"' -> true > | _ -> false > > let long1 = {q}{q}{q}a{q}{q}{q} > > let long2 = > {q}{q}{q} > a > {q}{q}{q} > > type Position = > {{ > #if INTERACTIVE > line : string > #else > line : int > #endif > column : int > }} > """ > > ── [ 139.85ms - stdout ] ─────────────────────────────────────────────────────── > │ "#if !INTERACTIVE > │ namespace TestNamespace > │ #endif > │ > │ module TestModule = > │ > │ /// ## ParserLibrary > │ open System > │ > │ /// ### TextInput > │ let str1 = "abc > │ def" > │ > │ let str2 = > │ "abc\ > │ def" > │ > │ let str3 = > │ $"1{ > │ 1 > │ }1" > │ > │ let str4 = > │ $"1{({| > │ a = 1 > │ |}).a}1" > │ > │ let str5 = > │ "abc \ > │ def" > │ > │ let x = > │ match '"' with > │ | '"' -> true > │ | _ -> false > │ > │ let long1 = """a""" > │ > │ let long2 = > │ """ > │ a > │ """ > │ > │ type Position = > │ { > │ #if INTERACTIVE > │ line : string > │ #else > │ line : int > │ #endif > │ column : int > │ } > │ " > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > example1 > |> parse Md > |> Result.toOption > |> Option.get > |> (formatBlocks Md) > |> _assertEqual "# TestModule (TestNamespace) > > ## ParserLibrary > > ### TextInput > " > > ── [ 124.39ms - stdout ] ─────────────────────────────────────────────────────── > │ "# TestModule (TestNamespace) > │ > │ ## ParserLibrary > │ > │ ### TextInput > │ " > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > example1 > |> parse Spi > |> Result.toOption > |> Option.get > |> (formatBlocks Spi) > |> _assertEqual "/// # TestModule (TestNamespace) > > /// ## ParserLibrary > inl x = 3i32 > > /// ### TextInput > " > > ── [ 129.72ms - stdout ] ─────────────────────────────────────────────────────── > │ "/// # TestModule (TestNamespace) > │ > │ /// ## ParserLibrary > │ inl x = 3i32 > │ > │ /// ### TextInput > │ " > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > example1 > |> parse Spir > |> Result.toOption > |> Option.get > |> (formatBlocks Spir) > |> _assertEqual "/// # TestModule (TestNamespace) > > /// ## ParserLibrary > inl x = 2i32 > > /// ### TextInput > " > > ── [ 127.24ms - stdout ] ─────────────────────────────────────────────────────── > │ "/// # TestModule (TestNamespace) > │ > │ /// ## ParserLibrary > │ inl x = 2i32 > │ > │ /// ### TextInput > │ " > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## parseDibCode > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline parseDibCode output file = async { > trace Debug > (fun () -> "parseDibCode") > (fun () -> $"output: {output} / file: {file} / {_locals ()}") > let! input = file |> SpiralFileSystem.read_all_text_async > match parse output input with > | Result.Ok blocks -> return blocks |> formatBlocks output > | Result.Error msg -> return failwith msg > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## writeDibCode > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline writeDibCode output path = async { > trace Debug > (fun () -> "writeDibCode") > (fun () -> $"output: {output} / path: {path} / {_locals ()}") > let! result = parseDibCode output path > let pathDir = path |> System.IO.Path.GetDirectoryName > let fileNameWithoutExt = > match output, path |> System.IO.Path.GetFileNameWithoutExtension with > | Spir, fileNameWithoutExt -> $"{fileNameWithoutExt}_real" > | _, fileNameWithoutExt -> fileNameWithoutExt > let outputPath = pathDir </> $"{fileNameWithoutExt}.{output |> string |> > SpiralSm.to_lower}" > do! result |> SpiralFileSystem.write_all_text_async outputPath > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## Arguments > > ── fsharp ────────────────────────────────────────────────────────────────────── > [[<RequireQualifiedAccess>]] > type Arguments = > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]] > File of file : string * Output > > interface Argu.IArgParserTemplate with > member s.Usage = > match s with > | File _ -> nameof File > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () > > ── [ 65.80ms - return value ] ────────────────────────────────────────────────── > │ "USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> > │ > │ FILE: > │ > │ <file> <fs|md|spi|spir> > │ File > │ > │ OPTIONS: > │ > │ --help display this list of options. > │ " > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## main > > ── fsharp ────────────────────────────────────────────────────────────────────── > let main args = > let argsMap = args |> Runtime.parseArgsMap<Arguments> > > let files = > argsMap.[[nameof Arguments.File]] > |> List.map (function > | Arguments.File (path, output) -> path, output > ) > > files > |> List.map (fun (path, output) -> path |> writeDibCode output) > |> Async.Parallel > |> Async.Ignore > |> Async.runWithTimeout 30000 > |> function > | Some () -> 0 > | None -> 1 > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let args = > System.Environment.GetEnvironmentVariable "ARGS" > |> SpiralRuntime.split_args > |> Result.toArray > |> Array.collect id > > match args with > | [[||]] -> 0 > | args -> if main args = 0 then 0 else failwith "main failed" > > ── [ 133.94ms - return value ] ───────────────────────────────────────────────── > │ <div class="dni-plaintext"><pre>0 > │ </pre></div><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 134.68ms - stdout ] ─────────────────────────────────────────────────────── > │ 00:00:03 d #1 writeDibCode / output: Fs / path: > DibParser.dib > │ 00:00:03 d #2 parseDibCode / output: Fs / file: > DibParser.dib > │ 00:00:17 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 29860 } 00:00:17 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:17 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.ipynb to html 00:00:17 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:17 v #7 ! validate(nb) 00:00:18 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:18 v #9 ! return _pygments_highlight( 00:00:18 v #10 ! [NbConvertApp] Writing 377352 bytes to /home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.html 00:00:18 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 904 } 00:00:18 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 904 } 00:00:18 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:19 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:19 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:19 d #16 spiral.run / dib / { exit_code = 0; result_length = 30823 } 00:00:00 d #1 persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DibParser / hash: / code.Length: 10861 00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 "publish "/home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/parser/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/parser/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/DibParser" } } 00:00:00 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds 00:00:01 v #6 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #7 > Restoring /home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj 00:00:01 v #8 > Starting restore process. 00:00:01 v #9 > Total time taken: 0 milliseconds 00:00:02 v #10 > Restored /home/runner/work/polyglot/polyglot/target/Builder/DibParser/DibParser.fsproj (in 313 ms). 00:00:12 v #11 > DibParser -> /home/runner/work/polyglot/polyglot/target/Builder/DibParser/bin/Release/net9.0/linux-x64/DibParser.dll 00:00:12 v #12 > DibParser -> /home/runner/work/polyglot/polyglot/apps/parser/dist 00:00:12 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 705 } 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "JsonParser.dib"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ # JsonParser (Polyglot) > > ── fsharp ────────────────────────────────────────────────────────────────────── > open Common > open Parser > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## JsonParser > > ── fsharp ────────────────────────────────────────────────────────────────────── > (* > // -------------------------------- > JSON spec from http://www.json.org/ > // -------------------------------- > > The JSON spec is available at [[json.org]](http://www.json.org/). I'll paraphase > it here: > > * A `value` can be a `string` or a `number` or a `bool` or `null` or an `object` > or an `array`. > * These structures can be nested. > * A `string` is a sequence of zero or more Unicode characters, wrapped in double > quotes, using backslash escapes. > * A `number` is very much like a C or Java number, except that the octal and > hexadecimal formats are not used. > * A `boolean` is the literal `true` or `false` > * A `null` is the literal `null` > * An `object` is an unordered set of name/value pairs. > * An object begins with { (left brace) and ends with } (right brace). > * Each name is followed by : (colon) and the name/value pairs are separated by > , (comma). > * An `array` is an ordered collection of values. > * An array begins with [[ (left bracket) and ends with ]] (right bracket). > * Values are separated by , (comma). > * Whitespace can be inserted between any pair of tokens. > *) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let inline parserEqual (expected : ParseResult<'a>) (actual : ParseResult<'a * > Input>) = > match actual, expected with > | Success (_actual, _), Success _expected -> > printResult actual > _actual |> _assertEqual _expected > | Failure (l1, e1, p1), Failure (l2, e2, p2) when l1 = l2 && e1 = e2 && p1 = > p2 -> > printResult actual > | _ -> > printfn $"Actual: {actual}" > printfn $"Expected: {expected}" > failwith "Parse failed" > actual > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### JValue > > ── fsharp ────────────────────────────────────────────────────────────────────── > type JValue = > | JString of string > | JNumber of float > | JBool of bool > | JNull > | JObject of Map<string, JValue> > | JArray of JValue list > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jValue, jValueRef = createParserForwardedToRef<JValue> () > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jNull > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jNull = > pstring "null" > >>% JNull > <?> "null" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > jValueRef <| > choice > [[ > jNull > ]] > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jValue "null" > |> parserEqual (Success JNull) > > ── [ 160.79ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNull, { lines = [|"null"|]<br /> > position = { line = 0<br /> column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNull, { lines = [|"null"|]<br /> > position = { line = 0<br /> column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead><tr> > </tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>Item2</td> > <td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"null"|]<br /> position = { line = 0<br /> > column = 4 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ null > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 4 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 170.21ms - stdout ] ─────────────────────────────────────────────────────── > │ JNull > │ JNull > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNull "nulp" > |> parserEqual ( > Failure ( > "null", > "Unexpected 'p'", > { currentLine = "nulp"; line = 0; column = 3 } > ) > ) > > ── [ 51.76ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("null", "Unexpected > 'p'", { currentLine = "nulp"<br /> > line = 0<br /> column = 3 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"null" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected 'p'" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "nulp"<br /> line = 0<br /> column = 3 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"nulp" > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>3 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 53.12ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:3 Error parsing null > │ nulp > │ ^Unexpected 'p' > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jBool > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jBool = > let jtrue = > pstring "true" > >>% JBool true > let jfalse = > pstring "false" > >>% JBool false > > jtrue <|> jfalse > <?> "bool" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > jValueRef <| > choice > [[ > jNull > jBool > ]] > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jBool "true" > |> parserEqual (Success (JBool true)) > > ── [ 43.74ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JBool true, { lines = > [|"true"|]<br /> position = { line = 0<br /> > column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JBool true, { lines = [|"true"|]<br /> > position = { line = 0<br /> column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JBool > true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I > tem</td><td><div class="dni-plaintext"><pre>true > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"true"|]<br /> position = { line = 0<br /> > column = 4 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ true > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 4 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 45.56ms - stdout ] ──────────────────────────────────────────────────────── > │ JBool true > │ JBool true > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jBool "false" > |> parserEqual (Success (JBool false)) > > ── [ 30.84ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JBool false, { lines = > [|"false"|]<br /> position = { line = 0<br /> > column = 5 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JBool false, { lines = [|"false"|]<br /> > position = { line = 0<br /> column = 5 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JBool > false</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"false"|]<br /> position = { line = 0<br /> > column = 5 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ false > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 5 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>5 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 32.71ms - stdout ] ──────────────────────────────────────────────────────── > │ JBool false > │ JBool false > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jBool "truX" > |> parserEqual ( > Failure ( > "bool", > "Unexpected 't'", > { currentLine = "truX"; line = 0; column = 0 } > ) > ) > > ── [ 26.60ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("bool", "Unexpected > 't'", { currentLine = "truX"<br /> > line = 0<br /> column = 0 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"bool" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected 't'" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "truX"<br /> line = 0<br /> column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"truX" > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 31.59ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:0 Error parsing bool > │ truX > │ ^Unexpected 't' > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jUnescapedChar > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jUnescapedChar = > satisfy (fun ch -> ch <> '\\' && ch <> '\"') "char" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jUnescapedChar "a" > |> parserEqual (Success 'a') > > ── [ 42.16ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('a', { lines = [|"a"|]<br > /> position = { line = 0<br /> column > = 1 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(a, { lines = [|"a"|]<br /> position = { > line = 0<br /> column = 1 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>'a' > │ </pre></div></td></tr><tr><td>Item2</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"a"|]<br /> position = { line = 0<br /> column = 1 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ a > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 1 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>1 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 43.94ms - stdout ] ──────────────────────────────────────────────────────── > │ 'a' > │ 'a' > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jUnescapedChar "\\" > |> parserEqual ( > Failure ( > "char", > "Unexpected '\\'", > { currentLine = "\\"; line = 0; column = 0 } > ) > ) > > ── [ 33.08ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("char", "Unexpected > '\'", { currentLine = "\"<br /> > line = 0<br /> column = 0 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"char" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected '\'" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "\"<br /> line = 0<br /> column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"\" > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 34.43ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:0 Error parsing char > │ \ > │ ^Unexpected '\' > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jEscapedChar > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jEscapedChar = > [[ > ("\\\"",'\"') > ("\\\\",'\\') > ("\\/",'/') > ("\\b",'\b') > ("\\f",'\f') > ("\\n",'\n') > ("\\r",'\r') > ("\\t",'\t') > ]] > |> List.map (fun (toMatch, result) -> > pstring toMatch >>% result > ) > |> choice > <?> "escaped char" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jEscapedChar "\\\\" > |> parserEqual (Success '\\') > > ── [ 30.53ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\\', { lines = > [|"\\"|]<br /> position = { line = 0<br /> > column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(\, { lines = [|"\\"|]<br /> position = { > line = 0<br /> column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>'\\' > │ </pre></div></td></tr><tr><td>Item2</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"\\"|]<br /> position = { line = 0<br /> column = 2 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ \\ > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 2 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 32.73ms - stdout ] ──────────────────────────────────────────────────────── > │ '\\' > │ '\\' > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jEscapedChar "\\t" > |> parserEqual (Success '\t') > > ── [ 40.22ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\009', { lines = > [|"\t"|]<br /> position = { line = 0<br /> > column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>( , { lines = [|"\t"|]<br /> position = { > line = 0<br /> column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>'\009' > │ </pre></div></td></tr><tr><td>Item2</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"\t"|]<br /> position = { line = 0<br /> column = 2 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ \t > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 2 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 42.22ms - stdout ] ──────────────────────────────────────────────────────── > │ '\009' > │ '\009' > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jEscapedChar @"\\" > |> parserEqual (Success '\\') > > ── [ 28.29ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\\', { lines = > [|"\\"|]<br /> position = { line = 0<br /> > column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(\, { lines = [|"\\"|]<br /> position = { > line = 0<br /> column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>'\\' > │ </pre></div></td></tr><tr><td>Item2</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"\\"|]<br /> position = { line = 0<br /> column = 2 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ \\ > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 2 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 29.98ms - stdout ] ──────────────────────────────────────────────────────── > │ '\\' > │ '\\' > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jEscapedChar @"\n" > |> parserEqual (Success '\n') > > ── [ 27.55ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\010', { lines = [|"<br > />"|]<br /> position = { line = 0<br /> > column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(<br />, { lines = [|"<br />"|]<br /> > position = { line = 0<br /> column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>'\010' > │ </pre></div></td></tr><tr><td>Item2</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"<br />"|]<br /> position = { line = 0<br /> column = > 2 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ <br /> > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 2 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 29.28ms - stdout ] ──────────────────────────────────────────────────────── > │ '\010' > │ '\010' > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jEscapedChar "a" > |> parserEqual ( > Failure ( > "escaped char", > "Unexpected 'a'", > { currentLine = "a"; line = 0; column = 0 } > ) > ) > > ── [ 29.10ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("escaped char", "Unexpected > 'a'", { currentLine = "a"<br /> > line = 0<br /> column = 0 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"escaped char" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected 'a'" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "a"<br /> line = 0<br /> column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"a" > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 30.45ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:0 Error parsing escaped char > │ a > │ ^Unexpected 'a' > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jUnicodeChar > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jUnicodeChar = > let backslash = pchar '\\' > let uChar = pchar 'u' > let hexdigit = anyOf ([[ '0' .. '9' ]] @ [[ 'A' .. 'F' ]] @ [[ 'a' .. 'f' > ]]) > let fourHexDigits = hexdigit .>>. hexdigit .>>. hexdigit .>>. hexdigit > > let inline convertToChar (((h1, h2), h3), h4) = > let str = $"%c{h1}%c{h2}%c{h3}%c{h4}" > Int32.Parse (str, Globalization.NumberStyles.HexNumber) |> char > > backslash >>. uChar >>. fourHexDigits > |>> convertToChar > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jUnicodeChar "\\u263A" > |> parserEqual (Success '☺') > > ── [ 36.09ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('☺', { lines = > [|"\u263A"|]<br /> position = { line = 0<br /> > column = 6 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(☺, { lines = [|"\u263A"|]<br /> position > = { line = 0<br /> column = 6 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>'☺' > │ </pre></div></td></tr><tr><td>Item2</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"\u263A"|]<br /> position = { line = 0<br /> column = > 6 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ \u263A > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 6 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>6 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 37.74ms - stdout ] ──────────────────────────────────────────────────────── > │ '☺' > │ '☺' > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jString > > ── fsharp ────────────────────────────────────────────────────────────────────── > let quotedString = > let quote = pchar '\"' <?> "quote" > let jchar = jUnescapedChar <|> jEscapedChar <|> jUnicodeChar > > quote >>. manyChars jchar .>> quote > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jString = > quotedString > |>> JString > <?> "quoted string" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > jValueRef <| > choice > [[ > jNull > jBool > jString > ]] > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jString "\"\"" > |> parserEqual (Success (JString "")) > > ── [ 37.39ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "", { lines = > [|""""|]<br /> position = { line = > 0<br /> column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JString "", { lines = > [|""""|]<br /> position = { line = 0<br /> > column = 2 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JString > ""</code></span></summary><div><table><thead><tr></tr></thead><tbody>< > tr><td>Item</td><td><div class="dni-plaintext"><pre>"" > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|""""|]<br /> position = { line = 0<br /> > column = 2 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "" > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 2 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 39.30ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "" > │ JString "" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jString "\"a\"" > |> parserEqual (Success (JString "a")) > > ── [ 29.93ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "a", { lines = > [|""a""|]<br /> position = { line = > 0<br /> column = 3 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JString "a", { lines = > [|""a""|]<br /> position = { line = 0<br /> > column = 3 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JString > "a"</code></span></summary><div><table><thead><tr></tr></thead><tbody> > <tr><td>Item</td><td><div class="dni-plaintext"><pre>"a" > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|""a""|]<br /> position = { line = 0<br /> > column = 3 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "a" > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 3 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>3 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 31.79ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "a" > │ JString "a" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jString "\"ab\"" > |> parserEqual (Success (JString "ab")) > > ── [ 32.96ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "ab", { lines = > [|""ab""|]<br /> position = { line = > 0<br /> column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JString "ab", { lines = > [|""ab""|]<br /> position = { line = 0<br /> > column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JString > "ab"</code></span></summary><div><table><thead><tr></tr></thead><tbody > ><tr><td>Item</td><td><div class="dni-plaintext"><pre>"ab" > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|""ab""|]<br /> position = { line = 0<br /> > column = 4 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "ab" > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 4 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 34.94ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "ab" > │ JString "ab" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jString "\"ab\\tde\"" > |> parserEqual (Success (JString "ab\tde")) > > ── [ 30.30ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "ab de", { lines = > [|""ab\tde""|]<br /> position = { > line = 0<br /> column = 8 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JString "ab de", { lines = > [|""ab\tde""|]<br /> position = { line = 0<br /> > column = 8 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JString "ab > de"</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< > td>Item</td><td><div class="dni-plaintext"><pre>"ab de" > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|""ab\tde""|]<br /> position = { line = 0<br /> > column = 8 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "ab\tde" > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 8 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>8 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 32.39ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "ab de" > │ JString "ab de" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jString "\"ab\\u263Ade\"" > |> parserEqual (Success (JString "ab☺de")) > > ── [ 30.10ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "ab☺de", { lines = > [|""ab\u263Ade""|]<br /> position > = { line = 0<br /> column = 12 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JString "ab☺de", { lines = > [|""ab\u263Ade""|]<br /> position = { line = 0<br /> > column = 12 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JString > "ab☺de"</code></span></summary><div><table><thead><tr></tr></thead><tb > ody><tr><td>Item</td><td><div class="dni-plaintext"><pre>"ab☺de" > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|""ab\u263Ade""|]<br /> position = { line = 0<br > /> column = 12 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "ab\u263Ade" > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 12 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>12 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 31.99ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "ab☺de" > │ JString "ab☺de" > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jNumber > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jNumber = > let optSign = opt (pchar '-') > > let zero = pstring "0" > > let digitOneNine = > satisfy (fun ch -> Char.IsDigit ch && ch <> '0') "1-9" > > let digit = > satisfy Char.IsDigit "digit" > > let point = pchar '.' > > let e = pchar 'e' <|> pchar 'E' > > let optPlusMinus = opt (pchar '-' <|> pchar '+') > > let nonZeroInt = > digitOneNine .>>. manyChars digit > |>> fun (first, rest) -> string first + rest > > let intPart = zero <|> nonZeroInt > > let fractionPart = point >>. manyChars1 digit > > let exponentPart = e >>. optPlusMinus .>>. manyChars1 digit > > let inline (|>?) opt f = > match opt with > | None -> "" > | Some x -> f x > > let inline convertToJNumber (((optSign, intPart), fractionPart), expPart) = > let signStr = > optSign > |>? string > > let fractionPartStr = > fractionPart > |>? (fun digits -> "." + digits) > > let expPartStr = > expPart > |>? fun (optSign, digits) -> > let sign = optSign |>? string > "e" + sign + digits > > (signStr + intPart + fractionPartStr + expPartStr) > |> float > |> JNumber > > optSign .>>. intPart .>>. opt fractionPart .>>. opt exponentPart > |>> convertToJNumber > <?> "number" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > jValueRef <| > choice > [[ > jNull > jBool > jString > jNumber > ]] > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber "123" > |> parserEqual (Success (JNumber 123.0)) > > ── [ 52.25ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.0, { lines = > [|"123"|]<br /> position = { line = 0<br /> > column = 3 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 123.0, { lines = [|"123"|]<br /> > position = { line = 0<br /> column = 3 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"123"|]<br /> position = { line = 0<br /> > column = 3 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 123 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 3 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>3 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 54.01ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.0 > │ JNumber 123.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber "-123" > |> parserEqual (Success (JNumber -123.0)) > > ── [ 31.45ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber -123.0, { lines = > [|"-123"|]<br /> position = { line = 0<br /> > column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber -123.0, { lines = [|"-123"|]<br > /> position = { line = 0<br /> column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td > >Item</td><td><div class="dni-plaintext"><pre>-123.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"-123"|]<br /> position = { line = 0<br /> > column = 4 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ -123 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 4 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 33.25ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber -123.0 > │ JNumber -123.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber "123.4" > |> parserEqual (Success (JNumber 123.4)) > > ── [ 34.94ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.4, { lines = > [|"123.4"|]<br /> position = { line = 0<br /> > column = 5 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 123.4, { lines = [|"123.4"|]<br > /> position = { line = 0<br /> column = 5 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"123.4"|]<br /> position = { line = 0<br /> > column = 5 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 123.4 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 5 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>5 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 36.72ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.4 > │ JNumber 123.4 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber "-123." > |> parserEqual (Success (JNumber -123.0)) > > ── [ 30.51ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber -123.0, { lines = > [|"-123."|]<br /> position = { line = 0<br > /> column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber -123.0, { lines = [|"-123."|]<br > /> position = { line = 0<br /> column = 4 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td > >Item</td><td><div class="dni-plaintext"><pre>-123.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"-123."|]<br /> position = { line = 0<br /> > column = 4 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ -123. > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 4 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 32.25ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber -123.0 > │ JNumber -123.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber "00.1" > |> parserEqual (Success (JNumber 0.0)) > > ── [ 29.65ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 0.0, { lines = > [|"00.1"|]<br /> position = { line = 0<br /> > column = 1 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 0.0, { lines = [|"00.1"|]<br /> > position = { line = 0<br /> column = 1 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><div class="dni-plaintext"><pre>0.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"00.1"|]<br /> position = { line = 0<br /> > column = 1 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 00.1 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 0<br /> > column = 1 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>1 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 31.35ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 0.0 > │ JNumber 0.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let jNumber_ = jNumber .>> spaces1 > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "123" > |> parserEqual (Success (JNumber 123.0)) > > ── [ 42.86ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.0, { lines = > [|"123"|]<br /> position = { line = 1<br /> > column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 123.0, { lines = [|"123"|]<br /> > position = { line = 1<br /> column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"123"|]<br /> position = { line = 1<br /> > column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 123 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 44.57ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.0 > │ JNumber 123.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "-123" > |> parserEqual (Success (JNumber -123.0)) > > ── [ 31.00ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber -123.0, { lines = > [|"-123"|]<br /> position = { line = 1<br /> > column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber -123.0, { lines = [|"-123"|]<br > /> position = { line = 1<br /> column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td > >Item</td><td><div class="dni-plaintext"><pre>-123.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"-123"|]<br /> position = { line = 1<br /> > column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ -123 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 32.78ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber -123.0 > │ JNumber -123.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "-123." > |> parserEqual ( > Failure ( > "number andThen many1 whitespace", > "Unexpected '.'", > { currentLine = "-123."; line = 0; column = 4 } > ) > ) > > ── [ 27.77ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure<br /> ("number andThen many1 > whitespace", "Unexpected '.'", { currentLine = > "-123."<br /> > line = 0<br /> column = > 4 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"number andThen many1 > whitespace" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected '.'" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "-123."<br /> line = 0<br /> column = 4 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"-123." > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 29.15ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:4 Error parsing number andThen many1 whitespace > │ -123. > │ ^Unexpected '.' > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "123.4" > |> parserEqual (Success (JNumber 123.4)) > > ── [ 34.08ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.4, { lines = > [|"123.4"|]<br /> position = { line = 1<br /> > column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 123.4, { lines = [|"123.4"|]<br > /> position = { line = 1<br /> column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"123.4"|]<br /> position = { line = 1<br /> > column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 123.4 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 35.91ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.4 > │ JNumber 123.4 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "00.4" > |> parserEqual ( > Failure ( > "number andThen many1 whitespace", > "Unexpected '0'", > { currentLine = "00.4"; line = 0; column = 1 } > ) > ) > > ── [ 26.63ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure<br /> ("number andThen many1 > whitespace", "Unexpected '0'", { currentLine = > "00.4"<br /> > line = 0<br /> column = > 1 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"number andThen many1 > whitespace" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected '0'" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "00.4"<br /> line = 0<br /> column = 1 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"00.4" > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>1 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 27.92ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:1 Error parsing number andThen many1 whitespace > │ 00.4 > │ ^Unexpected '0' > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "123e4" > |> parserEqual (Success (JNumber 1230000.0)) > > ── [ 33.13ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 1230000.0, { lines = > [|"123e4"|]<br /> position = { line = > 1<br /> column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 1230000.0, { lines = > [|"123e4"|]<br /> position = { line = 1<br /> column = > 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 1230000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr> > <td>Item</td><td><div class="dni-plaintext"><pre>1230000.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"123e4"|]<br /> position = { line = 1<br /> > column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 123e4 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 38.18ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 1230000.0 > │ JNumber 1230000.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "123.4e5" > |> parserEqual (Success (JNumber 12340000.0)) > > ── [ 32.80ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 12340000.0, { lines = > [|"123.4e5"|]<br /> position = { line = > 1<br /> column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 12340000.0, { lines = > [|"123.4e5"|]<br /> position = { line = 1<br /> column > = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 12340000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr > ><td>Item</td><td><div class="dni-plaintext"><pre>12340000.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"123.4e5"|]<br /> position = { line = 1<br /> > column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 123.4e5 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 34.95ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 12340000.0 > │ JNumber 12340000.0 > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jNumber_ "123.4e-5" > |> parserEqual (Success (JNumber 0.001234)) > > ── [ 31.78ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 0.001234, { lines = > [|"123.4e-5"|]<br /> position = { line = > 1<br /> column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JNumber 0.001234, { lines = > [|"123.4e-5"|]<br /> position = { line = 1<br /> column > = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 0.001234</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< > td>Item</td><td><div class="dni-plaintext"><pre>0.001234 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"123.4e-5"|]<br /> position = { line = 1<br /> > column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ 123.4e-5 > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 33.43ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 0.001234 > │ JNumber 0.001234 > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jArray > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jArray = > let left = pchar '[[' .>> spaces > let right = pchar ']]' .>> spaces > let comma = pchar ',' .>> spaces > let value = jValue .>> spaces > > let values = sepBy value comma > > between left values right > |>> JArray > <?> "array" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > jValueRef <| > choice > [[ > jNull > jBool > jString > jNumber > jArray > ]] > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jArray "[[ 1, 2 ]]" > |> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]])) > > ── [ 66.66ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JArray [JNumber 1.0; JNumber 2.0], { lines > = [|"[ 1, 2 ]"|]<br /> > position = { line = 1<br /> > column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JArray [JNumber 1.0; JNumber 2.0], { lines = > [|"[ 1, 2 ]"|]<br /> position = { line = 1<br /> column > = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JArray [JNumber 1.0; JNumber > 2.0]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I > tem</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><t > body><tr><td>0</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><div class="dni-plaintext"><pre>1.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>1</td><t > d><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNumber > 2.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><div class="dni-plaintext"><pre>2.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </td></tr></tbody></table></div></details></td></tr><tr><td>Item2</td><td><detai > ls class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"[ 1, 2 ]"|]<br /> position = { line = 1<br /> column > = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ [ 1, 2 ] > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 68.77ms - stdout ] ──────────────────────────────────────────────────────── > │ JArray [JNumber 1.0; JNumber 2.0] > │ JArray [JNumber 1.0; JNumber 2.0] > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jArray "[[ 1, 2, ]]" > |> parserEqual ( > Failure ( > "array", > "Unexpected ','", > { currentLine = "[[ 1, 2, ]]"; line = 0; column = 6 } > ) > ) > > ── [ 32.51ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("array", "Unexpected > ','", { currentLine = "[ 1, 2, ]"<br /> > line = 0<br /> column = 6 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"array" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected ','" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "[ 1, 2, ]"<br /> line = 0<br /> column = 6 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"[ 1, 2, ]" > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>6 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 33.83ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:6 Error parsing array > │ [ 1, 2, ] > │ ^Unexpected ',' > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jObject > > ── fsharp ────────────────────────────────────────────────────────────────────── > let jObject = > let left = spaces >>. pchar '{' .>> spaces > let right = pchar '}' .>> spaces > let colon = pchar ':' .>> spaces > let comma = pchar ',' .>> spaces > let key = quotedString .>> spaces > let value = jValue .>> spaces > > let keyValue = (key .>> colon) .>>. value > let keyValues = sepBy keyValue comma > > between left keyValues right > |>> Map.ofList > |>> JObject > <?> "object" > > ── fsharp ────────────────────────────────────────────────────────────────────── > jValueRef <| > choice > [[ > jNull > jBool > jString > jNumber > jArray > jObject > ]] > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jObject """{ "a":1, "b" : 2 }""" > |> parserEqual ( > Success ( > JObject ( > Map.ofList [[ > "a", JNumber 1.0 > "b", JNumber 2.0 > ]] > ) > ) > ) > > ── [ 74.91ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject (map [("a", > JNumber 1.0); ("b", JNumber 2.0)]),<br /> { lines = [|"{ > "a":1, "b" : 2 }"|]<br /> position = { line = > 1<br /> column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JObject (map [("a", JNumber 1.0); > ("b", JNumber 2.0)]), { lines = [|"{ "a":1, > "b" : 2 }"|]<br /> position = { line = 1<br /> > column = 0 } > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JObject (map [("a", JNumber 1.0); > ("b", JNumber > 2.0)])</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td > >Item</td><td><table><thead><tr><th><i>key</i></th><th>value</th></tr></thead><t > body><tr><td><div class="dni-plaintext"><pre>"a" > │ </pre></div></td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>JNumber > 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><div class="dni-plaintext"><pre>1.0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td><div > class="dni-plaintext"><pre>"b" > │ > </pre></div>...</details></td></tr></tbody></table></td></tr></tbody></table></d > iv></details></td></tr><tr><td>Item2</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = > [|"{ "a":1, "b" : 2 }"|]<br /> position = { > line = 1<br /> column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ { "a":1, "b" : > 2 } ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 1<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>1 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 77.06ms - stdout ] ──────────────────────────────────────────────────────── > │ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)]) > │ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run jObject """{ "a":1, "b" : 2, }""" > |> parserEqual ( > Failure ( > "object", > "Unexpected ','", > { currentLine = """{ "a":1, "b" : 2, }"""; line = 0; column = 18 } > ) > ) > > ── [ 34.40ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("object", "Unexpected > ','", { currentLine = "{ "a":1, "b" : 2, > }"<br /> line = 0<br /> > column = 18 > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><div class="dni-plaintext"><pre>"object" > │ </pre></div></td></tr><tr><td>Item2</td><td><div > class="dni-plaintext"><pre>"Unexpected ','" > │ </pre></div></td></tr><tr><td>Item3</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ currentLine = > "{ "a":1, "b" : 2, }"<br /> line = 0<br /> > column = 18 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>curr > entLine</td><td><div class="dni-plaintext"><pre>"{ "a":1, > "b" : 2, }" > │ </pre></div></td></tr><tr><td>line</td><td><div > class="dni-plaintext"><pre>0 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>18 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 35.84ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:18 Error parsing object > │ { "a":1, "b" : 2, } > │ ^Unexpected ',' > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### jValue > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let example1 = """{ > "name" : "Scott", > "isMale" : true, > "bday" : {"year":2001, "month":12, "day":25 }, > "favouriteColors" : [["blue", "green"]], > "emptyArray" : [[]], > "emptyObject" : {} > }""" > run jValue example1 > |> parserEqual ( > Success ( > JObject ( > Map.ofList [[ > "name", JString "Scott" > "isMale", JBool true > "bday", JObject ( > Map.ofList [[ > "year", JNumber 2001.0 > "month", JNumber 12.0 > "day", JNumber 25.0 > ]] > ) > "favouriteColors", JArray [[ JString "blue"; JString "green" ]] > "emptyArray", JArray [[]] > "emptyObject", JObject Map.empty > ]] > ) > ) > ) > > ── [ 135.29ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject<br /> (map<br /> > [("bday",<br /> JObject<br /> (map<br /> > [("day", JNumber 25.0); ("month", JNumber 12.0);<br /> > ("year", JNumber 2001.0)])); ("emptyArray", JArray []);<br > /> ("emptyObject", JObject (map []));<br /> > ("favouriteColors", > ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JObject<br /> (map<br /> > [("bday",<br /> JObject<br /> (map<br /> > [("day", JNumber 25.0); ("month", JNumber 12.0);<br /> > ("year", JNumber 2001.0)])); ("emptyArray", JArray []);<br > /> ("emptyObject", JObject (map []));<br /> > ("favouriteColors", JArray [JString "blue"; JString > "gr...</code></span></summary><div><table><thead><tr></tr></thead><tbody><t > r><td>Item1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JObject<br /> (map<br /> [("bday",<br > /> JObject<br /> (map<br /> [("day", JNumber > 25.0); ("month", JNumber 12.0);<br /> ("year", > JNumber 2001.0)])); ("emptyArray", JArra...= 8<br /> > column = 0 } > ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>li > nes</td><td><div class="dni-plaintext"><pre>[ {, "name" : > "Scott",, "isMale" : true,, "bday" : > {"year":2001, "month":12, "day":25 },, > "favouriteColors" : ["blue", "green"],, > "emptyArray" : [],, "emptyObject" : {}, } > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 8<br /> > column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>8 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 137.36ms - stdout ] ─────────────────────────────────────────────────────── > │ JObject > │ (map > │ [("bday", > │ JObject > │ (map > │ [("day", JNumber 25.0); ("month", JNumber 12.0); > │ ("year", JNumber 2001.0)])); ("emptyArray", > JArray []); > │ ("emptyObject", JObject (map [])); > │ ("favouriteColors", JArray [JString "blue"; JString > "green"]); > │ ("isMale", JBool true); ("name", JString "Scott")]) > │ JObject > │ (map > │ [("bday", JObject (map [("day", JNumber 25.0); ("month", > JNumber 12.0); ("year", JNumber 2001.0)])); > │ ("emptyArray", JArray []); ("emptyObject", JObject (map > [])); > │ ("favouriteColors", JArray [JString "blue"; JString > "green"]); ("isMale", JBool true); ("name", JString "Scott")]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let example2 = """{"widget": { > "debug": "on", > "window": { > "title": "Sample Konfabulator Widget", > "name": "main_window", > "width": 500, > "height": 500 > }, > "image": { > "src": "Images/Sun.png", > "name": "sun1", > "hOffset": 250, > "vOffset": 250, > "alignment": "center" > }, > "text": { > "data": "Click Here", > "size": 36, > "style": "bold", > "name": "text1", > "hOffset": 250, > "vOffset": 100, > "alignment": "center", > "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" > } > }}""" > > run jValue example2 > |> parserEqual ( > Success ( > JObject ( > Map.ofList [[ > "widget", JObject ( > Map.ofList [[ > "debug", JString "on" > "window", JObject ( > Map.ofList [[ > "title", JString "Sample Konfabulator Widget" > "name", JString "main_window" > "width", JNumber 500.0 > "height", JNumber 500.0 > ]] > ) > "image", JObject ( > Map.ofList [[ > "src", JString "Images/Sun.png" > "name", JString "sun1" > "hOffset", JNumber 250.0 > "vOffset", JNumber 250.0 > "alignment", JString "center" > ]] > ) > "text", JObject ( > Map.ofList [[ > "data", JString "Click Here" > "size", JNumber 36.0 > "style", JString "bold" > "name", JString "text1" > "hOffset", JNumber 250.0 > "vOffset", JNumber 100.0 > "alignment", JString "center" > "onMouseUp", JString "sun1.opacity = > (sun1.opacity / 100) * 90;" > ]] > ) > ]] > ) > ]] > ) > ) > ) > > ── [ 250.15ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject<br /> (map<br /> > [("widget",<br /> JObject<br /> (map<br /> > [("debug", JString "on");<br /> > ("image",<br /> JObject<br /> > (map<br /> [("alignment", JString > "center");<br /> > ("hOffset"...</code></span></summary><div><table><thead><tr></tr></the > ad><tbody><tr><td>Item</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JObject<br /> (map<br /> > [("widget",<br /> JObject<br /> (map<br /> > [("debug", JString "on");<br /> > ("image",<br /> JObject<br /> (map<br /> > [("alignment", JString "center"); ("hOffset", > JNumber 250.0);<br /> ("name", JString > "sun1"...</code></span></summary><div><table><thead><tr></tr></thead>< > tbody><tr><td>Item1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JObject<br /> (map<br /> > [("widget",<br /> JObject<br /> (map<br /> > [("debug", JString "on");<br /> > ("image",<br /> JObject<br /> (... > "alignment": "center", },, "text": {, > "data": "Click Here",, "size": 36,, > "style": "bold",, "name": > "text1",, "hOffset": 250,, > "vOffset": 100,, "alignment": "center",, > "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;", > }, }} ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 26<br > /> column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>26 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 252.03ms - stdout ] ─────────────────────────────────────────────────────── > │ JObject > │ (map > │ [("widget", > │ JObject > │ (map > │ [("debug", JString "on"); > │ ("image", > │ JObject > │ (map > │ [("alignment", JString "center"); > ("hOffset", JNumber 250.0); > │ ("name", JString "sun1"); ("src", JString > "Images/Sun.png"); > │ ("vOffset", JNumber 250.0)])); > │ ("text", > │ JObject > │ (map > │ [("alignment", JString "center"); > │ ("data", JString "Click Here"); > ("hOffset", JNumber 250.0); > │ ("name", JString "text1"); > │ ("onMouseUp", > │ JString "sun1.opacity = (sun1.opacity / > 100) * 90;"); > │ ("size", JNumber 36.0); ("style", JString > "bold"); > │ ("vOffset", JNumber 100.0)])); > │ ("window", > │ JObject > │ (map > │ [("height", JNumber 500.0); ("name", > JString "main_window"); > │ ("title", JString "Sample Konfabulator > Widget"); > │ ("width", JNumber 500.0)]))]))]) > │ JObject > │ (map > │ [("widget", > │ JObject > │ (map > │ [("debug", JString "on"); > │ ("image", > │ JObject > │ (map > │ [("alignment", JString "center"); > ("hOffset", JNumber 250.0); ("name", JString "sun1"); > │ ("src", JString "Images/Sun.png"); > ("vOffset", JNumber 250.0)])); > │ ("text", > │ JObject > │ (map > │ [("alignment", JString "center"); ("data", > JString "Click Here"); ("hOffset", JNumber 250.0); > │ ("name", JString "text1"); ("onMouseUp", > JString "sun1.opacity = (sun1.opacity / 100) * 90;"); > │ ("size", JNumber 36.0); ("style", JString > "bold"); ("vOffset", JNumber 100.0)])); > │ ("window", > │ JObject > │ (map > │ [("height", JNumber 500.0); ("name", > JString "main_window"); > │ ("title", JString "Sample Konfabulator > Widget"); ("width", JNumber 500.0)]))]))]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let example3 = """{ > "string": "Hello, \"World\"!", > "escapedString": "This string contains \\/\\\\\\b\\f\\n\\r\\t\\\"\\'", > "number": 42, > "scientificNumber": 3.14e-10, > "boolean": true, > "nullValue": null, > "array": [[1, 2, 3, 4, 5]], > "unicodeString1": "프리마", > "unicodeString2": "\u0048\u0065\u006C\u006C\u006F, > \u0022\u0057\u006F\u0072\u006C\u0064\u0022!", > "specialCharacters": "!@#$%^&*()", > "emptyArray": [[]], > "emptyObject": {}, > "nestedArrays": [[[[1, 2, 3]], [[4, 5, 6]]]], > "object": { > "nestedString": "Nested Value", > "nestedNumber": 3.14, > "nestedBoolean": false, > "nestedNull": null, > "nestedArray": [["a", "b", "c"]], > "nestedObject": { > "nestedProperty": "Nested Object Value" > } > }, > "nestedObjects": [[ > {"name": "Alice", "age": 25}, > {"name": "Bob", "age": 30} > ]] > }""" > run jValue example3 > |> parserEqual ( > Success ( > JObject ( > Map.ofList [[ > "string", JString @"Hello, ""World""!" > "escapedString", JString @"This string contains > \/\\\b\f\n\r\t\""\'" > "number", JNumber 42.0 > "scientificNumber", JNumber 3.14e-10 > "boolean", JBool true > "nullValue", JNull > "array", JArray [[ > JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber > 5.0 > ]] > "unicodeString1", JString "프리마" > "unicodeString2", JString @"Hello, ""World""!" > "specialCharacters", JString "!@#$%^&*()" > "emptyArray", JArray [[]] > "emptyObject", JObject Map.empty > "nestedArrays", JArray [[ > JArray [[ JNumber 1.0; JNumber 2.0; JNumber 3.0 ]] > JArray [[ JNumber 4.0; JNumber 5.0; JNumber 6.0 ]] > ]] > "object", JObject ( > Map.ofList [[ > "nestedString", JString "Nested Value" > "nestedNumber", JNumber 3.14 > "nestedBoolean", JBool false > "nestedNull", JNull > "nestedArray", JArray [[JString "a"; JString "b"; > JString "c"]] > "nestedObject", JObject ( > Map.ofList [[ > "nestedProperty", JString "Nested Object Value" > ]] > ) > ]] > ) > "nestedObjects", JArray [[ > JObject (Map.ofList [[ "name", JString "Alice"; "age", JNumber > 25.0 ]]) > JObject (Map.ofList [[ "name", JString "Bob"; "age", JNumber > 30.0 ]]) > ]] > ]] > ) > ) > ) > > ── [ 348.36ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject<br /> (map<br /> > [("array",<br /> JArray<br /> [JNumber 1.0; > JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 5.0]);<br /> > ("boolean", JBool true); ("emptyArray", JArray []);<br /> > ("emptyObject", JObject (map []));<br /> > ("escapedString", JString "This > s...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I > tem</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>(JObject<br /> (map<br /> > [("array",<br /> JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; > JNumber 4.0; JNumber 5.0]);<br /> ("boolean", JBool true); > ("emptyArray", JArray []);<br /> ("emptyObject", > JObject (map []));<br /> ("escapedString", JString "This > string contains \/\\\b\f<br />\r\t\"\'");<br /> > ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JObject<br /> (map<br /> > [("array",<br /> JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; > JNumber 4.0; JNumber 5.0]);<br /> ("boolean", JBool true); > ("emptyArray", JArray []);<br /> ("emptyObject", > JObject (map []));<br /> ("es...quot;,, "nestedNumber": > 3.14,, "nestedBoolean": false,, "nestedNull": null,, > "nestedArray": ["a", "b", "c"],, > "nestedObject": {, "nestedProperty": "Nested > Object Value", }, },, "nestedObjects": [, > {"name": "Alice", "age": 25},, > {"name": "Bob", "age": 30}, ], } > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 29<br > /> column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > </td><td><div class="dni-plaintext"><pre>29 > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> > </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta > ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> > > ── [ 350.41ms - stdout ] ─────────────────────────────────────────────────────── > │ JObject > │ (map > │ [("array", > │ JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber > 4.0; JNumber 5.0]); > │ ("boolean", JBool true); ("emptyArray", JArray []); > │ ("emptyObject", JObject (map [])); > │ ("escapedString", JString "This string contains > \/\\\b\f\n\r\t\"\'"); > │ ("nestedArrays", > │ JArray > │ [JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0]; > │ JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]); > │ ("nestedObjects", > │ JArray > │ [JObject (map [("age", JNumber 25.0); ("name", > JString "Alice")]); > │ JObject (map [("age", JNumber 30.0); ("name", > JString "Bob")])]); > │ ("nullValue", JNull); ("number", JNumber 42.0); ...]) > │ JObject > │ (map > │ [("array", JArray [JNumber 1.0; JNumber 2.0; JNumber > 3.0; JNumber 4.0; JNumber 5.0]); ("boolean", JBool true); > │ ("emptyArray", JArray []); ("emptyObject", JObject (map > [])); > │ ("escapedString", JString "This string contains > \/\\\b\f\n\r\t\"\'"); > │ ("nestedArrays", > │ JArray [JArray [JNumber 1.0; JNumber 2.0; JNumber > 3.0]; JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]); > │ ("nestedObjects", > │ JArray > │ [JObject (map [("age", JNumber 25.0); ("name", > JString "Alice")]); > │ JObject (map [("age", JNumber 30.0); ("name", > JString "Bob")])]); ("nullValue", JNull); > │ ("number", JNumber 42.0); ...]) > │ > │ 00:00:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 154933 } 00:00:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:19 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.ipynb to html 00:00:19 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:19 v #7 ! validate(nb) 00:00:19 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:19 v #9 ! return _pygments_highlight( 00:00:20 v #10 ! [NbConvertApp] Writing 500494 bytes to /home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.html 00:00:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 906 } 00:00:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 906 } 00:00:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:20 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:20 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:20 d #16 spiral.run / dib / { exit_code = 0; result_length = 155898 } 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Parser.dib"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ # Parser (Polyglot) > > ── fsharp ────────────────────────────────────────────────────────────────────── > open Common > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### TextInput > > ── fsharp ────────────────────────────────────────────────────────────────────── > type Position = > { > line : int > column : int > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let initialPos = { line = 0; column = 0 } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline incrCol (pos : Position) = > { pos with column = pos.column + 1 } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline incrLine pos = > { line = pos.line + 1; column = 0 } > > ── fsharp ────────────────────────────────────────────────────────────────────── > type InputState = > { > lines : string[[]] > position : Position > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline fromStr str = > { > lines = > if str |> String.IsNullOrEmpty > then [[||]] > else str |> SpiralSm.split_string [[| "\r\n"; "\n" |]] > position = initialPos > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > fromStr "" |> _assertEqual { > lines = [[||]] > position = { line = 0; column = 0 } > } > > ── [ 39.69ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [||] > │ position = { line = 0 > │ column = 0 } } > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > fromStr "Hello \n World" |> _assertEqual { > lines = [[| "Hello "; " World" |]] > position = { line = 0; column = 0 } > } > > ── [ 17.07ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [|"Hello "; " World"|] > │ position = { line = 0 > │ column = 0 } } > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline currentLine inputState = > let linePos = inputState.position.line > if linePos < inputState.lines.Length > then inputState.lines.[[linePos]] > else "end of file" > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline nextChar input = > let linePos = input.position.line > let colPos = input.position.column > > if linePos >= input.lines.Length > then input, None > else > let currentLine = currentLine input > if colPos < currentLine.Length then > let char = currentLine.[[colPos]] > let newPos = incrCol input.position > let newState = { input with position = newPos } > newState, Some char > else > let char = '\n' > let newPos = incrLine input.position > let newState = { input with position = newPos } > newState, Some char > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let newInput, charOpt = fromStr "Hello World" |> nextChar > > newInput |> _assertEqual { > lines = [[| "Hello World" |]] > position = { line = 0; column = 1 } > } > charOpt |> _assertEqual (Some 'H') > > ── [ 38.51ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [|"Hello World"|] > │ position = { line = 0 > │ column = 1 } } > │ > │ Some 'H' > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let newInput, charOpt = fromStr "Hello\n\nWorld" |> nextChar > > newInput |> _assertEqual { > lines = [[| "Hello"; ""; "World" |]] > position = { line = 0; column = 1 } > } > charOpt |> _assertEqual (Some 'H') > > ── [ 26.23ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [|"Hello"; ""; "World"|] > │ position = { line = 0 > │ column = 1 } } > │ > │ Some 'H' > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### Parser > > ── fsharp ────────────────────────────────────────────────────────────────────── > type Input = InputState > type ParserLabel = string > type ParserError = string > > type ParserPosition = > { > currentLine : string > line : int > column : int > } > > type ParseResult<'a> = > | Success of 'a > | Failure of ParserLabel * ParserError * ParserPosition > > type Parser<'a> = > { > label : ParserLabel > parseFn : Input -> ParseResult<'a * Input> > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline printResult result = > match result with > | Success (value, input) -> > printfn $"%A{value}" > | Failure (label, error, parserPos) -> > let errorLine = parserPos.currentLine > let colPos = parserPos.column > let linePos = parserPos.line > let failureCaret = $"{' ' |> string |> String.replicate colPos}^{error}" > printfn $"Line:%i{linePos} Col:%i{colPos} Error parsing > %s{label}\n%s{errorLine}\n%s{failureCaret}" > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline runOnInput parser input = > parser.parseFn input > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline run parser inputStr = > runOnInput parser (fromStr inputStr) > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline parserPositionFromInputState (inputState : Input) = > { > currentLine = currentLine inputState > line = inputState.position.line > column = inputState.position.column > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline getLabel parser = > parser.label > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline setLabel parser newLabel = > { > label = newLabel > parseFn = fun input -> > match parser.parseFn input with > | Success s -> Success s > | Failure (oldLabel, err, pos) -> Failure (newLabel, err, pos) > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let (<?>) = setLabel > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline satisfy predicate label = > { > label = label > parseFn = fun input -> > let remainingInput, charOpt = nextChar input > match charOpt with > | None -> > let err = "No more input" > let pos = parserPositionFromInputState input > Failure (label, err, pos) > | Some first -> > if predicate first > then Success (first, remainingInput) > else > let err = $"Unexpected '%c{first}'" > let pos = parserPositionFromInputState input > Failure (label, err, pos) > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = satisfy (fun c -> c = 'H') "H" > runOnInput parser input |> _assertEqual ( > Success ( > 'H', > { > lines = [[| "Hello" |]] > position = { line = 0; column = 1 } > } > ) > ) > > ── [ 30.38ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('H', { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 1 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "World" > let parser = satisfy (fun c -> c = 'H') "H" > runOnInput parser input |> _assertEqual ( > Failure ( > "H", > "Unexpected 'W'", > { > currentLine = "World" > line = 0 > column = 0 > } > ) > ) > > ── [ 27.00ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("H", "Unexpected 'W'", { currentLine = "World" > │ line = 0 > │ column = 0 }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline bindP f p = > { > label = "unknown" > parseFn = fun input -> > match runOnInput p input with > | Failure (label, err, pos) -> Failure (label, err, pos) > | Success (value1, remainingInput) -> runOnInput (f value1) > remainingInput > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline (>>=) p f = bindP f p > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e" > runOnInput parser2 input |> _assertEqual ( > Success ( > 'e', > { > lines = [[| "Hello" |]] > position = { line = 0; column = 2 } > } > ) > ) > > ── [ 44.70ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('e', { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "World" > let parser = satisfy (fun c -> c = 'W') "W" > let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e" > runOnInput parser2 input |> _assertEqual ( > Failure ( > "e", > "Unexpected 'o'", > { > currentLine = "World" > line = 0 > column = 1 > } > ) > ) > > ── [ 37.29ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("e", "Unexpected 'o'", { currentLine = "World" > │ line = 0 > │ column = 1 }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline returnP x = > { > label = $"%A{x}" > parseFn = fun input -> Success (x, input) > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = returnP "Hello" > runOnInput parser input |> _assertEqual ( > Success ( > "Hello", > { > lines = [[| "Hello" |]] > position = { line = 0; column = 0 } > } > ) > ) > > ── [ 24.67ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("Hello", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 0 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline mapP f = > bindP (f >> returnP) > > ── fsharp ────────────────────────────────────────────────────────────────────── > let (<!>) = mapP > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline (|>>) x f = f <!> x > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = parser |>> string > runOnInput parser2 input |> _assertEqual ( > Success ( > "H", > { > lines = [[| "Hello" |]] > position = { line = 0; column = 1 } > } > ) > ) > > ── [ 31.46ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("H", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 1 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline applyP fP xP = > fP >>= > fun f -> > xP >>= > fun x -> > returnP (f x) > > ── fsharp ────────────────────────────────────────────────────────────────────── > let (<*>) = applyP > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline lift2 f xP yP = > returnP f <*> xP <*> yP > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = satisfy (fun c -> c = 'e') "e" > let parser3 = lift2 (fun c1 c2 -> string c1 + string c2) parser parser2 > runOnInput parser3 input |> _assertEqual ( > Success ( > "He", > { > lines = [[| "Hello" |]] > position = { line = 0; column = 2 } > } > ) > ) > > ── [ 48.08ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("He", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline andThen p1 p2 = > p1 >>= > fun p1Result -> > p2 >>= > fun p2Result -> > returnP (p1Result, p2Result) > <?> $"{getLabel p1} andThen {getLabel p2}" > > ── fsharp ────────────────────────────────────────────────────────────────────── > let (.>>.) = andThen > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = satisfy (fun c -> c = 'e') "e" > let parser3 = parser .>>. parser2 > runOnInput parser3 input |> _assertEqual ( > Success ( > ('H', 'e'), > { > lines = [[| "Hello" |]] > position = { line = 0; column = 2 } > } > ) > ) > > ── [ 37.35ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (('H', 'e'), { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline orElse p1 p2 = > { > label = $"{getLabel p1} orElse {getLabel p2}" > parseFn = fun input -> > match runOnInput p1 input with > | Success _ as result -> result > | Failure _ -> runOnInput p2 input > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > let (<|>) = orElse > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = satisfy (fun c -> c = 'h') "h" > let parser3 = parser <|> parser2 > runOnInput parser3 input |> _assertEqual ( > Success ( > 'h', > { > lines = [[| "hello" |]] > position = { line = 0; column = 1 } > } > ) > ) > > ── [ 47.71ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('h', { lines = [|"hello"|] > │ position = { line = 0 > │ column = 1 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline choice listOfParsers = > listOfParsers |> List.reduce (<|>) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = satisfy (fun c -> c = 'h') "h" > let parser3 = choice [[ parser; parser2 ]] > runOnInput parser3 input |> _assertEqual ( > Success ( > 'h', > { > lines = [[| "hello" |]] > position = { line = 0; column = 1 } > } > ) > ) > > ── [ 33.88ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('h', { lines = [|"hello"|] > │ position = { line = 0 > │ column = 1 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let rec sequence parserList = > match parserList with > | [[]] -> returnP [[]] > | head :: tail -> (lift2 cons) head (sequence tail) > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = satisfy (fun c -> c = 'e') "e" > let parser3 = sequence [[ parser; parser2 ]] > runOnInput parser3 input |> _assertEqual ( > Success ( > [[ 'H'; 'e' ]], > { > lines = [[| "Hello" |]] > position = { line = 0; column = 2 } > } > ) > ) > > ── [ 44.99ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (['H'; 'e'], { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let rec parseZeroOrMore parser input = > match runOnInput parser input with > | Failure (_, _, _) -> > [[]], input > | Success (firstValue, inputAfterFirstParse) -> > let subsequentValues, remainingInput = parseZeroOrMore parser > inputAfterFirstParse > firstValue :: subsequentValues, remainingInput > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline many parser = > { > label = $"many {getLabel parser}" > parseFn = fun input -> Success (parseZeroOrMore parser input) > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = many parser > runOnInput parser2 input |> _assertEqual ( > Success ( > [[]], > { > lines = [[| "hello" |]] > position = { line = 0; column = 0 } > } > ) > ) > > ── [ 28.08ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ([], { lines = [|"hello"|] > │ position = { line = 0 > │ column = 0 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline many1 p = > p >>= > fun head -> > many p >>= > fun tail -> > returnP (head :: tail) > <?> $"many1 {getLabel p}" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = many1 parser > runOnInput parser2 input |> _assertEqual ( > Failure ( > "many1 H", > "Unexpected 'h'", > { > currentLine = "hello" > line = 0 > column = 0 > } > ) > ) > > ── [ 43.36ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("many1 H", "Unexpected 'h'", { currentLine = "hello" > │ line = 0 > │ column = 0 }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline opt p = > let some = p |>> Some > let none = returnP None > (some <|> none) > <?> $"opt {getLabel p}" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "hello" > let parser = satisfy (fun c -> c = 'H') "H" > let parser2 = opt parser > runOnInput parser2 input |> _assertEqual ( > Success ( > None, > { > lines = [[| "hello" |]] > position = { line = 0; column = 0 } > } > ) > ) > > ── [ 33.60ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (None, { lines = [|"hello"|] > │ position = { line = 0 > │ column = 0 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline (.>>) p1 p2 = > p1 .>>. p2 > |> mapP fst > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline (>>.) p1 p2 = > p1 .>>. p2 > |> mapP snd > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline between p1 p2 p3 = > p1 >>. p2 .>> p3 > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "[[Hello]]" > let parser = > between > (satisfy (fun c -> c = '[[') "[[") > (many (satisfy (fun c -> [[ 'a' .. 'z' ]] @ [[ 'A' .. 'Z' ]] |> > List.contains c) "letter")) > (satisfy (fun c -> c = ']]') "]]") > runOnInput parser input |> _assertEqual ( > Success ( > [[ 'H'; 'e'; 'l'; 'l'; 'o' ]], > { > lines = [[| "[[Hello]]" |]] > position = { line = 0; column = 7 } > } > ) > ) > > ── [ 113.22ms - stdout ] ─────────────────────────────────────────────────────── > │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|"[Hello]"|] > │ position = { line = 0 > │ column = 7 > } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline sepBy1 p sep = > let sepThenP = sep >>. p > p .>>. many sepThenP > |>> fun (p, pList) -> p :: pList > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline sepBy p sep = > sepBy1 p sep <|> returnP [[]] > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello,World" > let parser = sepBy (many (satisfy (fun c -> c <> ',') "not comma")) (satisfy > (fun c -> c = ',') "comma") > runOnInput parser input |> _assertEqual ( > Success ( > [[ [[ 'H'; 'e'; 'l'; 'l'; 'o' ]]; [[ 'W'; 'o'; 'r'; 'l'; 'd'; '\n' ]] > ]], > { > lines = [[| "Hello,World" |]] > position = { line = 1; column = 0 } > } > ) > ) > > ── [ 73.65ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ([['H'; 'e'; 'l'; 'l'; 'o']; ['W'; 'o'; 'r'; 'l'; > 'd'; '\010']], { lines = [|"Hello,World"|] > │ > position = { line = 1 > │ > > column = 0 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline pchar charToMatch = > satisfy ((=) charToMatch) $"%c{charToMatch}" > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline anyOf listOfChars = > listOfChars > |> List.map pchar > |> choice > <?> $"anyOf %A{listOfChars}" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = anyOf [[ 'H'; 'e'; 'l'; 'o' ]] |> many > runOnInput parser input |> _assertEqual ( > Success ( > [[ 'H'; 'e'; 'l'; 'l'; 'o' ]], > { > lines = [[| "Hello" |]] > position = { line = 0; column = 5 } > } > ) > ) > > ── [ 35.83ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 5 > } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline charListToStr charList = > charList |> List.toArray |> String > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline manyChars cp = > many cp > |>> charListToStr > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline manyChars1 cp = > many1 cp > |>> charListToStr > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = manyChars1 (anyOf [[ 'H'; 'e'; 'l'; 'o' ]]) > runOnInput parser input |> _assertEqual ( > Success ( > "Hello", > { > lines = [[| "Hello" |]] > position = { line = 0; column = 5 } > } > ) > ) > > ── [ 64.89ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("Hello", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 5 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline pstring str = > str > |> List.ofSeq > |> List.map pchar > |> sequence > |> mapP charListToStr > <?> str > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = pstring "Hello" > runOnInput parser input |> _assertEqual ( > Success ( > "Hello", > { > lines = [[| "Hello" |]] > position = { line = 0; column = 5 } > } > ) > ) > > ── [ 50.20ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("Hello", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 5 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let whitespaceChar = > satisfy Char.IsWhiteSpace "whitespace" > > ── fsharp ────────────────────────────────────────────────────────────────────── > let spaces = many whitespaceChar > > ── fsharp ────────────────────────────────────────────────────────────────────── > let spaces1 = many1 whitespaceChar > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr " Hello" > let parser = spaces1 .>>. pstring "Hello" > runOnInput parser input |> _assertEqual ( > Success ( > ([[ ' '; ' ' ]], "Hello"), > { > lines = [[| " Hello" |]] > position = { line = 0; column = 7 } > } > ) > ) > > ── [ 49.30ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (([' '; ' '], "Hello"), { lines = [|" Hello"|] > │ position = { line = 0 > │ column = 7 } > }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let digitChar = > satisfy Char.IsDigit "digit" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let input = fromStr "Hello" > let parser = digitChar > runOnInput parser input |> _assertEqual ( > Failure ( > "digit", > "Unexpected 'H'", > { > currentLine = "Hello" > line = 0 > column = 0 > } > ) > ) > > ── [ 18.02ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("digit", "Unexpected 'H'", { currentLine = "Hello" > │ line = 0 > │ column = 0 }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let pint = > let inline resultToInt (sign, digits) = > let i = int digits > match sign with > | Some ch -> -i > | None -> i > > let digits = manyChars1 digitChar > > opt (pchar '-') .>>. digits > |> mapP resultToInt > <?> "integer" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run pint "-123" > |> _assertEqual ( > Success ( > -123, > { > lines = [[| "-123" |]] > position = { line = 0; column = 4 } > } > ) > ) > > ── [ 24.94ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (-123, { lines = [|"-123"|] > │ position = { line = 0 > │ column = 4 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let pfloat = > let inline resultToFloat (((sign, digits1), point), digits2) = > let fl = float $"{digits1}.{digits2}" > match sign with > | Some ch -> -fl > | None -> fl > > let digits = manyChars1 digitChar > > opt (pchar '-') .>>. digits .>>. pchar '.' .>>. digits > |> mapP resultToFloat > <?> "float" > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > run pfloat "-123.45" > |> _assertEqual ( > Success ( > -123.45, > { > lines = [[| "-123.45" |]] > position = { line = 0; column = 7 } > } > ) > ) > > ── [ 39.08ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (-123.45, { lines = [|"-123.45"|] > │ position = { line = 0 > │ column = 7 } }) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline createParserForwardedToRef<'a> () = > let mutable parserRef : Parser<'a> = > { > label = "unknown" > parseFn = fun _ -> failwith "unfixed forwarded parser" > } > > let wrapperParser = > { parserRef with > parseFn = fun input -> runOnInput parserRef input > } > > wrapperParser, (fun v -> parserRef <- v) > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline (>>%) p x = > p > |>> fun _ -> x 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 33524 } 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:16 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.ipynb to html 00:00:16 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:16 v #7 ! validate(nb) 00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:16 v #9 ! return _pygments_highlight( 00:00:17 v #10 ! [NbConvertApp] Writing 413727 bytes to /home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.html 00:00:17 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 898 } 00:00:17 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 898 } 00:00:17 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 34481 } 00:00:00 d #1 writeDibCode / output: Fs / path: Parser.dib 00:00:00 d #1 writeDibCode / output: Fs / path: JsonParser.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Parser.dib 00:00:00 d #3 parseDibCode / output: Fs / file: JsonParser.dib
In [ ]:
{ pwsh ../apps/spiral/build.ps1 } | Invoke-Block
00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Supervisor.dib", "--retries", "3"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ # Supervisor (Polyglot) > > ── fsharp ────────────────────────────────────────────────────────────────────── > #r > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan > dard2.1/FSharp.Control.AsyncSeq.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. > 0/System.Reactive.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/ > netstandard2.0/System.Reactive.Linq.dll" > #r > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com > mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli > ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0 > /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0 > /lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/ > 7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll" > #r > @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha > rp.Json.dll" > > ── fsharp ────────────────────────────────────────────────────────────────────── > #if !INTERACTIVE > open Lib > #endif > > ── fsharp ────────────────────────────────────────────────────────────────────── > open Common > open SpiralFileSystem.Operators > open Microsoft.AspNetCore.SignalR.Client > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### sendJson > > ── fsharp ────────────────────────────────────────────────────────────────────── > let sendJson (port : int) (json : string) = async { > let host = "127.0.0.1" > let! portOpen = SpiralNetworking.test_port_open host port > if portOpen then > try > let connection = > HubConnectionBuilder().WithUrl($"http://{host}:{port}").Build() > do! connection.StartAsync () |> Async.AwaitTask > let! result = connection.InvokeAsync<string> ("ClientToServerMsg", > json) |> Async.AwaitTask > do! connection.StopAsync () |> Async.AwaitTask > trace Verbose (fun () -> $"Supervisor.sendJson / port: {port} / > json: {json |> SpiralSm.ellipsis_end 200} / result: {result |> Option.ofObj |> > Option.map (SpiralSm.ellipsis_end 200)}") _locals > return Some result > with ex -> > trace Critical (fun () -> $"Supervisor.sendJson / port: {port} / > json: {json |> SpiralSm.ellipsis_end 200} / ex: {ex |> > SpiralSm.format_exception}") _locals > return None > else > trace Debug (fun () -> $"Supervisor.sendJson / port: {port} / error: > port not open") _locals > return None > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### sendObj > > ── fsharp ────────────────────────────────────────────────────────────────────── > let sendObj port obj = > obj > |> System.Text.Json.JsonSerializer.Serialize > |> sendJson port > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### VSCPos > > ── fsharp ────────────────────────────────────────────────────────────────────── > type VSCPos = {| line : int; character : int |} > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### VSCRange > > ── fsharp ────────────────────────────────────────────────────────────────────── > type VSCRange = VSCPos * VSCPos > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### RString > > ── fsharp ────────────────────────────────────────────────────────────────────── > type RString = VSCRange * string > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### TracedError > > ── fsharp ────────────────────────────────────────────────────────────────────── > type TracedError = {| trace : string list; message : string |} > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### ClientErrorsRes > > ── fsharp ────────────────────────────────────────────────────────────────────── > type ClientErrorsRes = > | FatalError of string > | TracedError of TracedError > | PackageErrors of {| uri : string; errors : RString list |} > | TokenizerErrors of {| uri : string; errors : RString list |} > | ParserErrors of {| uri : string; errors : RString list |} > | TypeErrors of {| uri : string; errors : RString list |} > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### workspaceRoot > > ── fsharp ────────────────────────────────────────────────────────────────────── > let workspaceRoot = SpiralFileSystem.get_workspace_root () > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### awaitCompiler > > ── fsharp ────────────────────────────────────────────────────────────────────── > let awaitCompiler port cancellationToken = async { > let host = "127.0.0.1" > let struct (ct, disposable) = cancellationToken |> > SpiralThreading.new_disposable_token > let! ct = ct |> SpiralAsync.merge_cancellation_token_with_default_async > > let compiler = MailboxProcessor.Start (fun inbox -> async { > let! availablePort = SpiralNetworking.get_available_port (Some 180) host > port > if availablePort <> port then > inbox.Post (port, false) > else > let compilerPath = > workspaceRoot </> "deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release" > |> System.IO.Path.GetFullPath > > let dllPath = compilerPath </> "Spiral.dll" > > let! exitCode, result = > SpiralRuntime.execution_options (fun x -> > { x with > l0 = $@"dotnet ""{dllPath}"" --port {availablePort} > --default-int i32 --default-float f64" > l1 = Some ct > l3 = Some (fun struct (_, line, _) -> async { > if line |> SpiralSm.contains > $"System.IO.IOException: Failed to bind to address http://{host}:{port}: address > already in use." then > inbox.Post (port, false) > > if line |> SpiralSm.contains $"Server bound to: > http://localhost:{availablePort}" then > let rec loop retry = async { > do! > SpiralNetworking.wait_for_port_access > (Some 100) true host availablePort > |> Async.runWithTimeoutAsync 500 > |> Async.Ignore > > let _locals () = $"port: {availablePort} / > retry: {retry} / {_locals ()}" > try > let pingObj = {| Ping = true |} > let! pingResult = pingObj |> sendObj > availablePort > trace Verbose (fun () -> > $"Supervisor.awaitCompiler / Ping / result: '%A{pingResult}'") _locals > > match pingResult with > | Some _ -> inbox.Post (availablePort, > true) > | None -> do! loop (retry + 1) > with ex -> > trace Verbose (fun () -> > $"Supervisor.awaitCompiler / Ping / ex: {ex |> SpiralSm.format_exception}") > _locals > do! loop (retry + 1) > } > do! loop 1 > }) > l6 = Some workspaceRoot > } > ) > |> SpiralRuntime.execute_with_options_async > > trace Debug (fun () -> $"Supervisor.awaitCompiler / exitCode: > {exitCode} / result: {result}") _locals > disposable.Dispose () > }, ct) > > let! serverPort, managed = compiler.Receive () > > let connection = > HubConnectionBuilder().WithUrl($"http://{host}:{serverPort}").Build () > do! connection.StartAsync () |> Async.AwaitTask > > let event = Event<_> () > let disposable' = connection.On<string> ("ServerToClientMsg", event.Trigger) > let stream = > FSharp.Control.AsyncSeq.unfoldAsync > (fun () -> async { > let! msg = event.Publish |> Async.AwaitEvent > return Some (msg |> > FSharp.Json.Json.deserialize<ClientErrorsRes>, ()) > }) > () > > let disposable' = > new_disposable (fun () -> > async { > disposable'.Dispose () > do! connection.StopAsync () |> Async.AwaitTask > disposable.Dispose () > if managed > then do! > SpiralNetworking.wait_for_port_access (Some 100) false host > serverPort > |> Async.runWithTimeoutAsync 1500 > |> Async.Ignore > } > |> Async.RunSynchronously > ) > > return > serverPort, > stream, > ct, > disposable' > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### getFilePathFromUri > > ── fsharp ────────────────────────────────────────────────────────────────────── > let getFilePathFromUri uri = > match System.Uri.TryCreate (uri, System.UriKind.Absolute) with > | true, uri -> uri.AbsolutePath |> System.IO.Path.GetFullPath > | _ -> failwith "invalid uri" > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### getCompilerPort > > ── fsharp ────────────────────────────────────────────────────────────────────── > let getCompilerPort () = > 13805 > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### serialize_obj > > ── fsharp ────────────────────────────────────────────────────────────────────── > let serializeObj obj = > try > obj > |> FSharp.Json.Json.serialize > |> SpiralSm.replace "\\\\" "\\" > |> SpiralSm.replace "\\r\\n" "\n" > |> SpiralSm.replace "\\n" "\n" > with ex -> > trace Critical (fun () -> "Supervisor.serialize_obj / obj: %A{obj}") > _locals > "" > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### Backend > > ── fsharp ────────────────────────────────────────────────────────────────────── > type Backend = > | Fsharp > | Cuda > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### buildFile > > ── fsharp ────────────────────────────────────────────────────────────────────── > let buildFile backend timeout port cancellationToken path = > let rec loop retry = async { > let fullPath = path |> System.IO.Path.GetFullPath |> > SpiralFileSystem.normalize_path > let fileDir = fullPath |> System.IO.Path.GetDirectoryName > let fileName = fullPath |> System.IO.Path.GetFileNameWithoutExtension > let! code = fullPath |> SpiralFileSystem.read_all_text_async > > let stream, disposable = fileDir |> FileSystem.watchDirectory (fun _ -> > true) > use _ = disposable > > let struct (token, disposable) = SpiralThreading.new_disposable_token > cancellationToken > use _ = disposable > > let port = port |> Option.defaultWith getCompilerPort > let! serverPort, errors, ct, disposable = awaitCompiler port (Some > token) > use _ = disposable > > let outputFileName = > match backend with > | Fsharp -> $"{fileName}.fsx" > | Cuda -> $"{fileName}.py" > > let outputContentSeq = > stream > |> FSharp.Control.AsyncSeq.chooseAsync (function > | _, (FileSystem.FileSystemChange.Changed (path, Some text)) > when (path |> System.IO.Path.GetFileName) = outputFileName > -> > // fileDir </> path |> > SpiralFileSystem.read_all_text_retry_async > text |> Some |> Async.init > | _ -> None |> Async.init > ) > |> FSharp.Control.AsyncSeq.map (fun content -> > Some (content |> SpiralSm.replace "\r\n" "\n"), None > ) > > let printErrorData (data : {| uri : string; errors : RString list |}) = > let fileName = data.uri |> System.IO.Path.GetFileName > let errors = > data.errors > |> List.map snd > |> SpiralSm.concat "\n" > $"{fileName}:\n{errors}" > > let errorsSeq = > errors > |> FSharp.Control.AsyncSeq.choose (fun error -> > match error with > | FatalError message -> > Some (message, error) > | TracedError data -> > Some (data.message, error) > | PackageErrors data when data.errors |> List.isEmpty |> not -> > Some (data |> printErrorData, error) > | TokenizerErrors data when data.errors |> List.isEmpty |> not > -> > Some (data |> printErrorData, error) > | ParserErrors data when data.errors |> List.isEmpty |> not -> > Some (data |> printErrorData, error) > | TypeErrors data when data.errors |> List.isEmpty |> not -> > Some (data |> printErrorData, error) > | _ -> None > ) > |> FSharp.Control.AsyncSeq.map (fun (message, error) -> > None, Some (message, error) > ) > > let timerSeq = > 500 > |> FSharp.Control.AsyncSeq.intervalMs > |> FSharp.Control.AsyncSeq.map (fun _ -> None, None) > > let outputSeq = > [[ outputContentSeq; errorsSeq; timerSeq ]] > |> FSharp.Control.AsyncSeq.mergeAll > > let! outputChild = > ((None, [[]], 0), outputSeq) > ||> FSharp.Control.AsyncSeq.scan ( > fun (outputContentResult, errors, typeErrorCount) > (outputContent, error) -> > trace Debug (fun () -> $"Supervisor.buildFile / > AsyncSeq.scan / path: {path} / errors: {errors |> serializeObj} / > outputContentResult: {outputContentResult} / typeErrorCount: {typeErrorCount} / > retry: {retry} / error: {error} / outputContent:\n{outputContent |> > Option.defaultValue System.String.Empty |> SpiralSm.ellipsis_end 1500}") _locals > match outputContent, error with > | Some outputContent, None -> Some outputContent, errors, > typeErrorCount > | None, Some (_, FatalError "File main has a type error > somewhere in its path.") -> > outputContentResult, errors, typeErrorCount + 1 > | None, Some error -> outputContentResult, error :: errors, > typeErrorCount > | None, None when typeErrorCount >= 1 -> > outputContentResult, errors, typeErrorCount + 1 > | _ -> outputContentResult, errors, typeErrorCount > ) > |> FSharp.Control.AsyncSeq.takeWhileInclusive (fun (outputContent, > errors, typeErrorCount) -> > trace Debug (fun () -> $"Supervisor.buildFile / > takeWhileInclusive / path: {path} / errors: {errors |> serializeObj} / > typeErrorCount: {typeErrorCount} / retry: {retry} / > outputContent:\n{outputContent |> Option.defaultValue System.String.Empty |> > SpiralSm.ellipsis_end 1500}") _locals > #if INTERACTIVE > let errorWait = 2 > #else > let errorWait = 2 > #endif > match outputContent, errors with > | None, [[]] when typeErrorCount > errorWait -> false > | None, [[]] -> true > | _ -> false > ) > |> FSharp.Control.AsyncSeq.tryLast > |> Async.withCancellationToken ct > |> Async.catch > |> Async.runWithTimeoutAsync timeout > |> Async.StartChild > > // do! Async.Sleep 60 > > let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> > SpiralFileSystem.new_file_uri > > let fileOpenObj = {| FileOpen = {| uri = fullPathUri; spiText = code |} > |} > let! _fileOpenResult = fileOpenObj |> sendObj serverPort > > // do! Async.Sleep 60 > > let backendId = > match backend with > | Fsharp -> "Fsharp" > | Cuda -> "Python + Cuda" > let buildFileObj = {| BuildFile = {| uri = fullPathUri; backend = > backendId |} |} > let! _buildFileResult = buildFileObj |> sendObj serverPort > > let! result, typeErrorCount = > outputChild > |> Async.map (function > | Some (Ok (Some (outputCode, errors, typeErrorCount))) -> > (outputCode, errors |> List.distinct |> List.rev), > typeErrorCount > | Some (Error ex) -> > trace Critical (fun () -> $"Supervisor.buildFile / error: > {ex |> SpiralSm.format_exception} / retry: {retry}") _locals > (None, [[]]), 0 > | _ -> (None, [[]]), 0 > ) > > match result with > | None, _ when typeErrorCount > 0 && retry = 0 -> > return! loop (retry + 1) > | _ -> > if fileDir |> SpiralSm.starts_with (workspaceRoot </> "target") then > let fileDirUri = fileDir |> SpiralFileSystem.normalize_path |> > SpiralFileSystem.new_file_uri > let fileDeleteObj = {| FileDelete = {| uris = [[| fileDirUri |]] > |} |} > let! _fileDeleteResult = fileDeleteObj |> sendObj serverPort > () > > let outputPath = fileDir </> outputFileName > return outputPath, result > } > loop 0 > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### SpiralInput > > ── fsharp ────────────────────────────────────────────────────────────────────── > type SpiralInput = > | Spi of string * string option > | Spir of string > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### persistCode > > ── fsharp ────────────────────────────────────────────────────────────────────── > let persistCode (input: {| backend : Backend option; input: SpiralInput; > packages: string [[]] |}) = async { > let targetDir = workspaceRoot </> "target/spiral_Eval" > > let packagesDir = targetDir </> "packages" > > let hashHex = $"%A{input.backend}%A{input.input}" |> SpiralCrypto.hash_text > > let packageDir = packagesDir </> hashHex > packageDir |> System.IO.Directory.CreateDirectory |> ignore > > let moduleName = "main" > > let spirModule, spiModule = > match input.input with > | Spi (_spi, Some _spir) -> true, true > | Spi (_spi, None) -> false, true > | Spir _spir -> true, false > |> fun (spir, spi) -> > (if spir then $"{moduleName}_real*-" else ""), > if spi then moduleName else "" > > let libLinkTargetPath = workspaceRoot </> "../spiral/lib/spiral" > let libLinkPath = packageDir </> "spiral" > > let packagesModule = > input.packages > |> Array.map (fun package -> > let path = workspaceRoot </> package > let packageName = path |> System.IO.Path.GetFileName > let libLinkPath = packageDir </> packageName > libLinkPath |> SpiralFileSystem.link_directory path > $"{packageName}-" > ) > |> String.concat "\n " > > let packageDir' = > if input.packages |> Array.isEmpty > then workspaceRoot </> "../spiral/lib" > else > libLinkPath |> SpiralFileSystem.link_directory libLinkTargetPath > packageDir > > let spiprojPath = packageDir </> "package.spiproj" > let spiprojCode = > $"""packageDir: {packageDir'} > packages: > |core- > spiral- > {packagesModule} > modules: > {spirModule} > {spiModule} > """ > do! spiprojCode |> SpiralFileSystem.write_all_text_exists spiprojPath > > let spirPath = packageDir </> $"{moduleName}_real.spir" > let spiPath = packageDir </> $"{moduleName}.spi" > > let spirCode, spiCode = > match input.input with > | Spi (spi, Some spir) -> Some spir, Some spi > | Spi (spi, None) -> None, Some spi > | Spir spir -> Some spir, None > > match spirCode with > | Some spir -> do! spir |> SpiralFileSystem.write_all_text_exists spirPath > | None -> () > match spiCode with > | Some spi -> do! spi |> SpiralFileSystem.write_all_text_exists spiPath > | None -> () > > let spiralPath = > match input.input with > | Spi _ -> spiPath > | Spir _ -> spirPath > match input.backend with > | None -> return spiralPath, None > | Some backend -> > let outputFileName = > let fileName = > match input.input with > | Spi _ -> moduleName > | Spir _ -> $"{moduleName}_real" > match backend with > | Fsharp -> $"{fileName}.fsx" > | Cuda -> $"{fileName}.py" > let outputPath = packageDir </> outputFileName > if outputPath |> System.IO.File.Exists |> not > then return spiralPath, None > else > let! oldCode = spiralPath |> SpiralFileSystem.read_all_text_async > if oldCode <> (spiCode |> Option.defaultValue (spirCode |> > Option.defaultValue "")) > then return spiralPath, None > else > let! outputCode = outputPath |> > SpiralFileSystem.read_all_text_async > return spiralPath, Some (outputPath, outputCode |> > SpiralSm.replace "\r\n" "\n") > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### buildCode > > ── fsharp ────────────────────────────────────────────────────────────────────── > let buildCode backend packages isCache timeout cancellationToken input = async { > let! mainPath, outputCache = > persistCode {| input = input; backend = Some backend; packages = > packages |} > match outputCache with > | Some (outputPath, outputCode) when isCache -> return mainPath, > (outputPath, Some outputCode), [[]] > | _ -> > let! outputPath, (outputCode, errors) = mainPath |> buildFile backend > timeout None cancellationToken > return mainPath, (outputPath, outputCode), errors > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """inl app () = > console.write_line "text" > 1i32 > > inl main () = > app > |> dyn > |> ignore > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 15000 None > |> Async.runWithTimeout 15000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > Some """let rec closure1 () () : unit = > let v0 : (string -> unit) = System.Console.WriteLine > let v1 : string = "text" > v0 v1 > and closure0 () () : int32 = > let v0 : unit = () > let v1 : (unit -> unit) = closure1() > let v2 : unit = (fun () -> v1 (); v0) () > 1 > let v0 : (unit -> int32) = closure0() > () > """, > [[]] > ) > ) > > ── [ 4.21s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:08 v #1 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:06 d #1 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:09 v #2 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:06 v #2 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:06 v #3 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:06 v #4 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:09 v #3 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #4 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #5 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #6 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #7 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #8 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #9 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #10 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #11 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #12 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #13 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #14 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #15 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #16 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #17 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #18 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #19 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #20 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #21 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #22 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #23 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #24 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #25 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #26 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #27 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #28 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #29 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:07 v #5 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:09 v #30 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #31 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #32 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:09 v #33 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:04 v #1 Supervisor.sendJson / port: 13805 / json: > {"Ping":true} / result: > │ 00:00:04 v #2 Supervisor.awaitCompiler / Ping / result: > 'Some null' / port: 13805 / retry: 1 > │ 00:00:07 v #6 > Server bound to: http://localhost:13805 > │ 00:00:04 d #3 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:04 d #4 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:04 d #5 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:04 v #6 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl app () =\n console.write_line \u0022text\u0022\n > 1i32\n\ninl main > ...et/spiral_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc6 > 0aebd08a0d6/main.spi"}} / result: > │ 00:00:04 v #7 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b > 9dc60aebd08a0d6/main.spi"}} / result: > │ 00:00:04 d #8 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:04 d #9 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:05 d #10 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:05 d #11 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:05 d #12 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:05 d #13 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:06 d #14 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:06 d #15 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:06 d #16 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:06 d #17 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:07 d #18 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ let rec closure1 () () : unit = > │ let v0 : (string -> unit) = System.Console.WriteLine > │ let v1 : string = "text" > │ v0 v1 > │ and closure0 () () : int32 = > │ let v0 : unit = () > │ let v1 : (unit -> unit) = closure1() > │ let v2 : unit = (fun () -> v1 (); v0) () > │ 1 > │ let v0 : (unit -> int32) = closure0() > │ () > │ > │ 00:00:07 d #19 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/22ccd04317d5605c > 65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ let rec closure1 () () : unit = > │ let v0 : (string -> unit) = System.Console.WriteLine > │ let v1 : string = "text" > │ v0 v1 > │ and closure0 () () : int32 = > │ let v0 : unit = () > │ let v1 : (unit -> unit) = closure1() > │ let v2 : unit = (fun () -> v1 (); v0) () > │ 1 > │ let v0 : (unit -> int32) = closure0() > │ () > │ > │ 00:00:07 v #20 Supervisor.sendJson / port: 13805 / json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d6" > ]}} / result: > │ 00:00:12 v #34 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:07 d #21 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some > │ (Some > │ "let rec closure1 () () : unit = > │ let v0 : (string -> unit) = System.Console.WriteLine > │ let v1 : string = "text" > │ v0 v1 > │ and closure0 () () : int32 = > │ let v0 : unit = () > │ let v1 : (unit -> unit) = closure1() > │ let v2 : unit = (fun () -> v1 (); v0) () > │ 1 > │ let v0 : (unit -> int32) = closure0() > │ () > │ ", > │ []) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > "" > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > None, > [[ "Cannot find `main` in file main." ]] > ) > ) > > ── [ 3.61s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:12 v #35 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:10 d #7 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:13 v #36 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:10 v #8 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:10 v #9 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:13 v #37 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:10 v #10 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:13 v #38 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #39 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #40 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #41 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #42 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #43 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #44 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #45 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #46 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #47 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #48 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #49 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #50 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #51 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #52 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #53 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #54 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #55 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #56 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #57 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #58 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #59 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:10 v #11 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:13 v #60 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #61 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #62 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:13 v #63 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:08 v #22 Supervisor.sendJson / port: 13805 / json: > {"Ping":true} / result: > │ 00:00:08 v #23 Supervisor.awaitCompiler / Ping / result: > 'Some null' / port: 13805 / retry: 1 > │ 00:00:11 v #12 > Server bound to: http://localhost:13805 > │ 00:00:08 d #24 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:08 d #25 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:08 d #26 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:08 v #27 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"","uri":"file:///home/runner/work/polyglot/polyglot/targ > et/spiral_Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4 > d28170aa/main.spi"}} / result: > │ 00:00:08 v #28 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb3 > 3db55c4d28170aa/main.spi"}} / result: > │ 00:00:08 d #29 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:08 d #30 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:09 d #31 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:09 d #32 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:09 d #33 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:09 d #34 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:10 d #35 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:10 d #36 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:10 d #37 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:10 d #38 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:11 d #39 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: Some((Cannot find > `main` in file main., FatalError "Cannot find `main` in file main.")) / > outputContent: > │ > │ 00:00:11 d #40 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/a65342ccc7da0da9 > 67b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.spi / errors: [ > │ [ > │ "Cannot find `main` in file main.", > │ { > │ "FatalError": "Cannot find `main` in file main." > │ } > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:11 v #41 Supervisor.sendJson / port: 13805 / json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa" > ]}} / result: > │ 00:00:16 v #64 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:11 d #42 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["Cannot find `main` in file main."]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """inl main () = > 1i32 / 0i32 > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > None, > [[ "An attempt to divide by zero has been detected at compile time." ]] > ) > ) > > ── [ 3.33s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:16 v #65 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:14 d #13 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:16 v #66 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:14 v #14 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:14 v #15 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:14 v #16 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:16 v #67 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #68 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #69 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #70 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #71 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #72 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #73 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #74 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #75 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #76 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #77 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #78 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #79 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #80 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #81 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #82 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #83 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #84 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #85 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #86 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #87 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #88 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #89 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #90 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #91 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #92 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:14 v #17 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:16 v #93 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #94 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:16 v #95 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:11 v #43 Supervisor.sendJson / port: 13805 / json: > {"Ping":true} / result: > │ 00:00:11 v #44 Supervisor.awaitCompiler / Ping / result: > 'Some null' / port: 13805 / retry: 1 > │ 00:00:14 v #18 > Server bound to: http://localhost:13805 > │ 00:00:11 d #45 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:11 d #46 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:11 d #47 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:11 v #48 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl main () =\n 1i32 / > 0i32\n","uri":"file:///home/runner/work/polyglot/p...et/spiral_Eval/packages/fef > 9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi"}} / > result: > │ 00:00:11 v #49 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4 > f27f88d2a5cdfb2/main.spi"}} / result: > │ 00:00:12 d #50 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:12 d #51 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:12 d #52 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:12 d #53 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:13 d #54 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:13 d #55 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:13 d #56 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:13 d #57 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:14 d #58 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:14 d #59 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:14 d #60 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: Some((An attempt > to divide by zero has been detected at compile time., TracedError > │ { message = "An attempt to divide by zero has been detected > at compile time." > │ trace = > │ ["Error trace on line: 1, column: 10 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi. > │ inl main () = > │ ^ > │ "; > │ "Error trace on line: 2, column: 5 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi. > │ 1i32 / 0i32 > │ ^ > │ "] })) / outputContent: > │ > │ 00:00:14 d #61 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi / errors: [ > │ [ > │ "An attempt to divide by zero has been detected at > compile time.", > │ { > │ "TracedError": { > │ "message": "An attempt to divide by zero has been > detected at compile time.", > │ "trace": [ > │ "Error trace on line: 1, column: 10 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi. > │ inl main () = > │ ^ > │ ", > │ "Error trace on line: 2, column: 5 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/fef9812d9b06b75b > 1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi. > │ 1i32 / 0i32 > │ ^ > │ " > │ ] > │ } > │ } > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:14 v #62 Supervisor.sendJson / port: 13805 / json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/fef9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2" > ]}} / result: > │ 00:00:19 v #96 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:14 d #63 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["An attempt to divide by zero has been detected > at compile time."]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """inl main () = > 1 + "" > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > None, > [[ > "main.spi: > Constraint satisfaction error. > Got: string > Fails to satisfy: number" > ]] > ) > ) > > ── [ 3.06s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:19 v #97 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:17 d #19 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:19 v #98 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:19 v #99 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:17 v #20 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:17 v #21 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:17 v #22 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:20 v #100 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #101 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #102 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #103 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #104 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #105 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #106 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #107 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #108 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #109 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #110 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #111 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #112 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #113 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #114 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #115 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #116 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #117 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #118 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #119 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #120 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #121 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:17 v #23 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:20 v #122 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #123 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #124 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:15 v #64 Supervisor.sendJson / port: 13805 / json: > {"Ping":true} / result: > │ 00:00:15 v #65 Supervisor.awaitCompiler / Ping / result: > 'Some null' / port: 13805 / retry: 1 > │ 00:00:18 v #24 > Server bound to: http://localhost:13805 > │ 00:00:15 d #66 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:15 d #67 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:15 d #68 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:15 v #69 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl main () =\n 1 \u002B > \u0022\u0022\n","uri":"file:///home/runner/work/...et/spiral_Eval/packages/c030f > 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"}} / > result: > │ 00:00:15 v #70 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e365519 > 9e42df713504aa0/main.spi"}} / result: > │ 00:00:15 d #71 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:15 d #72 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:16 d #73 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:16 d #74 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:16 d #75 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:16 d #76 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:17 d #77 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:17 d #78 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:17 d #79 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: Some((File main > has a type error somewhere in its path., FatalError "File main has a type error > somewhere in its path.")) / outputContent: > │ > │ 00:00:17 d #80 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 1 / retry: 0 / outputContent: > │ > │ 00:00:17 d #81 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 1 / retry: 0 / error: Some((main.spi: > │ Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number, TypeErrors > │ { errors = > │ [(({ character = 8 > │ line = 1 }, { character = 10 > │ line = 1 }), > │ "Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number")] > │ uri = > │ > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f > 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / > outputContent: > │ > │ 00:00:17 d #82 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [ > │ [ > │ "main.spi: > │ Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number", > │ { > │ "TypeErrors": { > │ "errors": [ > │ [ > │ [ > │ { > │ "character": 8, > │ "line": 1 > │ }, > │ { > │ "character": 10, > │ "line": 1 > │ } > │ ], > │ "Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number" > │ ] > │ ], > │ "uri": > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f > 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi" > │ } > │ } > │ ] > │ ] / typeErrorCount: 1 / retry: 0 / outputContent: > │ > │ 00:00:22 v #125 networking.test_port_open / { port = > 13806; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:17 d #83 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:17 d #84 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 1 / error: / outputContent: > │ > │ 00:00:17 d #85 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:17 v #86 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl main () =\n 1 \u002B > \u0022\u0022\n","uri":"file:///home/runner/work/...et/spiral_Eval/packages/c030f > 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"}} / > result: > │ 00:00:17 v #87 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e365519 > 9e42df713504aa0/main.spi"}} / result: > │ 00:00:17 d #88 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 1 / error: Some((main.spi: > │ Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number, TypeErrors > │ { errors = > │ [(({ character = 8 > │ line = 1 }, { character = 10 > │ line = 1 }), > │ "Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number")] > │ uri = > │ > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f > 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / > outputContent: > │ > │ 00:00:17 d #89 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f8e553bef > cbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi / errors: [ > │ [ > │ "main.spi: > │ Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number", > │ { > │ "TypeErrors": { > │ "errors": [ > │ [ > │ [ > │ { > │ "character": 8, > │ "line": 1 > │ }, > │ { > │ "character": 10, > │ "line": 1 > │ } > │ ], > │ "Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number" > │ ] > │ ], > │ "uri": > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c030f84f > 8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi" > │ } > │ } > │ ] > │ ] / typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:17 v #90 Supervisor.sendJson / port: 13805 / json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0" > ]}} / result: > │ 00:00:17 d #91 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ 00:00:22 v #126 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:17 d #92 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["main.spi: > │ Constraint satisfaction error. > │ Got: string > │ Fails to satisfy: number"]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """inl main () = > x + y > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > None, > [[ > "main.spi: > Unbound variable: x. > Unbound variable: y." > ]] > ) > ) > > ── [ 3.16s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:22 v #127 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 d #25 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:23 v #128 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 v #26 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:20 v #27 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:20 v #28 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:23 v #129 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #130 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #131 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #132 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #133 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #134 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #135 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #136 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #137 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #138 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #139 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #140 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #141 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #142 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #143 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #144 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #145 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #146 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #147 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #148 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #149 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #150 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #151 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:21 v #29 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:23 v #152 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #153 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #154 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #155 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:18 v #93 Supervisor.sendJson / port: 13805 / json: > {"Ping":true} / result: > │ 00:00:18 v #94 Supervisor.awaitCompiler / Ping / result: > 'Some null' / port: 13805 / retry: 1 > │ 00:00:21 v #30 > Server bound to: http://localhost:13805 > │ 00:00:18 d #95 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:18 d #96 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:18 d #97 Supervisor.buildFile / takeWhileInclusive > / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:18 v #98 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl main () =\n x \u002B > y\n","uri":"file:///home/runner/work/polyglot/po...et/spiral_Eval/packages/6cdee > c507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"}} / > result: > │ 00:00:18 v #99 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b15 > 1c767fde35dc5d1/main.spi"}} / result: > │ 00:00:18 d #100 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:18 d #101 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:19 d #102 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:19 d #103 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:19 d #104 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:19 d #105 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:20 d #106 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:20 d #107 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:20 d #108 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: Some((File main > has a type error somewhere in its path., FatalError "File main has a type error > somewhere in its path.")) / outputContent: > │ > │ 00:00:20 d #109 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 1 / retry: 0 / outputContent: > │ > │ 00:00:20 d #110 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 1 / retry: 0 / error: Some((main.spi: > │ Unbound variable: x. > │ Unbound variable: y., TypeErrors > │ { errors = > │ [(({ character = 4 > │ line = 1 }, { character = 5 > │ line = 1 }), "Unbound variable: x."); > │ (({ character = 8 > │ line = 1 }, { character = 9 > │ line = 1 }), "Unbound variable: y.")] > │ uri = > │ > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50 > 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })) / > outputContent: > │ > │ 00:00:20 d #111 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [ > │ [ > │ "main.spi: > │ Unbound variable: x. > │ Unbound variable: y.", > │ { > │ "TypeErrors": { > │ "errors": [ > │ [ > │ [ > │ { > │ "character": 4, > │ "line": 1 > │ }, > │ { > │ "character": 5, > │ "line": 1 > │ } > │ ], > │ "Unbound variable: x." > │ ], > │ [ > │ [ > │ { > │ "character": 8, > │ "line": 1 > │ }, > │ { > │ "character": 9, > │ "line": 1 > │ } > │ ], > │ "Unbound variable: y." > │ ] > │ ], > │ "uri": > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50 > 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" > │ } > │ } > │ ] > │ ] / typeErrorCount: 1 / retry: 0 / outputContent: > │ > │ 00:00:25 v #156 networking.test_port_open / { port = > 13806; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 d #112 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:20 d #113 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 1 / error: / outputContent: > │ > │ 00:00:20 d #114 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:20 v #115 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl main () =\n x \u002B > y\n","uri":"file:///home/runner/work/polyglot/po...et/spiral_Eval/packages/6cdee > c507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"}} / > result: > │ 00:00:20 v #116 Supervisor.sendJson / port: 13805 / > json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b15 > 1c767fde35dc5d1/main.spi"}} / result: > │ 00:00:20 d #117 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 1 / error: Some((main.spi: > │ Unbound variable: x. > │ Unbound variable: y., TypeErrors > │ { errors = > │ [(({ character = 4 > │ line = 1 }, { character = 5 > │ line = 1 }), "Unbound variable: x."); > │ (({ character = 8 > │ line = 1 }, { character = 9 > │ line = 1 }), "Unbound variable: y.")] > │ uri = > │ > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50 > 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })) / > outputContent: > │ > │ 00:00:20 d #118 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba > 9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi / errors: [ > │ [ > │ "main.spi: > │ Unbound variable: x. > │ Unbound variable: y.", > │ { > │ "TypeErrors": { > │ "errors": [ > │ [ > │ [ > │ { > │ "character": 4, > │ "line": 1 > │ }, > │ { > │ "character": 5, > │ "line": 1 > │ } > │ ], > │ "Unbound variable: x." > │ ], > │ [ > │ [ > │ { > │ "character": 8, > │ "line": 1 > │ }, > │ { > │ "character": 9, > │ "line": 1 > │ } > │ ], > │ "Unbound variable: y." > │ ] > │ ], > │ "uri": > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/6cdeec50 > 7f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" > │ } > │ } > │ ] > │ ] / typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:20 v #119 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1" > ]}} / result: > │ 00:00:20 d #120 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ 00:00:25 v #157 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:20 d #121 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["main.spi: > │ Unbound variable: x. > │ Unbound variable: y."]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """ > inl main () = > real > inl unbox_real forall a. (obj : a) : a = > typecase obj with > | _ => obj > unbox_real () > () > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > None, > [[ "Cannot apply a forall with a term." ]] > ) > ) > > ── [ 3.26s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:25 v #158 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 d #31 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:26 v #159 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #32 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:26 v #160 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 v #33 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:23 v #34 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:26 v #161 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #162 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #163 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #164 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #165 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #166 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #167 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #168 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #169 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #170 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #171 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #172 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #173 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #174 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #175 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #176 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #177 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #178 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #179 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #180 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #181 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #182 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:24 v #35 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:26 v #183 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #184 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #185 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 v #186 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:21 v #122 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:21 v #123 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:24 v #36 > Server bound to: http://localhost:13805 > │ 00:00:21 d #124 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:21 d #125 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:21 d #126 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:21 v #127 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"\ninl main () =\n real\n inl unbox_real > forall a. (obj : a) : a > =\...et/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec > 78e740987f29a/main.spi"}} / result: > │ 00:00:21 v #128 Supervisor.sendJson / port: 13805 / > json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117e > ec78e740987f29a/main.spi"}} / result: > │ 00:00:21 d #129 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:21 d #130 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:22 d #131 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:22 d #132 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:22 d #133 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:22 d #134 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:23 d #135 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:23 d #136 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:23 d #137 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: Some((Cannot apply > a forall with a term., TracedError > │ { message = "Cannot apply a forall with a term." > │ trace = > │ ["Error trace on line: 2, column: 10 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi. > │ inl main () = > │ ^ > │ "; > │ "Error trace on line: 4, column: 9 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi. > │ inl unbox_real forall a. (obj : a) : a = > │ ^ > │ "; > │ "Error trace on line: 7, column: 9 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi. > │ unbox_real () > │ ^ > │ "] })) / outputContent: > │ > │ 00:00:23 d #138 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi / errors: [ > │ [ > │ "Cannot apply a forall with a term.", > │ { > │ "TracedError": { > │ "message": "Cannot apply a forall with a term.", > │ "trace": [ > │ "Error trace on line: 2, column: 10 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi. > │ inl main () = > │ ^ > │ ", > │ "Error trace on line: 4, column: 9 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi. > │ inl unbox_real forall a. (obj : a) : a = > │ ^ > │ ", > │ "Error trace on line: 7, column: 9 in module: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/667528659dc2e5af > 51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a/main.spi. > │ unbox_real () > │ ^ > │ " > │ ] > │ } > │ } > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:23 v #139 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29a" > ]}} / result: > │ 00:00:29 v #187 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:23 d #140 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["Cannot apply a forall with a term."]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """ > inl main () = > real > inl unbox_real forall a. (obj : a) : a = > typecase obj with > | _ => obj > unbox_real `i32 1 > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > None, > [[ "The main function should not have a forall." ]] > ) > ) > > ── [ 3.25s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:29 v #188 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:26 d #37 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:29 v #189 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:27 v #38 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:29 v #190 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:27 v #39 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:27 v #40 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:29 v #191 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #192 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #193 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #194 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #195 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #196 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #197 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #198 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #199 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #200 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #201 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #202 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #203 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #204 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #205 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #206 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #207 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #208 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #209 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #210 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #211 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #212 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:27 v #41 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:29 v #213 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #214 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:29 v #215 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:24 v #141 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:24 v #142 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:27 v #42 > Server bound to: http://localhost:13805 > │ 00:00:24 d #143 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:24 d #144 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:24 d #145 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:24 v #146 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"\ninl main () =\n real\n inl unbox_real > forall a. (obj : a) : a > =\...et/spiral_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad11 > 8bad793251c4f/main.spi"}} / result: > │ 00:00:24 v #147 Supervisor.sendJson / port: 13805 / > json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad > 118bad793251c4f/main.spi"}} / result: > │ 00:00:25 d #148 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:25 d #149 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:25 d #150 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:25 d #151 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:26 d #152 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:26 d #153 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:26 d #154 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:26 d #155 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:27 d #156 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: Some((The main > function should not have a forall., TracedError { message = "The main function > should not have a forall." > │ trace = [] })) / outputContent: > │ > │ 00:00:27 d #157 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/0ba44c42df309b79 > 0acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f/main.spi / errors: [ > │ [ > │ "The main function should not have a forall.", > │ { > │ "TracedError": { > │ "message": "The main function should not have a > forall.", > │ "trace": [] > │ } > │ } > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:27 v #158 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4f" > ]}} / result: > │ 00:00:32 v #216 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:27 d #159 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["The main function should not have a forall."]) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """ > inl init_series start end inc = > inl total : f64 = conv ((end - start) / inc) + 1 > listm.init total (conv >> (*) inc >> (+) start) : list f64 > > type integration = (f64 -> f64) -> f64 -> f64 -> f64 > > inl integral dt : integration = > fun f a b => > init_series (a + dt / 2) (b - dt / 2) dt > |> listm.map (f >> (*) dt) > |> listm.fold (+) 0 > > inl main () = > integral 0.1 (fun x => x ** 2) 0 1 > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > Some "0.3325000000000001\n", > [[]] > ) > ) > > ── [ 3.36s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:32 v #217 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:30 d #43 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:32 v #218 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:30 v #44 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:30 v #45 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:30 v #46 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:32 v #219 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #220 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #221 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #222 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #223 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #224 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #225 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #226 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #227 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #228 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #229 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #230 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #231 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #232 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #233 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #234 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #235 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #236 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #237 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #238 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #239 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #240 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #241 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:30 v #47 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:32 v #242 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:32 v #243 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:33 v #244 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:27 v #160 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:27 v #161 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:30 v #48 > Server bound to: http://localhost:13805 > │ 00:00:27 d #162 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:27 d #163 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:27 d #164 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:27 v #165 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : > f64 = conv ((end - > start)...et/spiral_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd > 56ac7f0327106f1db/main.spi"}} / result: > │ 00:00:27 v #166 Supervisor.sendJson / port: 13805 / > json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd56 > ac7f0327106f1db/main.spi"}} / result: > │ 00:00:28 d #167 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:28 d #168 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:28 d #169 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:28 d #170 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:29 d #171 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:29 d #172 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:29 d #173 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:29 d #174 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:30 d #175 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:30 d #176 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:30 d #177 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ 0.3325000000000001 > │ > │ 00:00:30 d #178 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/c127414de2a2a92d > 9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ 0.3325000000000001 > │ > │ 00:00:30 v #179 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1db" > ]}} / result: > │ 00:00:35 v #245 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:30 d #180 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (Some "0.3325000000000001 > │ ", []) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """ > inl init_series start end inc = > inl total : f64 = conv ((end - start) / inc) + 1 > listm.init total (conv >> (*) inc >> (+) start) : list f64 > > type integration = (f64 -> f64) -> f64 -> f64 -> f64 > > inl integral dt : integration = > fun f a b => > init_series (a + dt / 2) (b - dt / 2) dt > |> listm.map (f >> (*) dt) > |> listm.fold (+) 0 > > inl main () = > integral 0.1 (fun x => x ** 2) 0 1 > """ > |> fun code -> Spi (code, None) > |> buildCode Cuda [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > Some @"kernel = r"""""" > """""" > class static_array(): > def __init__(self, length): > self.ptr = [[]] > for _ in range(length): > self.ptr.append(None) > > def __getitem__(self, index): > assert 0 <= index < len(self.ptr), ""The get index needs to be in > range."" > return self.ptr[[index]] > > def __setitem__(self, index, value): > assert 0 <= index < len(self.ptr), ""The set index needs to be in > range."" > self.ptr[[index]] = value > > class static_array_list(static_array): > def __init__(self, length): > super().__init__(length) > self.length = 0 > > def __getitem__(self, index): > assert 0 <= index < self.length, ""The get index needs to be in range."" > return self.ptr[[index]] > > def __setitem__(self, index, value): > assert 0 <= index < self.length, ""The set index needs to be in range."" > self.ptr[[index]] = value > > def push(self,value): > assert (self.length < len(self.ptr)), ""The length before pushing has to > be less than the maximum length of the array."" > self.ptr[[self.length]] = value > self.length += 1 > > def pop(self): > assert (0 < self.length), ""The length before popping has to be greater > than 0."" > self.length -= 1 > return self.ptr[[self.length]] > > def unsafe_set_length(self,i): > assert 0 <= i <= len(self.ptr), ""The new length has to be in range."" > self.length = i > > class dynamic_array(static_array): > pass > > class dynamic_array_list(static_array_list): > def length_(self): return self.length > > import cupy as cp > import numpy as np > from dataclasses import dataclass > from typing import NamedTuple, Union, Callable, Tuple > i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = int; u32 = int; u64 = > int; f32 = float; f64 = float; char = str; string = str > cuda = False > > def main_body(): > return 0.3325000000000001 > > def main(): > r = main_body() > if cuda: cp.cuda.get_current_stream().synchronize() # This line is here so > the `__trap()` calls on the kernel aren't missed. > return r > > if __name__ == '__main__': result = main(); None if result is None else > print(result) > ", > [[]] > ) > ) > > ── [ 3.33s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:35 v #246 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:33 d #49 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:36 v #247 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #248 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:33 v #50 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:33 v #51 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:33 v #52 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:36 v #249 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #250 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #251 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #252 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #253 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #254 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #255 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #256 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #257 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #258 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #259 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #260 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #261 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #262 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #263 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #264 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #265 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #266 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #267 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #268 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #269 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #270 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:34 v #53 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:36 v #271 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #272 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 v #273 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:31 v #181 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:31 v #182 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:34 v #54 > Server bound to: http://localhost:13805 > │ 00:00:31 d #183 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:31 d #184 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:31 d #185 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:31 v #186 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : > f64 = conv ((end - > start)...et/spiral_Eval/packages/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b > 26e8533ec368831c8/main.spi"}} / result: > │ 00:00:31 v #187 Supervisor.sendJson / port: 13805 / > json: {"BuildFile":{"backend":"Python \u002B > Cuda","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packa > ges/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi"}} > / result: > │ 00:00:31 d #188 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:31 d #189 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:32 d #190 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:32 d #191 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:32 d #192 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:32 d #193 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:33 d #194 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:33 d #195 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:33 d #196 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:33 d #197 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:33 d #198 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ kernel = r""" > │ """ > │ class static_array(): > │ def __init__(self, length): > │ self.ptr = [] > │ for _ in range(length): > │ self.ptr.append(None) > │ > │ def __getitem__(self, index): > │ assert 0 <= index < len(self.ptr), "The get index > needs to be in range." > │ return self.ptr[index] > │ > │ def __setitem__(self, index, value): > │ assert 0 <= index < len(self.ptr), "The set index > needs to be in range." > │ self.ptr[index] = value > │ > │ class static_array_list(static_array): > │ def __init__(self, length): > │ super().__init__(length) > │ self.length = 0 > │ > │ def __getitem__(self, index): > │ assert 0 <= index < self.length, "The get index needs > to be in range." > │ return self.ptr[index] > │ > │ d...nge." > │ self.length = i > │ > │ class dynamic_array(static_array): > │ pass > │ > │ class dynamic_array_list(static_array_list): > │ def length_(self): return self.length > │ > │ import cupy as cp > │ import numpy as np > │ from dataclasses import dataclass > │ from typing import NamedTuple, Union, Callable, Tuple > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str > │ cuda = False > │ > │ def main_body(): > │ return 0.3325000000000001 > │ > │ def main(): > │ r = main_body() > │ if cuda: cp.cuda.get_current_stream().synchronize() # > This line is here so the `__trap()` calls on the kernel aren't missed. > │ return r > │ > │ if __name__ == '__main__': result = main(); None if result is > None else print(result) > │ > │ 00:00:33 d #199 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/ca288d6928a8e761 > 855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ kernel = r""" > │ """ > │ class static_array(): > │ def __init__(self, length): > │ self.ptr = [] > │ for _ in range(length): > │ self.ptr.append(None) > │ > │ def __getitem__(self, index): > │ assert 0 <= index < len(self.ptr), "The get index > needs to be in range." > │ return self.ptr[index] > │ > │ def __setitem__(self, index, value): > │ assert 0 <= index < len(self.ptr), "The set index > needs to be in range." > │ self.ptr[index] = value > │ > │ class static_array_list(static_array): > │ def __init__(self, length): > │ super().__init__(length) > │ self.length = 0 > │ > │ def __getitem__(self, index): > │ assert 0 <= index < self.length, "The get index needs > to be in range." > │ return self.ptr[index] > │ > │ d...nge." > │ self.length = i > │ > │ class dynamic_array(static_array): > │ pass > │ > │ class dynamic_array_list(static_array_list): > │ def length_(self): return self.length > │ > │ import cupy as cp > │ import numpy as np > │ from dataclasses import dataclass > │ from typing import NamedTuple, Union, Callable, Tuple > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str > │ cuda = False > │ > │ def main_body(): > │ return 0.3325000000000001 > │ > │ def main(): > │ r = main_body() > │ if cuda: cp.cuda.get_current_stream().synchronize() # > This line is here so the `__trap()` calls on the kernel aren't missed. > │ return r > │ > │ if __name__ == '__main__': result = main(); None if result is > None else print(result) > │ > │ 00:00:33 v #200 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8" > ]}} / result: > │ 00:00:39 v #274 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:33 d #201 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some > │ (Some > │ "kernel = r""" > │ """ > │ class static_array(): > │ def __init__(self, length): > │ self.ptr = [] > │ for _ in range(length): > │ self.ptr.append(None) > │ > │ def __getitem__(self, index): > │ assert 0 <= index < len(self.ptr), "The get index > needs to be in range." > │ return self.ptr[index] > │ > │ def __setitem__(self, index, value): > │ assert 0 <= index < len(self.ptr), "The set index > needs to be in range." > │ self.ptr[index] = value > │ > │ class static_array_list(static_array): > │ def __init__(self, length): > │ super().__init__(length) > │ self.length = 0 > │ > │ def __getitem__(self, index): > │ assert 0 <= index < self.length, "The get index needs > to be in range." > │ return self.ptr[index] > │ > │ def __setitem__(self, index, value): > │ assert 0 <= index < self.length, "The set index needs > to be in range." > │ self.ptr[index] = value > │ > │ def push(self,value): > │ assert (self.length < len(self.ptr)), "The length > before pushing has to be less than the maximum length of the array." > │ self.ptr[self.length] = value > │ self.length += 1 > │ > │ def pop(self): > │ assert (0 < self.length), "The length before popping > has to be greater than 0." > │ self.length -= 1 > │ return self.ptr[self.length] > │ > │ def unsafe_set_length(self,i): > │ assert 0 <= i <= len(self.ptr), "The new length has > to be in range." > │ self.length = i > │ > │ class dynamic_array(static_array): > │ pass > │ > │ class dynamic_array_list(static_array_list): > │ def length_(self): return self.length > │ > │ import cupy as cp > │ import numpy as np > │ from dataclasses import dataclass > │ from typing import NamedTuple, Union, Callable, Tuple > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str > │ cuda = False > │ > │ def main_body(): > │ return 0.3325000000000001 > │ > │ def main(): > │ r = main_body() > │ if cuda: cp.cuda.get_current_stream().synchronize() # > This line is here so the `__trap()` calls on the kernel aren't missed. > │ return r > │ > │ if __name__ == '__main__': result = main(); None if result is > None else print(result) > │ ", > │ []) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """ > inl init_series start end inc = > inl total : f64 = conv ((end - start) / inc) + 1 > listm.init total (conv >> (*) inc >> (+) start) : list f64 > > type integration = (f64 -> f64) -> f64 -> f64 -> f64 > > inl integral dt : integration = > fun f a b => > init_series (a + dt / 2) (b - dt / 2) dt > |> listm.map (f >> (*) dt) > |> listm.fold (+) 0 > > inl main () = > integral 0.01 (fun x => x ** 2) 0 1 > """ > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > Some "0.33332500000000004\n", > [[]] > ) > ) > // |> _assertEqual None > // |> fun x -> printfn $"{x.ToDisplayString ()}" > > ── [ 3.38s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:39 v #275 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:36 d #55 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:39 v #276 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:37 v #56 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:37 v #57 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:37 v #58 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:39 v #277 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #278 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #279 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #280 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #281 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #282 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #283 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #284 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #285 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #286 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #287 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #288 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #289 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #290 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #291 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #292 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #293 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #294 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #295 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #296 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #297 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #298 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #299 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:37 v #59 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:39 v #300 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #301 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #302 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:39 v #303 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:34 v #202 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:34 v #203 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:37 v #60 > Server bound to: http://localhost:13805 > │ 00:00:34 d #204 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:34 d #205 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:34 d #206 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:34 v #207 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : > f64 = conv ((end - > start)...et/spiral_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e77 > 97ce64875a41451f4/main.spi"}} / result: > │ 00:00:34 v #208 Supervisor.sendJson / port: 13805 / > json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e7797 > ce64875a41451f4/main.spi"}} / result: > │ 00:00:35 d #209 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:35 d #210 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:35 d #211 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:35 d #212 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:36 d #213 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:36 d #214 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:36 d #215 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:36 d #216 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:37 d #217 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:37 d #218 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:37 d #219 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ 0.33332500000000004 > │ > │ 00:00:37 d #220 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/2acc44d97e6b50ce > 3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ 0.33332500000000004 > │ > │ 00:00:37 v #221 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e7797ce64875a41451f4" > ]}} / result: > │ 00:00:42 v #304 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:37 d #222 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (Some "0.33332500000000004 > │ ", []) > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """inl rec main () = main""" > |> fun code -> Spi (code, None) > |> buildCode Fsharp [[||]] false 10000 None > |> Async.runWithTimeout 10000 > |> Option.map (fun (_, (_, outputContent), errors) -> outputContent, errors |> > List.map fst) > |> _assertEqual ( > Some ( > None, > [[ > "main.spi: > Recursive metavariables are not allowed. A metavar cannot be unified with a type > that has itself. > Got: 'a > Expected: () -> 'a" > ]] > ) > ) > // |> _assertEqual None > // |> fun x -> printfn $"{x.ToDisplayString ()}" > > ── [ 2.86s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:42 v #305 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:40 d #61 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:42 v #306 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:40 v #62 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:40 v #63 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:42 v #307 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:40 v #64 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:42 v #308 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #309 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #310 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #311 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #312 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #313 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #314 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #315 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #316 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #317 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #318 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #319 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #320 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #321 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #322 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #323 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #324 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #325 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #326 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #327 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #328 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #329 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:40 v #65 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:43 v #330 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #331 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #332 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:37 v #223 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:37 v #224 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:40 v #66 > Server bound to: http://localhost:13805 > │ 00:00:38 d #225 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:38 d #226 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:38 d #227 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:38 v #228 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl rec main () = > main","uri":"file:///home/runner/work/polyglot/polyglot/ta...et/spiral_Eval/pack > ages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"} > } / result: > │ 00:00:38 v #229 Supervisor.sendJson / port: 13805 / > json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8 > ccd4581901ee2b7/main.spi"}} / result: > │ 00:00:38 d #230 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:38 d #231 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:39 d #232 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:39 d #233 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:39 d #234 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:39 d #235 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:40 d #236 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ > │ 00:00:40 d #237 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 0 / outputContent: > │ > │ 00:00:40 d #238 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 0 / error: Some((File main > has a type error somewhere in its path., FatalError "File main has a type error > somewhere in its path.")) / outputContent: > │ > │ 00:00:40 d #239 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 1 / retry: 0 / outputContent: > │ > │ 00:00:40 d #240 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 1 / retry: 0 / error: Some((main.spi: > │ Recursive metavariables are not allowed. A metavar cannot be > unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a, TypeErrors > │ { errors = > │ [(({ character = 18 > │ line = 0 }, { character = 22 > │ line = 0 }), > │ "Recursive metavariables are not allowed. A metavar > cannot be unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a")] > │ uri = > │ > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123 > fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / > outputContent: > │ > │ 00:00:40 d #241 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [ > │ [ > │ "main.spi: > │ Recursive metavariables are not allowed. A metavar cannot be > unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a", > │ { > │ "TypeErrors": { > │ "errors": [ > │ [ > │ [ > │ { > │ "character": 18, > │ "line": 0 > │ }, > │ { > │ "character": 22, > │ "line": 0 > │ } > │ ], > │ "Recursive metavariables are not allowed. A > metavar cannot be unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a" > │ ] > │ ], > │ "uri": > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123 > fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" > │ } > │ } > │ ] > │ ] / typeErrorCount: 1 / retry: 0 / outputContent: > │ > │ 00:00:45 v #333 networking.test_port_open / { port = > 13806; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:40 d #242 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:40 d #243 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 1 / error: / outputContent: > │ > │ 00:00:40 d #244 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:40 v #245 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl rec main () = > main","uri":"file:///home/runner/work/polyglot/polyglot/ta...et/spiral_Eval/pack > ages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"} > } / result: > │ 00:00:40 v #246 Supervisor.sendJson / port: 13805 / > json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl > ot/target/spiral_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8 > ccd4581901ee2b7/main.spi"}} / result: > │ 00:00:40 d #247 Supervisor.buildFile / AsyncSeq.scan / > path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [] / > outputContentResult: / typeErrorCount: 0 / retry: 1 / error: Some((main.spi: > │ Recursive metavariables are not allowed. A metavar cannot be > unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a, TypeErrors > │ { errors = > │ [(({ character = 18 > │ line = 0 }, { character = 22 > │ line = 0 }), > │ "Recursive metavariables are not allowed. A metavar > cannot be unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a")] > │ uri = > │ > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123 > fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / > outputContent: > │ > │ 00:00:40 d #248 Supervisor.buildFile / > takeWhileInclusive / path: > /home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123fe6304a9 > 501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi / errors: [ > │ [ > │ "main.spi: > │ Recursive metavariables are not allowed. A metavar cannot be > unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a", > │ { > │ "TypeErrors": { > │ "errors": [ > │ [ > │ [ > │ { > │ "character": 18, > │ "line": 0 > │ }, > │ { > │ "character": 22, > │ "line": 0 > │ } > │ ], > │ "Recursive metavariables are not allowed. A > metavar cannot be unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a" > │ ] > │ ], > │ "uri": > "file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages/883e0123 > fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" > │ } > │ } > │ ] > │ ] / typeErrorCount: 0 / retry: 1 / outputContent: > │ > │ 00:00:40 v #249 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7" > ]}} / result: > │ 00:00:40 d #250 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ 00:00:45 v #334 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:40 d #251 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some > │ (None, > │ ["main.spi: > │ Recursive metavariables are not allowed. A metavar cannot be > unified with a type that has itself. > │ Got: 'a > │ Expected: () -> 'a"]) > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## getFileTokenRange > > ── fsharp ────────────────────────────────────────────────────────────────────── > let getFileTokenRange port cancellationToken path = async { > let fullPath = path |> System.IO.Path.GetFullPath > let! code = fullPath |> SpiralFileSystem.read_all_text_async > let lines = code |> SpiralSm.split "\n" > > let struct (token, disposable) = SpiralThreading.new_disposable_token > cancellationToken > use _ = disposable > > let port = port |> Option.defaultWith getCompilerPort > let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token) > use _ = disposable > > let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> > SpiralFileSystem.new_file_uri > > let fileOpenObj = {| FileOpen = {| uri = fullPathUri; spiText = code |} |} > let! _fileOpenResult = fileOpenObj |> sendObj serverPort > > // do! Async.Sleep 60 > > let fileTokenRangeObj = > {| > FileTokenRange = > {| > uri = fullPathUri > range = > [[| > {| > line = 0 > character = 0 > |} > {| > line = lines.Length - 1 > character = lines.[[lines.Length - 1]].Length > |} > |]] > |} > |} > let! fileTokenRangeResult = > fileTokenRangeObj > |> sendObj serverPort > |> Async.withCancellationToken ct > > let fileDir = fullPath |> System.IO.Path.GetDirectoryName > if fileDir |> SpiralSm.starts_with (workspaceRoot </> "target") then > let fileDirUri = fileDir |> SpiralFileSystem.normalize_path |> > SpiralFileSystem.new_file_uri > let fileDeleteObj = {| FileDelete = {| uris = [[| fileDirUri |]] |} |} > let! _fileDeleteResult = fileDeleteObj |> sendObj serverPort > () > > return fileTokenRangeResult |> Option.map FSharp.Json.Json.deserialize<int > array> > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## getCodeTokenRange > > ── fsharp ────────────────────────────────────────────────────────────────────── > let getCodeTokenRange cancellationToken code = async { > let! mainPath, _ = > persistCode {| input = Spi (code, None); backend = None; packages = > [[||]] |} > > let codeDir = mainPath |> System.IO.Path.GetDirectoryName > let tokensPath = codeDir </> "tokens.json" > let! tokens = async { > if tokensPath |> System.IO.File.Exists |> not > then return None > else > let! text = tokensPath |> SpiralFileSystem.read_all_text_async > > return > if text.Length > 2 > then text |> FSharp.Json.Json.deserialize<int array> |> Some > else None > } > match tokens with > | Some tokens -> > return tokens |> Some > | None -> return! mainPath |> getFileTokenRange None cancellationToken > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """inl main () = ()""" > |> getCodeTokenRange None > |> Async.runWithTimeout 10000 > |> Option.flatten > |> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; > 8; 0; 0; 2; 1; 4; 0; 0; > 2; 1; 8; 0; 0; 1; 1; 8; 0 |]]) > > ── [ 1.42s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:45 v #335 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 d #67 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:45 v #336 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #68 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:43 v #69 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:43 v #70 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:45 v #337 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #338 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #339 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #340 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #341 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #342 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #343 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #344 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #345 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #346 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #347 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #348 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #349 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #350 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #351 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #352 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #353 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #354 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #355 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #356 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #357 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #358 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #359 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #71 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:46 v #360 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #361 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #362 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:40 v #252 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:40 v #253 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:43 v #72 > Server bound to: http://localhost:13805 > │ 00:00:40 v #254 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl main () = > ()","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/package > s/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} / > result: > │ 00:00:41 v #255 Supervisor.sendJson / port: 13805 / > json: > {"FileTokenRange":{"range":[{"character":0,"line":0},{"character":16,"line":0}], > "uri":"file:///home/...et/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7d > a4570c1b757721164d86f19feaf821e/main.spi"}} / result: Some([ > │ 0, > │ 0, > │ 3, > │ 7, > │ 0, > │ 0, > │ 4, > │ 4, > │ 0, > │ 0, > │ 0, > │ 5, > │ 1, > │ 8, > │ 0, > │ 0, > │ 1, > │ 1, > │ 8, > │ 0, > │ 0, > │ 2, > │ 1, > │ 4, > │ 0, > │ 0, > │ 2, > │ 1, > │ 8, > │ 0, > │ 0, > │ 1, > │ 1, > │ 8, > │ 0 > │ ]) > │ 00:00:41 v #256 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e" > ]}} / result: > │ 00:00:46 v #363 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; > 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 8; 0; 0; 1; 1; 8; 0|] > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > """inl main () = 1i32""" > |> getCodeTokenRange None > |> Async.runWithTimeout 10000 > |> Option.flatten > |> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; > 8; 0; 0; 2; 1; 4; 0; 0; > 2; 1; 3; 0; 0; 1; 3; 12; 0 |]]) > > ── [ 1.34s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:46 v #364 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:44 d #73 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:47 v #365 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:44 v #74 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:44 v #75 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:47 v #366 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:44 v #76 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:47 v #367 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #368 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #369 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #370 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #371 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #372 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #373 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #374 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #375 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #376 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #377 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #378 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #379 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #380 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #381 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #382 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #383 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #384 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #385 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #386 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #387 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #388 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #389 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:45 v #77 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:47 v #390 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #391 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:47 v #392 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:42 v #257 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:42 v #258 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:45 v #78 > Server bound to: http://localhost:13805 > │ 00:00:42 v #259 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl main () = > 1i32","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packa > ges/5370829508ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b/main.spi"}} > / result: > │ 00:00:43 v #260 Supervisor.sendJson / port: 13805 / > json: > {"FileTokenRange":{"range":[{"character":0,"line":0},{"character":18,"line":0}], > "uri":"file:///home/...et/spiral_Eval/packages/5370829508ddefc7386d6b4d280722b47 > d97cb925585525bee733a187ff8f18b/main.spi"}} / result: Some([ > │ 0, > │ 0, > │ 3, > │ 7, > │ 0, > │ 0, > │ 4, > │ 4, > │ 0, > │ 0, > │ 0, > │ 5, > │ 1, > │ 8, > │ 0, > │ 0, > │ 1, > │ 1, > │ 8, > │ 0, > │ 0, > │ 2, > │ 1, > │ 4, > │ 0, > │ 0, > │ 2, > │ 1, > │ 3, > │ 0, > │ 0, > │ 1, > │ 3, > │ 12, > │ 0 > │ ]) > │ 00:00:43 v #261 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/5370829508ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b" > ]}} / result: > │ 00:00:48 v #393 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; > 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 3; 0; 0; 1; 3; 12; 0|] > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## getFileHoverAt > > ── fsharp ────────────────────────────────────────────────────────────────────── > let getFileHoverAt > port > cancellationToken > path > (position : {| line: int; character: int |}) > = async { > let fullPath = path |> System.IO.Path.GetFullPath > let! code = fullPath |> SpiralFileSystem.read_all_text_async > let lines = code |> SpiralSm.split "\n" > > let struct (token, disposable) = SpiralThreading.new_disposable_token > cancellationToken > use _ = disposable > > let port = port |> Option.defaultWith getCompilerPort > let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token) > use _ = disposable > > let fullPathUri = fullPath |> SpiralFileSystem.normalize_path |> > SpiralFileSystem.new_file_uri > > let fileOpenObj = {| FileOpen = {| uri = fullPathUri; spiText = code |} |} > let! _fileOpenResult = fileOpenObj |> sendObj serverPort > > // do! Async.Sleep 60 > > let hoverAtObj = > {| > HoverAt = > {| > uri = fullPathUri > pos = position > |} > |} > let! hoverAtResult = > hoverAtObj > |> sendObj serverPort > |> Async.withCancellationToken ct > > let fileDir = fullPath |> System.IO.Path.GetDirectoryName > if fileDir |> SpiralSm.starts_with (workspaceRoot </> "target") then > let fileDirUri = fileDir |> SpiralFileSystem.normalize_path |> > SpiralFileSystem.new_file_uri > let fileDeleteObj = {| FileDelete = {| uris = [[| fileDirUri |]] |} |} > let! _fileDeleteResult = fileDeleteObj |> sendObj serverPort > () > > return hoverAtResult > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## getCodeHoverAt > > ── fsharp ────────────────────────────────────────────────────────────────────── > let getCodeHoverAt cancellationToken code position = async { > let! mainPath, _ = > persistCode {| input = Spi (code, None); backend = None; packages = > [[||]] |} > > let codeDir = mainPath |> System.IO.Path.GetDirectoryName > let filePath = codeDir </> "hover.json" > let! output = async { > if filePath |> System.IO.File.Exists |> not > then return None > else > let! text = filePath |> SpiralFileSystem.read_all_text_async > > return > if text.Length > 2 > then text |> Some > else None > } > match output with > | Some output -> > return output |> Some > | None -> return! getFileHoverAt None cancellationToken mainPath position > } > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > getCodeHoverAt None """inl main () = ()""" {| line = 0; character = 4 |} > |> Async.runWithTimeout 10000 > |> Option.flatten > |> _assertEqual (Some "() -> ()") > > ── [ 2.84s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:48 v #394 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 d #79 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:48 v #395 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #396 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #80 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:46 v #81 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:46 v #82 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:48 v #397 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #398 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #399 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #400 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #401 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #402 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #403 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #404 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #405 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #406 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #407 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #408 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #409 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #410 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #411 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #412 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #413 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #414 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #415 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #416 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #417 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #418 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #83 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:48 v #419 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #420 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 v #421 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:43 v #262 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:43 v #263 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:46 v #84 > Server bound to: http://localhost:13805 > │ 00:00:43 v #264 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl main () = > ()","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/package > s/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} / > result: > │ 00:00:45 v #265 Supervisor.sendJson / port: 13805 / > json: > {"HoverAt":{"pos":{"character":4,"line":0},"uri":"file:///home/runner/work/polyg > lot/polyglot/target/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c > 1b757721164d86f19feaf821e/main.spi"}} / result: Some(() -> ()) > │ 00:00:45 v #266 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e" > ]}} / result: > │ 00:00:51 v #422 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ Some "() -> ()" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > getCodeHoverAt None """inl main () = ()""" {| line = 0; character = 0 |} > |> Async.runWithTimeout 10000 > |> Option.flatten > |> _assertEqual (Some null) > > ── [ 2.98s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:51 v #423 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:48 d #85 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:51 v #424 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:49 v #86 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:49 v #87 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:49 v #88 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:51 v #425 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #426 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #427 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #428 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #429 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #430 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #431 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #432 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #433 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #434 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #435 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #436 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #437 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #438 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #439 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #440 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #441 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #442 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #443 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #444 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #445 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #446 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #447 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:49 v #89 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:51 v #448 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #449 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #450 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 v #451 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:46 v #267 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:46 v #268 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:49 v #90 > Server bound to: http://localhost:13805 > │ 00:00:46 v #269 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl main () = > ()","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/package > s/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} / > result: > │ 00:00:48 v #270 Supervisor.sendJson / port: 13805 / > json: > {"HoverAt":{"pos":{"character":0,"line":0},"uri":"file:///home/runner/work/polyg > lot/polyglot/target/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c > 1b757721164d86f19feaf821e/main.spi"}} / result: > │ 00:00:48 v #271 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e" > ]}} / result: > │ 00:00:54 v #452 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ Some null > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > getCodeHoverAt None """inl rec main () = main""" {| line = 0; character = 8 |} > |> Async.runWithTimeout 10000 > |> Option.flatten > |> _assertEqual (Some "forall 'a. () -> 'a") > > ── [ 2.99s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:54 v #453 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:51 d #91 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:54 v #454 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #455 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:52 v #92 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:52 v #93 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:52 v #94 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:54 v #456 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #457 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #458 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #459 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #460 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #461 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #462 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #463 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #464 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #465 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #466 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #467 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #468 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #469 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #470 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #471 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #472 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #473 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #474 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #475 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #476 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #477 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:52 v #95 > Starting the Spiral Server. It is bound > to: http://localhost:13805 > │ 00:00:54 v #478 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #479 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 v #480 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:49 v #272 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:49 v #273 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:52 v #96 > Server bound to: http://localhost:13805 > │ 00:00:49 v #274 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl rec main () = > main","uri":"file:///home/runner/work/polyglot/polyglot/ta...et/spiral_Eval/pack > ages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2/main.spi"} > } / result: > │ 00:00:51 v #275 Supervisor.sendJson / port: 13805 / > json: > {"HoverAt":{"pos":{"character":8,"line":0},"uri":"file:///home/runner/work/polyg > lot/polyglot/target/spiral_Eval/packages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e > 22fc895db0f8b03cacf92c7e2/main.spi"}} / result: Some(forall 'a. () -> 'a) > │ 00:00:51 v #276 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2" > ]}} / result: > │ 00:00:57 v #481 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ Some "forall 'a. () -> 'a" > │ > │ > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > getCodeHoverAt None """inl main () = 1""" {| line = 0; character = 4 |} > |> Async.runWithTimeout 10000 > |> Option.flatten > |> _assertEqual (Some "forall 'a {number}. () -> 'a") > > ── [ 2.90s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:57 v #482 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:54 d #97 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ > ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64"; options = { command = dotnet > "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral > Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 > --default-int i32 --default-float f64; cancellation_token = Some > System.Threading.CancellationToken; environment_variables = [||]; on_line = Some > <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some > "/home/runner/work/polyglot/polyglot" } } > │ 00:00:57 v #483 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #484 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:55 v #98 > 00:00:00 d #1 pwd: > /home/runner/work/polyglot/polyglot > │ 00:00:55 v #99 > 00:00:00 d #2 dllPath: > /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language > 2/artifacts/bin/The Spiral Language 2/release > │ 00:00:55 v #100 > 00:00:00 d #3 targetDir: > /home/runner/work/polyglot/polyglot/target/spiral_Eval > │ 00:00:57 v #485 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #486 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #487 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #488 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #489 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #490 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #491 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #492 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #493 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #494 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #495 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #496 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #497 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #498 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #499 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #500 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #501 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #502 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #503 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #504 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #505 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #506 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:55 v #101 > Starting the Spiral Server. It is > bound to: http://localhost:13805 > │ 00:00:57 v #507 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #508 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:57 v #509 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ 00:00:52 v #277 Supervisor.sendJson / port: 13805 / > json: {"Ping":true} / result: > │ 00:00:52 v #278 Supervisor.awaitCompiler / Ping / > result: 'Some null' / port: 13805 / retry: 1 > │ 00:00:55 v #102 > Server bound to: > http://localhost:13805 > │ 00:00:52 v #279 Supervisor.sendJson / port: 13805 / > json: {"FileOpen":{"spiText":"inl main () = > 1","uri":"file:///home/runner/work/polyglot/polyglot/target/spiral_Eval/packages > /2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee/main.spi"}} / > result: > │ 00:00:54 v #280 Supervisor.sendJson / port: 13805 / > json: > {"HoverAt":{"pos":{"character":4,"line":0},"uri":"file:///home/runner/work/polyg > lot/polyglot/target/spiral_Eval/packages/2f51fd7aa58d1ea373b484460dba65cec845b6d > ddbc1fc6de2eea30335846eee/main.spi"}} / result: Some(forall 'a {number}. () -> > 'a) > │ 00:00:54 v #281 Supervisor.sendJson / port: 13805 / > json: > {"FileDelete":{"uris":["file:///home/runner/work/polyglot/polyglot/target/spiral > _Eval/packages/2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee" > ]}} / result: > │ 00:01:00 v #510 networking.test_port_open / { port = > 13805; ex = System.AggregateException: One or more errors occurred. (Connection > refused) } > │ Some "forall 'a {number}. () -> 'a" > │ > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## Arguments > > ── fsharp ────────────────────────────────────────────────────────────────────── > [[<RequireQualifiedAccess>]] > type Arguments = > | Build_File of string * string > | File_Token_Range of string * string > | File_Hover_At of string * string * int * int > | Execute_Command of string > | [[<Argu.ArguAttributes.Unique>]] Timeout of int > | [[<Argu.ArguAttributes.Unique>]] Port of int > | [[<Argu.ArguAttributes.Unique>]] Parallel > | [[<Argu.ArguAttributes.Unique>]] Exit_On_Error > > interface Argu.IArgParserTemplate with > member s.Usage = > match s with > | Build_File _ -> nameof Build_File > | File_Token_Range _ -> nameof File_Token_Range > | File_Hover_At _ -> nameof File_Hover_At > | Execute_Command _ -> nameof Execute_Command > | Timeout _ -> nameof Timeout > | Port _ -> nameof Port > | Parallel -> nameof Parallel > | Exit_On_Error-> nameof Exit_On_Error > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () > > ── [ 76.72ms - return value ] ────────────────────────────────────────────────── > │ "USAGE: dotnet-repl [--help] [--build-file <string> <string>] > │ [--file-token-range <string> <string>] > │ [--file-hover-at <string> <string> <int> > <int>] > │ [--execute-command <string>] [--timeout > <int>] [--port <int>] > │ [--parallel] [--exit-on-error] > │ > │ OPTIONS: > │ > │ --build-file <string> <string> > │ Build_File > │ --file-token-range <string> <string> > │ File_Token_Range > │ --file-hover-at <string> <string> <int> <int> > │ File_Hover_At > │ --execute-command <string> > │ Execute_Command > │ --timeout <int> Timeout > │ --port <int> Port > │ --parallel Parallel > │ --exit-on-error Exit_On_Error > │ --help display this list of options. > │ " > │ > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## main > > ── fsharp ────────────────────────────────────────────────────────────────────── > let main args = > let argsMap = args |> Runtime.parseArgsMap<Arguments> > > let buildFileActions = > argsMap > |> Map.tryFind (nameof Arguments.Build_File) > |> Option.defaultValue [[]] > |> List.choose (function > | Arguments.Build_File (inputPath, outputPath) -> Some (inputPath, > outputPath) > | _ -> None > ) > > let fileTokenRangeActions = > argsMap > |> Map.tryFind (nameof Arguments.File_Token_Range) > |> Option.defaultValue [[]] > |> List.choose (function > | Arguments.File_Token_Range (inputPath, outputPath) -> Some > (inputPath, outputPath) > | _ -> None > ) > > let fileHoverAtActions = > argsMap > |> Map.tryFind (nameof Arguments.File_Hover_At) > |> Option.defaultValue [[]] > |> List.choose (function > | Arguments.File_Hover_At (inputPath, outputPath, line, character) > -> > Some (inputPath, outputPath, line, character) > | _ -> None > ) > > let executeCommandActions = > argsMap > |> Map.tryFind (nameof Arguments.Execute_Command) > |> Option.defaultValue [[]] > |> List.choose (function > | Arguments.Execute_Command command -> Some command > | _ -> None > ) > > let timeout = > match argsMap |> Map.tryFind (nameof Arguments.Timeout) with > | Some [[ Arguments.Timeout timeout ]] -> timeout > | _ -> 60000 * 60 > > let port = > match argsMap |> Map.tryFind (nameof Arguments.Port) with > | Some [[ Arguments.Port port ]] -> Some port > | _ -> None > > let isParallel = argsMap |> Map.containsKey (nameof Arguments.Parallel) > > let isExitOnError = argsMap |> Map.containsKey (nameof > Arguments.Exit_On_Error) > > async { > let port = > port > |> Option.defaultWith getCompilerPort > let struct (localToken, disposable) = > SpiralThreading.new_disposable_token None > let! serverPort, _errors, compilerToken, disposable = awaitCompiler port > (Some localToken) > use _ = disposable > > let buildFileAsync = > buildFileActions > |> List.map (fun (inputPath, outputPath) -> async { > let! _outputPath, (outputCode, errors) = > let backend = > if outputPath |> SpiralSm.ends_with ".fsx" > then Fsharp > elif outputPath |> SpiralSm.ends_with ".py" > then Cuda > else failwith $"Supervisor.main / invalid backend / > outputPath: {outputPath}" > let isReal = inputPath |> SpiralSm.ends_with ".spir" > inputPath |> buildFile backend timeout (Some serverPort) > None > > errors > |> List.map snd > |> List.iter (fun error -> > trace Critical (fun () -> $"main / error: {error |> > serializeObj}") _locals > ) > > match outputCode with > | Some outputCode -> > do! outputCode |> SpiralFileSystem.write_all_text_exists > outputPath > return 0 > | None -> > if isExitOnError > then SpiralRuntime.current_process_kill () > > return 1 > }) > > let fileTokenRangeAsync = > fileTokenRangeActions > |> List.map (fun (inputPath, outputPath) -> async { > let! tokenRange = inputPath |> getFileTokenRange (Some > serverPort) None > match tokenRange with > | Some tokenRange -> > do! tokenRange |> FSharp.Json.Json.serialize |> > SpiralFileSystem.write_all_text_exists outputPath > return 0 > | None -> > if isExitOnError > then SpiralRuntime.current_process_kill () > > return 1 > }) > > let fileHoverAtAsync = > fileHoverAtActions > |> List.map (fun (inputPath, outputPath, line, character) -> async { > let! hoverAt = > getFileHoverAt > (Some serverPort) > None > inputPath > {| line = line; character = character |} > match hoverAt with > | Some hoverAt -> > do! hoverAt |> FSharp.Json.Json.serialize |> > SpiralFileSystem.write_all_text_exists outputPath > return 0 > | None -> > if isExitOnError > then SpiralRuntime.current_process_kill () > > return 1 > }) > > let executeCommandAsync = > executeCommandActions > |> List.map (fun command -> async { > let! exitCode, result = > SpiralRuntime.execution_options (fun x -> > { x with > l0 = command > l1 = Some compilerToken > } > ) > |> SpiralRuntime.execute_with_options_async > > trace Debug (fun () -> $"main / executeCommand / exitCode: > {exitCode} / command: {command}") _locals > > if isExitOnError && exitCode <> 0 > then SpiralRuntime.current_process_kill () > > return exitCode > }) > > return! > [[| buildFileAsync; fileTokenRangeAsync; fileHoverAtAsync; > executeCommandAsync |]] > |> Seq.collect id > |> fun x -> > if isParallel > then Async.Parallel (x, float System.Environment.ProcessorCount > * 0.51 |> ceil |> int) > else Async.Sequential x > |> Async.map Array.sum > } > |> Async.runWithTimeout timeout > |> Option.defaultValue 1 > > ── fsharp ────────────────────────────────────────────────────────────────────── > //// test > > let args = > System.Environment.GetEnvironmentVariable "ARGS" > |> SpiralRuntime.split_args > |> Result.toArray > |> Array.collect id > > match args with > | [[||]] -> 0 > | args -> if main args = 0 then 0 else failwith "main failed" > > ── [ 50.80ms - return value ] ────────────────────────────────────────────────── > │ <div class="dni-plaintext"><pre>0 > │ </pre></div><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; > │ white-space: nowrap; > │ } > │ .dni-treeview { > │ white-space: nowrap; > │ } > │ .dni-treeview td { > │ vertical-align: top; > │ text-align: start; > │ } > │ details.dni-treeview { > │ padding-left: 1em; > │ } > │ table td { > │ text-align: start; > │ } > │ table tr { > │ vertical-align: top; > │ margin: 0em 0px; > │ } > │ table tr td pre > │ { > │ vertical-align: top !important; > │ margin: 0em 0px !important; > │ } > │ table th { > │ text-align: start; > │ } > │ </style> 00:01:08 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 285320 } 00:01:08 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:09 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.ipynb to html 00:01:09 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:01:09 v #7 ! validate(nb) 00:01:09 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:01:09 v #9 ! return _pygments_highlight( 00:01:10 v #10 ! [NbConvertApp] Writing 707613 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.html 00:01:10 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 906 } 00:01:10 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 906 } 00:01:10 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:10 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:01:10 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:01:10 d #16 spiral.run / dib / { exit_code = 0; result_length = 286285 } 00:00:00 d #1 writeDibCode / output: Fs / path: Supervisor.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Supervisor.dib 00:00:00 d #1 persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Supervisor / hash: / code.Length: 32787 00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 "publish "/home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/spiral/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/spiral/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/Supervisor" } } 00:00:00 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds 00:00:01 v #6 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #7 > Restoring /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj 00:00:01 v #8 > Starting restore process. 00:00:01 v #9 > Total time taken: 0 milliseconds 00:00:02 v #10 > Restored /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/Supervisor.fsproj (in 314 ms). 00:00:12 v #11 > Supervisor -> /home/runner/work/polyglot/polyglot/target/Builder/Supervisor/bin/Release/net9.0/linux-x64/Supervisor.dll 00:00:13 v #12 > Supervisor -> /home/runner/work/polyglot/polyglot/apps/spiral/dist 00:00:13 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 713 } 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Eval.dib", "--retries", "3"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ # Eval (Polyglot) > > ── fsharp ────────────────────────────────────────────────────────────────────── > #r > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan > dard2.1/FSharp.Control.AsyncSeq.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. > 0/System.Reactive.dll" > #r > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/ > netstandard2.0/System.Reactive.Linq.dll" > #r > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com > mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli > ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0 > /lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0 > /lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll" > #r > @"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/ > 7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll" > #r > @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha > rp.Json.dll" > #r > @"../../../../../../../.nuget/packages/system.management/7.0.0/lib/netstandard2. > 0/System.Management.dll" > > ── fsharp ────────────────────────────────────────────────────────────────────── > #if !INTERACTIVE > open Lib > #endif > > ── fsharp ────────────────────────────────────────────────────────────────────── > open Common > open SpiralFileSystem.Operators > open Microsoft.AspNetCore.SignalR.Client > > ── fsharp ────────────────────────────────────────────────────────────────────── > open System > open System.Collections.Generic > open System.IO > open System.Text > open System.Threading > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## mapErrors > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline mapErrors (severity, errors, lastTopLevelIndex) allCode = > let allCodeLineLength = > allCode |> SpiralSm.split "\n" |> Array.length > > errors > |> List.map (fun (_, error) -> > match error with > | Supervisor.FatalError message -> > ( > severity, message, 0, ("", (0, 0), (0, 0)) > ) > |> List.singleton > | Supervisor.TracedError data -> > data.trace > |> List.truncate 5 > |> List.append [[ data.message ]] > |> List.map (fun message -> > ( > severity, message, 0, ("", (0, 0), (0, 0)) > ) > ) > | Supervisor.PackageErrors data > | Supervisor.TokenizerErrors data > | Supervisor.ParserErrors data > | Supervisor.TypeErrors data -> > data.errors > |> List.filter (fun ((rangeStart, _), _) -> > trace Debug (fun () -> $"Eval.mapErrors / rangeStart.line: > {rangeStart.line} / lastTopLevelIndex: {lastTopLevelIndex} / allCodeLineLength: > {allCodeLineLength} / filtered: {rangeStart.line > allCodeLineLength}") _locals > rangeStart.line > allCodeLineLength > ) > |> List.map (fun ((rangeStart, rangeEnd), message) -> > ( > severity, > message, > 0, > ( > (data.uri |> System.IO.Path.GetFileName), > ( > (match lastTopLevelIndex with > | Some i when rangeStart.line >= i + > allCodeLineLength + 3 -> > rangeStart.line - allCodeLineLength - 2 > | _ -> rangeStart.line - allCodeLineLength), > (match lastTopLevelIndex with > | Some i when rangeStart.line >= i + > allCodeLineLength + 3 -> > rangeStart.character - 4 > | _ -> rangeStart.character) > ), > ( > (match lastTopLevelIndex with > | Some i when rangeStart.line >= i + > allCodeLineLength + 3 -> > rangeEnd.line - allCodeLineLength - 2 > | _ -> rangeEnd.line - allCodeLineLength), > (match lastTopLevelIndex with > | Some i when rangeStart.line >= i + > allCodeLineLength + 3 -> > rangeEnd.character - 4 > | _ -> rangeEnd.character) > ) > ) > ) > ) > ) > |> List.collect id > |> List.toArray > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### workspaceRoot > > ── fsharp ────────────────────────────────────────────────────────────────────── > let workspaceRoot = SpiralFileSystem.get_workspace_root () > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### targetDir > > ── fsharp ────────────────────────────────────────────────────────────────────── > let targetDir = workspaceRoot </> "target/spiral_Eval" > [[ targetDir ]] > |> List.iter (fun dir -> if Directory.Exists dir |> not then > Directory.CreateDirectory dir |> ignore) > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### assemblyName > > ── fsharp ────────────────────────────────────────────────────────────────────── > let assemblyName = Reflection.Assembly.GetEntryAssembly().GetName().Name > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## allCode > > ── fsharp ────────────────────────────────────────────────────────────────────── > let mutable allCode = "" > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ### allPackages > > ── fsharp ────────────────────────────────────────────────────────────────────── > let mutable allPackages : string [[]] = [[||]] > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## allCodeReal > > ── fsharp ────────────────────────────────────────────────────────────────────── > let mutable allCodeReal = "" > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## traceToggle > > ── fsharp ────────────────────────────────────────────────────────────────────── > let mutable traceToggle = false > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## getParentProcessId > > ── fsharp ────────────────────────────────────────────────────────────────────── > let getParentProcessId () = > if SpiralPlatform.is_windows () |> not > then 0u > else > let pid = System.Diagnostics.Process.GetCurrentProcess().Id > let query = $"SELECT ParentProcessId FROM Win32_Process WHERE ProcessId > = {pid}" > use searcher = new System.Management.ManagementObjectSearcher (query) > use results = searcher.Get () > let data = results |> Seq.cast<System.Management.ManagementObject> > if data |> Seq.isEmpty > then 0u > else data |> Seq.head |> (fun mo -> mo.[["ParentProcessId"]] :?> uint32) > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## startTokenRangeWatcher > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline startTokenRangeWatcher () = > if [[ "dotnet-repl" ]] |> List.contains assemblyName > then new_disposable (fun () -> ()) > else > let tokensDir = targetDir </> "tokens" > > [[ tokensDir ]] > |> List.iter (fun dir -> if Directory.Exists dir |> not then > Directory.CreateDirectory dir |> ignore) > > let stream, disposable = FileSystem.watchDirectory (fun _ -> false) > tokensDir > > try > let existingFilesChild = > tokensDir > |> System.IO.Directory.GetDirectories > |> Array.map (fun codeDir -> async { > try > let tokensPath = codeDir </> "tokens.json" > if tokensPath |> File.Exists |> not then > let spiralCodePath = codeDir </> "main.spi" > let spiralRealCodePath = codeDir </> > "main_real.spir" > let spiralExists = spiralCodePath |> > System.IO.File.Exists > let spiralRealExists = spiralRealCodePath |> > System.IO.File.Exists > if spiralExists |> not && spiralRealExists |> not > then do! codeDir |> > SpiralFileSystem.delete_directory_async |> Async.Ignore > else > let! tokens = > if spiralExists then spiralCodePath else > spiralRealCodePath > |> Supervisor.getFileTokenRange None None > match tokens with > | Some tokens -> > do! > tokens > |> FSharp.Json.Json.serialize > |> SpiralFileSystem.write_all_text_async > tokensPath > | None -> > trace Verbose (fun () -> > $"Eval.startTokenRangeWatcher / GetDirectories / tokens: None") _locals > with ex -> > trace Critical (fun () -> $"Eval.startTokenRangeWatcher > / GetDirectories / ex: {ex |> SpiralSm.format_exception}") _locals > }) > |> Async.Parallel > |> Async.Ignore > > let streamAsyncChild = > stream > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event) > -> > match event with > | FileSystem.FileSystemChange.Changed (codePath, _) > when [[ "main.spi"; "main_real.spir" ]] > |> List.contains (System.IO.Path.GetFileName > codePath) > -> > async { > let hashDir = codePath |> > System.IO.Directory.GetParent > let hashHex = hashDir.Name > let codePath = tokensDir </> codePath > let tokensPath = tokensDir </> hashHex </> > "tokens.json" > // do! Async.Sleep 30 > let rec loop retry = async { > let! tokens = codePath |> > Supervisor.getFileTokenRange None None > if retry = 3 || tokens <> Some [[||]] > then return tokens, retry > else > trace Debug > (fun () -> $"Eval.startTokenRangeWatcher > / iterAsyncParallel") > (fun () -> $"retry: {retry} / tokens: > %A{tokens}") > do! Async.Sleep 30 > return! loop (retry + 1) > } > let! tokens, retries = loop 1 > match tokens with > | Some tokens -> > do! > tokens > |> FSharp.Json.Json.serialize > |> SpiralFileSystem.write_all_text_exists > tokensPath > | None -> > trace Debug > (fun () -> $"Eval.startTokenRangeWatcher / > iterAsyncParallel") > (fun () -> $"retries: {retries} / tokens: > {tokens}") > } > |> Async.retryAsync 3 > |> Async.map (Result.toOption >> Option.defaultValue ()) > | _ -> () |> Async.init > ) > > let parentAsyncChild = async { > let parentProcessId = getParentProcessId () > trace Verbose > (fun () -> "Eval.parentAsyncChild") > (fun () -> $"parentProcessId: {parentProcessId} / {_locals > ()}") > > if parentProcessId > 0u then > let parentProcess = parentProcessId |> int |> > System.Diagnostics.Process.GetProcessById > do! parentProcess.WaitForExitAsync () |> Async.AwaitTask > trace Debug > (fun () -> "Eval.parentAsyncChild / Parent process has > exited. Performing cleanup...") > (fun () -> $"{_locals ()}") > System.Threading.Thread.Sleep 1000 > System.Environment.Exit 1 > } > > async { > do! Async.Sleep 3000 > existingFilesChild |> Async.StartImmediate > streamAsyncChild |> Async.Start > parentAsyncChild |> Async.Start > } > |> Async.Start > with ex -> > trace Critical (fun () -> $"Eval.startTokenRangeWatcher / ex: {ex |> > SpiralSm.format_exception}") _locals > > disposable > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## startCommandsWatcher > > ── fsharp ────────────────────────────────────────────────────────────────────── > let startCommandsWatcher (uriServer : string) = > let commandsDir = targetDir </> "eval_commands" > let commandHistoryDir = targetDir </> "eval_command_history" > [[ commandsDir; commandHistoryDir ]] > |> List.iter (fun dir -> if Directory.Exists dir |> not then > Directory.CreateDirectory dir |> ignore) > > Directory.EnumerateFiles commandsDir |> Seq.iter File.Delete > > let stream, disposable = > commandsDir > |> FileSystem.watchDirectory (function > | FileSystem.FileSystemChange.Created _ -> true > | _ -> false > ) > > let connection = HubConnectionBuilder().WithUrl(uriServer).Build() > connection.StartAsync() |> Async.AwaitTask |> Async.Start > // let _ = connection.On<string>("ServerToClientMsg", fun x -> > // printfn $"ServerToClientMsg: '{x}'" > // ) > > stream > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event) -> async { > let _locals () = $"ticks: {ticks} / event: {event} / {_locals ()}" > trace Verbose (fun () -> "Eval.startCommandsWatcher / > iterAsyncParallel") _locals > > match event with > | FileSystem.FileSystemChange.Created (path, Some json) -> > try > let fullPath = commandsDir </> path > let! result = > connection.InvokeAsync<string>("ClientToServerMsg", json) |> Async.AwaitTask > let commandHistoryPath = commandHistoryDir </> path > do! fullPath |> SpiralFileSystem.move_file_async > commandHistoryPath |> Async.Ignore > if result |> SpiralSm.trim |> String.length > 0 then > let resultPath = commandHistoryDir </> > $"{Path.GetFileNameWithoutExtension path}_result.json" > do! result |> SpiralFileSystem.write_all_text_async > resultPath > with ex -> > let _locals () = $"ex: {ex |> SpiralSm.format_exception} / > {_locals ()}" > trace Critical (fun () -> "Eval.startCommandsWatcher / > iterAsyncParallel") _locals > | _ -> () > }) > |> Async.StartChild > |> Async.Ignore > |> Async.Start > > new_disposable (fun () -> > disposable.Dispose () > ) > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## prepareSpiral > > ── fsharp ────────────────────────────────────────────────────────────────────── > let prepareSpiral rawCellCode lines = > let lastBlock = > lines > |> Array.tryFindBack (fun line -> > line |> String.length > 0 > && line.[[0]] <> ' ' > ) > > let hasMain = > lastBlock > |> Option.exists (fun line -> > line |> SpiralSm.starts_with "inl main " > || line |> SpiralSm.starts_with "let main " > ) > > if hasMain > then rawCellCode, None > else > let lastTopLevelIndex, _ = > (lines |> Array.indexed, (None, false)) > ||> Array.foldBack (fun (i, line) (lastTopLevelIndex, finished) -> > // trace Verbose (fun () -> $"Eval.prepareSpiral / i: {i} / > line: '{line}' / lastTopLevelIndex: {lastTopLevelIndex} / finished: {finished}") > _locals > match line with > | _ when finished -> lastTopLevelIndex, true > | "" -> lastTopLevelIndex, false > | line when > line |> SpiralSm.starts_with " " > || line |> SpiralSm.starts_with "// " -> lastTopLevelIndex, > false > | line when > line |> SpiralSm.starts_with "open " > || line |> SpiralSm.starts_with "prototype " > || line |> SpiralSm.starts_with "instance " > || line |> SpiralSm.starts_with "type " > || line |> SpiralSm.starts_with "union " > || line |> SpiralSm.starts_with "nominal " -> > lastTopLevelIndex, true > | line when > line |> SpiralSm.starts_with "inl " > || line |> SpiralSm.starts_with "and " > || line |> SpiralSm.starts_with "let " -> > let m = > System.Text.RegularExpressions.Regex.Match ( > line, > @"^(?:and +)?(inl|let) +((?:[[{( > ]]*)?[[~\(\w]]+[[\w\d']]*(?:|[[\w\d']]+[[ }]]*(?:&? *[[\w\d']]*\))?| > *[[~\w]][[\w\d']]*\)|, *[[~\w]][[\w\d']]*)) +[[:=]](?! +function)" > ) > trace Verbose (fun () -> $"Eval.prepareSpi / m: '{m}' / > m.Groups.Count: {m.Groups.Count}") _locals > if m.Groups.Count = 3 > then Some i, false > else lastTopLevelIndex, true > | _ -> Some i, false > ) > let code = > match lastTopLevelIndex with > | Some lastTopLevelIndex -> > lines > |> Array.mapi (fun i line -> > match i with > | i when i < lastTopLevelIndex -> line > | i when i = lastTopLevelIndex -> $"\nlet main () =\n > {line}" > | _ when line |> SpiralSm.trim = "" -> "" > | _ -> $" {line}" > ) > |> SpiralSm.concat "\n" > | None -> $"{rawCellCode}\n\ninl main () = ()\n" > code, lastTopLevelIndex > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## processSpiralOutput > > ── fsharp ────────────────────────────────────────────────────────────────────── > let processSpiralOutput > (props : {| > printCode: bool > traceLevel: TraceLevel > builderCommands: string array > lastTopLevelIndex: int option > backend: Supervisor.Backend > cancellationToken: _ > spiralErrors: _ > code: string > outputPath: string > isReal: bool > |}) > = async { > let inline _trace (fn : unit -> string) = > if props.traceLevel = Verbose > then trace Info (fun () -> $"Eval.processSpiralOutput / props: {props |> > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / {fn ()}") _locals > else fn () |> System.Console.WriteLine > > if props.printCode && props.backend <> Supervisor.Cuda then > let ext = props.outputPath |> System.IO.Path.GetExtension > _trace (fun () -> if props.builderCommands.Length > 0 then > $"{ext}:\n{props.code}\n" else props.code) > > let workspaceRootExternal = > let currentDir = System.IO.Directory.GetCurrentDirectory () |> > SpiralSm.to_lower > let workspaceRoot = workspaceRoot |> SpiralSm.to_lower > if currentDir |> SpiralSm.starts_with workspaceRoot > then None > else Some workspaceRoot > > let! spiralBuilderResults = > match props.builderCommands, props.lastTopLevelIndex with > | [[||]], _ | _, None -> [[||]] |> Async.init > | builderCommands, _ -> > builderCommands > |> Array.map (fun builderCommand -> > let path = > workspaceRoot </> > $@"deps/spiral/workspace/target/release/spiral{SpiralPlatform.get_executable_suf > fix ()}" > |> System.IO.Path.GetFullPath > let commands = > if props.backend = Supervisor.Fsharp > && ( > builderCommand |> SpiralSm.starts_with "rust" > || builderCommand |> SpiralSm.starts_with > "typescript" > || builderCommand |> SpiralSm.starts_with "python" > ) > then [[| $"{path} fable --fs-path \"{props.outputPath}\" > --command \"{builderCommand}\"" |]] > elif props.backend = Supervisor.Cuda > && builderCommand |> SpiralSm.starts_with "cuda" > then [[| $"{path} {builderCommand} --py-path > \"{props.outputPath}\"" |]] > else [[||]] > builderCommand, commands > ) > |> Array.filter (fun (_, commands) -> commands.Length > 0) > |> Array.collect (fun (builderCommand, commands) -> > commands > |> Array.map (fun command -> async { > let! exitCode, result = > SpiralRuntime.execution_options (fun x -> > { x with > l0 = command > l1 = props.cancellationToken > l2 = [[| > "AUTOMATION", assemblyName = "dotnet-repl" > |> string > "TRACE_LEVEL", $"%A{if props.printCode then > props.traceLevel else Info}" > |]] > l6 = workspaceRootExternal > } > ) > |> SpiralRuntime.execute_with_options_async > trace Debug > (fun () -> $"Eval.processSpiralOutput / spiral cli") > (fun () -> $"exitCode: {exitCode} / builderCommand: > {builderCommand} / command: {command} / result: {result |> SpiralSm.ellipsis_end > 400} / {_locals ()}") > return > if exitCode = 0 > then {| code = result; eval = false; builderCommand = > builderCommand |} |> Ok > else result |> Error > }) > ) > |> Async.Parallel > > let hasEval = > props.backend = Supervisor.Fsharp > && props.builderCommands |> Array.exists (fun x -> x |> > SpiralSm.starts_with "fsharp") > > let outputResult = > if props.builderCommands.Length > 0 && not hasEval > then None > else > let code = > if props.builderCommands.Length > 1 > then > let header = "System.Console.WriteLine \".fsx output:\"\n" > $"{header}{props.code}" > else props.code > Some (Ok [[ {| code = code; eval = true; builderCommand = "" |} ]]) > > match outputResult, spiralBuilderResults with > | Some outputResult, [[||]] -> > return outputResult, [[||]] > | None, [[||]] -> > return Ok [[ {| code = "()"; eval = true; builderCommand = "" |} ]], > [[||]] > | _, spiralBuilderResults -> > try > let spiralResults = > match outputResult with > | Some (Ok code) -> > spiralBuilderResults > |> Array.append (code |> List.map Ok |> List.toArray) > | _ -> spiralBuilderResults > let codes = > spiralResults > |> Array.map (fun spiralBuilderResult' -> > let commandResult, errors = > match spiralBuilderResult' with > | Ok result when result.eval = false -> > let result' = > result.code > |> > FSharp.Json.Json.deserialize<Map<string,string>> > let result = > match result' |> Map.tryFind "command_result" > with > | Some result'' -> > result'' > |> > FSharp.Json.Json.deserialize<Map<string,string>> > |> Map.add "builderCommand" > result.builderCommand > | None -> Map.empty > result, [[||]] > | Ok result when result.eval = true -> > let result = > [[ > "extension", "fsx" > "code", result.code > "output", "" > ]] > |> Map.ofList > result, [[||]] > | Error error -> > Map.empty, > [[| > ( > TraceLevel.Critical, > $"Eval.processSpiralOutput / evalResult error / errors[[0]] / outputPath: > {props.outputPath} / builderCommands: %A{props.builderCommands} / > spiralBuilderResult': %A{spiralBuilderResult'} / error: %A{error}", 0, ("", (0, > 0), (0, 0)) > ) > |]] > | _ -> > Map.empty, [[||]] > > if errors |> Array.isEmpty |> not > then Error (Exception $"Eval.processSpiralOutput / > evalResult errors / Exception / commandResult: %A{commandResult}"), errors > else > let extension = commandResult.[["extension"]] > let code = commandResult.[["code"]] > let output = commandResult.[["output"]] > let builderCommand = > commandResult > |> Map.tryFind "builderCommand" > |> Option.defaultValue "" > > let backendInfo = > match props.backend, builderCommand with > | Supervisor.Fsharp, builderCommand > when builderCommand |> SpiralSm.contains " " -> > $" ({builderCommand})" > | Supervisor.Fsharp, _ -> "" > | _ -> $" ({props.backend})" > > let eval = output = "" && extension = "fsx" > > if props.printCode && not eval > then _trace (fun () -> > $""".{extension}{backendInfo}:{'\n'}{code}""") > > trace Debug > (fun () -> $"Eval.processSpiralOutput / result") > (fun () -> $"builderCommand: {builderCommand} / > extension: {extension} / commandResult: {commandResult |> > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400}/ {_locals ()}") > > let code = > if props.printCode > || spiralResults.Length > 1 > || props.builderCommands.Length > 1 > then > if eval > then code > else > let header = $".{extension} > output{backendInfo}:\n" > $"""{if output |> SpiralSm.contains "\n" > then "\n" else ""}{header}{output}""" > elif eval > then code > else output > Ok {| code = code; eval = eval; builderCommand = > builderCommand |}, [[||]] > ) > trace Debug > (fun () -> $"Eval.processSpiralOutput / codes") > (fun () -> > let props = {| props with cancellationToken = None |} > $"codes: {codes |> FSharp.Json.Json.serialize |> > SpiralSm.ellipsis_end 400} / spiralResults: {spiralResults |> > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / spiralBuilderResults: > {spiralBuilderResults |> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end > 400} / props: {props |> FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} > / {_locals ()}") > return > (((Ok [[]]), [[||]]), codes) > ||> Array.fold (fun (acc_code, acc_errors) (code, errors) -> > match code, acc_code with > | Ok code, Ok acc_code -> > let errors = > acc_errors > |> Array.append errors > |> Array.append props.spiralErrors > let errors = > if errors |> Array.isEmpty > then errors > else > let code = $"%A{code}" > errors > |> Array.append [[| > TraceLevel.Critical, > $"Eval.processSpiralOutput / errors / errors[[-1]] / outputPath: > {props.outputPath} / builderCommands: %A{props.builderCommands} / code: {code |> > SpiralSm.ellipsis_end 400}", 0, ("", (0, 0), (0, 0)) > |]] > Ok (code :: acc_code), errors > | Error ex, _ > | _, Error ex -> > Error (Exception $"Eval.processSpiralOutput / -1 / > Exception / spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> > SpiralSm.format_exception}"), > acc_errors |> Array.append errors > ) > with ex -> > trace Critical (fun () -> $"Eval.processSpiralOutput / try 2 ex / > spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> > SpiralSm.format_exception}") _locals > return > Error (Exception $"Eval.processSpiralOutput / try 2 ex / > Exception / spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> > SpiralSm.format_exception}"), > [[| > ( > TraceLevel.Critical, $"Eval.processSpiralOutput / try 2 > ex / errors[[0]] / spiralBuilderResults: %A{spiralBuilderResults} / ex: {ex |> > SpiralSm.format_exception}", 0, ("", (0, 0), (0, 0)) > ) > |]] > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## tryGetPropertyValue > > ── fsharp ────────────────────────────────────────────────────────────────────── > let tryGetPropertyValue (propertyName: string) (obj: obj) = > let objType = obj.GetType () > let propertyInfo = propertyName |> objType.GetProperty > if propertyInfo <> null > then propertyInfo.GetValue (obj, null) |> Some > else None > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## evalAsync > > ── fsharp ────────────────────────────────────────────────────────────────────── > let rec evalAsync > retry > (props : {| > rawCellCode: _ > lines: _ > isReal: _ > builderCommands: _ array > isCache: _ > timeout: _ > cancellationToken: _ > printCode: _ > traceLevel: _ > fsi_eval: _ > |}) > = async { > try > let cellCode, lastTopLevelIndex = prepareSpiral props.rawCellCode > props.lines > let newAllCode = > if props.isReal > then $"{allCodeReal}\n\n{cellCode}" > else $"{allCode}\n\n{cellCode}" > > let buildBackends = > if props.builderCommands.Length = 0 > then [[| Supervisor.Fsharp |]] > else > props.builderCommands > |> Array.map (fun x -> > if x |> SpiralSm.starts_with "cuda" > then Supervisor.Cuda > else Supervisor.Fsharp > ) > |> Array.distinct > > trace Verbose > (fun () -> $"Eval.eval") > (fun () -> $"lastTopLevelIndex: {lastTopLevelIndex} / > builderCommands: %A{props.builderCommands} / buildBackends: %A{buildBackends} / > isReal: {props.isReal} / {_locals ()}") > > let! buildCodeResults = > buildBackends > |> Array.map (fun backend -> async { > let! result = > if props.isReal > then Supervisor.Spir newAllCode > else > Supervisor.Spi > (newAllCode, if allCodeReal = "" then None else Some > allCodeReal) > |> Supervisor.buildCode backend allPackages props.isCache > props.timeout props.cancellationToken > return backend, result > }) > |> Async.Parallel > |> Async.catch > |> Async.runWithTimeoutAsync props.timeout > > match buildCodeResults with > | Some (Ok buildCodeResults) -> > let! result, errors = > ((Ok [[]], [[||]]), buildCodeResults) > ||> Async.fold (fun acc buildCodeResult -> async { > match buildCodeResult with > | backend, (_, (outputPath, Some code), spiralErrors) -> > let spiralErrors = > allCode |> mapErrors (Warning, spiralErrors, > lastTopLevelIndex) > let! result = > processSpiralOutput > {| > printCode = props.printCode > traceLevel = props.traceLevel > builderCommands = props.builderCommands > lastTopLevelIndex = lastTopLevelIndex > backend = backend > cancellationToken = props.cancellationToken > spiralErrors = spiralErrors > code = code > outputPath = outputPath > isReal = props.isReal > |} > match result, acc with > | (Ok code, errors), (Ok acc_code, acc_errors) -> > return Ok (acc_code @ code), acc_errors |> > Array.append errors > | (Error ex, errors), _ | _, (Error ex, errors) -> > return > Error (Exception $"Eval.evalAsync / > processSpiralOutput / Exception / buildCodeResult: %A{buildCodeResult |> > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400} / ex: {ex |> > SpiralSm.format_exception}"), > errors |> Array.append errors > | _, (_, _, errors) when errors |> List.isEmpty |> not -> > return errors.[[0]] |> fst |> Exception |> Error, > allCode |> mapErrors (TraceLevel.Critical, errors, > lastTopLevelIndex) > | _ -> return acc > }) > let cancellationToken = defaultArg props.cancellationToken > System.Threading.CancellationToken.None > match result, errors with > | Ok code, [[||]] -> > let code, eval = > code > |> List.map (fun code -> > if code.eval > then None, Some code.code > else Some code.code, None > ) > |> List.unzip > let code = code |> List.choose id > let eval = eval |> List.choose id > > trace Debug > (fun () -> $"Eval.eval") > (fun () -> $"eval: {eval |> FSharp.Json.Json.serialize |> > SpiralSm.ellipsis_end 400} / code: {code |> FSharp.Json.Json.serialize |> > SpiralSm.ellipsis_end 400} / {_locals ()}") > > let ch, errors = > match eval, code with > | [[]], [[]] -> > Choice2Of2 (Exception $"Eval.evalAsync / eval=[[]] / > code=[[]] / buildCodeResults: %A{buildCodeResults} / code: %A{code}"), errors > | [[ eval ]], [[]] -> > let ch, errors2 = props.fsi_eval eval cancellationToken > let errors = > errors2 > // |> Array.map (fun (e1, e2, e3, _) -> > // (e1, e2, e3, ("", (0, 0), (0, 0))) > // ) > |> Array.append errors > ch, errors > | [[]], _ -> > let code = code |> List.rev |> String.concat "\n\n" > let code = > if props.printCode > then $"\"\"\"{code}\n\n\"\"\"" > else $"\"\"\"{code}\n\"\"\"" > let ch, errors2 = props.fsi_eval code cancellationToken > let errors = > errors2 > // |> Array.map (fun (e1, e2, e3, _) -> > // (e1, e2, e3, ("", (0, 0), (0, 0))) > // ) > |> Array.append errors > ch, errors > | _ -> > let code, errors = > ((Ok (code |> List.rev), [[||]]), eval) > ||> List.fold (fun (acc, acc_errors) eval -> > match acc with > | Error ch -> Error ch, acc_errors > | Ok acc -> > let ch, errors = props.fsi_eval eval > cancellationToken > let errors = > errors > // |> Array.map (fun (e1, e2, e3, _) -> > // (e1, e2, e3, ("", (0, 0), (0, > 0))) > // ) > |> Array.append acc_errors > match ch with > | Choice1Of2 v -> > let v = > v > |> tryGetPropertyValue > "ReflectionValue" > |> Option.map (fun x -> $"%A{x}") > |> Option.defaultValue "" > Ok (v :: acc), errors > | Choice2Of2 ex -> > trace Critical (fun () -> > $"Eval.evalAsync / fsi_eval fold Choice error / buildCodeResults: > %A{buildCodeResults} / ex: {ex |> SpiralSm.format_exception}") _locals > Error ch, errors > ) > match code with > | Error ch -> ch, errors > | Ok code -> > let code = > code > |> List.filter ((<>) "") > |> String.concat "\n\n" > > let code = > if props.builderCommands.Length > 0 && > eval.Length = 0 > then code > elif code |> SpiralSm.contains "\n\n\n" > then $"{code}\n\n" > else $"{code}\n" > > let code = > if props.printCode > then $"\"\"\"{code}\n\n\n\"\"\"" > else $"\"\"\"{code}\n\"\"\"" > let ch, errors2 = props.fsi_eval code > cancellationToken > let errors = > errors2 > // |> Array.map (fun (e1, e2, e3, _) -> > // (e1, e2, e3, ("", (0, 0), (0, 0))) > // ) > |> Array.append errors > ch, errors > match ch with > | Choice1Of2 v -> > if props.isReal > then allCodeReal <- newAllCode > else allCode <- newAllCode > return Ok(v), errors > | Choice2Of2 ex -> > return > Error (Exception $"Eval.evalAsync / -2 / Exception / ex: > {ex |> SpiralSm.format_exception} / buildCodeResults: {buildCodeResults |> > FSharp.Json.Json.serialize |> SpiralSm.ellipsis_end 400}"), > errors > | Ok code, errors -> > return > Error (Exception "Eval.evalAsync / errors / > buildCodeResults: %A{buildCodeResults} / code: %A{code}"), > errors > | Error ex, errors -> > let ex = ex |> SpiralSm.format_exception > if retry <= 3 && > (ex |> SpiralSm.contains "Expected one of: inl, let, union, > nominal, prototype, type, instance, and, open") > || (ex |> SpiralSm.contains "Unexpected end of block past > this token.") > then return! evalAsync (retry + 1) props > else > return > Error (Exception $"Eval.evalAsync / -1 / Exception / ex: > {ex} / buildCodeResults: {buildCodeResults |> FSharp.Json.Json.serialize |> > SpiralSm.ellipsis_end 1500}"), > errors > | Some (Error ex) -> > trace Critical (fun () -> $"Eval.evalAsync / buildCodeResults Error > / buildCodeResults: %A{buildCodeResults} / ex: {ex |> > SpiralSm.format_exception}") _locals > return > Error (Exception $"Eval.evalAsync / buildCodeResults Error / > Exception / buildCodeResults: %A{buildCodeResults} / ex: {ex |> > SpiralSm.format_exception}"), > [[| > ( > TraceLevel.Critical, $"Eval.evalAsync / buildCodeResults > Error / errors[[0]] / ex: {ex |> SpiralSm.format_exception} / buildCodeResults: > %A{buildCodeResults}", 0, ("", (0, 0), (0, 0)) > ) > |]] > | _ -> > return > Error (Exception $"Eval.evalAsync / buildCodeResults / Exception > / buildCodeResults: %A{buildCodeResults}"), > [[| > ( > TraceLevel.Critical, $"Eval.evalAsync / buildCodeResults > / errors[[0]] / buildCodeResults: %A{buildCodeResults}", 0, ("", (0, 0), (0, 0)) > ) > |]] > with ex -> > trace Critical (fun () -> $"Eval.evalAsync / try 1 ex / ex: {ex |> > SpiralSm.format_exception} / lines: %A{props.lines}") _locals > return > Error (Exception $"Eval.evalAsync / try 1 ex / Exception / ex: {ex > |> SpiralSm.format_exception} / lines: %A{props.lines}"), > [[| > ( > TraceLevel.Critical, $"Eval.evalAsync / try 1 ex / > errors[[0]] / ex: {ex |> SpiralSm.format_exception} / lines: %A{props.lines}", > 0, ("", (0, 0), (0, 0)) > ) > |]] > } > > ── markdown ──────────────────────────────────────────────────────────────────── > │ ## eval > > ── fsharp ────────────────────────────────────────────────────────────────────── > let inline eval > (fsi_eval: > string > -> System.Threading.CancellationToken > -> Choice<'a, Exception> * (TraceLevel * string * int * (string * (int * > int) * (int * int))) array) > (cancellationToken: Option<System.Threading.CancellationToken>) > (code: string) > = > trace Verbose > (fun () -> $"Eval.eval") > (fun () -> $"code: {code |> SpiralSm.ellipsis_end 400} / {_locals ()}") > > let rawCellCode = > code |> SpiralSm.replace "\r\n" "\n" > > let lines = rawCellCode |> SpiralSm.split "\n" > > if lines |> Array.exists (fun line -> line |> SpiralSm.starts_with "#r " && > line |> SpiralSm.ends_with "\"") then > let cancellationToken = defaultArg cancellationToken > System.Threading.CancellationToken.None > let ch, errors = fsi_eval code cancellationToken > trace Verbose (fun () -> $"Eval.eval / fsi_eval 1 / ch: %A{ch} / errors: > %A{errors}") _locals > match ch with > | Choice1Of2 v -> Ok(v), errors > | Choice2Of2 ex -> Error(ex), errors > else > let builderCommands = > lines > |> Array.choose (fun line -> > if line |> SpiralSm.starts_with "///! " > then line |> SpiralSm.split "///! " |> Array.tryItem 1 > else None > ) > > let packages = > lines > |> Array.choose (fun line -> > if line |> SpiralSm.starts_with "//// package=" > then line |> SpiralSm.split "=" |> Array.skip 1 |> > SpiralSm.concat "" |> Some > else None > ) > > allPackages <- packages |> Array.append allPackages |> Array.distinct > > let timeout = > lines > |> Array.tryPick (fun line -> > if line |> SpiralSm.starts_with "//// timeout=" > then line |> SpiralSm.split "=" |> Array.tryItem 1 |> Option.map > int > else None > ) > |> Option.defaultValue (60000 * 60) > > let boolArg def command = > lines > |> Array.tryPick (fun line -> > let text = $"//// {command}" > match line.[[0..text.Length-1]], line.[[text.Length..]] with > | head, "" when head = text -> > Some true > | head, _ when head = text -> > line |> SpiralSm.split "=" |> Array.tryItem 1 |> Option.map > ((<>) "false") > | _ -> None > ) > |> Option.defaultValue def > > let printCode = "print_code" |> boolArg false > let isTraceToggle = "trace_toggle" |> boolArg false > let isTrace = "trace" |> boolArg false > let isCache = "cache" |> boolArg false > let isReal = "real" |> boolArg false > let timeout_continue = "timeout_continue" |> boolArg false > > if isTraceToggle > then traceToggle <- not traceToggle > > let oldLevel = get_trace_level () > let traceLevel = > if isTrace || traceToggle > then Verbose > else Info > traceLevel > |> to_trace_level > |> set_trace_level > use _ = (new_disposable (fun () -> > oldLevel |> set_trace_level > )) > > evalAsync 1 > {| > rawCellCode = rawCellCode > lines = lines > isReal = isReal > builderCommands = builderCommands > isCache = isCache > timeout = timeout > cancellationToken = cancellationToken > printCode = printCode > traceLevel = traceLevel > fsi_eval = fsi_eval > |} > |> Async.runWithTimeout timeout > |> (fun x -> > match x with > | Some ((Ok x), a) -> Some ((Ok x), a) > | Some ((Error x), a) -> > trace Info (fun () -> $"Eval.eval / error / exception: > {x.GetType().FullName} / a: %A{a} / x: %A{x}") (fun () -> "") > Some ((Error x), a) > | _ -> None > ) > |> Option.defaultWith (fun () -> ( > let lines = lines |> SpiralSm.concat (string '\n') |> > SpiralSm.ellipsis_end 1500 > in > Error (Exception $"Eval.eval / Async.runWithTimeout / Exception / > timeout: {timeout} / timeout_continue: {timeout_continue} / lines: {lines}"), > [[| > ( > TraceLevel.Critical, $"Eval.eval / Async.runWithTimeout / > errors[[0]] / timeout: {timeout} / lines: {lines}", 0, ("", (0, 0), (0, 0)) > ) > |]] > )) 00:00:20 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 50071 } 00:00:20 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:21 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.ipynb to html 00:00:21 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:21 v #7 ! validate(nb) 00:00:21 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:21 v #9 ! return _pygments_highlight( 00:00:22 v #10 ! [NbConvertApp] Writing 459256 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.html 00:00:22 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 894 } 00:00:22 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 894 } 00:00:22 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:22 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:22 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:22 d #16 spiral.run / dib / { exit_code = 0; result_length = 51024 } 00:00:00 d #1 writeDibCode / output: Fs / path: Eval.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Eval.dib
In [ ]:
{ pwsh ../lib/fsharp/build.ps1 -sequential 1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Async.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Async.dib", "--retries", "3"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ # Async (Polyglot) 00:00:14 v #13 > > 00:00:14 v #14 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #15 > > #if !INTERACTIVE 00:00:14 v #16 > > open Lib 00:00:14 v #17 > > #endif 00:00:14 v #18 > > 00:00:14 v #19 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #20 > > open Common 00:00:14 v #21 > > 00:00:14 v #22 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:14 v #23 > > │ ## choice 00:00:14 v #24 > > 00:00:14 v #25 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #26 > > let inline choice asyncs = async { 00:00:14 v #27 > > let e = Event<_> () 00:00:14 v #28 > > use cts = new System.Threading.CancellationTokenSource () 00:00:14 v #29 > > let fn = 00:00:14 v #30 > > asyncs 00:00:14 v #31 > > |> Seq.map (fun a -> async { 00:00:14 v #32 > > let! x = a 00:00:14 v #33 > > e.Trigger x 00:00:14 v #34 > > }) 00:00:14 v #35 > > |> Async.Parallel 00:00:14 v #36 > > |> Async.Ignore 00:00:14 v #37 > > Async.Start (fn, cts.Token) 00:00:14 v #38 > > let! result = Async.AwaitEvent e.Publish 00:00:14 v #39 > > cts.Cancel () 00:00:14 v #40 > > return result 00:00:14 v #41 > > } 00:00:14 v #42 > > 00:00:14 v #43 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:14 v #44 > > │ ## map 00:00:14 v #45 > > 00:00:14 v #46 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #47 > > let inline map fn a = async { 00:00:14 v #48 > > let! x = a 00:00:14 v #49 > > return fn x 00:00:14 v #50 > > } 00:00:14 v #51 > > 00:00:14 v #52 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:14 v #53 > > │ ## runWithTimeoutChoiceAsync 00:00:14 v #54 > > 00:00:14 v #55 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #56 > > let inline runWithTimeoutChoiceAsync (timeout : int) fn = 00:00:14 v #57 > > let _locals () = $"timeout: {timeout} / {_locals ()}" 00:00:14 v #58 > > 00:00:14 v #59 > > let timeoutTask = async { 00:00:14 v #60 > > do! Async.Sleep timeout 00:00:14 v #61 > > trace Debug (fun () -> "runWithTimeoutChoiceAsync") _locals 00:00:14 v #62 > > return None 00:00:14 v #63 > > } 00:00:14 v #64 > > 00:00:14 v #65 > > let task = async { 00:00:14 v #66 > > try 00:00:14 v #67 > > let! result = fn 00:00:14 v #68 > > return Some result 00:00:14 v #69 > > with 00:00:14 v #70 > > | :? System.AggregateException as ex when 00:00:14 v #71 > > ex.InnerExceptions 00:00:14 v #72 > > |> Seq.exists (function :? 00:00:14 v #73 > > System.Threading.Tasks.TaskCanceledException -> true | _ -> false) 00:00:14 v #74 > > -> 00:00:14 v #75 > > trace Warning 00:00:14 v #76 > > (fun () -> "runWithTimeoutChoiceAsync") 00:00:14 v #77 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals 00:00:14 v #78 > > ()}") 00:00:14 v #79 > > return None 00:00:14 v #80 > > | ex -> 00:00:14 v #81 > > trace Critical 00:00:14 v #82 > > (fun () -> "runWithTimeoutChoiceAsync") 00:00:14 v #83 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals 00:00:14 v #84 > > ()}") 00:00:14 v #85 > > return None 00:00:14 v #86 > > } 00:00:14 v #87 > > 00:00:14 v #88 > > [[ timeoutTask; task ]] 00:00:14 v #89 > > |> choice 00:00:14 v #90 > > 00:00:14 v #91 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #92 > > let inline runWithTimeoutChoice timeout fn = 00:00:14 v #93 > > fn 00:00:14 v #94 > > |> runWithTimeoutChoiceAsync timeout 00:00:14 v #95 > > |> Async.RunSynchronously 00:00:15 v #96 > > 00:00:15 v #97 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #98 > > //// test 00:00:15 v #99 > > 00:00:15 v #100 > > Async.Sleep 120 00:00:15 v #101 > > |> runWithTimeoutChoice 10 00:00:15 v #102 > > |> _assertEqual None 00:00:15 v #103 > > 00:00:15 v #104 > > ── [ 144.96ms - stdout ] ─────────────────────────────────────────────────────── 00:00:15 v #105 > > │ 00:00:00 d #1 runWithTimeoutChoiceAsync / timeout: 10 00:00:15 v #106 > > │ <null> 00:00:15 v #107 > > │ 00:00:15 v #108 > > │ 00:00:15 v #109 > > 00:00:15 v #110 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #111 > > //// test 00:00:15 v #112 > > 00:00:15 v #113 > > Async.Sleep 10 00:00:15 v #114 > > |> runWithTimeoutChoice 60 00:00:15 v #115 > > |> _assertEqual (Some ()) 00:00:15 v #116 > > 00:00:15 v #117 > > ── [ 146.37ms - stdout ] ─────────────────────────────────────────────────────── 00:00:15 v #118 > > │ Some () 00:00:15 v #119 > > │ 00:00:15 v #120 > > │ 00:00:15 v #121 > > 00:00:15 v #122 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #123 > > //// test 00:00:15 v #124 > > 00:00:15 v #125 > > async { 00:00:15 v #126 > > raise (exn "error") 00:00:15 v #127 > > } 00:00:15 v #128 > > |> runWithTimeoutChoice 60 00:00:15 v #129 > > |> _assertEqual None 00:00:15 v #130 > > 00:00:15 v #131 > > ── [ 90.06ms - stdout ] ──────────────────────────────────────────────────────── 00:00:15 v #132 > > │ 00:00:01 c #2 runWithTimeoutChoiceAsync / ex: 00:00:15 v #133 > > System.Exception: error / timeout: 60 00:00:15 v #134 > > │ <null> 00:00:15 v #135 > > │ 00:00:15 v #136 > > │ 00:00:15 v #137 > > 00:00:15 v #138 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:15 v #139 > > │ ## catch 00:00:15 v #140 > > 00:00:15 v #141 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #142 > > let inline catch a = 00:00:15 v #143 > > a 00:00:15 v #144 > > |> Async.Catch 00:00:15 v #145 > > |> map (function 00:00:15 v #146 > > | Choice1Of2 result -> Ok result 00:00:15 v #147 > > | Choice2Of2 ex -> Error ex 00:00:15 v #148 > > ) 00:00:15 v #149 > > 00:00:15 v #150 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:15 v #151 > > │ ## runWithTimeoutAsync 00:00:15 v #152 > > 00:00:15 v #153 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #154 > > let inline runWithTimeoutAsync (timeout : int) fn = async { 00:00:15 v #155 > > let _locals () = $"timeout: {timeout} / {_locals ()}" 00:00:15 v #156 > > let! child = Async.StartChild (fn, timeout) 00:00:15 v #157 > > return! 00:00:15 v #158 > > child 00:00:15 v #159 > > |> catch 00:00:15 v #160 > > |> map (function 00:00:15 v #161 > > | Ok result -> Some result 00:00:15 v #162 > > | Error (:? System.TimeoutException as ex) -> 00:00:15 v #163 > > trace Debug (fun () -> $"Async.runWithTimeoutAsync") _locals 00:00:15 v #164 > > None 00:00:15 v #165 > > | Error ex -> 00:00:15 v #166 > > trace Critical (fun () -> $"Async.runWithTimeoutAsync** / ex: 00:00:15 v #167 > > %A{ex}") _locals 00:00:15 v #168 > > None 00:00:15 v #169 > > ) 00:00:15 v #170 > > } 00:00:15 v #171 > > 00:00:15 v #172 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #173 > > let inline runWithTimeout timeout fn = 00:00:15 v #174 > > fn 00:00:15 v #175 > > |> runWithTimeoutAsync timeout 00:00:15 v #176 > > |> Async.RunSynchronously 00:00:15 v #177 > > 00:00:15 v #178 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #179 > > //// test 00:00:15 v #180 > > 00:00:15 v #181 > > Async.Sleep 60 00:00:15 v #182 > > |> runWithTimeout 10 00:00:15 v #183 > > |> _assertEqual None 00:00:15 v #184 > > 00:00:15 v #185 > > ── [ 84.48ms - stdout ] ──────────────────────────────────────────────────────── 00:00:15 v #186 > > │ 00:00:01 d #3 Async.runWithTimeoutAsync / timeout: 10 00:00:15 v #187 > > │ <null> 00:00:15 v #188 > > │ 00:00:15 v #189 > > │ 00:00:15 v #190 > > 00:00:15 v #191 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #192 > > //// test 00:00:15 v #193 > > 00:00:15 v #194 > > Async.Sleep 10 00:00:15 v #195 > > |> runWithTimeout 60 00:00:15 v #196 > > |> _assertEqual (Some ()) 00:00:15 v #197 > > 00:00:15 v #198 > > ── [ 66.31ms - stdout ] ──────────────────────────────────────────────────────── 00:00:15 v #199 > > │ Some () 00:00:15 v #200 > > │ 00:00:15 v #201 > > │ 00:00:15 v #202 > > 00:00:15 v #203 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #204 > > //// test 00:00:15 v #205 > > 00:00:15 v #206 > > async { 00:00:15 v #207 > > raise (exn "error") 00:00:15 v #208 > > } 00:00:15 v #209 > > |> runWithTimeout 60 00:00:15 v #210 > > |> _assertEqual None 00:00:15 v #211 > > 00:00:15 v #212 > > ── [ 69.80ms - stdout ] ──────────────────────────────────────────────────────── 00:00:15 v #213 > > │ 00:00:01 c #4 Async.runWithTimeoutAsync** / ex: 00:00:15 v #214 > > System.Exception: error 00:00:15 v #215 > > │ at FSI_0036.it@4-119.Invoke(Unit unitVar) 00:00:15 v #216 > > │ at 00:00:15 v #217 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati 00:00:15 v #218 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 00:00:15 v #219 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510 00:00:15 v #220 > > │ at 00:00:15 v #221 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 00:00:15 v #222 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 00:00:15 v #223 > > │ --- End of stack trace from previous location --- 00:00:15 v #224 > > │ at Microsoft.FSharp.Control.AsyncResult`1.Commit() in 00:00:15 v #225 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454 00:00:15 v #226 > > │ at 00:00:15 v #227 > > <StartupCode$FSharp-Core>.$Async.AwaitAndBindChildResult@1966-4.Invoke(Unit 00:00:15 v #228 > > unitVar) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1968 00:00:15 v #229 > > │ at 00:00:15 v #230 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati 00:00:15 v #231 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in 00:00:15 v #232 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510 00:00:15 v #233 > > │ at 00:00:15 v #234 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in 00:00:15 v #235 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 / timeout: 60 00:00:15 v #236 > > │ <null> 00:00:15 v #237 > > │ 00:00:15 v #238 > > │ 00:00:15 v #239 > > 00:00:15 v #240 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:15 v #241 > > │ ## runWithTimeoutStrict 00:00:15 v #242 > > 00:00:15 v #243 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #244 > > let inline runWithTimeoutStrict (timeout : int) fn = 00:00:15 v #245 > > let _locals () = $"timeout: {timeout} / {_locals ()}" 00:00:15 v #246 > > 00:00:15 v #247 > > let timeoutTask = async { 00:00:15 v #248 > > do! Async.Sleep timeout 00:00:15 v #249 > > return None, _locals 00:00:15 v #250 > > } 00:00:15 v #251 > > 00:00:15 v #252 > > let task = async { 00:00:15 v #253 > > try 00:00:15 v #254 > > return Async.RunSynchronously (fn, timeout) |> Some, _locals 00:00:15 v #255 > > with 00:00:15 v #256 > > | :? System.TimeoutException as ex -> 00:00:15 v #257 > > let _locals () = $"ex: {ex |> SpiralSm.format_exception} / {_locals 00:00:15 v #258 > > ()}" 00:00:15 v #259 > > return None, _locals 00:00:15 v #260 > > | ex -> 00:00:15 v #261 > > trace Critical 00:00:15 v #262 > > (fun () -> "Async.runWithTimeoutStrict / async error") 00:00:15 v #263 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals 00:00:15 v #264 > > ()}") 00:00:15 v #265 > > return raise ex 00:00:15 v #266 > > } 00:00:15 v #267 > > 00:00:15 v #268 > > try 00:00:15 v #269 > > [[| timeoutTask; task |]] 00:00:15 v #270 > > |> Array.map Async.StartAsTask 00:00:15 v #271 > > |> System.Threading.Tasks.Task.WhenAny 00:00:15 v #272 > > |> fun task -> 00:00:15 v #273 > > match task.Result.Result with 00:00:15 v #274 > > | None, _locals -> 00:00:15 v #275 > > trace Debug (fun () -> "runWithTimeoutStrict") _locals 00:00:15 v #276 > > None 00:00:15 v #277 > > | result, _ -> result 00:00:15 v #278 > > with 00:00:15 v #279 > > | :? System.AggregateException as ex when 00:00:15 v #280 > > ex.InnerExceptions 00:00:15 v #281 > > |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException 00:00:15 v #282 > > -> true | _ -> false) 00:00:15 v #283 > > -> 00:00:15 v #284 > > trace Warning 00:00:15 v #285 > > (fun () -> "Async.runWithTimeoutStrict") 00:00:15 v #286 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}") 00:00:15 v #287 > > None 00:00:15 v #288 > > | ex -> 00:00:15 v #289 > > trace Critical 00:00:15 v #290 > > (fun () -> "Async.runWithTimeoutStrict / task error") 00:00:15 v #291 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}") 00:00:15 v #292 > > None 00:00:15 v #293 > > 00:00:15 v #294 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #295 > > //// test 00:00:15 v #296 > > 00:00:15 v #297 > > Async.Sleep 60 00:00:15 v #298 > > |> runWithTimeoutStrict 10 00:00:15 v #299 > > |> _assertEqual None 00:00:15 v #300 > > 00:00:15 v #301 > > ── [ 88.61ms - stdout ] ──────────────────────────────────────────────────────── 00:00:15 v #302 > > │ 00:00:01 d #5 runWithTimeoutStrict / timeout: 10 00:00:15 v #303 > > │ <null> 00:00:15 v #304 > > │ 00:00:15 v #305 > > │ 00:00:15 v #306 > > 00:00:15 v #307 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:15 v #308 > > //// test 00:00:15 v #309 > > 00:00:15 v #310 > > Async.Sleep 10 00:00:15 v #311 > > |> runWithTimeoutStrict 60 00:00:15 v #312 > > |> _assertEqual (Some ()) 00:00:16 v #313 > > 00:00:16 v #314 > > ── [ 94.02ms - stdout ] ──────────────────────────────────────────────────────── 00:00:16 v #315 > > │ Some () 00:00:16 v #316 > > │ 00:00:16 v #317 > > │ 00:00:16 v #318 > > 00:00:16 v #319 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #320 > > //// test 00:00:16 v #321 > > 00:00:16 v #322 > > async { 00:00:16 v #323 > > raise (exn "error") 00:00:16 v #324 > > } 00:00:16 v #325 > > |> runWithTimeoutStrict 60 00:00:16 v #326 > > |> _assertEqual None 00:00:16 v #327 > > 00:00:16 v #328 > > ── [ 83.81ms - stdout ] ──────────────────────────────────────────────────────── 00:00:16 v #329 > > │ 00:00:01 c #6 Async.runWithTimeoutStrict / async error 00:00:16 v #330 > > ex: System.Exception: error / timeout: 60 00:00:16 v #331 > > │ 00:00:01 c #7 Async.runWithTimeoutStrict / task error 00:00:16 v #332 > > ex: System.AggregateException: One or more errors occurred. (error) / timeout: 00:00:16 v #333 > > 60 00:00:16 v #334 > > │ <null> 00:00:16 v #335 > > │ 00:00:16 v #336 > > │ 00:00:16 v #337 > > 00:00:16 v #338 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:16 v #339 > > │ ## awaitValueTask 00:00:16 v #340 > > 00:00:16 v #341 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #342 > > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) = 00:00:16 v #343 > > task.AsTask () |> Async.AwaitTask 00:00:16 v #344 > > 00:00:16 v #345 > > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) = 00:00:16 v #346 > > task.AsTask () |> Async.AwaitTask 00:00:16 v #347 > > 00:00:16 v #348 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:16 v #349 > > │ ## init 00:00:16 v #350 > > 00:00:16 v #351 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #352 > > let inline init x = async { 00:00:16 v #353 > > return x 00:00:16 v #354 > > } 00:00:16 v #355 > > 00:00:16 v #356 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #357 > > //// test 00:00:16 v #358 > > 00:00:16 v #359 > > init 1 00:00:16 v #360 > > |> Async.RunSynchronously 00:00:16 v #361 > > |> _assertEqual 1 00:00:16 v #362 > > 00:00:16 v #363 > > ── [ 20.68ms - stdout ] ──────────────────────────────────────────────────────── 00:00:16 v #364 > > │ 1 00:00:16 v #365 > > │ 00:00:16 v #366 > > │ 00:00:16 v #367 > > 00:00:16 v #368 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:16 v #369 > > │ ## withCancellationToken 00:00:16 v #370 > > 00:00:16 v #371 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #372 > > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn = 00:00:16 v #373 > > Async.StartImmediateAsTask (fn, ct) 00:00:16 v #374 > > |> Async.AwaitTask 00:00:16 v #375 > > 00:00:16 v #376 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #377 > > //// test 00:00:16 v #378 > > 00:00:16 v #379 > > let cts = new System.Threading.CancellationTokenSource () 00:00:16 v #380 > > 00:00:16 v #381 > > async { 00:00:16 v #382 > > let run = async { 00:00:16 v #383 > > do! Async.Sleep 100 00:00:16 v #384 > > return 1 00:00:16 v #385 > > } 00:00:16 v #386 > > 00:00:16 v #387 > > let! child = 00:00:16 v #388 > > run 00:00:16 v #389 > > |> withCancellationToken cts.Token 00:00:16 v #390 > > |> catch 00:00:16 v #391 > > |> Async.StartChild 00:00:16 v #392 > > 00:00:16 v #393 > > do! Async.Sleep 50 00:00:16 v #394 > > cts.Cancel () 00:00:16 v #395 > > return! child 00:00:16 v #396 > > } 00:00:16 v #397 > > |> Async.RunSynchronously 00:00:16 v #398 > > |> Result.mapError _.Message 00:00:16 v #399 > > |> _assertEqual (Error ("A task was canceled.")) 00:00:16 v #400 > > 00:00:16 v #401 > > ── [ 140.89ms - stdout ] ─────────────────────────────────────────────────────── 00:00:16 v #402 > > │ Error "A task was canceled." 00:00:16 v #403 > > │ 00:00:16 v #404 > > │ 00:00:16 v #405 > > 00:00:16 v #406 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:16 v #407 > > │ ## retryAsync 00:00:16 v #408 > > 00:00:16 v #409 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #410 > > let inline retryAsync retries fn = 00:00:16 v #411 > > let rec loop retry lastError = async { 00:00:16 v #412 > > try 00:00:16 v #413 > > return! 00:00:16 v #414 > > if retry <= retries 00:00:16 v #415 > > then fn |> map Ok 00:00:16 v #416 > > else lastError |> Error |> init 00:00:16 v #417 > > with ex -> 00:00:16 v #418 > > trace Debug (fun () -> $"Async.retryAsync / retry: {retry}/{retries} 00:00:16 v #419 > > / ex: {ex |> SpiralSm.format_exception}") _locals 00:00:16 v #420 > > do! Async.Sleep 30 00:00:16 v #421 > > return! loop (retry + 1) (ex |> SpiralSm.format_exception) 00:00:16 v #422 > > } 00:00:16 v #423 > > loop 1 "Async.retryAsync / invalid retries / retries: {retries}" 00:00:16 v #424 > > 00:00:16 v #425 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #426 > > //// test 00:00:16 v #427 > > 00:00:16 v #428 > > let retry_fn_test = ref 0 00:00:16 v #429 > > async { 00:00:16 v #430 > > retry_fn_test.Value <- retry_fn_test.Value + 1 00:00:16 v #431 > > return retry_fn_test.Value 00:00:16 v #432 > > } 00:00:16 v #433 > > |> retryAsync 3 00:00:16 v #434 > > |> Async.RunSynchronously 00:00:16 v #435 > > |> _assertEqual (Ok 1) 00:00:16 v #436 > > 00:00:16 v #437 > > ── [ 67.61ms - stdout ] ──────────────────────────────────────────────────────── 00:00:16 v #438 > > │ Ok 1 00:00:16 v #439 > > │ 00:00:16 v #440 > > │ 00:00:16 v #441 > > 00:00:16 v #442 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #443 > > //// test 00:00:16 v #444 > > 00:00:16 v #445 > > let retry_fn_test = ref 0 00:00:16 v #446 > > async { 00:00:16 v #447 > > return 00:00:16 v #448 > > if retry_fn_test.Value >= 2 00:00:16 v #449 > > then retry_fn_test.Value 00:00:16 v #450 > > else 00:00:16 v #451 > > retry_fn_test.Value <- retry_fn_test.Value + 1 00:00:16 v #452 > > failwith "test" 00:00:16 v #453 > > } 00:00:16 v #454 > > |> retryAsync 3 00:00:16 v #455 > > |> Async.RunSynchronously 00:00:16 v #456 > > |> _assertEqual (Ok 2) 00:00:16 v #457 > > 00:00:16 v #458 > > ── [ 126.80ms - stdout ] ─────────────────────────────────────────────────────── 00:00:16 v #459 > > │ 00:00:02 d #8 Async.retryAsync / retry: 1/3 / ex: 00:00:16 v #460 > > System.Exception: test 00:00:16 v #461 > > │ 00:00:02 d #9 Async.retryAsync / retry: 2/3 / ex: 00:00:16 v #462 > > System.Exception: test 00:00:16 v #463 > > │ Ok 2 00:00:16 v #464 > > │ 00:00:16 v #465 > > │ 00:00:16 v #466 > > 00:00:16 v #467 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:16 v #468 > > │ ## fold 00:00:16 v #469 > > 00:00:16 v #470 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #471 > > let fold folder state array = 00:00:16 v #472 > > let rec loop acc i = 00:00:16 v #473 > > async { 00:00:16 v #474 > > if i < Array.length array then 00:00:16 v #475 > > let! newAcc = folder acc array.[[i]] 00:00:16 v #476 > > return! loop newAcc (i + 1) 00:00:16 v #477 > > else 00:00:16 v #478 > > return acc 00:00:16 v #479 > > } 00:00:16 v #480 > > loop state 0 00:00:16 v #481 > 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 15919 } 00:00:16 v #482 > 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:17 v #483 > 00:00:16 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.ipynb to html 00:00:17 v #484 > 00:00:16 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:17 v #485 > 00:00:16 v #7 ! validate(nb) 00:00:17 v #486 > 00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:17 v #487 > 00:00:16 v #9 ! return _pygments_highlight( 00:00:18 v #488 > 00:00:16 v #10 ! [NbConvertApp] Writing 332803 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.html 00:00:18 v #489 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 894 } 00:00:18 v #490 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 894 } 00:00:18 v #491 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:18 v #492 > 00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:18 v #493 > 00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:18 v #494 > 00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 16872 } 00:00:18 d #495 runtime.execute_with_options_async / { exit_code = 0; output_length = 20460 } 00:00:18 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Async.dib --retries 3 00:00:18 d #496 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path AsyncSeq.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path AsyncSeq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:18 v #497 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "AsyncSeq.dib", "--retries", "3"])) } 00:00:18 v #498 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:19 v #499 > > 00:00:19 v #500 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:19 v #501 > > │ # AsyncSeq (Polyglot) 00:00:31 v #502 > > 00:00:31 v #503 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:31 v #504 > > #r 00:00:31 v #505 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan 00:00:31 v #506 > > dard2.1/FSharp.Control.AsyncSeq.dll" 00:00:31 v #507 > > #r 00:00:31 v #508 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. 00:00:31 v #509 > > 0/System.Reactive.dll" 00:00:31 v #510 > > #r 00:00:31 v #511 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib 00:00:31 v #512 > > netstandard2.0/System.Reactive.Linq.dll" 00:00:32 v #513 > > 00:00:32 v #514 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:32 v #515 > > #if !INTERACTIVE 00:00:32 v #516 > > open Lib 00:00:32 v #517 > > #endif 00:00:32 v #518 > > 00:00:32 v #519 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:32 v #520 > > open Common 00:00:32 v #521 > > 00:00:32 v #522 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:32 v #523 > > │ ## subscribeEvent 00:00:32 v #524 > > 00:00:32 v #525 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:32 v #526 > > let inline subscribeEvent (event: IEvent<'H, 'A>) map = 00:00:32 v #527 > > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 00:00:32 v #528 > > 'A>(event.AddHandler, event.RemoveHandler) 00:00:32 v #529 > > System.Reactive.Linq.Observable.Select (observable, fun event -> map 00:00:32 v #530 > > event.EventArgs) 00:00:32 v #531 > > |> FSharp.Control.AsyncSeq.ofObservableBuffered 00:00:32 v #532 > > 00:00:32 v #533 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:32 v #534 > > //// test 00:00:32 v #535 > > 00:00:32 v #536 > > type TestEvent () as self = 00:00:32 v #537 > > member val Calls = [[]] with get, set 00:00:32 v #538 > > member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get 00:00:32 v #539 > > 00:00:32 v #540 > > member _.AddCall text = 00:00:32 v #541 > > self.Calls <- self.Calls @ [[ text ]] 00:00:32 v #542 > > 00:00:32 v #543 > > member _.EventInterface = 00:00:32 v #544 > > { new IEvent<ErrorEventHandler, ErrorEventArgs> with 00:00:32 v #545 > > member _.AddHandler handler = 00:00:32 v #546 > > self.AddCall "AddHandler" 00:00:32 v #547 > > self.Event.Publish.AddHandler handler 00:00:32 v #548 > > 00:00:32 v #549 > > member _.RemoveHandler handler = 00:00:32 v #550 > > self.AddCall "RemoveHandler" 00:00:32 v #551 > > self.Event.Publish.RemoveHandler handler 00:00:32 v #552 > > 00:00:32 v #553 > > member _.Subscribe observer = 00:00:32 v #554 > > self.AddCall "IObservable.Subscribe" 00:00:32 v #555 > > let disposable = self.Event.Publish.Subscribe observer 00:00:32 v #556 > > new_disposable (fun () -> 00:00:32 v #557 > > self.AddCall "IObservable.Dispose" 00:00:32 v #558 > > disposable.Dispose () 00:00:32 v #559 > > ) 00:00:32 v #560 > > } 00:00:32 v #561 > > 00:00:32 v #562 > > member _.Subscribe () = 00:00:32 v #563 > > subscribeEvent 00:00:32 v #564 > > self.EventInterface 00:00:32 v #565 > > (fun args -> 00:00:32 v #566 > > let result = args.GetException () |> SpiralSm.format_exception 00:00:32 v #567 > > self.AddCall $"TestEvent.Subscribe({result})" 00:00:32 v #568 > > result 00:00:32 v #569 > > ) 00:00:32 v #570 > > 00:00:32 v #571 > > member _.Iter subscription = 00:00:32 v #572 > > subscription 00:00:32 v #573 > > |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async { 00:00:32 v #574 > > self.AddCall $"TestEvent.Iter({i}: {error})" 00:00:32 v #575 > > }) 00:00:32 v #576 > > 00:00:32 v #577 > > member _.WaitCall text = async { 00:00:32 v #578 > > while self.Calls |> List.last <> text do 00:00:32 v #579 > > do! Async.SwitchToThreadPool () 00:00:32 v #580 > > } 00:00:32 v #581 > > 00:00:32 v #582 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:32 v #583 > > //// test 00:00:32 v #584 > > 00:00:32 v #585 > > let testEvent = TestEvent () 00:00:32 v #586 > > 00:00:32 v #587 > > async { 00:00:32 v #588 > > testEvent.AddCall "1" 00:00:32 v #589 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild 00:00:32 v #590 > > do! testEvent.WaitCall "AddHandler" 00:00:32 v #591 > > testEvent.AddCall "2" 00:00:32 v #592 > > do! child 00:00:32 v #593 > > testEvent.AddCall "3" 00:00:32 v #594 > > } 00:00:32 v #595 > > |> Async.runWithTimeout 300 00:00:32 v #596 > > |> _assertEqual None 00:00:32 v #597 > > 00:00:32 v #598 > > testEvent.Calls 00:00:32 v #599 > > |> Seq.toList 00:00:32 v #600 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]] 00:00:33 v #601 > > 00:00:33 v #602 > > ── [ 447.82ms - stdout ] ─────────────────────────────────────────────────────── 00:00:33 v #603 > > │ 00:00:01 d #1 Async.runWithTimeoutAsync / timeout: 300 00:00:33 v #604 > > │ <null> 00:00:33 v #605 > > │ 00:00:33 v #606 > > │ ["1"; "AddHandler"; "2"; "RemoveHandler"] 00:00:33 v #607 > > │ 00:00:33 v #608 > > │ 00:00:33 v #609 > > 00:00:33 v #610 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:33 v #611 > > //// test 00:00:33 v #612 > > 00:00:33 v #613 > > let testEvent = TestEvent () 00:00:33 v #614 > > 00:00:33 v #615 > > async { 00:00:33 v #616 > > testEvent.AddCall "1" 00:00:33 v #617 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild 00:00:33 v #618 > > do! testEvent.WaitCall "AddHandler" 00:00:33 v #619 > > testEvent.AddCall "2" 00:00:33 v #620 > > use _ = testEvent.EventInterface.Subscribe (fun args -> 00:00:33 v #621 > > testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})" 00:00:33 v #622 > > ) 00:00:33 v #623 > > testEvent.AddCall "3" 00:00:33 v #624 > > do! child 00:00:33 v #625 > > testEvent.AddCall "4" 00:00:33 v #626 > > } 00:00:33 v #627 > > |> Async.runWithTimeout 300 00:00:33 v #628 > > |> _assertEqual None 00:00:33 v #629 > > 00:00:33 v #630 > > testEvent.Calls 00:00:33 v #631 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; 00:00:33 v #632 > > "RemoveHandler"; "IObservable.Dispose" ]] 00:00:33 v #633 > > 00:00:33 v #634 > > ── [ 382.18ms - stdout ] ─────────────────────────────────────────────────────── 00:00:33 v #635 > > │ 00:00:01 d #2 Async.runWithTimeoutAsync / timeout: 300 00:00:33 v #636 > > │ <null> 00:00:33 v #637 > > │ 00:00:33 v #638 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; 00:00:33 v #639 > > "RemoveHandler"; "IObservable.Dispose"] 00:00:33 v #640 > > │ 00:00:33 v #641 > > │ 00:00:33 v #642 > > 00:00:33 v #643 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:33 v #644 > > //// test 00:00:33 v #645 > > 00:00:33 v #646 > > let testEvent = TestEvent () 00:00:33 v #647 > > 00:00:33 v #648 > > async { 00:00:33 v #649 > > testEvent.AddCall "1" 00:00:33 v #650 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild 00:00:33 v #651 > > do! testEvent.WaitCall "AddHandler" 00:00:33 v #652 > > testEvent.AddCall "2" 00:00:33 v #653 > > use _ = testEvent.EventInterface.Subscribe (fun args -> 00:00:33 v #654 > > async { 00:00:33 v #655 > > do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)" 00:00:33 v #656 > > testEvent.AddCall 00:00:33 v #657 > > $"testEvent.EventInterface.Subscribe({args.GetException () |> 00:00:33 v #658 > > SpiralSm.format_exception})" 00:00:33 v #659 > > } 00:00:33 v #660 > > |> Async.RunSynchronously 00:00:33 v #661 > > ) 00:00:33 v #662 > > testEvent.AddCall "3" 00:00:33 v #663 > > testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error")) 00:00:33 v #664 > > testEvent.AddCall "4" 00:00:33 v #665 > > do! child 00:00:33 v #666 > > testEvent.AddCall "5" 00:00:33 v #667 > > } 00:00:33 v #668 > > |> Async.runWithTimeout 300 00:00:33 v #669 > > |> _assertEqual None 00:00:33 v #670 > > 00:00:33 v #671 > > testEvent.Calls 00:00:33 v #672 > > |> _assertEqual [[ 00:00:33 v #673 > > "1" 00:00:33 v #674 > > "AddHandler" 00:00:33 v #675 > > "2" 00:00:33 v #676 > > "IObservable.Subscribe" 00:00:33 v #677 > > "3" 00:00:33 v #678 > > "TestEvent.Subscribe(System.Exception: error)" 00:00:33 v #679 > > "TestEvent.Iter(0: System.Exception: error)" 00:00:33 v #680 > > "testEvent.EventInterface.Subscribe(System.Exception: error)" 00:00:33 v #681 > > "4" 00:00:33 v #682 > > "RemoveHandler" 00:00:33 v #683 > > "IObservable.Dispose" 00:00:33 v #684 > > ]] 00:00:33 v #685 > > 00:00:33 v #686 > > ── [ 394.89ms - stdout ] ─────────────────────────────────────────────────────── 00:00:33 v #687 > > │ 00:00:02 d #3 Async.runWithTimeoutAsync / timeout: 300 00:00:33 v #688 > > │ <null> 00:00:33 v #689 > > │ 00:00:33 v #690 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; 00:00:33 v #691 > > "TestEvent.Subscribe(System.Exception: error)"; 00:00:33 v #692 > > │ "TestEvent.Iter(0: System.Exception: error)"; 00:00:33 v #693 > > "testEvent.EventInterface.Subscribe(System.Exception: error)"; "4"; 00:00:33 v #694 > > │ "RemoveHandler"; "IObservable.Dispose"] 00:00:33 v #695 > > │ 00:00:33 v #696 > > │ 00:00:33 v #697 > > 00:00:33 v #698 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:33 v #699 > > │ ## subscribeToken 00:00:33 v #700 > > 00:00:33 v #701 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:33 v #702 > > let subscribeToken (token : System.Threading.CancellationToken) = 00:00:33 v #703 > > let tcs = new System.Threading.Tasks.TaskCompletionSource () 00:00:33 v #704 > > System.Action tcs.SetResult |> token.Register |> ignore 00:00:33 v #705 > > let start = System.DateTime.Now.Ticks 00:00:33 v #706 > > FSharp.Control.AsyncSeq.unfoldAsync 00:00:33 v #707 > > (fun () -> async { 00:00:33 v #708 > > do! tcs.Task |> Async.AwaitTask 00:00:33 v #709 > > return Some (System.DateTime.Now.Ticks - start, ()) 00:00:33 v #710 > > }) 00:00:33 v #711 > > () 00:00:33 v #712 > > 00:00:33 v #713 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:33 v #714 > > //// test 00:00:33 v #715 > > 00:00:33 v #716 > > let cts = new System.Threading.CancellationTokenSource () 00:00:33 v #717 > > 00:00:33 v #718 > > async { 00:00:33 v #719 > > let! child = 00:00:33 v #720 > > cts.Token 00:00:33 v #721 > > |> subscribeToken 00:00:33 v #722 > > |> FSharp.Control.AsyncSeq.tryFirst 00:00:33 v #723 > > |> Async.StartChild 00:00:33 v #724 > > 00:00:33 v #725 > > do! Async.Sleep 100 00:00:33 v #726 > > cts.Cancel () 00:00:33 v #727 > > return! child 00:00:33 v #728 > > } 00:00:33 v #729 > > |> Async.RunSynchronously 00:00:33 v #730 > > |> Option.get 00:00:33 v #731 > > |> fun x -> x > 900000 00:00:33 v #732 > > |> _assertEqual true 00:00:33 v #733 > > 00:00:33 v #734 > > ── [ 142.27ms - stdout ] ─────────────────────────────────────────────────────── 00:00:33 v #735 > > │ true 00:00:33 v #736 > > │ 00:00:33 v #737 > > │ 00:00:34 v #738 > 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 8097 } 00:00:34 v #739 > 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:34 v #740 > 00:00:16 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.ipynb to html 00:00:34 v #741 > 00:00:16 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:34 v #742 > 00:00:16 v #7 ! validate(nb) 00:00:35 v #743 > 00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:35 v #744 > 00:00:16 v #9 ! return _pygments_highlight( 00:00:35 v #745 > 00:00:16 v #10 ! [NbConvertApp] Writing 303150 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.html 00:00:35 v #746 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 900 } 00:00:35 v #747 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 900 } 00:00:35 v #748 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:35 v #749 > 00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:35 v #750 > 00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:35 v #751 > 00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 9056 } 00:00:35 d #752 runtime.execute_with_options_async / { exit_code = 0; output_length = 12205 } 00:00:35 d #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path AsyncSeq.dib --retries 3 00:00:35 d #753 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Common.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:35 v #754 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Common.dib", "--retries", "3"])) } 00:00:35 v #755 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:36 v #756 > > 00:00:36 v #757 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:36 v #758 > > │ # Common (Polyglot) 00:00:49 v #759 > > 00:00:49 v #760 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:49 v #761 > > #if !INTERACTIVE 00:00:49 v #762 > > open Lib 00:00:49 v #763 > > #endif 00:00:49 v #764 > > 00:00:49 v #765 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:49 v #766 > > let nl = System.Environment.NewLine 00:00:49 v #767 > > let q = @"""" 00:00:49 v #768 > > 00:00:49 v #769 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:49 v #770 > > let inline cons head tail = head :: tail 00:00:49 v #771 > > 00:00:49 v #772 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:49 v #773 > > │ ## memoize 00:00:49 v #774 > > 00:00:49 v #775 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:49 v #776 > > let inline memoize fn = 00:00:49 v #777 > > let result = lazy fn () 00:00:49 v #778 > > fun () -> result.Value 00:00:49 v #779 > > 00:00:49 v #780 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:49 v #781 > > │ ## TraceLevel 00:00:49 v #782 > > 00:00:49 v #783 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:49 v #784 > > type TraceLevel = 00:00:49 v #785 > > | Verbose 00:00:49 v #786 > > | Debug 00:00:49 v #787 > > | Info 00:00:49 v #788 > > | Warning 00:00:49 v #789 > > | Critical 00:00:49 v #790 > > 00:00:49 v #791 > > let inline _locals () = "" 00:00:49 v #792 > > 00:00:49 v #793 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:49 v #794 > > │ ## trace 00:00:49 v #795 > > 00:00:49 v #796 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:49 v #797 > > let to_trace_level = function 00:00:49 v #798 > > | Verbose -> SpiralTrace.TraceLevel.US0_0 00:00:49 v #799 > > | Debug -> SpiralTrace.TraceLevel.US0_1 00:00:49 v #800 > > | Info -> SpiralTrace.TraceLevel.US0_2 00:00:49 v #801 > > | Warning -> SpiralTrace.TraceLevel.US0_3 00:00:49 v #802 > > | Critical -> SpiralTrace.TraceLevel.US0_4 00:00:49 v #803 > > 00:00:49 v #804 > > let trace level fn locals = 00:00:49 v #805 > > let level = level |> to_trace_level 00:00:49 v #806 > > SpiralTrace.trace level fn locals 00:00:49 v #807 > > 00:00:49 v #808 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:49 v #809 > > //// test 00:00:49 v #810 > > 00:00:49 v #811 > > trace Debug (fun () -> "test") _locals 00:00:49 v #812 > > 00:00:49 v #813 > > ── [ 14.91ms - stdout ] ──────────────────────────────────────────────────────── 00:00:49 v #814 > > │ 00:00:00 d #1 test 00:00:49 v #815 > > │ 00:00:49 v #816 > 00:00:13 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 2118 } 00:00:49 v #817 > 00:00:13 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:49 v #818 > 00:00:14 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.ipynb to html 00:00:49 v #819 > 00:00:14 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:49 v #820 > 00:00:14 v #7 ! validate(nb) 00:00:50 v #821 > 00:00:14 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:50 v #822 > 00:00:14 v #9 ! return _pygments_highlight( 00:00:50 v #823 > 00:00:14 v #10 ! [NbConvertApp] Writing 280765 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.html 00:00:50 v #824 > 00:00:14 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 896 } 00:00:50 v #825 > 00:00:14 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 896 } 00:00:50 v #826 > 00:00:14 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:50 v #827 > 00:00:15 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:50 v #828 > 00:00:15 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:50 v #829 > 00:00:15 d #16 spiral.run / dib / { exit_code = 0; result_length = 3073 } 00:00:50 d #830 runtime.execute_with_options_async / { exit_code = 0; output_length = 5846 } 00:00:50 d #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Common.dib --retries 3 00:00:50 d #831 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path CommonFSharp.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path CommonFSharp.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:50 v #832 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "CommonFSharp.dib", "--retries", "3"])) } 00:00:50 v #833 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:52 v #834 > > 00:00:52 v #835 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:52 v #836 > > │ # CommonFSharp (Polyglot) 00:01:04 v #837 > > 00:01:04 v #838 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:04 v #839 > > open Common 00:01:04 v #840 > > 00:01:04 v #841 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:04 v #842 > > │ ## getUnionCaseName 00:01:04 v #843 > > 00:01:04 v #844 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:04 v #845 > > let inline getUnionCaseName<'T> (x: 'T) = 00:01:04 v #846 > > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with 00:01:04 v #847 > > | case, _ -> case.Name 00:01:04 v #848 > > 00:01:04 v #849 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:04 v #850 > > //// test 00:01:04 v #851 > > 00:01:04 v #852 > > TraceLevel.Critical 00:01:04 v #853 > > |> getUnionCaseName 00:01:04 v #854 > > |> _assertEqual (nameof TraceLevel.Critical) 00:01:04 v #855 > > 00:01:04 v #856 > > ── [ 49.52ms - stdout ] ──────────────────────────────────────────────────────── 00:01:04 v #857 > > │ "Critical" 00:01:04 v #858 > > │ 00:01:04 v #859 > > │ 00:01:04 v #860 > 00:00:13 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1002 } 00:01:04 v #861 > 00:00:13 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:05 v #862 > 00:00:14 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.ipynb to html 00:01:05 v #863 > 00:00:14 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:01:05 v #864 > 00:00:14 v #7 ! validate(nb) 00:01:05 v #865 > 00:00:14 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:01:05 v #866 > 00:00:14 v #9 ! return _pygments_highlight( 00:01:05 v #867 > 00:00:14 v #10 ! [NbConvertApp] Writing 275628 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.html 00:01:05 v #868 > 00:00:15 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 908 } 00:01:05 v #869 > 00:00:15 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 908 } 00:01:05 v #870 > 00:00:15 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:06 v #871 > 00:00:15 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:01:06 v #872 > 00:00:15 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:01:06 v #873 > 00:00:15 d #16 spiral.run / dib / { exit_code = 0; result_length = 1969 } 00:01:06 d #874 runtime.execute_with_options_async / { exit_code = 0; output_length = 4728 } 00:01:06 d #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path CommonFSharp.dib --retries 3 00:01:06 d #875 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path FileSystem.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path FileSystem.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:06 v #876 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "FileSystem.dib", "--retries", "3"])) } 00:01:06 v #877 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:01:07 v #878 > > 00:01:07 v #879 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:07 v #880 > > │ # FileSystem (Polyglot) 00:01:10 v #881 > > 00:01:10 v #882 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:10 v #883 > > #r 00:01:10 v #884 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan 00:01:10 v #885 > > dard2.1/FSharp.Control.AsyncSeq.dll" 00:01:10 v #886 > > #r 00:01:10 v #887 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. 00:01:10 v #888 > > 0/System.Reactive.dll" 00:01:10 v #889 > > #r 00:01:10 v #890 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib 00:01:10 v #891 > > netstandard2.0/System.Reactive.Linq.dll" 00:01:10 v #892 > > #r 00:01:10 v #893 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" 00:01:20 v #894 > > 00:01:20 v #895 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:20 v #896 > > #if !INTERACTIVE 00:01:20 v #897 > > open Lib 00:01:20 v #898 > > #endif 00:01:20 v #899 > > 00:01:20 v #900 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:20 v #901 > > open Common 00:01:20 v #902 > > open SpiralFileSystem.Operators 00:01:20 v #903 > > 00:01:20 v #904 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:20 v #905 > > │ ## watchDirectory 00:01:20 v #906 > > 00:01:20 v #907 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:20 v #908 > > [[<RequireQualifiedAccess>]] 00:01:20 v #909 > > type FileSystemChangeType = 00:01:20 v #910 > > | Failure 00:01:20 v #911 > > | Changed 00:01:20 v #912 > > | Created 00:01:20 v #913 > > | Deleted 00:01:20 v #914 > > | Renamed 00:01:20 v #915 > > 00:01:20 v #916 > > [[<RequireQualifiedAccess>]] 00:01:20 v #917 > > type FileSystemChange = 00:01:20 v #918 > > | Failure of exn: exn 00:01:20 v #919 > > | Changed of path: string * content: string option 00:01:20 v #920 > > | Created of path: string * content: string option 00:01:20 v #921 > > | Deleted of path: string 00:01:20 v #922 > > | Renamed of oldPath: string * (string * string option) 00:01:20 v #923 > > 00:01:20 v #924 > > 00:01:20 v #925 > > let inline watchDirectoryWithFilter filter shouldReadContent path = 00:01:20 v #926 > > let fullPath = path |> System.IO.Path.GetFullPath 00:01:20 v #927 > > let _locals () = $"filter: {filter} / {_locals ()}" 00:01:20 v #928 > > 00:01:20 v #929 > > let watcher = 00:01:20 v #930 > > new System.IO.FileSystemWatcher ( 00:01:20 v #931 > > Path = fullPath, 00:01:20 v #932 > > NotifyFilter = filter, 00:01:20 v #933 > > EnableRaisingEvents = true, 00:01:20 v #934 > > IncludeSubdirectories = true 00:01:20 v #935 > > ) 00:01:20 v #936 > > 00:01:20 v #937 > > let inline getEventPath (path : string) = 00:01:20 v #938 > > path |> SpiralSm.trim |> SpiralSm.replace fullPath "" |> 00:01:20 v #939 > > SpiralSm.trim_start [[| '/'; '\\' |]] 00:01:20 v #940 > > 00:01:20 v #941 > > let inline ticks () = 00:01:20 v #942 > > System.DateTime.UtcNow.Ticks 00:01:20 v #943 > > 00:01:20 v #944 > > let changedStream = 00:01:20 v #945 > > AsyncSeq.subscribeEvent 00:01:20 v #946 > > watcher.Changed 00:01:20 v #947 > > (fun event -> 00:01:20 v #948 > > ticks (), 00:01:20 v #949 > > [[ FileSystemChange.Changed (getEventPath event.FullPath, None) 00:01:20 v #950 > > ]] 00:01:20 v #951 > > ) 00:01:20 v #952 > > 00:01:20 v #953 > > let deletedStream = 00:01:20 v #954 > > AsyncSeq.subscribeEvent 00:01:20 v #955 > > watcher.Deleted 00:01:20 v #956 > > (fun event -> 00:01:20 v #957 > > ticks (), 00:01:20 v #958 > > [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]] 00:01:20 v #959 > > ) 00:01:20 v #960 > > 00:01:20 v #961 > > let createdStream = 00:01:20 v #962 > > AsyncSeq.subscribeEvent 00:01:20 v #963 > > watcher.Created 00:01:20 v #964 > > (fun event -> 00:01:20 v #965 > > let path = getEventPath event.FullPath 00:01:20 v #966 > > ticks (), [[ 00:01:20 v #967 > > FileSystemChange.Created (path, None) 00:01:20 v #968 > > if SpiralPlatform.is_windows () then 00:01:20 v #969 > > FileSystemChange.Changed (path, None) 00:01:20 v #970 > > ]]) 00:01:20 v #971 > > 00:01:20 v #972 > > let renamedStream = 00:01:20 v #973 > > AsyncSeq.subscribeEvent 00:01:20 v #974 > > watcher.Renamed 00:01:20 v #975 > > (fun event -> 00:01:20 v #976 > > ticks (), [[ 00:01:20 v #977 > > FileSystemChange.Renamed ( 00:01:20 v #978 > > getEventPath event.OldFullPath, 00:01:20 v #979 > > (getEventPath event.FullPath, None) 00:01:20 v #980 > > ) 00:01:20 v #981 > > ]] 00:01:20 v #982 > > ) 00:01:20 v #983 > > 00:01:20 v #984 > > let failureStream = 00:01:20 v #985 > > AsyncSeq.subscribeEvent 00:01:20 v #986 > > watcher.Error 00:01:20 v #987 > > (fun event -> ticks (), [[ FileSystemChange.Failure 00:01:20 v #988 > > (event.GetException ()) ]]) 00:01:20 v #989 > > 00:01:20 v #990 > > let stream = 00:01:20 v #991 > > [[ 00:01:20 v #992 > > changedStream 00:01:20 v #993 > > deletedStream 00:01:20 v #994 > > createdStream 00:01:20 v #995 > > renamedStream 00:01:20 v #996 > > failureStream 00:01:20 v #997 > > ]] 00:01:20 v #998 > > |> FSharp.Control.AsyncSeq.mergeAll 00:01:20 v #999 > > |> FSharp.Control.AsyncSeq.map (fun (t, events) -> 00:01:20 v #1000 > > events 00:01:20 v #1001 > > |> List.fold 00:01:20 v #1002 > > (fun (i, events) event -> 00:01:20 v #1003 > > i + 1L, 00:01:20 v #1004 > > (t + i, event) :: events) 00:01:20 v #1005 > > (0L, [[]]) 00:01:20 v #1006 > > |> snd 00:01:20 v #1007 > > |> List.rev 00:01:20 v #1008 > > ) 00:01:20 v #1009 > > |> FSharp.Control.AsyncSeq.concatSeq 00:01:20 v #1010 > > |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async { 00:01:20 v #1011 > > match shouldReadContent event, event with 00:01:20 v #1012 > > | true, FileSystemChange.Changed (path, _) -> 00:01:20 v #1013 > > do! Async.Sleep 5 00:01:20 v #1014 > > let! content = fullPath </> path |> 00:01:20 v #1015 > > SpiralFileSystem.read_all_text_retry_async 00:01:20 v #1016 > > return t, FileSystemChange.Changed (path, content) 00:01:20 v #1017 > > | true, FileSystemChange.Created (path, _) -> 00:01:20 v #1018 > > do! Async.Sleep 5 00:01:20 v #1019 > > let! content = fullPath </> path |> 00:01:20 v #1020 > > SpiralFileSystem.read_all_text_retry_async 00:01:20 v #1021 > > return t, FileSystemChange.Created (path, content) 00:01:20 v #1022 > > | true, FileSystemChange.Renamed (oldPath, (newPath, _)) -> 00:01:20 v #1023 > > let! content = fullPath </> newPath |> 00:01:20 v #1024 > > SpiralFileSystem.read_all_text_retry_async 00:01:20 v #1025 > > return t, FileSystemChange.Renamed (oldPath, (newPath, content)) 00:01:20 v #1026 > > | _ -> return t, event 00:01:20 v #1027 > > }) 00:01:20 v #1028 > > 00:01:20 v #1029 > > let disposable = 00:01:20 v #1030 > > new_disposable (fun () -> 00:01:20 v #1031 > > trace Debug (fun () -> "FileSystem.watchWithFilter / Disposing watch 00:01:20 v #1032 > > stream") _locals 00:01:20 v #1033 > > watcher.EnableRaisingEvents <- false 00:01:20 v #1034 > > watcher.Dispose () 00:01:20 v #1035 > > ) 00:01:20 v #1036 > > 00:01:20 v #1037 > > stream, disposable 00:01:20 v #1038 > > 00:01:20 v #1039 > > let inline watchDirectory path = 00:01:20 v #1040 > > watchDirectoryWithFilter 00:01:20 v #1041 > > (System.IO.NotifyFilters.FileName 00:01:20 v #1042 > > // ||| System.IO.NotifyFilters.DirectoryName 00:01:20 v #1043 > > // ||| System.IO.NotifyFilters.Attributes 00:01:20 v #1044 > > //// ||| System.IO.NotifyFilters.Size 00:01:20 v #1045 > > ||| System.IO.NotifyFilters.LastWrite 00:01:20 v #1046 > > //// ||| System.IO.NotifyFilters.LastAccess 00:01:20 v #1047 > > // ||| System.IO.NotifyFilters.CreationTime 00:01:20 v #1048 > > // ||| System.IO.NotifyFilters.Security 00:01:20 v #1049 > > ) 00:01:20 v #1050 > > path 00:01:20 v #1051 > > 00:01:20 v #1052 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:20 v #1053 > > │ ### testEventsRaw (test) 00:01:20 v #1054 > > 00:01:20 v #1055 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:20 v #1056 > > //// test 00:01:20 v #1057 > > 00:01:20 v #1058 > > let inline testEventsRaw 00:01:20 v #1059 > > (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 * 00:01:20 v #1060 > > FileSystemChange> * IDisposable) 00:01:20 v #1061 > > write 00:01:20 v #1062 > > = 00:01:20 v #1063 > > let struct (tempDir, tempDisposable) = 00:01:20 v #1064 > > "FileSystem.testEventsRaw" 00:01:20 v #1065 > > |> SpiralCrypto.hash_text 00:01:20 v #1066 > > |> SpiralFileSystem.create_temp_dir' 00:01:20 v #1067 > > let stream, disposable = watchFn (fun _ -> true) tempDir 00:01:20 v #1068 > > 00:01:20 v #1069 > > let events = System.Collections.Concurrent.ConcurrentBag () 00:01:20 v #1070 > > 00:01:20 v #1071 > > let inline iter () = 00:01:20 v #1072 > > stream 00:01:20 v #1073 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { 00:01:20 v #1074 > > events.Add event }) 00:01:20 v #1075 > > 00:01:20 v #1076 > > let run = async { 00:01:20 v #1077 > > let! _ = iter () |> Async.StartChild 00:01:20 v #1078 > > do! Async.Sleep 250 00:01:20 v #1079 > > return! write tempDir 00:01:20 v #1080 > > } 00:01:20 v #1081 > > 00:01:20 v #1082 > > try 00:01:20 v #1083 > > run 00:01:20 v #1084 > > |> Async.runWithTimeout 60000 00:01:20 v #1085 > > |> _assertEqual (Some ()) 00:01:20 v #1086 > > finally 00:01:20 v #1087 > > disposable.Dispose () 00:01:20 v #1088 > > tempDisposable.Dispose () 00:01:20 v #1089 > > 00:01:20 v #1090 > > let eventsLog = 00:01:20 v #1091 > > events 00:01:20 v #1092 > > |> Seq.toList 00:01:20 v #1093 > > |> List.sortBy fst 00:01:20 v #1094 > > |> List.fold 00:01:20 v #1095 > > (fun (prev, acc) (ticks, event) -> 00:01:20 v #1096 > > ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event) 00:01:20 v #1097 > > :: acc 00:01:20 v #1098 > > ) 00:01:20 v #1099 > > (0L, [[]]) 00:01:20 v #1100 > > |> snd 00:01:20 v #1101 > > |> List.rev 00:01:20 v #1102 > > |> List.map (fun (diff, n, event) -> $"{n} / {diff} / {event}" |> 00:01:20 v #1103 > > SpiralSm.ellipsis_end 100L) 00:01:20 v #1104 > > |> SpiralSm.concat "\n" 00:01:20 v #1105 > > let _locals () = $"eventsLog: \n{eventsLog} / {_locals ()}" 00:01:20 v #1106 > > trace Debug (fun () -> "FileSystem.testEventsRaw") _locals 00:01:20 v #1107 > > 00:01:20 v #1108 > > events 00:01:20 v #1109 > > |> Seq.toList 00:01:20 v #1110 > > |> List.sortBy fst 00:01:20 v #1111 > > |> List.map snd 00:01:20 v #1112 > > |> List.fold 00:01:20 v #1113 > > (fun acc event -> 00:01:20 v #1114 > > match acc, event with 00:01:20 v #1115 > > | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent 00:01:20 v #1116 > > :: acc, 00:01:20 v #1117 > > FileSystemChange.Changed (path, Some content) 00:01:20 v #1118 > > when lastPath = path && content |> SpiralSm.starts_with 00:01:20 v #1119 > > lastContent 00:01:20 v #1120 > > -> 00:01:20 v #1121 > > event :: acc 00:01:20 v #1122 > > | _ -> event :: acc 00:01:20 v #1123 > > ) 00:01:20 v #1124 > > [[]] 00:01:20 v #1125 > > |> List.rev 00:01:20 v #1126 > > 00:01:20 v #1127 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:20 v #1128 > > │ #### fast (test) 00:01:20 v #1129 > > 00:01:20 v #1130 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:20 v #1131 > > //// test 00:01:20 v #1132 > > 00:01:20 v #1133 > > let inline write path = async { 00:01:20 v #1134 > > let n = 2 00:01:20 v #1135 > > 00:01:20 v #1136 > > for i = 1 to n do 00:01:20 v #1137 > > do! $"a{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:20 v #1138 > > $"file{i}.txt") 00:01:20 v #1139 > > 00:01:20 v #1140 > > do! Async.Sleep 250 00:01:20 v #1141 > > 00:01:20 v #1142 > > for i = 1 to n do 00:01:20 v #1143 > > do! $"b{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:20 v #1144 > > $"file{i}.txt") 00:01:20 v #1145 > > 00:01:20 v #1146 > > do! Async.Sleep 250 00:01:20 v #1147 > > 00:01:20 v #1148 > > for i = 1 to n do 00:01:20 v #1149 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path 00:01:20 v #1150 > > </> $"file_{i}.txt") |> Async.Ignore 00:01:20 v #1151 > > 00:01:20 v #1152 > > do! Async.Sleep 250 00:01:20 v #1153 > > 00:01:20 v #1154 > > for i = 1 to n do 00:01:20 v #1155 > > do! $"c{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:20 v #1156 > > $"file_{i}.txt") 00:01:20 v #1157 > > 00:01:20 v #1158 > > do! Async.Sleep 250 00:01:20 v #1159 > > 00:01:20 v #1160 > > for i = 1 to n do 00:01:20 v #1161 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> 00:01:20 v #1162 > > Async.Ignore 00:01:20 v #1163 > > 00:01:20 v #1164 > > do! Async.Sleep 250 00:01:20 v #1165 > > } 00:01:20 v #1166 > > 00:01:20 v #1167 > > let inline run () = 00:01:20 v #1168 > > let events = testEventsRaw watchDirectory write 00:01:20 v #1169 > > 00:01:20 v #1170 > > events 00:01:20 v #1171 > > |> _sequenceEqual [[ 00:01:20 v #1172 > > FileSystemChange.Created ("file1.txt", Some "a1") 00:01:20 v #1173 > > FileSystemChange.Changed ("file1.txt", Some "a1") 00:01:20 v #1174 > > FileSystemChange.Created ("file2.txt", Some "a2") 00:01:20 v #1175 > > FileSystemChange.Changed ("file2.txt", Some "a2") 00:01:20 v #1176 > > 00:01:20 v #1177 > > FileSystemChange.Changed ("file1.txt", Some "b1") 00:01:20 v #1178 > > FileSystemChange.Changed ("file2.txt", Some "b2") 00:01:20 v #1179 > > 00:01:20 v #1180 > > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1")) 00:01:20 v #1181 > > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2")) 00:01:20 v #1182 > > 00:01:20 v #1183 > > FileSystemChange.Changed ("file_1.txt", Some "c1") 00:01:20 v #1184 > > FileSystemChange.Changed ("file_2.txt", Some "c2") 00:01:20 v #1185 > > 00:01:20 v #1186 > > FileSystemChange.Deleted "file_1.txt" 00:01:20 v #1187 > > FileSystemChange.Deleted "file_2.txt" 00:01:20 v #1188 > > ]] 00:01:20 v #1189 > > 00:01:20 v #1190 > > run 00:01:20 v #1191 > > |> retry_fn 3 00:01:20 v #1192 > > |> _assertEqual (Some ()) 00:01:23 v #1193 > > 00:01:23 v #1194 > > ── [ 2.56s - stdout ] ────────────────────────────────────────────────────────── 00:01:23 v #1195 > > │ Some () 00:01:23 v #1196 > > │ 00:01:23 v #1197 > > │ 00:00:04 d #1 FileSystem.watchWithFilter / Disposing 00:01:23 v #1198 > > watch stream / filter: FileName, LastWrite 00:01:23 v #1199 > > │ 00:00:04 d #2 FileSystem.testEventsRaw / eventsLog: 00:01:23 v #1200 > > │ 0 / 638737681003551273 / Created ("file1.txt", Some "a1") 00:01:23 v #1201 > > │ 11924 / 638737681003563197 / Changed ("file1.txt", Some "a1") 00:01:23 v #1202 > > │ 1360 / 638737681003564557 / Created ("file2.txt", Some "a2") 00:01:23 v #1203 > > │ 34 / 638737681003564591 / Changed ("file2.txt", Some "a2") 00:01:23 v #1204 > > │ 2485623 / 638737681006050214 / Changed ("file1.txt", Some 00:01:23 v #1205 > > "b1") 00:01:23 v #1206 > > │ 470 / 638737681006050684 / Changed ("file1.txt", Some "b1") 00:01:23 v #1207 > > │ 5333 / 638737681006056017 / Changed ("file2.txt", Some "b2") 00:01:23 v #1208 > > │ 204 / 638737681006056221 / Changed ("file2.txt", Some "b2") 00:01:23 v #1209 > > │ 2558522 / 638737681008614743 / Renamed ("file1.txt", 00:01:23 v #1210 > > ("file_1.txt", Some "b1")) 00:01:23 v #1211 > > │ 7139 / 638737681008621882 / Renamed ("file2.txt", 00:01:23 v #1212 > > ("file_2.txt", Some "b2")) 00:01:23 v #1213 > > │ 2523127 / 638737681011145009 / Changed ("file_1.txt", Some 00:01:23 v #1214 > > "c1") 00:01:23 v #1215 > > │ 537 / 638737681011145546 / Changed ("file_1.txt", Some "c1") 00:01:23 v #1216 > > │ 5228 / 638737681011150774 / Changed ("file_2.txt", Some "c2") 00:01:23 v #1217 > > │ 293 / 638737681011151067 / Changed ("file_2.txt", Some "c2") 00:01:23 v #1218 > > │ 2532926 / 638737681013683993 / Deleted "file_1.txt" 00:01:23 v #1219 > > │ 1028 / 638737681013685021 / Deleted "file_2.txt" 00:01:23 v #1220 > > │ [Created ("file1.txt", Some "a1"); Changed ("file1.txt", Some 00:01:23 v #1221 > > "a1"); Created ("file2.txt", Some "a2"); 00:01:23 v #1222 > > │ Changed ("file2.txt", Some "a2"); Changed ("file1.txt", Some 00:01:23 v #1223 > > "b1"); Changed ("file2.txt", Some "b2"); 00:01:23 v #1224 > > │ Renamed ("file1.txt", ("file_1.txt", Some "b1")); Renamed 00:01:23 v #1225 > > ("file2.txt", ("file_2.txt", Some "b2")); 00:01:23 v #1226 > > │ Changed ("file_1.txt", Some "c1"); Changed ("file_2.txt", 00:01:23 v #1227 > > Some "c2"); Deleted "file_1.txt"; Deleted "file_2.txt"] 00:01:23 v #1228 > > │ 00:01:23 v #1229 > > │ Some () 00:01:23 v #1230 > > │ 00:01:23 v #1231 > > │ 00:01:23 v #1232 > > 00:01:23 v #1233 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:23 v #1234 > > │ #### slow (test) 00:01:23 v #1235 > > 00:01:23 v #1236 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:23 v #1237 > > //// test 00:01:23 v #1238 > > 00:01:23 v #1239 > > let inline write path = async { 00:01:23 v #1240 > > let n = 2 00:01:23 v #1241 > > 00:01:23 v #1242 > > let contents = 00:01:23 v #1243 > > [[ 1 .. n ]] 00:01:23 v #1244 > > |> List.map (string >> String.replicate 1_000_000) 00:01:23 v #1245 > > 00:01:23 v #1246 > > for i = 1 to n do 00:01:23 v #1247 > > do! $"{contents.[[i - 1]]}a" |> SpiralFileSystem.write_all_text_async 00:01:23 v #1248 > > (path </> $"file{i}.txt") 00:01:23 v #1249 > > 00:01:23 v #1250 > > do! Async.Sleep 1500 00:01:23 v #1251 > > 00:01:23 v #1252 > > for i = 1 to n do 00:01:23 v #1253 > > do! $"{contents.[[i - 1]]}b" |> SpiralFileSystem.write_all_text_async 00:01:23 v #1254 > > (path </> $"file{i}.txt") 00:01:23 v #1255 > > 00:01:23 v #1256 > > do! Async.Sleep 1500 00:01:23 v #1257 > > 00:01:23 v #1258 > > for i = 1 to n do 00:01:23 v #1259 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path 00:01:23 v #1260 > > </> $"file_{i}.txt") |> Async.Ignore 00:01:23 v #1261 > > 00:01:23 v #1262 > > do! Async.Sleep 1500 00:01:23 v #1263 > > 00:01:23 v #1264 > > for i = 1 to n do 00:01:23 v #1265 > > do! $"{contents.[[i - 1]]}c" |> SpiralFileSystem.write_all_text_async 00:01:23 v #1266 > > (path </> $"file_{i}.txt") 00:01:23 v #1267 > > 00:01:23 v #1268 > > do! Async.Sleep 1500 00:01:23 v #1269 > > 00:01:23 v #1270 > > for i = 1 to n do 00:01:23 v #1271 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> 00:01:23 v #1272 > > Async.Ignore 00:01:23 v #1273 > > 00:01:23 v #1274 > > do! Async.Sleep 1500 00:01:23 v #1275 > > } 00:01:23 v #1276 > > 00:01:23 v #1277 > > let inline run () = 00:01:23 v #1278 > > let events = 00:01:23 v #1279 > > testEventsRaw watchDirectory write 00:01:23 v #1280 > > |> List.map (function 00:01:23 v #1281 > > | FileSystemChange.Changed (path, Some content) -> 00:01:23 v #1282 > > FileSystemChange.Changed (path, content |> Seq.distinct |> 00:01:23 v #1283 > > Seq.map string |> SpiralSm.concat "" |> Some) 00:01:23 v #1284 > > | FileSystemChange.Created (path, Some content) -> 00:01:23 v #1285 > > FileSystemChange.Created (path, content |> Seq.distinct |> 00:01:23 v #1286 > > Seq.map string |> SpiralSm.concat "" |> Some) 00:01:23 v #1287 > > | FileSystemChange.Renamed (oldPath, (newPath, Some content)) -> 00:01:23 v #1288 > > FileSystemChange.Renamed ( 00:01:23 v #1289 > > oldPath, 00:01:23 v #1290 > > (newPath, content |> Seq.distinct |> Seq.map string |> 00:01:23 v #1291 > > SpiralSm.concat "" |> Some) 00:01:23 v #1292 > > ) 00:01:23 v #1293 > > | event -> event 00:01:23 v #1294 > > ) 00:01:23 v #1295 > > 00:01:23 v #1296 > > events 00:01:23 v #1297 > > |> _sequenceEqual [[ 00:01:23 v #1298 > > FileSystemChange.Created ("file1.txt", Some "1a") 00:01:23 v #1299 > > FileSystemChange.Changed ("file1.txt", Some "1a") 00:01:23 v #1300 > > FileSystemChange.Created ("file2.txt", Some "2a") 00:01:23 v #1301 > > FileSystemChange.Changed ("file2.txt", Some "2a") 00:01:23 v #1302 > > 00:01:23 v #1303 > > FileSystemChange.Changed ("file1.txt", Some "1b") 00:01:23 v #1304 > > FileSystemChange.Changed ("file2.txt", Some "2b") 00:01:23 v #1305 > > 00:01:23 v #1306 > > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b")) 00:01:23 v #1307 > > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b")) 00:01:23 v #1308 > > 00:01:23 v #1309 > > FileSystemChange.Changed ("file_1.txt", Some "1c") 00:01:23 v #1310 > > FileSystemChange.Changed ("file_2.txt", Some "2c") 00:01:23 v #1311 > > 00:01:23 v #1312 > > FileSystemChange.Deleted "file_1.txt" 00:01:23 v #1313 > > FileSystemChange.Deleted "file_2.txt" 00:01:23 v #1314 > > ]] 00:01:23 v #1315 > > 00:01:23 v #1316 > > run 00:01:23 v #1317 > > |> retry_fn 5 00:01:23 v #1318 > > |> _assertEqual (Some ()) 00:01:34 v #1319 > > 00:01:34 v #1320 > > ── [ 10.69s - stdout ] ───────────────────────────────────────────────────────── 00:01:34 v #1321 > > │ Some () 00:01:34 v #1322 > > │ 00:01:34 v #1323 > > │ 00:00:12 d #3 FileSystem.watchWithFilter / Disposing 00:01:34 v #1324 > > watch stream / filter: FileName, LastWrite 00:01:34 v #1325 > > │ 00:00:14 d #4 FileSystem.testEventsRaw / eventsLog: 00:01:34 v #1326 > > │ 0 / 638737681029586398 / Created 00:01:34 v #1327 > > │ ("file1.txt", 00:01:34 v #1328 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1329 > > │ 3482 / 638737681029589880 / Changed 00:01:34 v #1330 > > │ 00:01:34 v #1331 > > ("file1.txt"...11111111111111111111111111111111111111111111111a") 00:01:34 v #1332 > > │ 219 / 638737681029590099 / Changed 00:01:34 v #1333 > > │ 00:01:34 v #1334 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1335 > > │ 49 / 638737681029590148 / Changed 00:01:34 v #1336 > > │ ("file1.txt", 00:01:34 v #1337 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1338 > > │ 1818 / 638737681029591966 / Changed 00:01:34 v #1339 > > │ 00:01:34 v #1340 > > ("file1.txt"...11111111111111111111111111111111111111111111111a") 00:01:34 v #1341 > > │ 161 / 638737681029592127 / Changed 00:01:34 v #1342 > > │ 00:01:34 v #1343 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1344 > > │ 79 / 638737681029592206 / Changed 00:01:34 v #1345 > > │ ("file1.txt", 00:01:34 v #1346 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1347 > > │ 67 / 638737681029592273 / Changed 00:01:34 v #1348 > > │ ("file1.txt", 00:01:34 v #1349 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1350 > > │ 260 / 638737681029592533 / Changed 00:01:34 v #1351 > > │ 00:01:34 v #1352 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1353 > > │ 68 / 638737681029592601 / Changed 00:01:34 v #1354 > > │ ("file1.txt", 00:01:34 v #1355 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1356 > > │ 45 / 638737681029592646 / Changed 00:01:34 v #1357 > > │ ("file1.txt", 00:01:34 v #1358 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1359 > > │ 247 / 638737681029592893 / Changed 00:01:34 v #1360 > > │ 00:01:34 v #1361 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1362 > > │ 111 / 638737681029593004 / Changed 00:01:34 v #1363 > > │ 00:01:34 v #1364 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1365 > > │ 208 / 638737681029593212 / Changed 00:01:34 v #1366 > > │ 00:01:34 v #1367 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1368 > > │ 176 / 638737681029593388 / Changed 00:01:34 v #1369 > > │ 00:01:34 v #1370 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1371 > > │ 73 / 638737681029593461 / Changed 00:01:34 v #1372 > > │ ("file1.txt", 00:01:34 v #1373 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1374 > > │ 146 / 638737681029593607 / Changed 00:01:34 v #1375 > > │ 00:01:34 v #1376 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1377 > > │ 118 / 638737681029593725 / Changed 00:01:34 v #1378 > > │ 00:01:34 v #1379 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1380 > > │ 95 / 638737681029593820 / Changed 00:01:34 v #1381 > > │ ("file1.txt", 00:01:34 v #1382 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1383 > > │ 61 / 638737681029593881 / Changed 00:01:34 v #1384 > > │ ("file1.txt", 00:01:34 v #1385 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1386 > > │ 176 / 638737681029594057 / Changed 00:01:34 v #1387 > > │ 00:01:34 v #1388 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1389 > > │ 170 / 638737681029594227 / Changed 00:01:34 v #1390 > > │ 00:01:34 v #1391 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1392 > > │ 53 / 638737681029594280 / Changed 00:01:34 v #1393 > > │ ("file1.txt", 00:01:34 v #1394 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1395 > > │ 409 / 638737681029594689 / Changed 00:01:34 v #1396 > > │ 00:01:34 v #1397 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1398 > > │ 54 / 638737681029594743 / Changed 00:01:34 v #1399 > > │ ("file1.txt", 00:01:34 v #1400 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1401 > > │ 38 / 638737681029594781 / Changed 00:01:34 v #1402 > > │ ("file1.txt", 00:01:34 v #1403 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1404 > > │ 195 / 638737681029594976 / Changed 00:01:34 v #1405 > > │ 00:01:34 v #1406 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1407 > > │ 43 / 638737681029595019 / Changed 00:01:34 v #1408 > > │ ("file1.txt", 00:01:34 v #1409 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1410 > > │ 201 / 638737681029595220 / Changed 00:01:34 v #1411 > > │ 00:01:34 v #1412 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1413 > > │ 133 / 638737681029595353 / Changed 00:01:34 v #1414 > > │ 00:01:34 v #1415 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1416 > > │ 54 / 638737681029595407 / Changed 00:01:34 v #1417 > > │ ("file1.txt", 00:01:34 v #1418 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1419 > > │ 167 / 638737681029595574 / Changed 00:01:34 v #1420 > > │ 00:01:34 v #1421 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1422 > > │ 41 / 638737681029595615 / Changed 00:01:34 v #1423 > > │ ("file1.txt", 00:01:34 v #1424 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1425 > > │ 159 / 638737681029595774 / Changed 00:01:34 v #1426 > > │ 00:01:34 v #1427 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1428 > > │ 135 / 638737681029595909 / Changed 00:01:34 v #1429 > > │ 00:01:34 v #1430 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1431 > > │ 44 / 638737681029595953 / Changed 00:01:34 v #1432 > > │ ("file1.txt", 00:01:34 v #1433 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1434 > > │ 201 / 638737681029596154 / Changed 00:01:34 v #1435 > > │ 00:01:34 v #1436 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1437 > > │ 52 / 638737681029596206 / Changed 00:01:34 v #1438 > > │ ("file1.txt", 00:01:34 v #1439 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1440 > > │ 172 / 638737681029596378 / Changed 00:01:34 v #1441 > > │ 00:01:34 v #1442 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1443 > > │ 39 / 638737681029596417 / Changed 00:01:34 v #1444 > > │ ("file1.txt", 00:01:34 v #1445 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1446 > > │ 168 / 638737681029596585 / Changed 00:01:34 v #1447 > > │ 00:01:34 v #1448 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1449 > > │ 43 / 638737681029596628 / Changed 00:01:34 v #1450 > > │ ("file1.txt", 00:01:34 v #1451 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1452 > > │ 194 / 638737681029596822 / Changed 00:01:34 v #1453 > > │ 00:01:34 v #1454 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1455 > > │ 138 / 638737681029596960 / Changed 00:01:34 v #1456 > > │ 00:01:34 v #1457 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1458 > > │ 41 / 638737681029597001 / Changed 00:01:34 v #1459 > > │ ("file1.txt", 00:01:34 v #1460 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1461 > > │ 209 / 638737681029597210 / Changed 00:01:34 v #1462 > > │ 00:01:34 v #1463 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1464 > > │ 40 / 638737681029597250 / Changed 00:01:34 v #1465 > > │ ("file1.txt", 00:01:34 v #1466 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1467 > > │ 948 / 638737681029598198 / Changed 00:01:34 v #1468 > > │ 00:01:34 v #1469 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1470 > > │ 144 / 638737681029598342 / Changed 00:01:34 v #1471 > > │ 00:01:34 v #1472 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1473 > > │ 51 / 638737681029598393 / Changed 00:01:34 v #1474 > > │ ("file1.txt", 00:01:34 v #1475 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1476 > > │ 233 / 638737681029598626 / Changed 00:01:34 v #1477 > > │ 00:01:34 v #1478 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1479 > > │ 54 / 638737681029598680 / Changed 00:01:34 v #1480 > > │ ("file1.txt", 00:01:34 v #1481 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1482 > > │ 70 / 638737681029598750 / Changed 00:01:34 v #1483 > > │ ("file1.txt", 00:01:34 v #1484 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1485 > > │ 326 / 638737681029599076 / Changed 00:01:34 v #1486 > > │ 00:01:34 v #1487 > > ("file1.txt",...11111111111111111111111111111111111111111111111a") 00:01:34 v #1488 > > │ 56 / 638737681029599132 / Changed 00:01:34 v #1489 > > │ ("file1.txt", 00:01:34 v #1490 > > │ ...11111111111111111111111111111111111111111111111a") 00:01:34 v #1491 > > │ 12242 / 638737681029611374 / Created 00:01:34 v #1492 > > │ 00:01:34 v #1493 > > ("file2.txt...22222222222222222222222222222222222222222222222a") 00:01:34 v #1494 > > │ 195 / 638737681029611569 / Changed 00:01:34 v #1495 > > │ 00:01:34 v #1496 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1497 > > │ 544 / 638737681029612113 / Changed 00:01:34 v #1498 > > │ 00:01:34 v #1499 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1500 > > │ 458 / 638737681029612571 / Changed 00:01:34 v #1501 > > │ 00:01:34 v #1502 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1503 > > │ 68 / 638737681029612639 / Changed 00:01:34 v #1504 > > │ ("file2.txt", 00:01:34 v #1505 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1506 > > │ 66 / 638737681029612705 / Changed 00:01:34 v #1507 > > │ ("file2.txt", 00:01:34 v #1508 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1509 > > │ 1079 / 638737681029613784 / Changed 00:01:34 v #1510 > > │ 00:01:34 v #1511 > > ("file2.txt"...22222222222222222222222222222222222222222222222a") 00:01:34 v #1512 > > │ 86 / 638737681029613870 / Changed 00:01:34 v #1513 > > │ ("file2.txt", 00:01:34 v #1514 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1515 > > │ 47 / 638737681029613917 / Changed 00:01:34 v #1516 > > │ ("file2.txt", 00:01:34 v #1517 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1518 > > │ 235 / 638737681029614152 / Changed 00:01:34 v #1519 > > │ 00:01:34 v #1520 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1521 > > │ 57 / 638737681029614209 / Changed 00:01:34 v #1522 > > │ ("file2.txt", 00:01:34 v #1523 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1524 > > │ 166 / 638737681029614375 / Changed 00:01:34 v #1525 > > │ 00:01:34 v #1526 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1527 > > │ 165 / 638737681029614540 / Changed 00:01:34 v #1528 > > │ 00:01:34 v #1529 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1530 > > │ 66 / 638737681029614606 / Changed 00:01:34 v #1531 > > │ ("file2.txt", 00:01:34 v #1532 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1533 > > │ 208 / 638737681029614814 / Changed 00:01:34 v #1534 > > │ 00:01:34 v #1535 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1536 > > │ 56 / 638737681029614870 / Changed 00:01:34 v #1537 > > │ ("file2.txt", 00:01:34 v #1538 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1539 > > │ 155 / 638737681029615025 / Changed 00:01:34 v #1540 > > │ 00:01:34 v #1541 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1542 > > │ 49 / 638737681029615074 / Changed 00:01:34 v #1543 > > │ ("file2.txt", 00:01:34 v #1544 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1545 > > │ 229 / 638737681029615303 / Changed 00:01:34 v #1546 > > │ 00:01:34 v #1547 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1548 > > │ 57 / 638737681029615360 / Changed 00:01:34 v #1549 > > │ ("file2.txt", 00:01:34 v #1550 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1551 > > │ 190 / 638737681029615550 / Changed 00:01:34 v #1552 > > │ 00:01:34 v #1553 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1554 > > │ 50 / 638737681029615600 / Changed 00:01:34 v #1555 > > │ ("file2.txt", 00:01:34 v #1556 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1557 > > │ 250 / 638737681029615850 / Changed 00:01:34 v #1558 > > │ 00:01:34 v #1559 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1560 > > │ 59 / 638737681029615909 / Changed 00:01:34 v #1561 > > │ ("file2.txt", 00:01:34 v #1562 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1563 > > │ 156 / 638737681029616065 / Changed 00:01:34 v #1564 > > │ 00:01:34 v #1565 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1566 > > │ 131 / 638737681029616196 / Changed 00:01:34 v #1567 > > │ 00:01:34 v #1568 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1569 > > │ 196 / 638737681029616392 / Changed 00:01:34 v #1570 > > │ 00:01:34 v #1571 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1572 > > │ 72 / 638737681029616464 / Changed 00:01:34 v #1573 > > │ ("file2.txt", 00:01:34 v #1574 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1575 > > │ 213 / 638737681029616677 / Changed 00:01:34 v #1576 > > │ 00:01:34 v #1577 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1578 > > │ 57 / 638737681029616734 / Changed 00:01:34 v #1579 > > │ ("file2.txt", 00:01:34 v #1580 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1581 > > │ 172 / 638737681029616906 / Changed 00:01:34 v #1582 > > │ 00:01:34 v #1583 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1584 > > │ 265 / 638737681029617171 / Changed 00:01:34 v #1585 > > │ 00:01:34 v #1586 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1587 > > │ 55 / 638737681029617226 / Changed 00:01:34 v #1588 > > │ ("file2.txt", 00:01:34 v #1589 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1590 > > │ 2395 / 638737681029619621 / Changed 00:01:34 v #1591 > > │ 00:01:34 v #1592 > > ("file2.txt"...22222222222222222222222222222222222222222222222a") 00:01:34 v #1593 > > │ 113 / 638737681029619734 / Changed 00:01:34 v #1594 > > │ 00:01:34 v #1595 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1596 > > │ 228 / 638737681029619962 / Changed 00:01:34 v #1597 > > │ 00:01:34 v #1598 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1599 > > │ 53 / 638737681029620015 / Changed 00:01:34 v #1600 > > │ ("file2.txt", 00:01:34 v #1601 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1602 > > │ 235 / 638737681029620250 / Changed 00:01:34 v #1603 > > │ 00:01:34 v #1604 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1605 > > │ 178 / 638737681029620428 / Changed 00:01:34 v #1606 > > │ 00:01:34 v #1607 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1608 > > │ 1672 / 638737681029622100 / Changed 00:01:34 v #1609 > > │ 00:01:34 v #1610 > > ("file2.txt"...22222222222222222222222222222222222222222222222a") 00:01:34 v #1611 > > │ 95 / 638737681029622195 / Changed 00:01:34 v #1612 > > │ ("file2.txt", 00:01:34 v #1613 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1614 > > │ 247 / 638737681029622442 / Changed 00:01:34 v #1615 > > │ 00:01:34 v #1616 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1617 > > │ 246 / 638737681029622688 / Changed 00:01:34 v #1618 > > │ 00:01:34 v #1619 > > ("file2.txt",...22222222222222222222222222222222222222222222222a") 00:01:34 v #1620 > > │ 58 / 638737681029622746 / Changed 00:01:34 v #1621 > > │ ("file2.txt", 00:01:34 v #1622 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1623 > > │ 1417 / 638737681029624163 / Changed 00:01:34 v #1624 > > │ 00:01:34 v #1625 > > ("file2.txt"...22222222222222222222222222222222222222222222222a") 00:01:34 v #1626 > > │ 66 / 638737681029624229 / Changed 00:01:34 v #1627 > > │ ("file2.txt", 00:01:34 v #1628 > > │ ...22222222222222222222222222222222222222222222222a") 00:01:34 v #1629 > > │ 3020 / 638737681029627249 / Changed 00:01:34 v #1630 > > │ 00:01:34 v #1631 > > ("file2.txt"...22222222222222222222222222222222222222222222222a") 00:01:34 v #1632 > > │ 15048673 / 638737681044675922 / Changed 00:01:34 v #1633 > > │ 00:01:34 v #1634 > > ("file1....11111111111111111111111111111111111111111111111b") 00:01:34 v #1635 > > │ 393 / 638737681044676315 / Changed 00:01:34 v #1636 > > │ 00:01:34 v #1637 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1638 > > │ 440 / 638737681044676755 / Changed 00:01:34 v #1639 > > │ 00:01:34 v #1640 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1641 > > │ 290 / 638737681044677045 / Changed 00:01:34 v #1642 > > │ 00:01:34 v #1643 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1644 > > │ 40 / 638737681044677085 / Changed 00:01:34 v #1645 > > │ ("file1.txt", 00:01:34 v #1646 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1647 > > │ 49 / 638737681044677134 / Changed 00:01:34 v #1648 > > │ ("file1.txt", 00:01:34 v #1649 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1650 > > │ 2494 / 638737681044679628 / Changed 00:01:34 v #1651 > > │ 00:01:34 v #1652 > > ("file1.txt"...11111111111111111111111111111111111111111111111b") 00:01:34 v #1653 > > │ 136 / 638737681044679764 / Changed 00:01:34 v #1654 > > │ 00:01:34 v #1655 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1656 > > │ 246 / 638737681044680010 / Changed 00:01:34 v #1657 > > │ 00:01:34 v #1658 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1659 > > │ 399 / 638737681044680409 / Changed 00:01:34 v #1660 > > │ 00:01:34 v #1661 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1662 > > │ 458 / 638737681044680867 / Changed 00:01:34 v #1663 > > │ 00:01:34 v #1664 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1665 > > │ 69 / 638737681044680936 / Changed 00:01:34 v #1666 > > │ ("file1.txt", 00:01:34 v #1667 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1668 > > │ 266 / 638737681044681202 / Changed 00:01:34 v #1669 > > │ 00:01:34 v #1670 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1671 > > │ 168 / 638737681044681370 / Changed 00:01:34 v #1672 > > │ 00:01:34 v #1673 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1674 > > │ 175 / 638737681044681545 / Changed 00:01:34 v #1675 > > │ 00:01:34 v #1676 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1677 > > │ 159 / 638737681044681704 / Changed 00:01:34 v #1678 > > │ 00:01:34 v #1679 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1680 > > │ 179 / 638737681044681883 / Changed 00:01:34 v #1681 > > │ 00:01:34 v #1682 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1683 > > │ 154 / 638737681044682037 / Changed 00:01:34 v #1684 > > │ 00:01:34 v #1685 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1686 > > │ 151 / 638737681044682188 / Changed 00:01:34 v #1687 > > │ 00:01:34 v #1688 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1689 > > │ 155 / 638737681044682343 / Changed 00:01:34 v #1690 > > │ 00:01:34 v #1691 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1692 > > │ 165 / 638737681044682508 / Changed 00:01:34 v #1693 > > │ 00:01:34 v #1694 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1695 > > │ 170 / 638737681044682678 / Changed 00:01:34 v #1696 > > │ 00:01:34 v #1697 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1698 > > │ 156 / 638737681044682834 / Changed 00:01:34 v #1699 > > │ 00:01:34 v #1700 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1701 > > │ 61 / 638737681044682895 / Changed 00:01:34 v #1702 > > │ ("file1.txt", 00:01:34 v #1703 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1704 > > │ 302 / 638737681044683197 / Changed 00:01:34 v #1705 > > │ 00:01:34 v #1706 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1707 > > │ 48 / 638737681044683245 / Changed 00:01:34 v #1708 > > │ ("file1.txt", 00:01:34 v #1709 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1710 > > │ 279 / 638737681044683524 / Changed 00:01:34 v #1711 > > │ 00:01:34 v #1712 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1713 > > │ 332 / 638737681044683856 / Changed 00:01:34 v #1714 > > │ 00:01:34 v #1715 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1716 > > │ 51 / 638737681044683907 / Changed 00:01:34 v #1717 > > │ ("file1.txt", 00:01:34 v #1718 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1719 > > │ 261 / 638737681044684168 / Changed 00:01:34 v #1720 > > │ 00:01:34 v #1721 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1722 > > │ 53 / 638737681044684221 / Changed 00:01:34 v #1723 > > │ ("file1.txt", 00:01:34 v #1724 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1725 > > │ 57 / 638737681044684278 / Changed 00:01:34 v #1726 > > │ ("file1.txt", 00:01:34 v #1727 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1728 > > │ 266 / 638737681044684544 / Changed 00:01:34 v #1729 > > │ 00:01:34 v #1730 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1731 > > │ 184 / 638737681044684728 / Changed 00:01:34 v #1732 > > │ 00:01:34 v #1733 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1734 > > │ 44 / 638737681044684772 / Changed 00:01:34 v #1735 > > │ ("file1.txt", 00:01:34 v #1736 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1737 > > │ 216 / 638737681044684988 / Changed 00:01:34 v #1738 > > │ 00:01:34 v #1739 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1740 > > │ 187 / 638737681044685175 / Changed 00:01:34 v #1741 > > │ 00:01:34 v #1742 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1743 > > │ 47 / 638737681044685222 / Changed 00:01:34 v #1744 > > │ ("file1.txt", 00:01:34 v #1745 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1746 > > │ 219 / 638737681044685441 / Changed 00:01:34 v #1747 > > │ 00:01:34 v #1748 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1749 > > │ 40 / 638737681044685481 / Changed 00:01:34 v #1750 > > │ ("file1.txt", 00:01:34 v #1751 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1752 > > │ 198 / 638737681044685679 / Changed 00:01:34 v #1753 > > │ 00:01:34 v #1754 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1755 > > │ 192 / 638737681044685871 / Changed 00:01:34 v #1756 > > │ 00:01:34 v #1757 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1758 > > │ 45 / 638737681044685916 / Changed 00:01:34 v #1759 > > │ ("file1.txt", 00:01:34 v #1760 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1761 > > │ 241 / 638737681044686157 / Changed 00:01:34 v #1762 > > │ 00:01:34 v #1763 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1764 > > │ 43 / 638737681044686200 / Changed 00:01:34 v #1765 > > │ ("file1.txt", 00:01:34 v #1766 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1767 > > │ 226 / 638737681044686426 / Changed 00:01:34 v #1768 > > │ 00:01:34 v #1769 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1770 > > │ 54 / 638737681044686480 / Changed 00:01:34 v #1771 > > │ ("file1.txt", 00:01:34 v #1772 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1773 > > │ 37 / 638737681044686517 / Changed 00:01:34 v #1774 > > │ ("file1.txt", 00:01:34 v #1775 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1776 > > │ 780 / 638737681044687297 / Changed 00:01:34 v #1777 > > │ 00:01:34 v #1778 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1779 > > │ 56 / 638737681044687353 / Changed 00:01:34 v #1780 > > │ ("file1.txt", 00:01:34 v #1781 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1782 > > │ 35 / 638737681044687388 / Changed 00:01:34 v #1783 > > │ ("file1.txt", 00:01:34 v #1784 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1785 > > │ 265 / 638737681044687653 / Changed 00:01:34 v #1786 > > │ 00:01:34 v #1787 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1788 > > │ 159 / 638737681044687812 / Changed 00:01:34 v #1789 > > │ 00:01:34 v #1790 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1791 > > │ 361 / 638737681044688173 / Changed 00:01:34 v #1792 > > │ 00:01:34 v #1793 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1794 > > │ 259 / 638737681044688432 / Changed 00:01:34 v #1795 > > │ 00:01:34 v #1796 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1797 > > │ 161 / 638737681044688593 / Changed 00:01:34 v #1798 > > │ 00:01:34 v #1799 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1800 > > │ 165 / 638737681044688758 / Changed 00:01:34 v #1801 > > │ 00:01:34 v #1802 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1803 > > │ 153 / 638737681044688911 / Changed 00:01:34 v #1804 > > │ 00:01:34 v #1805 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1806 > > │ 169 / 638737681044689080 / Changed 00:01:34 v #1807 > > │ 00:01:34 v #1808 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1809 > > │ 152 / 638737681044689232 / Changed 00:01:34 v #1810 > > │ 00:01:34 v #1811 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1812 > > │ 159 / 638737681044689391 / Changed 00:01:34 v #1813 > > │ 00:01:34 v #1814 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1815 > > │ 128 / 638737681044689519 / Changed 00:01:34 v #1816 > > │ 00:01:34 v #1817 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1818 > > │ 185 / 638737681044689704 / Changed 00:01:34 v #1819 > > │ 00:01:34 v #1820 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1821 > > │ 47 / 638737681044689751 / Changed 00:01:34 v #1822 > > │ ("file1.txt", 00:01:34 v #1823 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1824 > > │ 751 / 638737681044690502 / Changed 00:01:34 v #1825 > > │ 00:01:34 v #1826 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1827 > > │ 66 / 638737681044690568 / Changed 00:01:34 v #1828 > > │ ("file1.txt", 00:01:34 v #1829 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1830 > > │ 39 / 638737681044690607 / Changed 00:01:34 v #1831 > > │ ("file1.txt", 00:01:34 v #1832 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1833 > > │ 208 / 638737681044690815 / Changed 00:01:34 v #1834 > > │ 00:01:34 v #1835 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1836 > > │ 46 / 638737681044690861 / Changed 00:01:34 v #1837 > > │ ("file1.txt", 00:01:34 v #1838 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1839 > > │ 178 / 638737681044691039 / Changed 00:01:34 v #1840 > > │ 00:01:34 v #1841 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1842 > > │ 553 / 638737681044691592 / Changed 00:01:34 v #1843 > > │ 00:01:34 v #1844 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1845 > > │ 55 / 638737681044691647 / Changed 00:01:34 v #1846 > > │ ("file1.txt", 00:01:34 v #1847 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1848 > > │ 40 / 638737681044691687 / Changed 00:01:34 v #1849 > > │ ("file1.txt", 00:01:34 v #1850 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1851 > > │ 197 / 638737681044691884 / Changed 00:01:34 v #1852 > > │ 00:01:34 v #1853 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1854 > > │ 47 / 638737681044691931 / Changed 00:01:34 v #1855 > > │ ("file1.txt", 00:01:34 v #1856 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1857 > > │ 179 / 638737681044692110 / Changed 00:01:34 v #1858 > > │ 00:01:34 v #1859 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1860 > > │ 160 / 638737681044692270 / Changed 00:01:34 v #1861 > > │ 00:01:34 v #1862 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1863 > > │ 168 / 638737681044692438 / Changed 00:01:34 v #1864 > > │ 00:01:34 v #1865 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1866 > > │ 214 / 638737681044692652 / Changed 00:01:34 v #1867 > > │ 00:01:34 v #1868 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1869 > > │ 192 / 638737681044692844 / Changed 00:01:34 v #1870 > > │ 00:01:34 v #1871 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1872 > > │ 45 / 638737681044692889 / Changed 00:01:34 v #1873 > > │ ("file1.txt", 00:01:34 v #1874 > > │ ...11111111111111111111111111111111111111111111111b") 00:01:34 v #1875 > > │ 208 / 638737681044693097 / Changed 00:01:34 v #1876 > > │ 00:01:34 v #1877 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1878 > > │ 657 / 638737681044693754 / Changed 00:01:34 v #1879 > > │ 00:01:34 v #1880 > > ("file1.txt",...11111111111111111111111111111111111111111111111b") 00:01:34 v #1881 > > │ 17613 / 638737681044711367 / Changed 00:01:34 v #1882 > > │ 00:01:34 v #1883 > > ("file2.txt...22222222222222222222222222222222222222222222222b") 00:01:34 v #1884 > > │ 119 / 638737681044711486 / Changed 00:01:34 v #1885 > > │ 00:01:34 v #1886 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1887 > > │ 308 / 638737681044711794 / Changed 00:01:34 v #1888 > > │ 00:01:34 v #1889 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1890 > > │ 192 / 638737681044711986 / Changed 00:01:34 v #1891 > > │ 00:01:34 v #1892 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1893 > > │ 184 / 638737681044712170 / Changed 00:01:34 v #1894 > > │ 00:01:34 v #1895 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1896 > > │ 223 / 638737681044712393 / Changed 00:01:34 v #1897 > > │ 00:01:34 v #1898 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1899 > > │ 50 / 638737681044712443 / Changed 00:01:34 v #1900 > > │ ("file2.txt", 00:01:34 v #1901 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1902 > > │ 165 / 638737681044712608 / Changed 00:01:34 v #1903 > > │ 00:01:34 v #1904 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1905 > > │ 45 / 638737681044712653 / Changed 00:01:34 v #1906 > > │ ("file2.txt", 00:01:34 v #1907 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1908 > > │ 148 / 638737681044712801 / Changed 00:01:34 v #1909 > > │ 00:01:34 v #1910 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1911 > > │ 113 / 638737681044712914 / Changed 00:01:34 v #1912 > > │ 00:01:34 v #1913 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1914 > > │ 167 / 638737681044713081 / Changed 00:01:34 v #1915 > > │ 00:01:34 v #1916 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1917 > > │ 314 / 638737681044713395 / Changed 00:01:34 v #1918 > > │ 00:01:34 v #1919 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1920 > > │ 210 / 638737681044713605 / Changed 00:01:34 v #1921 > > │ 00:01:34 v #1922 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1923 > > │ 49 / 638737681044713654 / Changed 00:01:34 v #1924 > > │ ("file2.txt", 00:01:34 v #1925 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1926 > > │ 207 / 638737681044713861 / Changed 00:01:34 v #1927 > > │ 00:01:34 v #1928 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1929 > > │ 191 / 638737681044714052 / Changed 00:01:34 v #1930 > > │ 00:01:34 v #1931 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1932 > > │ 186 / 638737681044714238 / Changed 00:01:34 v #1933 > > │ 00:01:34 v #1934 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1935 > > │ 43 / 638737681044714281 / Changed 00:01:34 v #1936 > > │ ("file2.txt", 00:01:34 v #1937 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1938 > > │ 775 / 638737681044715056 / Changed 00:01:34 v #1939 > > │ 00:01:34 v #1940 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1941 > > │ 42 / 638737681044715098 / Changed 00:01:34 v #1942 > > │ ("file2.txt", 00:01:34 v #1943 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1944 > > │ 45 / 638737681044715143 / Changed 00:01:34 v #1945 > > │ ("file2.txt", 00:01:34 v #1946 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1947 > > │ 196 / 638737681044715339 / Changed 00:01:34 v #1948 > > │ 00:01:34 v #1949 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1950 > > │ 46 / 638737681044715385 / Changed 00:01:34 v #1951 > > │ ("file2.txt", 00:01:34 v #1952 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1953 > > │ 182 / 638737681044715567 / Changed 00:01:34 v #1954 > > │ 00:01:34 v #1955 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1956 > > │ 169 / 638737681044715736 / Changed 00:01:34 v #1957 > > │ 00:01:34 v #1958 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1959 > > │ 199 / 638737681044715935 / Changed 00:01:34 v #1960 > > │ 00:01:34 v #1961 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1962 > > │ 166 / 638737681044716101 / Changed 00:01:34 v #1963 > > │ 00:01:34 v #1964 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1965 > > │ 151 / 638737681044716252 / Changed 00:01:34 v #1966 > > │ 00:01:34 v #1967 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1968 > > │ 152 / 638737681044716404 / Changed 00:01:34 v #1969 > > │ 00:01:34 v #1970 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1971 > > │ 163 / 638737681044716567 / Changed 00:01:34 v #1972 > > │ 00:01:34 v #1973 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1974 > > │ 145 / 638737681044716712 / Changed 00:01:34 v #1975 > > │ 00:01:34 v #1976 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1977 > > │ 575 / 638737681044717287 / Changed 00:01:34 v #1978 > > │ 00:01:34 v #1979 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1980 > > │ 48 / 638737681044717335 / Changed 00:01:34 v #1981 > > │ ("file2.txt", 00:01:34 v #1982 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #1983 > > │ 156 / 638737681044717491 / Changed 00:01:34 v #1984 > > │ 00:01:34 v #1985 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1986 > > │ 164 / 638737681044717655 / Changed 00:01:34 v #1987 > > │ 00:01:34 v #1988 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1989 > > │ 153 / 638737681044717808 / Changed 00:01:34 v #1990 > > │ 00:01:34 v #1991 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1992 > > │ 153 / 638737681044717961 / Changed 00:01:34 v #1993 > > │ 00:01:34 v #1994 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1995 > > │ 326 / 638737681044718287 / Changed 00:01:34 v #1996 > > │ 00:01:34 v #1997 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #1998 > > │ 155 / 638737681044718442 / Changed 00:01:34 v #1999 > > │ 00:01:34 v #2000 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2001 > > │ 194 / 638737681044718636 / Changed 00:01:34 v #2002 > > │ 00:01:34 v #2003 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2004 > > │ 35 / 638737681044718671 / Changed 00:01:34 v #2005 > > │ ("file2.txt", 00:01:34 v #2006 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2007 > > │ 399 / 638737681044719070 / Changed 00:01:34 v #2008 > > │ 00:01:34 v #2009 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2010 > > │ 55 / 638737681044719125 / Changed 00:01:34 v #2011 > > │ ("file2.txt", 00:01:34 v #2012 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2013 > > │ 275 / 638737681044719400 / Changed 00:01:34 v #2014 > > │ 00:01:34 v #2015 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2016 > > │ 134 / 638737681044719534 / Changed 00:01:34 v #2017 > > │ 00:01:34 v #2018 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2019 > > │ 167 / 638737681044719701 / Changed 00:01:34 v #2020 > > │ 00:01:34 v #2021 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2022 > > │ 42 / 638737681044719743 / Changed 00:01:34 v #2023 > > │ ("file2.txt", 00:01:34 v #2024 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2025 > > │ 219 / 638737681044719962 / Changed 00:01:34 v #2026 > > │ 00:01:34 v #2027 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2028 > > │ 186 / 638737681044720148 / Changed 00:01:34 v #2029 > > │ 00:01:34 v #2030 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2031 > > │ 37 / 638737681044720185 / Changed 00:01:34 v #2032 > > │ ("file2.txt", 00:01:34 v #2033 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2034 > > │ 771 / 638737681044720956 / Changed 00:01:34 v #2035 > > │ 00:01:34 v #2036 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2037 > > │ 61 / 638737681044721017 / Changed 00:01:34 v #2038 > > │ ("file2.txt", 00:01:34 v #2039 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2040 > > │ 203 / 638737681044721220 / Changed 00:01:34 v #2041 > > │ 00:01:34 v #2042 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2043 > > │ 43 / 638737681044721263 / Changed 00:01:34 v #2044 > > │ ("file2.txt", 00:01:34 v #2045 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2046 > > │ 205 / 638737681044721468 / Changed 00:01:34 v #2047 > > │ 00:01:34 v #2048 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2049 > > │ 166 / 638737681044721634 / Changed 00:01:34 v #2050 > > │ 00:01:34 v #2051 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2052 > > │ 170 / 638737681044721804 / Changed 00:01:34 v #2053 > > │ 00:01:34 v #2054 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2055 > > │ 154 / 638737681044721958 / Changed 00:01:34 v #2056 > > │ 00:01:34 v #2057 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2058 > > │ 153 / 638737681044722111 / Changed 00:01:34 v #2059 > > │ 00:01:34 v #2060 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2061 > > │ 152 / 638737681044722263 / Changed 00:01:34 v #2062 > > │ 00:01:34 v #2063 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2064 > > │ 164 / 638737681044722427 / Changed 00:01:34 v #2065 > > │ 00:01:34 v #2066 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2067 > > │ 156 / 638737681044722583 / Changed 00:01:34 v #2068 > > │ 00:01:34 v #2069 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2070 > > │ 53 / 638737681044722636 / Changed 00:01:34 v #2071 > > │ ("file2.txt", 00:01:34 v #2072 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2073 > > │ 157 / 638737681044722793 / Changed 00:01:34 v #2074 > > │ 00:01:34 v #2075 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2076 > > │ 171 / 638737681044722964 / Changed 00:01:34 v #2077 > > │ 00:01:34 v #2078 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2079 > > │ 169 / 638737681044723133 / Changed 00:01:34 v #2080 > > │ 00:01:34 v #2081 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2082 > > │ 37 / 638737681044723170 / Changed 00:01:34 v #2083 > > │ ("file2.txt", 00:01:34 v #2084 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2085 > > │ 188 / 638737681044723358 / Changed 00:01:34 v #2086 > > │ 00:01:34 v #2087 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2088 > > │ 41 / 638737681044723399 / Changed 00:01:34 v #2089 > > │ ("file2.txt", 00:01:34 v #2090 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2091 > > │ 684 / 638737681044724083 / Changed 00:01:34 v #2092 > > │ 00:01:34 v #2093 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2094 > > │ 63 / 638737681044724146 / Changed 00:01:34 v #2095 > > │ ("file2.txt", 00:01:34 v #2096 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2097 > > │ 34 / 638737681044724180 / Changed 00:01:34 v #2098 > > │ ("file2.txt", 00:01:34 v #2099 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2100 > > │ 216 / 638737681044724396 / Changed 00:01:34 v #2101 > > │ 00:01:34 v #2102 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2103 > > │ 152 / 638737681044724548 / Changed 00:01:34 v #2104 > > │ 00:01:34 v #2105 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2106 > > │ 160 / 638737681044724708 / Changed 00:01:34 v #2107 > > │ 00:01:34 v #2108 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2109 > > │ 43 / 638737681044724751 / Changed 00:01:34 v #2110 > > │ ("file2.txt", 00:01:34 v #2111 > > │ ...22222222222222222222222222222222222222222222222b") 00:01:34 v #2112 > > │ 184 / 638737681044724935 / Changed 00:01:34 v #2113 > > │ 00:01:34 v #2114 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2115 > > │ 173 / 638737681044725108 / Changed 00:01:34 v #2116 > > │ 00:01:34 v #2117 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2118 > > │ 149 / 638737681044725257 / Changed 00:01:34 v #2119 > > │ 00:01:34 v #2120 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2121 > > │ 151 / 638737681044725408 / Changed 00:01:34 v #2122 > > │ 00:01:34 v #2123 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2124 > > │ 156 / 638737681044725564 / Changed 00:01:34 v #2125 > > │ 00:01:34 v #2126 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2127 > > │ 170 / 638737681044725734 / Changed 00:01:34 v #2128 > > │ 00:01:34 v #2129 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2130 > > │ 152 / 638737681044725886 / Changed 00:01:34 v #2131 > > │ 00:01:34 v #2132 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2133 > > │ 192 / 638737681044726078 / Changed 00:01:34 v #2134 > > │ 00:01:34 v #2135 > > ("file2.txt",...22222222222222222222222222222222222222222222222b") 00:01:34 v #2136 > > │ 15412 / 638737681044741490 / Changed 00:01:34 v #2137 > > │ 00:01:34 v #2138 > > ("file2.txt...22222222222222222222222222222222222222222222222b") 00:01:34 v #2139 > > │ 18868 / 638737681044760358 / Changed 00:01:34 v #2140 > > │ 00:01:34 v #2141 > > ("file2.txt...22222222222222222222222222222222222222222222222b") 00:01:34 v #2142 > > │ 15019992 / 638737681059780350 / Renamed 00:01:34 v #2143 > > │ 00:01:34 v #2144 > > ("file1....1111111111111111111111111111111111111111111111b")) 00:01:34 v #2145 > > │ 420 / 638737681059780770 / Renamed 00:01:34 v #2146 > > │ 00:01:34 v #2147 > > ("file2.txt",...2222222222222222222222222222222222222222222222b")) 00:01:34 v #2148 > > │ 15033033 / 638737681074813803 / Changed 00:01:34 v #2149 > > │ 00:01:34 v #2150 > > ("file_1...11111111111111111111111111111111111111111111111c") 00:01:34 v #2151 > > │ 352 / 638737681074814155 / Changed 00:01:34 v #2152 > > │ 00:01:34 v #2153 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2154 > > │ 444 / 638737681074814599 / Changed 00:01:34 v #2155 > > │ 00:01:34 v #2156 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2157 > > │ 1248 / 638737681074815847 / Changed 00:01:34 v #2158 > > │ 00:01:34 v #2159 > > ("file_1.txt...11111111111111111111111111111111111111111111111c") 00:01:34 v #2160 > > │ 160 / 638737681074816007 / Changed 00:01:34 v #2161 > > │ 00:01:34 v #2162 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2163 > > │ 51 / 638737681074816058 / Changed 00:01:34 v #2164 > > │ 00:01:34 v #2165 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2166 > > │ 269 / 638737681074816327 / Changed 00:01:34 v #2167 > > │ 00:01:34 v #2168 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2169 > > │ 190 / 638737681074816517 / Changed 00:01:34 v #2170 > > │ 00:01:34 v #2171 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2172 > > │ 176 / 638737681074816693 / Changed 00:01:34 v #2173 > > │ 00:01:34 v #2174 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2175 > > │ 367 / 638737681074817060 / Changed 00:01:34 v #2176 > > │ 00:01:34 v #2177 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2178 > > │ 53 / 638737681074817113 / Changed 00:01:34 v #2179 > > │ 00:01:34 v #2180 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2181 > > │ 220 / 638737681074817333 / Changed 00:01:34 v #2182 > > │ 00:01:34 v #2183 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2184 > > │ 47 / 638737681074817380 / Changed 00:01:34 v #2185 > > │ 00:01:34 v #2186 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2187 > > │ 393 / 638737681074817773 / Changed 00:01:34 v #2188 > > │ 00:01:34 v #2189 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2190 > > │ 34 / 638737681074817807 / Changed 00:01:34 v #2191 > > │ 00:01:34 v #2192 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2193 > > │ 388 / 638737681074818195 / Changed 00:01:34 v #2194 > > │ 00:01:34 v #2195 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2196 > > │ 196 / 638737681074818391 / Changed 00:01:34 v #2197 > > │ 00:01:34 v #2198 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2199 > > │ 207 / 638737681074818598 / Changed 00:01:34 v #2200 > > │ 00:01:34 v #2201 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2202 > > │ 319 / 638737681074818917 / Changed 00:01:34 v #2203 > > │ 00:01:34 v #2204 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2205 > > │ 283 / 638737681074819200 / Changed 00:01:34 v #2206 > > │ 00:01:34 v #2207 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2208 > > │ 38 / 638737681074819238 / Changed 00:01:34 v #2209 > > │ 00:01:34 v #2210 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2211 > > │ 227 / 638737681074819465 / Changed 00:01:34 v #2212 > > │ 00:01:34 v #2213 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2214 > > │ 24 / 638737681074819489 / Changed 00:01:34 v #2215 > > │ 00:01:34 v #2216 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2217 > > │ 181 / 638737681074819670 / Changed 00:01:34 v #2218 > > │ 00:01:34 v #2219 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2220 > > │ 40 / 638737681074819710 / Changed 00:01:34 v #2221 > > │ 00:01:34 v #2222 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2223 > > │ 249 / 638737681074819959 / Changed 00:01:34 v #2224 > > │ 00:01:34 v #2225 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2226 > > │ 333 / 638737681074820292 / Changed 00:01:34 v #2227 > > │ 00:01:34 v #2228 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2229 > > │ 103 / 638737681074820395 / Changed 00:01:34 v #2230 > > │ 00:01:34 v #2231 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2232 > > │ 136 / 638737681074820531 / Changed 00:01:34 v #2233 > > │ 00:01:34 v #2234 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2235 > > │ 844 / 638737681074821375 / Changed 00:01:34 v #2236 > > │ 00:01:34 v #2237 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2238 > > │ 75 / 638737681074821450 / Changed 00:01:34 v #2239 > > │ 00:01:34 v #2240 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2241 > > │ 327 / 638737681074821777 / Changed 00:01:34 v #2242 > > │ 00:01:34 v #2243 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2244 > > │ 181 / 638737681074821958 / Changed 00:01:34 v #2245 > > │ 00:01:34 v #2246 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2247 > > │ 48 / 638737681074822006 / Changed 00:01:34 v #2248 > > │ 00:01:34 v #2249 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2250 > > │ 54 / 638737681074822060 / Changed 00:01:34 v #2251 > > │ 00:01:34 v #2252 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2253 > > │ 378 / 638737681074822438 / Changed 00:01:34 v #2254 > > │ 00:01:34 v #2255 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2256 > > │ 64 / 638737681074822502 / Changed 00:01:34 v #2257 > > │ 00:01:34 v #2258 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2259 > > │ 42 / 638737681074822544 / Changed 00:01:34 v #2260 > > │ 00:01:34 v #2261 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2262 > > │ 280 / 638737681074822824 / Changed 00:01:34 v #2263 > > │ 00:01:34 v #2264 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2265 > > │ 49 / 638737681074822873 / Changed 00:01:34 v #2266 > > │ 00:01:34 v #2267 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2268 > > │ 224 / 638737681074823097 / Changed 00:01:34 v #2269 > > │ 00:01:34 v #2270 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2271 > > │ 247 / 638737681074823344 / Changed 00:01:34 v #2272 > > │ 00:01:34 v #2273 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2274 > > │ 184 / 638737681074823528 / Changed 00:01:34 v #2275 > > │ 00:01:34 v #2276 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2277 > > │ 38 / 638737681074823566 / Changed 00:01:34 v #2278 > > │ 00:01:34 v #2279 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2280 > > │ 199 / 638737681074823765 / Changed 00:01:34 v #2281 > > │ 00:01:34 v #2282 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2283 > > │ 38 / 638737681074823803 / Changed 00:01:34 v #2284 > > │ 00:01:34 v #2285 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2286 > > │ 204 / 638737681074824007 / Changed 00:01:34 v #2287 > > │ 00:01:34 v #2288 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2289 > > │ 204 / 638737681074824211 / Changed 00:01:34 v #2290 > > │ 00:01:34 v #2291 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2292 > > │ 116 / 638737681074824327 / Changed 00:01:34 v #2293 > > │ 00:01:34 v #2294 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2295 > > │ 162 / 638737681074824489 / Changed 00:01:34 v #2296 > > │ 00:01:34 v #2297 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2298 > > │ 150 / 638737681074824639 / Changed 00:01:34 v #2299 > > │ 00:01:34 v #2300 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2301 > > │ 38 / 638737681074824677 / Changed 00:01:34 v #2302 > > │ 00:01:34 v #2303 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2304 > > │ 998 / 638737681074825675 / Changed 00:01:34 v #2305 > > │ 00:01:34 v #2306 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2307 > > │ 57 / 638737681074825732 / Changed 00:01:34 v #2308 > > │ 00:01:34 v #2309 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2310 > > │ 184 / 638737681074825916 / Changed 00:01:34 v #2311 > > │ 00:01:34 v #2312 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2313 > > │ 152 / 638737681074826068 / Changed 00:01:34 v #2314 > > │ 00:01:34 v #2315 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2316 > > │ 167 / 638737681074826235 / Changed 00:01:34 v #2317 > > │ 00:01:34 v #2318 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2319 > > │ 45 / 638737681074826280 / Changed 00:01:34 v #2320 > > │ 00:01:34 v #2321 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2322 > > │ 169 / 638737681074826449 / Changed 00:01:34 v #2323 > > │ 00:01:34 v #2324 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2325 > > │ 160 / 638737681074826609 / Changed 00:01:34 v #2326 > > │ 00:01:34 v #2327 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2328 > > │ 139 / 638737681074826748 / Changed 00:01:34 v #2329 > > │ 00:01:34 v #2330 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2331 > > │ 136 / 638737681074826884 / Changed 00:01:34 v #2332 > > │ 00:01:34 v #2333 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2334 > > │ 152 / 638737681074827036 / Changed 00:01:34 v #2335 > > │ 00:01:34 v #2336 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2337 > > │ 410 / 638737681074827446 / Changed 00:01:34 v #2338 > > │ 00:01:34 v #2339 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2340 > > │ 58 / 638737681074827504 / Changed 00:01:34 v #2341 > > │ 00:01:34 v #2342 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2343 > > │ 135 / 638737681074827639 / Changed 00:01:34 v #2344 > > │ 00:01:34 v #2345 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2346 > > │ 133 / 638737681074827772 / Changed 00:01:34 v #2347 > > │ 00:01:34 v #2348 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2349 > > │ 688 / 638737681074828460 / Changed 00:01:34 v #2350 > > │ 00:01:34 v #2351 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2352 > > │ 83 / 638737681074828543 / Changed 00:01:34 v #2353 > > │ 00:01:34 v #2354 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2355 > > │ 193 / 638737681074828736 / Changed 00:01:34 v #2356 > > │ 00:01:34 v #2357 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2358 > > │ 45 / 638737681074828781 / Changed 00:01:34 v #2359 > > │ 00:01:34 v #2360 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2361 > > │ 202 / 638737681074828983 / Changed 00:01:34 v #2362 > > │ 00:01:34 v #2363 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2364 > > │ 54 / 638737681074829037 / Changed 00:01:34 v #2365 > > │ 00:01:34 v #2366 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2367 > > │ 164 / 638737681074829201 / Changed 00:01:34 v #2368 > > │ 00:01:34 v #2369 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2370 > > │ 40 / 638737681074829241 / Changed 00:01:34 v #2371 > > │ 00:01:34 v #2372 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2373 > > │ 173 / 638737681074829414 / Changed 00:01:34 v #2374 > > │ 00:01:34 v #2375 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2376 > > │ 37 / 638737681074829451 / Changed 00:01:34 v #2377 > > │ 00:01:34 v #2378 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2379 > > │ 198 / 638737681074829649 / Changed 00:01:34 v #2380 > > │ 00:01:34 v #2381 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2382 > > │ 38 / 638737681074829687 / Changed 00:01:34 v #2383 > > │ 00:01:34 v #2384 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2385 > > │ 249 / 638737681074829936 / Changed 00:01:34 v #2386 > > │ 00:01:34 v #2387 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2388 > > │ 54 / 638737681074829990 / Changed 00:01:34 v #2389 > > │ 00:01:34 v #2390 > > ("file_1.txt",...11111111111111111111111111111111111111111111111c") 00:01:34 v #2391 > > │ 768 / 638737681074830758 / Changed 00:01:34 v #2392 > > │ 00:01:34 v #2393 > > ("file_1.txt"...11111111111111111111111111111111111111111111111c") 00:01:34 v #2394 > > │ 18918 / 638737681074849676 / Changed 00:01:34 v #2395 > > │ 00:01:34 v #2396 > > ("file_2.tx...22222222222222222222222222222222222222222222222c") 00:01:34 v #2397 > > │ 122 / 638737681074849798 / Changed 00:01:34 v #2398 > > │ 00:01:34 v #2399 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2400 > > │ 195 / 638737681074849993 / Changed 00:01:34 v #2401 > > │ 00:01:34 v #2402 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2403 > > │ 293 / 638737681074850286 / Changed 00:01:34 v #2404 > > │ 00:01:34 v #2405 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2406 > > │ 68 / 638737681074850354 / Changed 00:01:34 v #2407 > > │ 00:01:34 v #2408 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2409 > > │ 245 / 638737681074850599 / Changed 00:01:34 v #2410 > > │ 00:01:34 v #2411 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2412 > > │ 203 / 638737681074850802 / Changed 00:01:34 v #2413 > > │ 00:01:34 v #2414 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2415 > > │ 54 / 638737681074850856 / Changed 00:01:34 v #2416 > > │ 00:01:34 v #2417 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2418 > > │ 146 / 638737681074851002 / Changed 00:01:34 v #2419 > > │ 00:01:34 v #2420 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2421 > > │ 331 / 638737681074851333 / Changed 00:01:34 v #2422 > > │ 00:01:34 v #2423 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2424 > > │ 194 / 638737681074851527 / Changed 00:01:34 v #2425 > > │ 00:01:34 v #2426 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2427 > > │ 192 / 638737681074851719 / Changed 00:01:34 v #2428 > > │ 00:01:34 v #2429 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2430 > > │ 68 / 638737681074851787 / Changed 00:01:34 v #2431 > > │ 00:01:34 v #2432 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2433 > > │ 186 / 638737681074851973 / Changed 00:01:34 v #2434 > > │ 00:01:34 v #2435 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2436 > > │ 366 / 638737681074852339 / Changed 00:01:34 v #2437 > > │ 00:01:34 v #2438 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2439 > > │ 314 / 638737681074852653 / Changed 00:01:34 v #2440 > > │ 00:01:34 v #2441 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2442 > > │ 35 / 638737681074852688 / Changed 00:01:34 v #2443 > > │ 00:01:34 v #2444 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2445 > > │ 226 / 638737681074852914 / Changed 00:01:34 v #2446 > > │ 00:01:34 v #2447 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2448 > > │ 57 / 638737681074852971 / Changed 00:01:34 v #2449 > > │ 00:01:34 v #2450 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2451 > > │ 161 / 638737681074853132 / Changed 00:01:34 v #2452 > > │ 00:01:34 v #2453 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2454 > > │ 178 / 638737681074853310 / Changed 00:01:34 v #2455 > > │ 00:01:34 v #2456 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2457 > > │ 200 / 638737681074853510 / Changed 00:01:34 v #2458 > > │ 00:01:34 v #2459 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2460 > > │ 236 / 638737681074853746 / Changed 00:01:34 v #2461 > > │ 00:01:34 v #2462 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2463 > > │ 51 / 638737681074853797 / Changed 00:01:34 v #2464 > > │ 00:01:34 v #2465 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2466 > > │ 259 / 638737681074854056 / Changed 00:01:34 v #2467 > > │ 00:01:34 v #2468 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2469 > > │ 51 / 638737681074854107 / Changed 00:01:34 v #2470 > > │ 00:01:34 v #2471 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2472 > > │ 252 / 638737681074854359 / Changed 00:01:34 v #2473 > > │ 00:01:34 v #2474 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2475 > > │ 59 / 638737681074854418 / Changed 00:01:34 v #2476 > > │ 00:01:34 v #2477 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2478 > > │ 159 / 638737681074854577 / Changed 00:01:34 v #2479 > > │ 00:01:34 v #2480 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2481 > > │ 51 / 638737681074854628 / Changed 00:01:34 v #2482 > > │ 00:01:34 v #2483 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2484 > > │ 415 / 638737681074855043 / Changed 00:01:34 v #2485 > > │ 00:01:34 v #2486 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2487 > > │ 173 / 638737681074855216 / Changed 00:01:34 v #2488 > > │ 00:01:34 v #2489 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2490 > > │ 53 / 638737681074855269 / Changed 00:01:34 v #2491 > > │ 00:01:34 v #2492 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2493 > > │ 159 / 638737681074855428 / Changed 00:01:34 v #2494 > > │ 00:01:34 v #2495 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2496 > > │ 62 / 638737681074855490 / Changed 00:01:34 v #2497 > > │ 00:01:34 v #2498 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2499 > > │ 272 / 638737681074855762 / Changed 00:01:34 v #2500 > > │ 00:01:34 v #2501 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2502 > > │ 154 / 638737681074855916 / Changed 00:01:34 v #2503 > > │ 00:01:34 v #2504 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2505 > > │ 249 / 638737681074856165 / Changed 00:01:34 v #2506 > > │ 00:01:34 v #2507 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2508 > > │ 149 / 638737681074856314 / Changed 00:01:34 v #2509 > > │ 00:01:34 v #2510 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2511 > > │ 887 / 638737681074857201 / Changed 00:01:34 v #2512 > > │ 00:01:34 v #2513 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2514 > > │ 68 / 638737681074857269 / Changed 00:01:34 v #2515 > > │ 00:01:34 v #2516 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2517 > > │ 209 / 638737681074857478 / Changed 00:01:34 v #2518 > > │ 00:01:34 v #2519 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2520 > > │ 57 / 638737681074857535 / Changed 00:01:34 v #2521 > > │ 00:01:34 v #2522 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2523 > > │ 153 / 638737681074857688 / Changed 00:01:34 v #2524 > > │ 00:01:34 v #2525 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2526 > > │ 157 / 638737681074857845 / Changed 00:01:34 v #2527 > > │ 00:01:34 v #2528 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2529 > > │ 336 / 638737681074858181 / Changed 00:01:34 v #2530 > > │ 00:01:34 v #2531 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2532 > > │ 223 / 638737681074858404 / Changed 00:01:34 v #2533 > > │ 00:01:34 v #2534 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2535 > > │ 216 / 638737681074858620 / Changed 00:01:34 v #2536 > > │ 00:01:34 v #2537 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2538 > > │ 204 / 638737681074858824 / Changed 00:01:34 v #2539 > > │ 00:01:34 v #2540 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2541 > > │ 182 / 638737681074859006 / Changed 00:01:34 v #2542 > > │ 00:01:34 v #2543 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2544 > > │ 51 / 638737681074859057 / Changed 00:01:34 v #2545 > > │ 00:01:34 v #2546 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2547 > > │ 187 / 638737681074859244 / Changed 00:01:34 v #2548 > > │ 00:01:34 v #2549 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2550 > > │ 194 / 638737681074859438 / Changed 00:01:34 v #2551 > > │ 00:01:34 v #2552 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2553 > > │ 187 / 638737681074859625 / Changed 00:01:34 v #2554 > > │ 00:01:34 v #2555 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2556 > > │ 152 / 638737681074859777 / Changed 00:01:34 v #2557 > > │ 00:01:34 v #2558 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2559 > > │ 172 / 638737681074859949 / Changed 00:01:34 v #2560 > > │ 00:01:34 v #2561 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2562 > > │ 165 / 638737681074860114 / Changed 00:01:34 v #2563 > > │ 00:01:34 v #2564 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2565 > > │ 153 / 638737681074860267 / Changed 00:01:34 v #2566 > > │ 00:01:34 v #2567 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2568 > > │ 146 / 638737681074860413 / Changed 00:01:34 v #2569 > > │ 00:01:34 v #2570 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2571 > > │ 147 / 638737681074860560 / Changed 00:01:34 v #2572 > > │ 00:01:34 v #2573 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2574 > > │ 157 / 638737681074860717 / Changed 00:01:34 v #2575 > > │ 00:01:34 v #2576 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2577 > > │ 210 / 638737681074860927 / Changed 00:01:34 v #2578 > > │ 00:01:34 v #2579 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2580 > > │ 42 / 638737681074860969 / Changed 00:01:34 v #2581 > > │ 00:01:34 v #2582 > > ("file_2.txt",...22222222222222222222222222222222222222222222222c") 00:01:34 v #2583 > > │ 973 / 638737681074861942 / Changed 00:01:34 v #2584 > > │ 00:01:34 v #2585 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2586 > > │ 106 / 638737681074862048 / Changed 00:01:34 v #2587 > > │ 00:01:34 v #2588 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2589 > > │ 178 / 638737681074862226 / Changed 00:01:34 v #2590 > > │ 00:01:34 v #2591 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2592 > > │ 152 / 638737681074862378 / Changed 00:01:34 v #2593 > > │ 00:01:34 v #2594 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2595 > > │ 148 / 638737681074862526 / Changed 00:01:34 v #2596 > > │ 00:01:34 v #2597 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2598 > > │ 159 / 638737681074862685 / Changed 00:01:34 v #2599 > > │ 00:01:34 v #2600 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2601 > > │ 172 / 638737681074862857 / Changed 00:01:34 v #2602 > > │ 00:01:34 v #2603 > > ("file_2.txt"...22222222222222222222222222222222222222222222222c") 00:01:34 v #2604 > > │ 39647 / 638737681074902504 / Changed 00:01:34 v #2605 > > │ 00:01:34 v #2606 > > ("file_2.tx...22222222222222222222222222222222222222222222222c") 00:01:34 v #2607 > > │ 15008139 / 638737681089910643 / Deleted "file_1.txt" 00:01:34 v #2608 > > │ 2280 / 638737681089912923 / Deleted "file_2.txt" 00:01:34 v #2609 > > │ [Created ("file1.txt", Some "1a"); Changed ("file1.txt", Some 00:01:34 v #2610 > > "1a"); Created ("file2.txt", Some "2a"); 00:01:34 v #2611 > > │ Changed ("file2.txt", Some "2a"); Changed ("file1.txt", Some 00:01:34 v #2612 > > "1b"); Changed ("file2.txt", Some "2b"); 00:01:34 v #2613 > > │ Renamed ("file1.txt", ("file_1.txt", Some "1b")); Renamed 00:01:34 v #2614 > > ("file2.txt", ("file_2.txt", Some "2b")); 00:01:34 v #2615 > > │ Changed ("file_1.txt", Some "1c"); Changed ("file_2.txt", 00:01:34 v #2616 > > Some "2c"); Deleted "file_1.txt"; Deleted "file_2.txt"] 00:01:34 v #2617 > > │ 00:01:34 v #2618 > > │ Some () 00:01:34 v #2619 > > │ 00:01:34 v #2620 > > │ 00:01:34 v #2621 > > 00:01:34 v #2622 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:34 v #2623 > > │ ### testEventsSorted (test) 00:01:34 v #2624 > > 00:01:34 v #2625 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:34 v #2626 > > //// test 00:01:34 v #2627 > > 00:01:34 v #2628 > > let inline sortEvent event = 00:01:34 v #2629 > > match event with 00:01:34 v #2630 > > | FileSystemChange.Failure _ -> 0 00:01:34 v #2631 > > | FileSystemChange.Created _ -> 1 00:01:34 v #2632 > > | FileSystemChange.Changed _ -> 2 00:01:34 v #2633 > > | FileSystemChange.Renamed (_oldPath, _) -> 3 00:01:34 v #2634 > > | FileSystemChange.Deleted _ -> 4 00:01:34 v #2635 > > 00:01:34 v #2636 > > let inline formatEvents events = 00:01:34 v #2637 > > events 00:01:34 v #2638 > > |> Seq.toList 00:01:34 v #2639 > > |> List.sortBy (snd >> sortEvent) 00:01:34 v #2640 > > |> List.choose (fun (ticks, event) -> 00:01:34 v #2641 > > match event with 00:01:34 v #2642 > > | FileSystemChange.Failure _ -> 00:01:34 v #2643 > > None 00:01:34 v #2644 > > | FileSystemChange.Changed (path, _) -> 00:01:34 v #2645 > > Some (ticks, System.IO.Path.GetFileName path, nameof 00:01:34 v #2646 > > FileSystemChangeType.Changed) 00:01:34 v #2647 > > | FileSystemChange.Created (path, _) -> 00:01:34 v #2648 > > Some (ticks, System.IO.Path.GetFileName path, nameof 00:01:34 v #2649 > > FileSystemChangeType.Created) 00:01:34 v #2650 > > | FileSystemChange.Deleted path -> 00:01:34 v #2651 > > Some (ticks, System.IO.Path.GetFileName path, nameof 00:01:34 v #2652 > > FileSystemChangeType.Deleted) 00:01:34 v #2653 > > | FileSystemChange.Renamed (_oldPath, (path, _)) -> 00:01:34 v #2654 > > Some (ticks, System.IO.Path.GetFileName path, nameof 00:01:34 v #2655 > > FileSystemChangeType.Renamed) 00:01:34 v #2656 > > ) 00:01:34 v #2657 > > |> List.sortBy (fun (_, path, _) -> path) 00:01:34 v #2658 > > |> List.distinctBy (fun (_, path, event) -> path, event) 00:01:34 v #2659 > > 00:01:34 v #2660 > > let inline testEventsSorted 00:01:34 v #2661 > > (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> * 00:01:34 v #2662 > > IDisposable) 00:01:34 v #2663 > > write 00:01:34 v #2664 > > = 00:01:34 v #2665 > > let struct (tempDir, tempDisposable) = 00:01:34 v #2666 > > "FileSystem.testEventsSorted" 00:01:34 v #2667 > > |> SpiralCrypto.hash_text 00:01:34 v #2668 > > |> SpiralFileSystem.create_temp_dir' 00:01:34 v #2669 > > let stream, disposable = watchFn tempDir 00:01:34 v #2670 > > 00:01:34 v #2671 > > let events = System.Collections.Concurrent.ConcurrentBag () 00:01:34 v #2672 > > 00:01:34 v #2673 > > let inline iter () = 00:01:34 v #2674 > > stream 00:01:34 v #2675 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { 00:01:34 v #2676 > > events.Add event }) 00:01:34 v #2677 > > 00:01:34 v #2678 > > let run = async { 00:01:34 v #2679 > > let! _ = iter () |> Async.StartChild 00:01:34 v #2680 > > do! Async.Sleep 250 00:01:34 v #2681 > > return! write tempDir 00:01:34 v #2682 > > } 00:01:34 v #2683 > > 00:01:34 v #2684 > > try 00:01:34 v #2685 > > run 00:01:34 v #2686 > > |> Async.runWithTimeout 5000 00:01:34 v #2687 > > |> _assertEqual (Some ()) 00:01:34 v #2688 > > finally 00:01:34 v #2689 > > disposable.Dispose () 00:01:34 v #2690 > > tempDisposable.Dispose () 00:01:34 v #2691 > > 00:01:34 v #2692 > > let events = formatEvents events 00:01:34 v #2693 > > 00:01:34 v #2694 > > let eventMap = 00:01:34 v #2695 > > events 00:01:34 v #2696 > > |> List.map (fun (ticks, path, event) -> path, (event, ticks)) 00:01:34 v #2697 > > |> List.groupBy fst 00:01:34 v #2698 > > |> List.map (fun (path, events) -> 00:01:34 v #2699 > > let event, _ticks = 00:01:34 v #2700 > > events 00:01:34 v #2701 > > |> List.map snd 00:01:34 v #2702 > > |> List.sortByDescending snd 00:01:34 v #2703 > > |> List.head 00:01:34 v #2704 > > 00:01:34 v #2705 > > path, event 00:01:34 v #2706 > > ) 00:01:34 v #2707 > > |> Map.ofList 00:01:34 v #2708 > > 00:01:34 v #2709 > > let eventList = 00:01:34 v #2710 > > events 00:01:34 v #2711 > > |> List.map (fun (_ticks, path, event) -> path, event) 00:01:34 v #2712 > > 00:01:34 v #2713 > > eventMap, eventList 00:01:34 v #2714 > > 00:01:34 v #2715 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:34 v #2716 > > │ #### create and delete (test) 00:01:34 v #2717 > > 00:01:34 v #2718 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:34 v #2719 > > //// test 00:01:34 v #2720 > > 00:01:34 v #2721 > > let inline write path = async { 00:01:34 v #2722 > > let n = 3 00:01:34 v #2723 > > 00:01:34 v #2724 > > for i = 1 to n do 00:01:34 v #2725 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:34 v #2726 > > $"file{i}.txt") 00:01:34 v #2727 > > 00:01:34 v #2728 > > for i = 1 to n do 00:01:34 v #2729 > > do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |> 00:01:34 v #2730 > > Async.Ignore 00:01:34 v #2731 > > 00:01:34 v #2732 > > do! Async.Sleep 150 00:01:34 v #2733 > > } 00:01:34 v #2734 > > 00:01:34 v #2735 > > let inline run () = 00:01:34 v #2736 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) 00:01:34 v #2737 > > write 00:01:34 v #2738 > > 00:01:34 v #2739 > > [[ 00:01:34 v #2740 > > "file1.txt", nameof FileSystemChangeType.Created 00:01:34 v #2741 > > "file1.txt", nameof FileSystemChangeType.Changed 00:01:34 v #2742 > > "file1.txt", nameof FileSystemChangeType.Deleted 00:01:34 v #2743 > > 00:01:34 v #2744 > > "file2.txt", nameof FileSystemChangeType.Created 00:01:34 v #2745 > > "file2.txt", nameof FileSystemChangeType.Changed 00:01:34 v #2746 > > "file2.txt", nameof FileSystemChangeType.Deleted 00:01:34 v #2747 > > 00:01:34 v #2748 > > "file3.txt", nameof FileSystemChangeType.Created 00:01:34 v #2749 > > "file3.txt", nameof FileSystemChangeType.Changed 00:01:34 v #2750 > > "file3.txt", nameof FileSystemChangeType.Deleted 00:01:34 v #2751 > > ]] 00:01:34 v #2752 > > |> _sequenceEqual eventList 00:01:34 v #2753 > > 00:01:34 v #2754 > > [[ 00:01:34 v #2755 > > "file1.txt", nameof FileSystemChangeType.Deleted 00:01:34 v #2756 > > "file2.txt", nameof FileSystemChangeType.Deleted 00:01:34 v #2757 > > "file3.txt", nameof FileSystemChangeType.Deleted 00:01:34 v #2758 > > ]] 00:01:34 v #2759 > > |> Map.ofList 00:01:34 v #2760 > > |> _sequenceEqual eventMap 00:01:34 v #2761 > > 00:01:34 v #2762 > > run 00:01:34 v #2763 > > |> retry_fn 3 00:01:34 v #2764 > > |> _assertEqual (Some ()) 00:01:35 v #2765 > > 00:01:35 v #2766 > > ── [ 1.03s - stdout ] ────────────────────────────────────────────────────────── 00:01:35 v #2767 > > │ Some () 00:01:35 v #2768 > > │ 00:01:35 v #2769 > > │ 00:00:16 d #5 FileSystem.watchWithFilter / Disposing 00:01:35 v #2770 > > watch stream / filter: FileName, LastWrite 00:01:35 v #2771 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); 00:01:35 v #2772 > > ("file1.txt", "Deleted"); ("file2.txt", "Created"); 00:01:35 v #2773 > > │ ("file2.txt", "Changed"); ("file2.txt", "Deleted"); 00:01:35 v #2774 > > ("file3.txt", "Created"); ("file3.txt", "Changed"); 00:01:35 v #2775 > > │ ("file3.txt", "Deleted")] 00:01:35 v #2776 > > │ 00:01:35 v #2777 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted"); 00:01:35 v #2778 > > ("file3.txt", "Deleted")] 00:01:35 v #2779 > > │ 00:01:35 v #2780 > > │ Some () 00:01:35 v #2781 > > │ 00:01:35 v #2782 > > │ 00:01:35 v #2783 > > 00:01:35 v #2784 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:35 v #2785 > > │ #### change (test) 00:01:35 v #2786 > > 00:01:35 v #2787 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:35 v #2788 > > //// test 00:01:35 v #2789 > > 00:01:35 v #2790 > > let inline write path = async { 00:01:35 v #2791 > > let n = 2 00:01:35 v #2792 > > 00:01:35 v #2793 > > for i = 1 to n do 00:01:35 v #2794 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:35 v #2795 > > $"file{i}.txt") 00:01:35 v #2796 > > 00:01:35 v #2797 > > for i = 1 to n do 00:01:35 v #2798 > > do! "" |> SpiralFileSystem.write_all_text_async (path </> 00:01:35 v #2799 > > $"file{i}.txt") 00:01:35 v #2800 > > 00:01:35 v #2801 > > for i = 1 to n do 00:01:35 v #2802 > > do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |> 00:01:35 v #2803 > > Async.Ignore 00:01:35 v #2804 > > 00:01:35 v #2805 > > do! Async.Sleep 150 00:01:35 v #2806 > > } 00:01:35 v #2807 > > 00:01:35 v #2808 > > let inline run () = 00:01:35 v #2809 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) 00:01:35 v #2810 > > write 00:01:35 v #2811 > > 00:01:35 v #2812 > > [[ 00:01:35 v #2813 > > "file1.txt", nameof FileSystemChangeType.Created 00:01:35 v #2814 > > "file1.txt", nameof FileSystemChangeType.Changed 00:01:35 v #2815 > > "file1.txt", nameof FileSystemChangeType.Deleted 00:01:35 v #2816 > > 00:01:35 v #2817 > > "file2.txt", nameof FileSystemChangeType.Created 00:01:35 v #2818 > > "file2.txt", nameof FileSystemChangeType.Changed 00:01:35 v #2819 > > "file2.txt", nameof FileSystemChangeType.Deleted 00:01:35 v #2820 > > ]] 00:01:35 v #2821 > > |> _sequenceEqual eventList 00:01:35 v #2822 > > 00:01:35 v #2823 > > [[ 00:01:35 v #2824 > > "file1.txt", nameof FileSystemChangeType.Deleted 00:01:35 v #2825 > > "file2.txt", nameof FileSystemChangeType.Deleted 00:01:35 v #2826 > > ]] 00:01:35 v #2827 > > |> Map.ofList 00:01:35 v #2828 > > |> _sequenceEqual eventMap 00:01:35 v #2829 > > 00:01:35 v #2830 > > run 00:01:35 v #2831 > > |> retry_fn 3 00:01:35 v #2832 > > |> _assertEqual (Some ()) 00:01:36 v #2833 > > 00:01:36 v #2834 > > ── [ 1.07s - stdout ] ────────────────────────────────────────────────────────── 00:01:36 v #2835 > > │ Some () 00:01:36 v #2836 > > │ 00:01:36 v #2837 > > │ 00:00:17 d #6 FileSystem.watchWithFilter / Disposing 00:01:36 v #2838 > > watch stream / filter: FileName, LastWrite 00:01:36 v #2839 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); 00:01:36 v #2840 > > ("file1.txt", "Deleted"); ("file2.txt", "Created"); 00:01:36 v #2841 > > │ ("file2.txt", "Changed"); ("file2.txt", "Deleted")] 00:01:36 v #2842 > > │ 00:01:36 v #2843 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted")] 00:01:36 v #2844 > > │ 00:01:36 v #2845 > > │ Some () 00:01:36 v #2846 > > │ 00:01:36 v #2847 > > │ 00:01:36 v #2848 > > 00:01:36 v #2849 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:36 v #2850 > > │ #### rename (test) 00:01:36 v #2851 > > 00:01:36 v #2852 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:36 v #2853 > > //// test 00:01:36 v #2854 > > 00:01:36 v #2855 > > let inline write path = async { 00:01:36 v #2856 > > let n = 2 00:01:36 v #2857 > > 00:01:36 v #2858 > > for i = 1 to n do 00:01:36 v #2859 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:36 v #2860 > > $"file{i}.txt") 00:01:36 v #2861 > > 00:01:36 v #2862 > > for i = 1 to n do 00:01:36 v #2863 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path 00:01:36 v #2864 > > </> $"file_{i}.txt") |> Async.Ignore 00:01:36 v #2865 > > 00:01:36 v #2866 > > for i = 1 to n do 00:01:36 v #2867 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> 00:01:36 v #2868 > > Async.Ignore 00:01:36 v #2869 > > 00:01:36 v #2870 > > do! Async.Sleep 150 00:01:36 v #2871 > > } 00:01:36 v #2872 > > 00:01:36 v #2873 > > let inline run () = 00:01:36 v #2874 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) 00:01:36 v #2875 > > write 00:01:36 v #2876 > > 00:01:36 v #2877 > > [[ 00:01:36 v #2878 > > "file1.txt", nameof FileSystemChangeType.Created 00:01:36 v #2879 > > "file1.txt", nameof FileSystemChangeType.Changed 00:01:36 v #2880 > > "file2.txt", nameof FileSystemChangeType.Created 00:01:36 v #2881 > > "file2.txt", nameof FileSystemChangeType.Changed 00:01:36 v #2882 > > 00:01:36 v #2883 > > "file_1.txt", nameof FileSystemChangeType.Renamed 00:01:36 v #2884 > > "file_1.txt", nameof FileSystemChangeType.Deleted 00:01:36 v #2885 > > 00:01:36 v #2886 > > "file_2.txt", nameof FileSystemChangeType.Renamed 00:01:36 v #2887 > > "file_2.txt", nameof FileSystemChangeType.Deleted 00:01:36 v #2888 > > ]] 00:01:36 v #2889 > > |> _sequenceEqual eventList 00:01:36 v #2890 > > 00:01:36 v #2891 > > [[ 00:01:36 v #2892 > > "file1.txt", nameof FileSystemChangeType.Changed 00:01:36 v #2893 > > "file2.txt", nameof FileSystemChangeType.Changed 00:01:36 v #2894 > > "file_1.txt", nameof FileSystemChangeType.Deleted 00:01:36 v #2895 > > "file_2.txt", nameof FileSystemChangeType.Deleted 00:01:36 v #2896 > > ]] 00:01:36 v #2897 > > |> Map.ofList 00:01:36 v #2898 > > |> _sequenceEqual eventMap 00:01:36 v #2899 > > 00:01:36 v #2900 > > run 00:01:36 v #2901 > > |> retry_fn 3 00:01:36 v #2902 > > |> _assertEqual (Some ()) 00:01:37 v #2903 > > 00:01:37 v #2904 > > ── [ 1.12s - stdout ] ────────────────────────────────────────────────────────── 00:01:37 v #2905 > > │ Some () 00:01:37 v #2906 > > │ 00:01:37 v #2907 > > │ 00:00:18 d #7 FileSystem.watchWithFilter / Disposing 00:01:37 v #2908 > > watch stream / filter: FileName, LastWrite 00:01:37 v #2909 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); 00:01:37 v #2910 > > ("file2.txt", "Created"); ("file2.txt", "Changed"); 00:01:37 v #2911 > > │ ("file_1.txt", "Renamed"); ("file_1.txt", "Deleted"); 00:01:37 v #2912 > > ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")] 00:01:37 v #2913 > > │ 00:01:37 v #2914 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed"); 00:01:37 v #2915 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")] 00:01:37 v #2916 > > │ 00:01:37 v #2917 > > │ Some () 00:01:37 v #2918 > > │ 00:01:37 v #2919 > > │ 00:01:37 v #2920 > > 00:01:37 v #2921 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:37 v #2922 > > │ #### full (test) 00:01:37 v #2923 > > 00:01:37 v #2924 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:37 v #2925 > > //// test 00:01:37 v #2926 > > 00:01:37 v #2927 > > let inline write path = async { 00:01:37 v #2928 > > let n = 2 00:01:37 v #2929 > > 00:01:37 v #2930 > > for i = 1 to n do 00:01:37 v #2931 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:37 v #2932 > > $"file{i}.txt") 00:01:37 v #2933 > > 00:01:37 v #2934 > > for i = 1 to n do 00:01:37 v #2935 > > do! "" |> SpiralFileSystem.write_all_text_async (path </> 00:01:37 v #2936 > > $"file{i}.txt") 00:01:37 v #2937 > > 00:01:37 v #2938 > > for i = 1 to n do 00:01:37 v #2939 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path 00:01:37 v #2940 > > </> $"file_{i}.txt") |> Async.Ignore 00:01:37 v #2941 > > 00:01:37 v #2942 > > for i = 1 to n do 00:01:37 v #2943 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> 00:01:37 v #2944 > > $"file_{i}.txt") 00:01:37 v #2945 > > 00:01:37 v #2946 > > for i = 1 to n do 00:01:37 v #2947 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> 00:01:37 v #2948 > > Async.Ignore 00:01:37 v #2949 > > 00:01:37 v #2950 > > do! Async.Sleep 150 00:01:37 v #2951 > > } 00:01:37 v #2952 > > 00:01:37 v #2953 > > let inline run () = 00:01:37 v #2954 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) 00:01:37 v #2955 > > write 00:01:37 v #2956 > > 00:01:37 v #2957 > > [[ 00:01:37 v #2958 > > "file1.txt", nameof FileSystemChangeType.Created 00:01:37 v #2959 > > "file1.txt", nameof FileSystemChangeType.Changed 00:01:37 v #2960 > > "file2.txt", nameof FileSystemChangeType.Created 00:01:37 v #2961 > > "file2.txt", nameof FileSystemChangeType.Changed 00:01:37 v #2962 > > 00:01:37 v #2963 > > "file_1.txt", nameof FileSystemChangeType.Changed 00:01:37 v #2964 > > "file_1.txt", nameof FileSystemChangeType.Renamed 00:01:37 v #2965 > > "file_1.txt", nameof FileSystemChangeType.Deleted 00:01:37 v #2966 > > 00:01:37 v #2967 > > "file_2.txt", nameof FileSystemChangeType.Changed 00:01:37 v #2968 > > "file_2.txt", nameof FileSystemChangeType.Renamed 00:01:37 v #2969 > > "file_2.txt", nameof FileSystemChangeType.Deleted 00:01:37 v #2970 > > ]] 00:01:37 v #2971 > > |> _sequenceEqual eventList 00:01:37 v #2972 > > 00:01:37 v #2973 > > [[ 00:01:37 v #2974 > > "file1.txt", nameof FileSystemChangeType.Changed 00:01:37 v #2975 > > "file2.txt", nameof FileSystemChangeType.Changed 00:01:37 v #2976 > > "file_1.txt", nameof FileSystemChangeType.Deleted 00:01:37 v #2977 > > "file_2.txt", nameof FileSystemChangeType.Deleted 00:01:37 v #2978 > > ]] 00:01:37 v #2979 > > |> Map.ofList 00:01:37 v #2980 > > |> _sequenceEqual eventMap 00:01:37 v #2981 > > 00:01:37 v #2982 > > run 00:01:37 v #2983 > > |> retry_fn 3 00:01:37 v #2984 > > |> _assertEqual (Some ()) 00:01:38 v #2985 > > 00:01:38 v #2986 > > ── [ 1.31s - stdout ] ────────────────────────────────────────────────────────── 00:01:38 v #2987 > > │ Some () 00:01:38 v #2988 > > │ 00:01:38 v #2989 > > │ 00:00:19 d #8 FileSystem.watchWithFilter / Disposing 00:01:38 v #2990 > > watch stream / filter: FileName, LastWrite 00:01:38 v #2991 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); 00:01:38 v #2992 > > ("file2.txt", "Created"); ("file2.txt", "Changed"); 00:01:38 v #2993 > > │ ("file_1.txt", "Changed"); ("file_1.txt", "Renamed"); 00:01:38 v #2994 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Changed"); 00:01:38 v #2995 > > │ ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")] 00:01:38 v #2996 > > │ 00:01:38 v #2997 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed"); 00:01:38 v #2998 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")] 00:01:38 v #2999 > > │ 00:01:38 v #3000 > > │ Some () 00:01:38 v #3001 > > │ 00:01:38 v #3002 > > │ 00:01:38 v #3003 > 00:00:32 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 95082 } 00:01:38 v #3004 > 00:00:32 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:39 v #3005 > 00:00:33 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.ipynb to html 00:01:39 v #3006 > 00:00:33 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:01:39 v #3007 > 00:00:33 v #7 ! validate(nb) 00:01:40 v #3008 > 00:00:33 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:01:40 v #3009 > 00:00:33 v #9 ! return _pygments_highlight( 00:01:40 v #3010 > 00:00:34 v #10 ! [NbConvertApp] Writing 426056 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.html 00:01:40 v #3011 > 00:00:34 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 904 } 00:01:40 v #3012 > 00:00:34 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 904 } 00:01:40 v #3013 > 00:00:34 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:40 v #3014 > 00:00:34 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:01:40 v #3015 > 00:00:34 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:01:40 v #3016 > 00:00:34 d #16 spiral.run / dib / { exit_code = 0; result_length = 96045 } 00:01:40 d #3017 runtime.execute_with_options_async / { exit_code = 0; output_length = 102986 } 00:01:40 d #7 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path FileSystem.dib --retries 3 00:01:40 d #3018 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Runtime.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:40 v #3019 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Runtime.dib", "--retries", "3"])) } 00:01:40 v #3020 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:01:42 v #3021 > > 00:01:42 v #3022 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:42 v #3023 > > │ # Runtime (Polyglot) 00:01:45 v #3024 > > 00:01:45 v #3025 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:45 v #3026 > > #r 00:01:45 v #3027 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan 00:01:45 v #3028 > > dard2.1/FSharp.Control.AsyncSeq.dll" 00:01:45 v #3029 > > #r 00:01:45 v #3030 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. 00:01:45 v #3031 > > 0/System.Reactive.dll" 00:01:45 v #3032 > > #r 00:01:45 v #3033 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib 00:01:45 v #3034 > > netstandard2.0/System.Reactive.Linq.dll" 00:01:45 v #3035 > > #r 00:01:45 v #3036 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" 00:01:55 v #3037 > > 00:01:55 v #3038 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3039 > > #if !INTERACTIVE 00:01:55 v #3040 > > open Lib 00:01:55 v #3041 > > #endif 00:01:55 v #3042 > > 00:01:55 v #3043 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3044 > > open Common 00:01:55 v #3045 > > 00:01:55 v #3046 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3047 > > //// test 00:01:55 v #3048 > > 00:01:55 v #3049 > > open SpiralFileSystem.Operators 00:01:55 v #3050 > > 00:01:55 v #3051 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:55 v #3052 > > │ ## parseArgs 00:01:55 v #3053 > > 00:01:55 v #3054 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3055 > > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args = 00:01:55 v #3056 > > let assemblyName = 00:01:55 v #3057 > > System.Reflection.Assembly.GetEntryAssembly().GetName().Name 00:01:55 v #3058 > > let errorHandler : Argu.IExiter = 00:01:55 v #3059 > > if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |> 00:01:55 v #3060 > > List.contains assemblyName 00:01:55 v #3061 > > then Argu.ExceptionExiter () 00:01:55 v #3062 > > else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ -> 00:01:55 v #3063 > > Some System.ConsoleColor.Red) 00:01:55 v #3064 > > 00:01:55 v #3065 > > let parser = 00:01:55 v #3066 > > Argu.ArgumentParser.Create<'T> ( 00:01:55 v #3067 > > programName = $"{assemblyName}{SpiralPlatform.get_executable_suffix 00:01:55 v #3068 > > ()}", 00:01:55 v #3069 > > errorHandler = errorHandler 00:01:55 v #3070 > > ) 00:01:55 v #3071 > > 00:01:55 v #3072 > > parser.ParseCommandLine args 00:01:55 v #3073 > > 00:01:55 v #3074 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3075 > > //// test 00:01:55 v #3076 > > 00:01:55 v #3077 > > [[<RequireQualifiedAccess>]] 00:01:55 v #3078 > > type Arguments = 00:01:55 v #3079 > > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; 00:01:55 v #3080 > > Argu.ArguAttributes.Last>]] 00:01:55 v #3081 > > Paths of paths : string list 00:01:55 v #3082 > > 00:01:55 v #3083 > > interface Argu.IArgParserTemplate with 00:01:55 v #3084 > > member s.Usage = 00:01:55 v #3085 > > match s with 00:01:55 v #3086 > > | Paths _ -> nameof Paths 00:01:55 v #3087 > > 00:01:55 v #3088 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3089 > > //// test 00:01:55 v #3090 > > 00:01:55 v #3091 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () 00:01:55 v #3092 > > 00:01:55 v #3093 > > ── [ 84.08ms - return value ] ────────────────────────────────────────────────── 00:01:55 v #3094 > > │ "USAGE: dotnet-repl [--help] <paths>... 00:01:55 v #3095 > > │ 00:01:55 v #3096 > > │ PATHS: 00:01:55 v #3097 > > │ 00:01:55 v #3098 > > │ <paths>... Paths 00:01:55 v #3099 > > │ 00:01:55 v #3100 > > │ OPTIONS: 00:01:55 v #3101 > > │ 00:01:55 v #3102 > > │ --help display this list of options. 00:01:55 v #3103 > > │ " 00:01:55 v #3104 > > │ 00:01:55 v #3105 > > 00:01:55 v #3106 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3107 > > //// test 00:01:55 v #3108 > > 00:01:55 v #3109 > > fun () -> parseArgs<Arguments> [[||]] |> ignore 00:01:55 v #3110 > > |> _throwsC (fun ex _ -> 00:01:55 v #3111 > > SpiralSm.format_exception ex 00:01:55 v #3112 > > |> _stringContains "Argu.ArguParseException: ERROR: missing parameter 00:01:55 v #3113 > > '<paths>...'." 00:01:55 v #3114 > > ) 00:01:55 v #3115 > > 00:01:55 v #3116 > > ── [ 43.20ms - stdout ] ──────────────────────────────────────────────────────── 00:01:55 v #3117 > > │ <fun:it@3-3> 00:01:55 v #3118 > > │ 00:01:55 v #3119 > > │ "Argu.ArguParseException: ERROR: missing parameter 00:01:55 v #3120 > > '<paths>...'. 00:01:55 v #3121 > > │ USAGE: dotnet-repl [--help] <paths>... 00:01:55 v #3122 > > │ 00:01:55 v #3123 > > │ PATHS: 00:01:55 v #3124 > > │ 00:01:55 v #3125 > > │ <paths>... Paths 00:01:55 v #3126 > > │ 00:01:55 v #3127 > > │ OPTIONS: 00:01:55 v #3128 > > │ 00:01:55 v #3129 > > │ --help display this list of options. 00:01:55 v #3130 > > │ " 00:01:55 v #3131 > > │ 00:01:55 v #3132 > > │ 00:01:55 v #3133 > > 00:01:55 v #3134 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3135 > > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args = 00:01:55 v #3136 > > args 00:01:55 v #3137 > > |> parseArgs<'T> 00:01:55 v #3138 > > |> fun results -> results.GetAllResults () 00:01:55 v #3139 > > 00:01:55 v #3140 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:55 v #3141 > > //// test 00:01:55 v #3142 > > 00:01:55 v #3143 > > [[<RequireQualifiedAccess>]] 00:01:55 v #3144 > > type Arguments = 00:01:55 v #3145 > > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; 00:01:55 v #3146 > > Argu.ArguAttributes.Last>]] 00:01:55 v #3147 > > Paths of paths : string list 00:01:55 v #3148 > > 00:01:55 v #3149 > > interface Argu.IArgParserTemplate with 00:01:55 v #3150 > > member s.Usage = 00:01:55 v #3151 > > match s with 00:01:55 v #3152 > > | Paths _ -> nameof Paths 00:01:55 v #3153 > > 00:01:55 v #3154 > > parseAllArgs<Arguments> [[| "a b"; "c" |]] 00:01:55 v #3155 > > |> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]] 00:01:56 v #3156 > > 00:01:56 v #3157 > > ── [ 76.55ms - stdout ] ──────────────────────────────────────────────────────── 00:01:56 v #3158 > > │ [Paths ["a b"; "c"]] 00:01:56 v #3159 > > │ 00:01:56 v #3160 > > │ 00:01:56 v #3161 > > 00:01:56 v #3162 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:56 v #3163 > > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args = 00:01:56 v #3164 > > args 00:01:56 v #3165 > > |> parseAllArgs<'T> 00:01:56 v #3166 > > |> List.groupBy CommonFSharp.getUnionCaseName<'T> 00:01:56 v #3167 > > |> Map.ofList 00:01:56 v #3168 > > 00:01:56 v #3169 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:56 v #3170 > > //// test 00:01:56 v #3171 > > 00:01:56 v #3172 > > parseArgsMap<Arguments> [[| "a b"; "c" |]] 00:01:56 v #3173 > > |> _assertEqual ( 00:01:56 v #3174 > > [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]] 00:01:56 v #3175 > > |> Map.ofList 00:01:56 v #3176 > > ) 00:01:56 v #3177 > > 00:01:56 v #3178 > > ── [ 53.23ms - stdout ] ──────────────────────────────────────────────────────── 00:01:56 v #3179 > > │ map [("Paths", [Paths ["a b"; "c"]])] 00:01:56 v #3180 > > │ 00:01:56 v #3181 > > │ 00:01:56 v #3182 > 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5715 } 00:01:56 v #3183 > 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:56 v #3184 > 00:00:15 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.ipynb to html 00:01:56 v #3185 > 00:00:15 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:01:56 v #3186 > 00:00:15 v #7 ! validate(nb) 00:01:57 v #3187 > 00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:01:57 v #3188 > 00:00:16 v #9 ! return _pygments_highlight( 00:01:57 v #3189 > 00:00:16 v #10 ! [NbConvertApp] Writing 292952 bytes to /home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.html 00:01:57 v #3190 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 898 } 00:01:57 v #3191 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 898 } 00:01:57 v #3192 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:01:57 v #3193 > 00:00:16 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:01:57 v #3194 > 00:00:16 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:01:57 v #3195 > 00:00:16 d #16 spiral.run / dib / { exit_code = 0; result_length = 6672 } 00:01:57 d #3196 runtime.execute_with_options_async / { exit_code = 0; output_length = 9656 } 00:01:57 d #8 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Runtime.dib --retries 3 00:01:57 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 writeDibCode / output: Fs / path: Async.dib 00:00:00 d #1 writeDibCode / output: Fs / path: CommonFSharp.dib 00:00:00 d #1 writeDibCode / output: Fs / path: Common.dib 00:00:00 d #1 writeDibCode / output: Fs / path: AsyncSeq.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Async.dib 00:00:00 d #4 parseDibCode / output: Fs / file: AsyncSeq.dib 00:00:00 d #2 parseDibCode / output: Fs / file: CommonFSharp.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Common.dib 00:00:00 d #5 writeDibCode / output: Fs / path: FileSystem.dib 00:00:00 d #6 writeDibCode / output: Fs / path: Runtime.dib 00:00:00 d #7 parseDibCode / output: Fs / file: FileSystem.dib 00:00:00 d #8 parseDibCode / output: Fs / file: Runtime.dib
In [ ]:
{ pwsh ../deps/spiral/apps/wasm/build.ps1 -SkipFsx 1 } | Invoke-Block
00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral_wasm / hash: / code.Length: 232460 polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral_wasm spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target: / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/deps/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm / ProjectName: spiral_wasm / Language: rs / Runtime: / root: /home/runner/work/polyglot/polyglot Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha) Thanks to the contributor! @hensou Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target/Builder/spiral_wasm/spiral_wasm.fsproj... Project and references (14 source files) parsed in 3329ms Started Fable compilation... Fable compilation finished in 8998ms ./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs spiral/apps/wasm/build.ps1 / path: /home/runner/work/polyglot/polyglot/target/Builder/spiral_wasm/target/rs/spiral_wasm.rs Downloading crates ... Downloaded Inflector v0.11.4 Downloaded backtrace v0.3.71 Downloaded adler v1.0.2 Downloaded async-io v1.13.0 Downloaded atty v0.2.14 Downloaded bitcoin-internals v0.2.0 Downloaded async-stream-impl v0.3.6 Downloaded binary-install v0.2.0 Downloaded signal-hook v0.3.17 Downloaded signal-hook-mio v0.2.4 Downloaded joinery v2.1.0 Downloaded bip39 v2.1.0 Downloaded axum v0.6.20 Downloaded tokio-retry v0.3.0 Downloaded sync_wrapper v0.1.2 Downloaded term v0.7.0 Downloaded tonic v0.11.0 Downloaded tracing-error v0.2.1 Downloaded is-terminal v0.4.13 Downloaded ipnet v2.10.1 Downloaded hyper v1.5.2 Downloaded json_comments v0.2.2 Downloaded near_schemafy_core v0.7.0 Downloaded near_schemafy_lib v0.7.0 Downloaded reed-solomon-erasure v4.0.2 Downloaded serde_repr v0.1.19 Downloaded opentelemetry_sdk v0.22.1 Downloaded num-complex v0.4.6 Downloaded prettytable v0.10.0 Downloaded sha2 v0.9.9 Downloaded newline-converter v0.3.0 Downloaded serde_with_macros v3.12.0 Downloaded num-bigint v0.3.3 Downloaded prost-derive v0.12.6 Downloaded prettyplease v0.1.25 Downloaded shellexpand v3.1.0 Downloaded sha3 v0.10.8 Downloaded rustls v0.23.20 Downloaded secp256k1-sys v0.8.1 Downloaded portable-atomic v1.10.0 Downloaded prometheus v0.13.4 Downloaded proc-macro-crate v3.2.0 Downloaded protobuf v2.28.0 Downloaded prost v0.12.6 Downloaded proc-macro-crate v1.3.1 Downloaded secp256k1 v0.27.0 Downloaded scroll v0.11.0 Downloaded serde_with v3.12.0 Downloaded scroll_derive v0.11.1 Downloaded scroll v0.10.2 Downloaded polling v2.8.0 Downloaded primitive-types v0.10.1 Downloaded nix v0.26.4 Downloaded rustls-pki-types v1.10.1 Downloaded rustix v0.37.28 Downloaded rustix v0.38.42 Downloaded linux-raw-sys v0.3.8 Downloaded opentelemetry-semantic-conventions v0.14.0 Downloaded opentelemetry-otlp v0.15.0 Downloaded near-stdx v0.23.0 Downloaded near-jsonrpc-primitives v0.23.0 Downloaded near-rpc-error-core v0.23.0 Downloaded plain v0.2.3 Downloaded phf_shared v0.10.0 Downloaded ordered-float v4.6.0 Downloaded ordered-stream v0.2.0 Downloaded num-rational v0.4.2 Downloaded openssl v0.10.68 Downloaded nom-supreme v0.6.0 Downloaded near-time v0.23.0 Downloaded near-sandbox-utils v0.9.0 Downloaded near-socialdb-client v0.3.2 Downloaded num-rational v0.3.2 Downloaded near-jsonrpc-client v0.10.1 Downloaded near-chain-configs v0.23.0 Downloaded near-performance-metrics v0.23.0 Downloaded near-cli-rs v0.11.1 Downloaded opentelemetry v0.22.0 Downloaded semver v1.0.24 Downloaded secret-service v3.1.0 Downloaded near-parameters v0.23.0 Downloaded pdb v0.7.0 Downloaded password-hash v0.4.2 Downloaded owo-colors v3.5.0 Downloaded near-sdk v5.7.0 Downloaded zbus v3.15.2 Downloaded winnow v0.6.22 Downloaded wasmparser v0.211.1 Downloaded pbkdf2 v0.11.0 Downloaded opentelemetry-proto v0.5.0 Downloaded opaque-debug v0.3.1 Downloaded num v0.4.3 Downloaded new_debug_unreachable v1.0.6 Downloaded near-primitives v0.23.0 Downloaded zvariant v3.15.2 Downloaded near-workspaces v0.11.1 Downloaded serde_yaml v0.9.34+deprecated Downloaded gimli v0.26.2 Downloaded csv v1.3.1 Downloaded color-eyre v0.6.3 Downloaded near-token v0.3.0 Downloaded near-sdk-macros v5.7.0 Downloaded near-sandbox-utils v0.13.0 Downloaded near-sandbox-utils v0.8.0 Downloaded near-primitives-core v0.23.0 Downloaded near-o11y v0.23.0 Downloaded near-gas v0.3.0 Downloaded near-gas v0.2.5 Downloaded near-fmt v0.23.0 Downloaded near-crypto v0.23.0 Downloaded near-async v0.23.0 Downloaded near-abi v0.4.3 Downloaded native-tls v0.2.12 Downloaded names v0.14.0 Downloaded miniz_oxide v0.8.2 Downloaded miniz_oxide v0.7.4 Downloaded memmap2 v0.5.10 Downloaded linux-keyutils v0.2.4 Downloaded libloading v0.8.6 Downloaded keyring v2.3.3 Downloaded keccak v0.1.5 Downloaded zvariant_utils v1.0.1 Downloaded zvariant_derive v3.15.2 Downloaded zstd v0.11.2+zstd.1.5.2 Downloaded zbus_macros v3.15.2 Downloaded xml-rs v0.8.25 Downloaded wasmparser v0.83.0 Downloaded uuid v0.8.2 Downloaded ureq v2.12.1 Downloaded unicode-normalization v0.1.22 Downloaded unicode-linebreak v0.1.5 Downloaded uint v0.9.5 Downloaded gimli v0.28.1 Downloaded crossterm v0.25.0 Downloaded near-token v0.2.1 Downloaded near-sys v0.2.2 Downloaded near-rpc-error-macro v0.23.0 Downloaded near-config-utils v0.23.0 Downloaded near-async-derive v0.23.0 Downloaded near-account-id v1.0.0 Downloaded near-abi-client-macros v0.1.1 Downloaded near-abi-client-impl v0.1.1 Downloaded near-abi-client v0.1.1 Downloaded memoffset v0.7.1 Downloaded jsonptr v0.4.7 Downloaded json-patch v2.0.0 Downloaded zstd-safe v5.0.2+zstd.1.5.2 Downloaded xdg-home v1.3.0 Downloaded waker-fn v1.2.0 Downloaded vte_generate_state_changes v0.1.2 Downloaded vte v0.11.1 Downloaded vt100 v0.15.2 Downloaded uriparse v0.6.4 Downloaded tracing-opentelemetry v0.23.0 Downloaded tracing-indicatif v0.3.8 Downloaded http v0.2.12 Downloaded h2 v0.3.26 Downloaded futures-lite v1.13.0 Downloaded fluent-uri v0.1.4 Downloaded zip v0.5.13 Downloaded zbus_names v2.6.1 Downloaded urlencoding v2.1.3 Downloaded hmac v0.9.0 Downloaded openssl-src v300.4.1+3.4.0 Downloaded hex-conservative v0.1.2 Downloaded hex v0.3.2 Downloaded heck v0.4.1 Downloaded cargo-near v0.6.4 Downloaded glob v0.3.2 Downloaded fuzzy-matcher v0.3.7 Downloaded fs2 v0.4.3 Downloaded crypto-mac v0.9.1 Downloaded crunchy v0.2.2 Downloaded colored v2.2.0 Downloaded color-spantrace v0.2.1 Downloaded cc v1.2.7 Downloaded bs58 v0.5.1 Downloaded bs58 v0.4.0 Downloaded borsh-derive v1.5.3 Downloaded interactive-clap-derive v0.2.10 Downloaded inquire v0.7.5 Downloaded indicatif v0.17.9 Downloaded indexmap v1.9.3 Downloaded hyper-timeout v0.4.1 Downloaded hyper v0.14.32 Downloaded goblin v0.5.4 Downloaded fixed-hash v0.7.0 Downloaded enumflags2 v0.7.10 Downloaded crypto-hash v0.3.4 Downloaded convert_case v0.5.0 Downloaded constant_time_eq v0.1.5 Downloaded cargo-util v0.1.2 Downloaded brownstone v1.1.0 Downloaded borsh v1.5.3 Downloaded block-buffer v0.9.0 Downloaded blake2 v0.10.6 Downloaded tracing-appender v0.2.3 Downloaded tokio-io-timeout v1.2.0 Downloaded symbolic-debuginfo v8.8.0 Downloaded socket2 v0.4.10 Downloaded smart-default v0.7.1 Downloaded io-lifetimes v1.0.11 Downloaded interactive-clap v0.2.10 Downloaded indexmap v2.7.0 Downloaded indent_write v2.2.0 Downloaded ident_case v1.0.1 Downloaded httparse v1.9.5 Downloaded http-body v0.4.6 Downloaded fastrand v1.9.0 Downloaded fallible-iterator v0.2.0 Downloaded enumflags2_derive v0.7.10 Downloaded enum-map v2.7.3 Downloaded encode_unicode v1.0.0 Downloaded elementtree v0.7.0 Downloaded ed25519-dalek v2.1.1 Downloaded ed25519 v2.2.3 Downloaded easy-ext v0.2.9 Downloaded dmsort v1.0.2 Downloaded digest v0.9.0 Downloaded derive_arbitrary v1.4.1 Downloaded debugid v0.7.3 Downloaded darling_macro v0.20.10 Downloaded darling_core v0.20.10 Downloaded darling v0.20.10 Downloaded bitcoin_hashes v0.13.0 Downloaded textwrap v0.16.1 Downloaded event-listener v2.5.3 Downloaded enum-map-derive v0.17.0 Downloaded easy-ext v1.0.2 Downloaded dirs v5.0.1 Downloaded derivative v2.2.0 Downloaded curve25519-dalek-derive v0.1.1 Downloaded curve25519-dalek v4.1.3 Downloaded csv-core v0.1.11 Downloaded smawk v0.3.2 Downloaded symbolic-common v8.8.0 Downloaded slipped10 v0.4.6 Downloaded tempfile v3.15.0 Downloaded strum_macros v0.24.3 Downloaded strum v0.24.1 Downloaded string_cache v0.8.7 Downloaded smart-default v0.6.0 Downloaded actix v0.13.5 Downloaded addr2line v0.21.0 Downloaded axum-core v0.3.4 Downloaded async-fs v1.6.0 Downloaded async-executor v1.13.1 Downloaded async-broadcast v0.5.1 Downloaded async-stream v0.3.6 Downloaded async-lock v2.8.0 Downloaded arbitrary v1.4.1 Downloaded async-recursion v1.1.1 Downloaded actix_derive v0.6.2 Downloaded actix-rt v2.10.0 Downloaded actix-macros v0.2.4 Compiling libc v0.2.169 Compiling serde v1.0.217 Compiling syn v2.0.94 Compiling version_check v0.9.5 Compiling shlex v1.3.0 Compiling once_cell v1.20.2 Compiling jobserver v0.1.32 Compiling generic-array v0.14.7 Compiling smallvec v1.13.2 Compiling cc v1.2.7 Compiling futures-core v0.3.31 Compiling pkg-config v0.3.31 Compiling lock_api v0.4.12 Compiling parking_lot_core v0.9.10 Compiling scopeguard v1.2.0 Compiling getrandom v0.2.15 Compiling bytes v1.9.0 Compiling parking_lot v0.12.3 Compiling byteorder v1.5.0 Compiling log v0.4.22 Compiling signal-hook-registry v1.4.2 Compiling hashbrown v0.15.2 Compiling equivalent v1.0.1 Compiling toml_datetime v0.6.8 Compiling futures-sink v0.3.31 Compiling socket2 v0.5.8 Compiling mio v1.0.3 Compiling indexmap v2.7.0 Compiling synstructure v0.13.1 Compiling tracing-core v0.1.33 Compiling subtle v2.6.1 Compiling rand_core v0.6.4 Compiling futures-channel v0.3.31 Compiling crypto-common v0.1.6 Compiling num-traits v0.2.19 Compiling anyhow v1.0.95 Compiling block-buffer v0.10.4 Compiling syn v1.0.109 Compiling fnv v1.0.7 Compiling cfg_aliases v0.2.1 Compiling digest v0.10.7 Compiling winnow v0.6.22 Compiling zstd-sys v2.0.13+zstd.1.5.6 Compiling serde_derive v1.0.217 Compiling zerofrom-derive v0.1.5 Compiling yoke-derive v0.7.5 Compiling tokio-macros v2.5.0 Compiling tracing-attributes v0.1.28 Compiling tokio v1.43.0 Compiling zerovec-derive v0.10.3 Compiling tracing v0.1.41 Compiling displaydoc v0.2.5 Compiling futures-macro v0.3.31 Compiling zerocopy-derive v0.7.35 Compiling futures-util v0.3.31 Compiling zerocopy v0.7.35 Compiling toml_edit v0.22.22 Compiling rustversion v1.0.19 Compiling crossbeam-utils v0.8.21 Compiling icu_provider_macros v1.5.0 Compiling bitflags v2.6.0 Compiling proc-macro-crate v3.2.0 Compiling ppv-lite86 v0.2.20 Compiling thiserror-impl v1.0.69 Compiling borsh-derive v1.5.3 Compiling lazy_static v1.5.0 Compiling rand_chacha v0.3.1 Compiling serde_json v1.0.134 Compiling rand v0.8.5 Compiling thiserror v1.0.69 Compiling borsh v1.5.3 Compiling stable_deref_trait v1.2.0 Compiling tokio-util v0.7.13 Compiling sha2 v0.10.8 Compiling percent-encoding v2.3.1 Compiling semver v1.0.24 Compiling zerofrom v0.1.5 Compiling bitflags v1.3.2 Compiling yoke v0.7.5 Compiling num-integer v0.1.46 Compiling httparse v1.9.5 Compiling tower-service v0.3.3 Compiling memchr v2.7.4 Compiling zerovec v0.10.4 Compiling hex v0.4.3 Compiling ring v0.17.8 Compiling cfg-if v1.0.0 Compiling try-lock v0.2.5 Compiling want v0.3.1 Compiling async-trait v0.1.85 Compiling typenum v1.17.0 Compiling static_assertions v1.1.0 Compiling tinystr v0.7.6 Compiling http v0.2.12 Compiling thread_local v1.1.8 Compiling writeable v0.5.5 Compiling regex-syntax v0.6.29 Compiling litemap v0.7.4 Compiling powerfmt v0.2.0 Compiling deranged v0.3.11 Compiling icu_locid v1.5.0 Compiling regex-automata v0.1.10 Compiling openssl-src v300.4.1+3.4.0 Compiling num_cpus v1.16.0 Compiling tower-layer v0.3.3 Compiling num-conv v0.1.0 Compiling time-core v0.1.2 Compiling overload v0.1.1 Compiling vcpkg v0.2.15 Compiling nu-ansi-term v0.46.0 Compiling time v0.3.37 Compiling openssl-sys v0.9.104 Compiling matchers v0.1.0 Compiling futures-executor v0.3.31 Compiling icu_provider v1.5.0 Compiling http-body v0.4.6 Compiling aho-corasick v1.1.3 Compiling rustc_version v0.4.1 Compiling sharded-slab v0.1.7 Compiling crossbeam-channel v0.5.14 Compiling pin-project-internal v1.1.8 Compiling serde_repr v0.1.19 Compiling tracing-log v0.2.0 Compiling bzip2-sys v0.1.11+1.0.8 Compiling num-bigint v0.3.3 Compiling indexmap v1.9.3 Compiling zstd-safe v5.0.2+zstd.1.5.2 Compiling base64 v0.21.7 Compiling icu_locid_transform_data v1.5.0 Compiling regex-syntax v0.8.5 Compiling icu_locid_transform v1.5.0 Compiling pin-project v1.1.8 Compiling tracing-subscriber v0.3.19 Compiling curve25519-dalek v4.1.3 Compiling regex-automata v0.4.9 Compiling h2 v0.3.26 Compiling icu_collections v1.5.0 Compiling near-account-id v1.0.0 Compiling axum-core v0.3.4 Compiling num-rational v0.3.2 Compiling base64 v0.22.1 Compiling strsim v0.11.1 Compiling mime v0.3.17 Compiling httpdate v1.0.3 Compiling crunchy v0.2.2 Compiling convert_case v0.4.0 Compiling icu_properties_data v1.5.0 Compiling either v1.13.0 Compiling ident_case v1.0.1 Compiling hashbrown v0.12.3 Compiling itertools v0.12.1 Compiling darling_core v0.20.10 Compiling derive_more v0.99.18 Compiling icu_properties v1.5.1 Compiling hyper v0.14.32 Compiling regex v1.11.1 Compiling axum v0.6.20 Compiling tokio-stream v0.1.17 Compiling enum-map-derive v0.17.0 Compiling derive_arbitrary v1.4.1 Compiling curve25519-dalek-derive v0.1.1 Compiling secp256k1-sys v0.8.1 Compiling rustls-pki-types v1.10.1 Compiling rustls v0.23.20 Compiling utf8_iter v1.0.4 Compiling signature v2.2.0 Compiling schemars v0.8.21 Compiling urlencoding v2.1.3 Compiling heck v0.4.1 Compiling icu_normalizer_data v1.5.0 Compiling heck v0.5.0 Compiling write16 v1.0.0 Compiling utf16_iter v1.0.5 Compiling bs58 v0.4.0 Compiling icu_normalizer v1.5.0 Compiling strum_macros v0.24.3 Compiling opentelemetry v0.22.0 Compiling ed25519 v2.2.3 Compiling arbitrary v1.4.1 Compiling enum-map v2.7.3 Compiling darling_macro v0.20.10 Compiling prost-derive v0.12.6 Compiling tower v0.4.13 Compiling concurrent-queue v2.5.0 Compiling tokio-io-timeout v1.2.0 Compiling async-stream-impl v0.3.6 Compiling ordered-float v4.6.0 Compiling serde_derive_internals v0.29.1 Compiling block-padding v0.3.3 Compiling matchit v0.7.3 Compiling sync_wrapper v0.1.2 Compiling foreign-types-shared v0.1.1 Compiling openssl v0.10.68 Compiling glob v0.3.2 Compiling foreign-types v0.3.2 Compiling opentelemetry_sdk v0.22.1 Compiling schemars_derive v0.8.21 Compiling inout v0.1.3 Compiling async-stream v0.3.6 Compiling hyper-timeout v0.4.1 Compiling prost v0.12.6 Compiling darling v0.20.10 Compiling uint v0.9.5 Compiling near-primitives-core v0.23.0 Compiling ed25519-dalek v2.1.1 Compiling strum v0.24.1 Compiling idna_adapter v1.2.0 Compiling fixed-hash v0.7.0 Compiling form_urlencoded v1.2.1 Compiling openssl-macros v0.1.1 Compiling http v1.2.0 Compiling protobuf v2.28.0 Compiling json_comments v0.2.2 Compiling winnow v0.5.40 Compiling fastrand v2.3.0 Compiling rustix v0.38.42 Compiling near-config-utils v0.23.0 Compiling primitive-types v0.10.1 Compiling toml_edit v0.19.15 Compiling idna v1.0.3 Compiling tonic v0.11.0 Compiling secp256k1 v0.27.0 Compiling cipher v0.4.4 Compiling actix-rt v2.10.0 Compiling actix-macros v0.2.4 Compiling actix_derive v0.6.2 Compiling blake2 v0.10.6 Compiling hmac v0.12.1 Compiling proc-macro-error-attr v1.0.4 Compiling adler2 v2.0.0 Compiling zstd-safe v7.2.1 Compiling linux-raw-sys v0.4.14 Compiling ryu v1.0.18 Compiling prometheus v0.13.4 Compiling arrayvec v0.7.6 Compiling itoa v1.0.14 Compiling near-stdx v0.23.0 Compiling near-crypto v0.23.0 Compiling clap_builder v4.5.23 Compiling miniz_oxide v0.8.2 Compiling actix v0.13.5 Compiling opentelemetry-proto v0.5.0 Compiling proc-macro-crate v1.3.1 Compiling url v2.5.4 Compiling http-body v1.0.1 Compiling event-listener v5.3.1 Compiling clap_derive v4.5.18 Compiling futures v0.3.31 Compiling sha1 v0.10.6 Compiling zvariant_utils v1.0.1 Compiling proc-macro-error v1.0.4 Compiling crc32fast v1.4.2 Compiling native-tls v0.2.12 Compiling unsafe-libyaml v0.2.11 Compiling cpufeatures v0.2.16 Compiling event-listener v2.5.3 Compiling reed-solomon-erasure v4.0.2 Compiling io-lifetimes v1.0.11 Compiling opentelemetry-semantic-conventions v0.14.0 Compiling opentelemetry-otlp v0.15.0 Compiling chrono v0.4.39 Compiling serde_yaml v0.9.34+deprecated Compiling flate2 v1.0.35 Compiling clap v4.5.23 Compiling event-listener-strategy v0.5.3 Compiling aes v0.8.4 Compiling h2 v0.4.7 Compiling serde_with_macros v3.12.0 Compiling tracing-opentelemetry v0.23.0 Compiling tracing-appender v0.2.3 Compiling near-time v0.23.0 Compiling near-rpc-error-core v0.23.0 Compiling enumflags2_derive v0.7.10 Compiling dirs-sys-next v0.1.2 Compiling futures-lite v2.5.0 Compiling memoffset v0.7.1 Compiling polling v2.8.0 Compiling dyn-clone v1.0.17 Compiling unicode-width v0.1.14 Compiling waker-fn v1.2.0 Compiling rustix v0.37.28 Compiling fastrand v1.9.0 Compiling keccak v0.1.5 Compiling untrusted v0.9.0 Compiling siphasher v0.3.11 Compiling spin v0.9.8 Compiling openssl-probe v0.1.5 Compiling itertools v0.10.5 Compiling sha3 v0.10.8 Compiling futures-lite v1.13.0 Compiling dirs-next v2.0.0 Compiling enumflags2 v0.7.10 Compiling near-rpc-error-macro v0.23.0 Compiling near-o11y v0.23.0 Compiling hyper v1.5.2 Compiling serde_with v3.12.0 Compiling zstd v0.13.2 Compiling async-channel v2.3.1 Compiling near-parameters v0.23.0 Compiling async-lock v2.8.0 Compiling zvariant_derive v3.15.2 Compiling near-performance-metrics v0.23.0 Compiling piper v0.2.4 Compiling near-fmt v0.23.0 Compiling bytesize v1.3.0 Compiling smart-default v0.6.0 Compiling near-async-derive v0.23.0 Compiling filetime v0.2.25 Compiling async-io v1.13.0 Compiling async-fs v1.6.0 Compiling proc-macro2 v1.0.92 Compiling unicode-ident v1.0.14 Compiling easy-ext v0.2.9 Compiling signal-hook v0.3.17 Compiling base64ct v1.6.0 Compiling linux-raw-sys v0.3.8 Compiling password-hash v0.4.2 Compiling near-primitives v0.23.0 Compiling near-async v0.23.0 Compiling zvariant v3.15.2 Compiling blocking v1.6.1 Compiling interactive-clap-derive v0.2.10 Compiling hyper-util v0.1.10 Compiling rustls-webpki v0.102.8 Compiling Inflector v0.11.4 Compiling http-body-util v0.1.2 Compiling num-bigint v0.4.6 Compiling backtrace v0.3.71 Compiling socket2 v0.4.10 Compiling sync_wrapper v1.0.2 Compiling ahash v0.8.11 Compiling vte_generate_state_changes v0.1.2 Compiling adler v1.0.2 Compiling gimli v0.28.1 Compiling zeroize v1.8.1 Compiling portable-atomic v1.10.0 Compiling bitcoin-internals v0.2.0 Compiling eyre v0.6.12 Compiling addr2line v0.21.0 Compiling miniz_oxide v0.7.4 Compiling vte v0.11.1 Compiling near-chain-configs v0.23.0 Compiling tower v0.5.2 Compiling num-rational v0.4.2 Compiling pbkdf2 v0.11.0 Compiling nix v0.26.4 Compiling zstd v0.11.2+zstd.1.5.2 Compiling interactive-clap v0.2.10 Compiling zbus_names v2.6.1 Compiling bzip2 v0.4.4 Compiling quote v1.0.38 Compiling xattr v1.4.0 Compiling async-executor v1.13.1 Compiling webpki-roots v0.26.7 Compiling async-broadcast v0.5.1 Compiling zbus_macros v3.15.2 Compiling serde_urlencoded v0.7.1 Compiling rustls-pemfile v2.2.0 Compiling tracing-error v0.2.1 Compiling num-iter v0.1.45 Compiling derivative v2.2.0 Compiling async-recursion v1.1.1 Compiling num-complex v0.4.6 Compiling mio v0.8.11 Compiling digest v0.9.0 Compiling xdg-home v1.3.0 Compiling ordered-stream v0.2.0 Compiling object v0.32.2 Compiling radium v0.7.0 Compiling owo-colors v3.5.0 Compiling constant_time_eq v0.1.5 Compiling indenter v0.3.3 Compiling ipnet v2.10.1 Compiling option-ext v0.2.0 Compiling rustc-demangle v0.1.24 Compiling tinyvec_macros v0.1.1 Compiling unicode-width v0.2.0 Compiling uuid v0.8.2 Compiling console v0.15.10 Compiling ureq v2.12.1 Compiling tinyvec v1.8.1 Compiling color-spantrace v0.2.1 Compiling dirs-sys v0.4.1 Compiling zip v0.6.6 Compiling zbus v3.15.2 Compiling signal-hook-mio v0.2.4 Compiling num v0.4.3 Compiling tar v0.4.43 Compiling near-jsonrpc-primitives v0.23.0 Compiling vt100 v0.15.2 Compiling near-abi v0.4.3 Compiling uriparse v0.6.4 Compiling phf_shared v0.10.0 Compiling near_schemafy_core v0.7.0 Compiling hkdf v0.12.4 Compiling cbc v0.1.2 Compiling serde_spanned v0.6.8 Compiling scroll_derive v0.11.1 Compiling crypto-mac v0.9.1 Compiling block-buffer v0.9.0 Compiling is-docker v0.2.0 Compiling fs2 v0.4.3 Compiling csv-core v0.1.11 Compiling fallible-iterator v0.2.0 Compiling hex-conservative v0.1.2 Compiling is_executable v0.1.2 Compiling same-file v1.0.6 Compiling number_prefix v0.4.0 Compiling iana-time-zone v0.1.61 Compiling hex v0.3.2 Compiling rust_decimal v1.36.0 Compiling pin-project-lite v0.2.15 Compiling opaque-debug v0.3.1 Compiling tap v1.0.1 Compiling unicode-segmentation v1.12.0 Compiling precomputed-hash v0.1.1 Compiling minimal-lexical v0.2.1 Compiling camino v1.1.9 Compiling near-sandbox-utils v0.8.0 Compiling new_debug_unreachable v1.0.6 Compiling string_cache v0.8.7 Compiling nom v7.1.3 Compiling newline-converter v0.3.0 Compiling binary-install v0.2.0 Compiling wyz v0.5.1 Compiling sha2 v0.9.9 Compiling indicatif v0.17.9 Compiling walkdir v2.5.0 Compiling bitcoin_hashes v0.13.0 Compiling csv v1.3.1 Compiling scroll v0.11.0 Compiling is-wsl v0.4.0 Compiling hmac v0.9.0 Compiling secret-service v3.1.0 Compiling near_schemafy_lib v0.7.0 Compiling hashbrown v0.14.5 Compiling crossterm v0.25.0 Compiling color-eyre v0.6.3 Compiling dirs v5.0.1 Compiling unicode-normalization v0.1.22 Compiling debugid v0.7.3 Compiling near-token v0.2.1 Compiling term v0.7.0 Compiling tempfile v3.15.0 Compiling brownstone v1.1.0 Compiling fuzzy-matcher v0.3.7 Compiling linux-keyutils v0.2.4 Compiling fxhash v0.2.1 Compiling is-terminal v0.4.13 Compiling memmap2 v0.5.10 Compiling smawk v0.3.2 Compiling funty v2.0.0 Compiling unicode-linebreak v0.1.5 Compiling names v0.14.0 Compiling plain v0.2.3 Compiling xml-rs v0.8.25 Compiling shell-escape v0.1.5 Compiling scroll v0.10.2 Compiling bs58 v0.5.1 Compiling prettyplease v0.1.25 Compiling home v0.5.11 Compiling pathdiff v0.2.3 Compiling indent_write v2.2.0 Compiling joinery v2.1.0 Compiling encode_unicode v1.0.0 Compiling nom-supreme v0.6.0 Compiling elementtree v0.7.0 Compiling prettytable v0.10.0 Compiling open v5.3.2 Compiling pdb v0.7.0 Compiling goblin v0.5.4 Compiling textwrap v0.16.1 Compiling bitvec v1.0.1 Compiling symbolic-common v8.8.0 Compiling inquire v0.7.5 Compiling keyring v2.3.3 Compiling bip39 v2.1.0 Compiling shellexpand v3.1.0 Compiling near-abi-client-impl v0.1.1 Compiling wasmparser v0.211.1 Compiling slipped10 v0.4.6 Compiling toml v0.8.19 Compiling tracing-indicatif v0.3.8 Compiling gimli v0.26.2 Compiling near-gas v0.2.5 Compiling zip v0.5.13 Compiling env_filter v0.1.3 Compiling linked-hash-map v0.5.6 Compiling cargo-platform v0.1.9 Compiling smart-default v0.7.1 Compiling wasmparser v0.83.0 Compiling near-sdk-macros v5.7.0 Compiling near-sandbox-utils v0.9.0 Compiling humantime v2.1.0 Compiling shell-words v1.1.0 Compiling dmsort v1.0.2 Compiling lazycell v1.3.0 Compiling easy-ext v1.0.2 Compiling symbolic-debuginfo v8.8.0 Compiling env_logger v0.11.6 Compiling cargo_metadata v0.18.1 Compiling near-abi-client-macros v0.1.1 Compiling near-workspaces v0.11.1 Compiling strum_macros v0.26.4 Compiling jsonptr v0.4.7 Compiling colored v2.2.0 Compiling atty v0.2.14 Compiling libloading v0.8.6 Compiling near-sandbox-utils v0.13.0 Compiling dunce v1.0.5 Compiling strum v0.26.3 Compiling convert_case v0.5.0 Compiling json-patch v2.0.0 Compiling near-abi-client v0.1.1 Compiling tokio-retry v0.3.0 Compiling near-token v0.3.0 Compiling near-gas v0.3.0 Compiling uuid v1.11.0 Compiling near-sys v0.2.2 Compiling near-sdk v5.7.0 Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust) warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:146:16 | 146 | if POOL.is_none() { | ^^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives = note: `#[warn(static_mut_refs)]` on by default warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:151:13 | 151 | POOL.as_ref().unwrap() | ^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:170:16 | 170 | if LOCKS.is_none() { | ^^^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives warning: creating a shared reference to mutable static is discouraged --> /home/runner/work/polyglot/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust/src/./Async.rs:174:13 | 174 | LOCKS.as_ref().unwrap() | ^^^^^^^^^^^^^^ shared reference to mutable static | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html> = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives warning: `fable_library_rust` (lib) generated 4 warnings Compiling crypto-hash v0.3.4 Compiling cargo-util v0.1.2 Compiling tokio-native-tls v0.3.1 Compiling hyper-tls v0.6.0 Compiling reqwest v0.12.12 Compiling near-jsonrpc-client v0.10.1 Compiling near-socialdb-client v0.3.2 Compiling near-cli-rs v0.11.1 Compiling cargo-near v0.6.4 Compiling spiral_wasm v0.0.1 (/home/runner/work/polyglot/spiral/apps/wasm) Finished `release` profile [optimized] target(s) in 4m 33s
In [ ]:
{ pwsh ../lib/math/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path math.dib --retries 5"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path math.dib --retries 5; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "math.dib", "--retries", "5"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/lib/math/math.dib", "--output-path", "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/lib/math/math.dib" --output-path "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ # math 00:00:05 v #13 > > 00:00:05 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:05 v #15 > > open testing 00:00:05 v #16 > > open rust.rust_operators 00:00:05 v #17 > > open rust 00:00:08 v #18 > > 00:00:08 v #19 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:08 v #20 > > │ ## complex 00:00:08 v #21 > > 00:00:08 v #22 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:08 v #23 > > nominal complex t = 00:00:08 v #24 > > `( 00:00:08 v #25 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 00:00:08 v #26 > > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]]\n#endif\ntype 00:00:08 v #27 > > num_complex_Complex<'T> = class end" 00:00:08 v #28 > > $'' : $'num_complex_Complex<`t>' 00:00:08 v #29 > > ) 00:00:08 v #30 > > 00:00:08 v #31 > > inl complex forall t. ((re : t), (im : t)) : complex t = 00:00:08 v #32 > > !\\((re, im), $'"num_complex::Complex::new($0, $1)"') 00:00:09 v #33 > > 00:00:09 v #34 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #35 > > //// test 00:00:09 v #36 > > ///! rust -d num-complex 00:00:09 v #37 > > 00:00:09 v #38 > > complex (0f64, 0f64) 00:00:09 v #39 > > |> sm'.format' 00:00:09 v #40 > > |> sm'.from_std_string 00:00:09 v #41 > > |> _assert_eq "0+0i" 00:00:21 v #42 > > 00:00:21 v #43 > > ── [ 12.80s - return value ] ─────────────────────────────────────────────────── 00:00:21 v #44 > > │ __assert_eq / actual: "0+0i" / expected: "0+0i" 00:00:21 v #45 > > │ 00:00:21 v #46 > > 00:00:21 v #47 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:21 v #48 > > │ ## re 00:00:21 v #49 > > 00:00:21 v #50 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:21 v #51 > > inl re forall t. (c : complex t) : t = 00:00:21 v #52 > > !\\(c, $'"$0.re"') 00:00:22 v #53 > > 00:00:22 v #54 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:22 v #55 > > │ ## im 00:00:22 v #56 > > 00:00:22 v #57 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:22 v #58 > > inl im forall t. (c : complex t) : t = 00:00:22 v #59 > > !\\(c, $'"$0.im"') 00:00:22 v #60 > > 00:00:22 v #61 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:22 v #62 > > │ ## complex_unbox 00:00:22 v #63 > > 00:00:22 v #64 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:22 v #65 > > inl complex_unbox forall t. (c : complex t) = 00:00:22 v #66 > > re c, im c 00:00:22 v #67 > > 00:00:22 v #68 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:22 v #69 > > │ ## (~.^) 00:00:22 v #70 > > 00:00:22 v #71 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:22 v #72 > > inl (~.^) c = complex c 00:00:22 v #73 > > 00:00:22 v #74 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:22 v #75 > > │ ## complex_eq 00:00:22 v #76 > > 00:00:22 v #77 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:22 v #78 > > inl complex_eq forall t. (a : complex t) (b : complex t) : bool = 00:00:22 v #79 > > !\\((a, b), $'"$0 == $1"') 00:00:22 v #80 > > 00:00:22 v #81 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:22 v #82 > > │ ## (.=) 00:00:22 v #83 > > 00:00:22 v #84 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:22 v #85 > > inl (.=) a b = complex_eq a b 00:00:23 v #86 > > 00:00:23 v #87 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #88 > > │ ## equable complex 00:00:23 v #89 > > 00:00:23 v #90 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:23 v #91 > > instance equable complex t = complex_eq 00:00:23 v #92 > > 00:00:23 v #93 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #94 > > │ ## complex_add 00:00:23 v #95 > > 00:00:23 v #96 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:23 v #97 > > inl complex_add forall t. (a : complex t) (b : complex t) : complex t = 00:00:23 v #98 > > !\\((a, b), $'"$0 + $1"') 00:00:23 v #99 > > 00:00:23 v #100 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #101 > > │ ## (.+) 00:00:23 v #102 > > 00:00:23 v #103 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:23 v #104 > > inl (.+) a b = complex_add a b 00:00:23 v #105 > > 00:00:23 v #106 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #107 > > │ ## complex_sub 00:00:23 v #108 > > 00:00:23 v #109 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:23 v #110 > > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t = 00:00:23 v #111 > > !\\((a, b), $'"$0 - $1"') 00:00:23 v #112 > > 00:00:23 v #113 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #114 > > │ ## (.-) 00:00:23 v #115 > > 00:00:23 v #116 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:23 v #117 > > inl (.-) a b = complex_sub a b 00:00:23 v #118 > > 00:00:23 v #119 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #120 > > │ ## complex_mult 00:00:24 v #121 > > 00:00:24 v #122 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:24 v #123 > > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t = 00:00:24 v #124 > > !\\((a, b), $'"$0 * $1"') 00:00:24 v #125 > > 00:00:24 v #126 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:24 v #127 > > │ ## (.*) 00:00:24 v #128 > > 00:00:24 v #129 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:24 v #130 > > inl (.*) a b = complex_mult a b 00:00:24 v #131 > > 00:00:24 v #132 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:24 v #133 > > │ ## complex_div 00:00:24 v #134 > > 00:00:24 v #135 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:24 v #136 > > inl complex_div forall t. (a : complex t) (b : complex t) : complex t = 00:00:24 v #137 > > !\\((a, b), $'"$0 / $1"') 00:00:24 v #138 > > 00:00:24 v #139 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:24 v #140 > > │ ## (./) 00:00:24 v #141 > > 00:00:24 v #142 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:24 v #143 > > inl (./) a b = complex_div a b 00:00:24 v #144 > > 00:00:24 v #145 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:24 v #146 > > │ ## powc 00:00:24 v #147 > > 00:00:24 v #148 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:24 v #149 > > inl powc forall t. (s : complex t) (c : complex t) : complex t = 00:00:24 v #150 > > !\\((c, s), $'"num_complex::Complex::powc($0, $1)"') 00:00:24 v #151 > > 00:00:24 v #152 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:24 v #153 > > │ ## (.**) 00:00:24 v #154 > > 00:00:24 v #155 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:24 v #156 > > inl (.**) a b = powc b a 00:00:25 v #157 > > 00:00:25 v #158 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #159 > > │ ## complex_sin 00:00:25 v #160 > > 00:00:25 v #161 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #162 > > inl complex_sin forall t. (c : complex t) : complex t = 00:00:25 v #163 > > !\\(c, $'"$0.sin()"') 00:00:25 v #164 > > 00:00:25 v #165 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #166 > > │ ## conj 00:00:25 v #167 > > 00:00:25 v #168 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #169 > > inl conj forall t. (c : complex t) : complex t = 00:00:25 v #170 > > !\\(c, $'"$0.conj()"') 00:00:25 v #171 > > 00:00:25 v #172 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #173 > > │ ## zeta 00:00:25 v #174 > > 00:00:25 v #175 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #176 > > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex 00:00:25 v #177 > > f64 = 00:00:25 v #178 > > inl rec zeta count gamma s = 00:00:25 v #179 > > if log then 00:00:25 v #180 > > !\\((count, s), $'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\", 00:00:25 v #181 > > $0, $1)"') 00:00:25 v #182 > > if re s > 1 then 00:00:25 v #183 > > (.^(0, 0), (am.init 10000i32 id : a i32 _)) 00:00:25 v #184 > > ||> am.fold fun acc n => 00:00:25 v #185 > > acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s)) 00:00:25 v #186 > > else 00:00:25 v #187 > > inl gamma_term = gamma (.^(1, 0) .- s) 00:00:25 v #188 > > inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin 00:00:25 v #189 > > inl one_minus_s = .^(1 - re s, -(im s)) 00:00:25 v #190 > > inl mirror_term = 00:00:25 v #191 > > if re one_minus_s <= 1 00:00:25 v #192 > > then .^(0, 0) 00:00:25 v #193 > > else 00:00:25 v #194 > > if count <= 3 00:00:25 v #195 > > then zeta (count + 1) gamma one_minus_s 00:00:25 v #196 > > else one_minus_s 00:00:25 v #197 > > inl reflection_formula = 00:00:25 v #198 > > .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .* 00:00:25 v #199 > > mirror_term 00:00:25 v #200 > > reflection_formula 00:00:25 v #201 > > join zeta 0i32 gamma s 00:00:25 v #202 > > 00:00:25 v #203 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #204 > > │ ## bound 00:00:25 v #205 > > 00:00:25 v #206 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #207 > > nominal bound t = 00:00:25 v #208 > > `( 00:00:25 v #209 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 00:00:25 v #210 > > Fable.Core.Emit(\"pyo3::Bound<$0>\")>]]\n#endif\ntype pyo3_Bound<'T> = class 00:00:25 v #211 > > end" 00:00:25 v #212 > > $'' : $'pyo3_Bound<`t>' 00:00:25 v #213 > > ) 00:00:25 v #214 > > 00:00:25 v #215 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #216 > > │ ## python 00:00:25 v #217 > > 00:00:25 v #218 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #219 > > nominal python = 00:00:25 v #220 > > `( 00:00:25 v #221 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 00:00:25 v #222 > > Fable.Core.Emit(\"pyo3::Python\")>]]\n#endif\ntype pyo3_Python = class end" 00:00:25 v #223 > > $'' : $'pyo3_Python' 00:00:25 v #224 > > ) 00:00:25 v #225 > > 00:00:25 v #226 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #227 > > │ ## pymodule 00:00:25 v #228 > > 00:00:25 v #229 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #230 > > nominal pymodule = 00:00:25 v #231 > > `( 00:00:25 v #232 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 00:00:25 v #233 > > Fable.Core.Emit(\"pyo3::types::PyModule\")>]]\n#endif\ntype pyo3_types_PyModule 00:00:25 v #234 > > = class end" 00:00:25 v #235 > > $'' : $'pyo3_types_PyModule' 00:00:25 v #236 > > ) 00:00:25 v #237 > > 00:00:25 v #238 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #239 > > │ ## pyany 00:00:25 v #240 > > 00:00:25 v #241 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #242 > > nominal pyany = 00:00:25 v #243 > > `( 00:00:25 v #244 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 00:00:25 v #245 > > Fable.Core.Emit(\"pyo3::PyAny\")>]]\n#endif\ntype pyo3_PyAny = class end" 00:00:25 v #246 > > $'' : $'pyo3_PyAny' 00:00:25 v #247 > > ) 00:00:26 v #248 > > 00:00:26 v #249 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:26 v #250 > > │ ## pyerr 00:00:26 v #251 > > 00:00:26 v #252 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:26 v #253 > > nominal pyerr = 00:00:26 v #254 > > `( 00:00:26 v #255 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; 00:00:26 v #256 > > Fable.Core.Emit(\"pyo3::PyErr\")>]]\n#endif\ntype pyo3_PyErr = class end" 00:00:26 v #257 > > $'' : $'pyo3_PyErr' 00:00:26 v #258 > > ) 00:00:26 v #259 > > 00:00:26 v #260 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:26 v #261 > > │ ## eval 00:00:26 v #262 > > 00:00:26 v #263 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:26 v #264 > > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ = 00:00:26 v #265 > > inl py = join py 00:00:26 v #266 > > inl code = code |> sm'.to_std_string |> sm'.new_c_string 00:00:26 v #267 > > inl empty = "" |> sm'.to_std_string |> sm'.new_c_string 00:00:26 v #268 > > !\\(code, $'"pyo3::types::PyModule::from_code(!py, &$0, &!empty, &!empty)"') 00:00:26 v #269 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' 00:00:26 v #270 > > 00:00:26 v #271 > > inl use_pyanymethods () = 00:00:26 v #272 > > global "Fable.Core.RustInterop.emitRustExpr () \");\nuse 00:00:26 v #273 > > pyo3::prelude::PyAnyMethods;\n//\"" 00:00:26 v #274 > > 00:00:26 v #275 > > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ = 00:00:26 v #276 > > inl attr = join attr 00:00:26 v #277 > > inl attr = attr |> sm'.as_str 00:00:26 v #278 > > inl module = join module 00:00:26 v #279 > > use_pyanymethods () 00:00:26 v #280 > > !\\(attr, $'"!module.getattr($0)"') 00:00:26 v #281 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' 00:00:26 v #282 > > 00:00:26 v #283 > > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ = 00:00:26 v #284 > > inl args = join args 00:00:26 v #285 > > inl module = join module 00:00:26 v #286 > > !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1), 00:00:26 v #287 > > None)"') 00:00:26 v #288 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' 00:00:26 v #289 > > 00:00:26 v #290 > > inl extract forall t. (result : bound pyany) : _ t _ = 00:00:26 v #291 > > inl result = join result 00:00:26 v #292 > > use_pyanymethods () 00:00:26 v #293 > > !\($'"!result.extract()"') 00:00:26 v #294 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' 00:00:26 v #295 > > 00:00:26 v #296 > > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string = 00:00:26 v #297 > > inl code = 00:00:26 v #298 > > code 00:00:26 v #299 > > |> module_from_code py 00:00:26 v #300 > > |> resultm.unwrap' 00:00:26 v #301 > > inl fn = 00:00:26 v #302 > > code 00:00:26 v #303 > > |> getattr "fn" 00:00:26 v #304 > > |> resultm.unwrap' 00:00:26 v #305 > > 00:00:26 v #306 > > fn 00:00:26 v #307 > > |> call args 00:00:26 v #308 > > |> resultm.try' 00:00:26 v #309 > > |> extract 00:00:26 v #310 > > |> resultm.try' 00:00:26 v #311 > > |> complex 00:00:26 v #312 > > |> Ok 00:00:26 v #313 > > |> resultm.box 00:00:26 v #314 > > 00:00:26 v #315 > > inl call1_ log py s code = 00:00:26 v #316 > > inl code = join (a code : _ i32 _) |> sm'.concat_array "\n" 00:00:26 v #317 > > 00:00:26 v #318 > > inl s = new_pair (re s) (im s) 00:00:26 v #319 > > inl args = new_pair log s 00:00:26 v #320 > > 00:00:26 v #321 > > eval py code args 00:00:26 v #322 > > 00:00:26 v #323 > > inl call1_ log name py s line = 00:00:26 v #324 > > inl s = join s 00:00:26 v #325 > > join 00:00:26 v #326 > > ;[[ 00:00:26 v #327 > > $'$"import sys"' 00:00:26 v #328 > > $'$"import traceback"' 00:00:26 v #329 > > $'$"import re"' 00:00:26 v #330 > > $'$"count = 0"' 00:00:26 v #331 > > $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"' 00:00:26 v #332 > > $'$"def trace_calls(frame, event, arg):"' 00:00:26 v #333 > > $'$" global count"' 00:00:26 v #334 > > $'$" count += 1"' 00:00:26 v #335 > > $'$" if count < 200:"' 00:00:26 v #336 > > $'$" try:"' 00:00:26 v #337 > > $'$" args = {{ k: v for k, v in frame.f_locals.items() if 00:00:26 v #338 > > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not 00:00:26 v #339 > > callable(v) }}"' 00:00:26 v #340 > > $'$" args_str = \', \'.join([[ 00:00:26 v #341 > > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k, 00:00:26 v #342 > > v in args.items() ]])"' 00:00:26 v #343 > > $'$" print(f\\\"{{event}}({!name}) / f_code.co_name: 00:00:26 v #344 > > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}} 00:00:26 v #345 > > / f_code.co_filename: 00:00:26 v #346 > > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno: 00:00:26 v #347 > > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }} 00:00:26 v #348 > > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else 00:00:26 v #349 > > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg: 00:00:26 v #350 > > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"' 00:00:26 v #351 > > $'$" except ValueError as e:"' 00:00:26 v #352 > > $'$" print(f\'{!name} / e: {{e}}\', flush=True)"' 00:00:26 v #353 > > $'$" return trace_calls"' 00:00:26 v #354 > > $'$"import mpmath"' 00:00:26 v #355 > > $'$"def fn(log, s):"' 00:00:26 v #356 > > $'$" global count"' 00:00:26 v #357 > > $'$" if log:"' 00:00:26 v #358 > > $'$" print(f\'{!name} / s: {{s}} / count: {{count}}\', 00:00:26 v #359 > > flush=True)"' 00:00:26 v #360 > > $'$" s = complex(*s)"' 00:00:26 v #361 > > $'$" try:"' 00:00:26 v #362 > > $'$" if log: sys.settrace(trace_calls)"' 00:00:26 v #363 > > line 00:00:26 v #364 > > $'$" if log:"' 00:00:26 v #365 > > $'$" sys.settrace(None)"' 00:00:26 v #366 > > $'$" print(f\'{!name} / result: {{s}} / count: 00:00:26 v #367 > > {{count}}\', flush=True)"' 00:00:26 v #368 > > $'$" except ValueError as e:"' 00:00:26 v #369 > > $'$" if s.real == 1:"' 00:00:26 v #370 > > $'$" s = complex(float(\'inf\'), 0)"' 00:00:26 v #371 > > $'$" return (s.real, s.imag)"' 00:00:26 v #372 > > ]] 00:00:26 v #373 > > |> call1_ log py s 00:00:26 v #374 > > 00:00:26 v #375 > > inl gamma_ log py s = 00:00:26 v #376 > > call1_ log "gamma_" py s $'$" s = mpmath.gamma(s)"' 00:00:26 v #377 > > 00:00:26 v #378 > > inl zeta_ log py s = 00:00:26 v #379 > > call1_ log "zeta_" py s $'$" s = mpmath.zeta(s)"' 00:00:26 v #380 > > 00:00:26 v #381 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:26 v #382 > > │ ## run_test 00:00:26 v #383 > > 00:00:26 v #384 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:26 v #385 > > inl run_test log (fn : (complex f64 -> complex f64) * (complex f64 -> complex 00:00:26 v #386 > > f64) -> ()) = 00:00:26 v #387 > > inl fn_ (py : python) : resultm.result' () pyerr = 00:00:26 v #388 > > inl nan () = 00:00:26 v #389 > > !\($'"f64::NAN"') 00:00:26 v #390 > > inl gamma__ = fun (s : complex f64) => 00:00:26 v #391 > > inl result = gamma_ log py s 00:00:26 v #392 > > if log then 00:00:26 v #393 > > inl s = join s 00:00:26 v #394 > > !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s, 00:00:26 v #395 > > !result)"') 00:00:26 v #396 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value 00:00:26 v #397 > > .^(nan (), nan ()) 00:00:26 v #398 > > inl zeta__ = fun (s : complex f64) => 00:00:26 v #399 > > inl result = zeta_ log py s 00:00:26 v #400 > > 00:00:26 v #401 > > inl z = zeta true gamma__ s 00:00:26 v #402 > > 00:00:26 v #403 > > if log then 00:00:26 v #404 > > inl s = join s 00:00:26 v #405 > > !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z: 00:00:26 v #406 > > {:?}\\\", !s, !result, !z)"') 00:00:26 v #407 > > 00:00:26 v #408 > > // re result - re x |> abs 00:00:26 v #409 > > // |> _assert_lt 0.001 00:00:26 v #410 > > 00:00:26 v #411 > > // im result - im x |> abs 00:00:26 v #412 > > // |> _assert_lt 0.001 00:00:26 v #413 > > 00:00:26 v #414 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value 00:00:26 v #415 > > .^(nan (), nan ()) 00:00:26 v #416 > > join fn (zeta__, gamma__) 00:00:26 v #417 > > 00:00:26 v #418 > > Ok () 00:00:26 v #419 > > |> resultm.box 00:00:26 v #420 > > 00:00:26 v #421 > > join 00:00:26 v #422 > > !\($'"pyo3::prepare_freethreaded_python()"') : () 00:00:26 v #423 > > 00:00:26 v #424 > > !\($'"let __run_test = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()> 00:00:26 v #425 > > { //"') 00:00:26 v #426 > > 00:00:26 v #427 > > let x' = fn_ (!\($'"py"') : python) 00:00:26 v #428 > > inl x' = join x' 00:00:26 v #429 > > 00:00:26 v #430 > > inl closure_fix = 2u8, 1u8 00:00:26 v #431 > > x' |> rust.fix_closure closure_fix 00:00:26 v #432 > > 00:00:26 v #433 > > (!\($'"__run_test"') : _ () pyerr) 00:00:26 v #434 > > |> resultm.unwrap' 00:00:26 v #435 > > 00:00:26 v #436 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:26 v #437 > > │ ## test_zeta_at_known_values_ 00:00:26 v #438 > > 00:00:26 v #439 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:26 v #440 > > inl test_zeta_at_known_values_ log = run_test log fun zeta, gamma => 00:00:26 v #441 > > ;[[ 00:00:26 v #442 > > .^(2, 0), pi ** 2 / 6 00:00:26 v #443 > > .^(-1, 0), -1 / 12 00:00:26 v #444 > > ]] 00:00:26 v #445 > > |> fun x => a x : _ i32 _ 00:00:26 v #446 > > |> am.iter fun s, e => 00:00:26 v #447 > > inl result = zeta s 00:00:26 v #448 > > 00:00:26 v #449 > > result |> im |> _assert_eq 0 00:00:26 v #450 > > re result - e |> abs |> _assert_lt 0.0001 00:00:26 v #451 > > 00:00:26 v #452 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:26 v #453 > > //// test 00:00:26 v #454 > > ///! rust -d num-complex pyo3 00:00:26 v #455 > > 00:00:26 v #456 > > test_zeta_at_known_values_ true 00:00:43 v #457 > > 00:00:43 v #458 > > ── [ 16.53s - return value ] ─────────────────────────────────────────────────── 00:00:43 v #459 > > │ zeta_ / s: (2.0, 0.0) / count: 0 00:00:43 v #460 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:00:43 v #461 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:00:43 v #462 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:43 v #463 > > arg: None 00:00:43 v #464 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:00:43 v #465 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:00:43 v #466 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:43 v #467 > > arg: None 00:00:43 v #468 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:00:43 v #469 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: 00:00:43 v #470 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:43 v #471 > > arg: None 00:00:43 v #472 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:00:43 v #473 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: 00:00:43 v #474 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:43 v #475 > > arg: None 00:00:43 v #476 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:00:43 v #477 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: 00:00:43 v #478 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:43 v #479 > > arg: None 00:00:43 v #480 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), 00:00:43 v #481 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:00:43 v #482 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:00:43 v #483 > > /mpmath/functions/zeta.py / arg: None 00:00:43 v #484 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), 00:00:43 v #485 > > kwargs={}, name='zeta' / f_linen...me: make_mpc / f_locals: / f_lineno: 603 00:00:43 v #486 > > f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 1007 00:00:43 v #487 > > f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:00:43 v #488 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: 00:00:43 v #489 > > f_lineno: 604 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:43 v #490 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:00:43 v #491 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: 00:00:43 v #492 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:43 v #493 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:00:43 v #494 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals: 00:00:43 v #495 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:43 v #496 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: 00:00:43 v #497 > > mpc(real='1.0', imag='0.0') 00:00:43 v #498 > > │ return(gamma_) / f_code.co_name: f / f_locals: 00:00:43 v #499 > > x=mpc(real='2.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' 00:00:43 v #500 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:43 v #501 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='1.0', imag='0.0') 00:00:43 v #502 > > │ gamma_ / result: (1.0 + 0.0j) / count: 140 00:00:43 v #503 > > │ gamma__ / s: Complex { re: 2.0, im: 0.0 } / result: 00:00:43 v #504 > > Ok(Complex { re: 1.0, im: 0.0 }) 00:00:43 v #505 > > │ zeta / count: 1 / s: Complex { re: 2.0, im: -0.0 } 00:00:43 v #506 > > │ zeta__ / s: Complex { re: -1.0, im: 0.0 } / result: 00:00:43 v #507 > > Ok(Complex { re: -0.08333333333333333, im: 0.0 }) / z: Complex { re: NaN, im: 00:00:43 v #508 > > NaN } 00:00:43 v #509 > > │ __assert_eq / actual: 0.0 / expected: 0.0 00:00:43 v #510 > > │ __assert_lt / actual: 0.0 / expected: 0.0001 00:00:43 v #511 > > │ 00:00:43 v #512 > > 00:00:43 v #513 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:43 v #514 > > │ ## test_zeta_at_2_minus2 00:00:43 v #515 > > 00:00:43 v #516 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:43 v #517 > > inl test_zeta_at_2_minus2 log = run_test log fun zeta, gamma => 00:00:43 v #518 > > inl s = .^(2, -2) 00:00:43 v #519 > > inl result = zeta s 00:00:43 v #520 > > 00:00:43 v #521 > > (re result - 0.8673) |> abs |> _assert_lt 0.001 00:00:43 v #522 > > (im result - 0.2750) |> abs |> _assert_lt 0.001 00:00:43 v #523 > > 00:00:43 v #524 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:43 v #525 > > //// test 00:00:43 v #526 > > ///! rust -d num-complex pyo3 00:00:43 v #527 > > 00:00:43 v #528 > > test_zeta_at_2_minus2 true 00:00:50 v #529 > > 00:00:50 v #530 > > ── [ 7.11s - return value ] ──────────────────────────────────────────────────── 00:00:50 v #531 > > │ zeta_ / s: (2.0, -2.0) / count: 0 00:00:50 v #532 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, 00:00:50 v #533 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:00:50 v #534 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:50 v #535 > > arg: None 00:00:50 v #536 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, 00:00:50 v #537 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:00:50 v #538 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:50 v #539 > > arg: None 00:00:50 v #540 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, 00:00:50 v #541 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: 00:00:50 v #542 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:50 v #543 > > arg: None 00:00:50 v #544 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, 00:00:50 v #545 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: 00:00:50 v #546 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:50 v #547 > > arg: None 00:00:50 v #548 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, 00:00:50 v #549 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: 00:00:50 v #550 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:50 v #551 > > arg: None 00:00:50 v #552 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2-2j), 00:00:50 v #553 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:00:50 v #554 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:00:50 v #555 > > /mpmath/functions/zeta.py / arg: None 00:00:50 v #556 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2-2j), 00:00:50 v #557 > > kwargs={}, name='zeta' / f_line.../ arg: None 00:00:50 v #558 > > │ call(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2 00:00:50 v #559 > > / f_lineno: 91 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:00:50 v #560 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:00:50 v #561 > > None 00:00:50 v #562 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2 00:00:50 v #563 > > / f_lineno: 93 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:00:50 v #564 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:00:50 v #565 > > None 00:00:50 v #566 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: 00:00:50 v #567 > > n=2, bc=2 / f_lineno: 94 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:00:50 v #568 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:00:50 v #569 > > None 00:00:50 v #570 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: 00:00:50 v #571 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:00:50 v #572 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:00:50 v #573 > > None 00:00:50 v #574 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals: 00:00:50 v #575 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:00:50 v #576 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:00:50 v #577 > > 2 00:00:50 v #578 > > │ zeta_ / result: (0.867351829635993 + 0.275127238807858j) 00:00:50 v #579 > > count: 1812 00:00:50 v #580 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -2.0 } 00:00:50 v #581 > > │ zeta__ / s: Complex { re: 2.0, im: -2.0 } / result: 00:00:50 v #582 > > Ok(Complex { re: 0.8673518296359931, im: 0.27512723880785767 }) / z: Complex { 00:00:50 v #583 > > re: NaN, im: NaN } 00:00:50 v #584 > > │ __assert_lt / actual: 5.182963599315027e-5 / expected: 0.001 00:00:50 v #585 > > │ __assert_lt / actual: 0.00012723880785764363 / expected: 00:00:50 v #586 > > 0.001 00:00:50 v #587 > > │ 00:00:50 v #588 > > 00:00:50 v #589 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:50 v #590 > > │ ## test_trivial_zero_at_negative_even___ 00:00:50 v #591 > > 00:00:50 v #592 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:50 v #593 > > inl test_trivial_zero_at_negative_even___ log = run_test log fun zeta, gamma => 00:00:50 v #594 > > (join listm'.init_series -2f64 -40 -2) 00:00:50 v #595 > > |> listm.iter fun n => 00:00:50 v #596 > > inl s = .^(n, 0) 00:00:50 v #597 > > inl result = zeta s 00:00:50 v #598 > > 00:00:50 v #599 > > result |> re |> _assert_eq 0 00:00:50 v #600 > > result |> im |> _assert_eq 0 00:00:50 v #601 > > 00:00:50 v #602 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:50 v #603 > > //// test 00:00:50 v #604 > > ///! rust -d num-complex pyo3 00:00:50 v #605 > > 00:00:50 v #606 > > test_trivial_zero_at_negative_even___ true 00:00:58 v #607 > > 00:00:58 v #608 > > ── [ 7.50s - return value ] ──────────────────────────────────────────────────── 00:00:58 v #609 > > │ zeta_ / s: (-2.0, 0.0) / count: 0 00:00:58 v #610 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), 00:00:58 v #611 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:00:58 v #612 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:58 v #613 > > arg: None 00:00:58 v #614 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), 00:00:58 v #615 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:00:58 v #616 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:00:58 v #617 > > arg: None 00:00:58 v #618 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), 00:00:58 v #619 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 00:00:58 v #620 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:00:58 v #621 > > f_back.f_code.co_filename: / arg: None 00:00:58 v #622 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), 00:00:58 v #623 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 00:00:58 v #624 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:00:58 v #625 > > f_back.f_code.co_filename: / arg: None 00:00:58 v #626 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), 00:00:58 v #627 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 00:00:58 v #628 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:00:58 v #629 > > f_back.f_code.co_filename: / arg: None 00:00:58 v #630 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j), 00:00:58 v #631 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:00:58 v #632 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:00:58 v #633 > > /mpmath/functions/zeta.py / arg: None 00:00:58 v #634 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j), 00:00:58 v #635 > > kwargs={}, name='zeta' /...lename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:58 v #636 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:00:58 v #637 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: 00:00:58 v #638 > > f_lineno: 604 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:58 v #639 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:00:58 v #640 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: 00:00:58 v #641 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:58 v #642 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:00:58 v #643 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals: 00:00:58 v #644 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:58 v #645 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: 00:00:58 v #646 > > mpc(real='8.1591528324789768e+47', imag='0.0') 00:00:58 v #647 > > │ return(gamma_) / f_code.co_name: f / f_locals: 00:00:58 v #648 > > x=mpc(real='41.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' 00:00:58 v #649 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:00:58 v #650 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='8.1591528324789768e+47', 00:00:58 v #651 > > imag='0.0') 00:00:58 v #652 > > │ gamma_ / result: (8.15915283247898e+47 + 0.0j) / count: 149 00:00:58 v #653 > > │ gamma__ / s: Complex { re: 41.0, im: 0.0 } / result: 00:00:58 v #654 > > Ok(Complex { re: 8.159152832478977e47, im: 0.0 }) 00:00:58 v #655 > > │ zeta / count: 1 / s: Complex { re: 41.0, im: -0.0 } 00:00:58 v #656 > > │ zeta__ / s: Complex { re: -40.0, im: 0.0 } / result: 00:00:58 v #657 > > Ok(Complex { re: 0.0, im: 0.0 }) / z: Complex { re: NaN, im: NaN } 00:00:58 v #658 > > │ __assert_eq / actual: 0.0 / expected: 0.0 00:00:58 v #659 > > │ __assert_eq / actual: 0.0 / expected: 0.0 00:00:58 v #660 > > │ 00:00:58 v #661 > > 00:00:58 v #662 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:58 v #663 > > │ ## test_non_trivial_zero___ 00:00:58 v #664 > > 00:00:58 v #665 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:58 v #666 > > inl test_non_trivial_zero___ log = run_test log fun zeta, gamma => 00:00:58 v #667 > > ;[[ 00:00:58 v #668 > > .^(0.5, 14.134725) 00:00:58 v #669 > > .^(0.5, 21.022040) 00:00:58 v #670 > > .^(0.5, 25.010857) 00:00:58 v #671 > > .^(0.5, 30.424876) 00:00:58 v #672 > > .^(0.5, 32.935062) 00:00:58 v #673 > > .^(0.5, 37.586178) 00:00:58 v #674 > > ]] 00:00:58 v #675 > > |> fun x => a x : _ i32 _ 00:00:58 v #676 > > |> am.iter fun x => 00:00:58 v #677 > > inl result = zeta x 00:00:58 v #678 > > result |> re |> abs |> _assert_lt 0.0001 00:00:58 v #679 > > result |> im |> abs |> _assert_lt 0.0001 00:00:58 v #680 > > 00:00:58 v #681 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:58 v #682 > > //// test 00:00:58 v #683 > > ///! rust -d num-complex pyo3 00:00:58 v #684 > > 00:00:58 v #685 > > test_non_trivial_zero___ true 00:01:05 v #686 > > 00:01:05 v #687 > > ── [ 7.28s - return value ] ──────────────────────────────────────────────────── 00:01:05 v #688 > > │ zeta_ / s: (0.5, 14.134725) / count: 0 00:01:05 v #689 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: 00:01:05 v #690 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 00:01:05 v #691 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:05 v #692 > > f_back.f_code.co_filename: / arg: None 00:01:05 v #693 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:05 v #694 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 00:01:05 v #695 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:05 v #696 > > f_back.f_code.co_filename: / arg: None 00:01:05 v #697 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:05 v #698 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 00:01:05 v #699 > > 531 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:05 v #700 > > f_back.f_code.co_filename: / arg: None 00:01:05 v #701 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:05 v #702 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 00:01:05 v #703 > > 532 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:05 v #704 > > f_back.f_code.co_filename: / arg: None 00:01:05 v #705 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:05 v #706 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 00:01:05 v #707 > > 533 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:05 v #708 > > f_back.f_code.co_filename: / arg: None 00:01:05 v #709 > > │ call(zeta_) / f_code.co_name: f / f_locals: 00:01:05 v #710 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:01:05 v #711 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:01:05 v #712 > > /mpmath/functions/zeta.py / arg: None 00:01:05 v #713 > > │ line(zeta_) / f_code... arg: None 00:01:05 v #714 > > │ line(gamma_) / f_code.co_name: complex_stirling_series 00:01:05 v #715 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81, 00:01:05 v #716 > > _m=3416353708500640443578529333, tre=855591523614410863719, 00:01:05 v #717 > > tim=64316830603724894628746, ure=-1710577520534459139249, 00:01:05 v #718 > > uim=45518868236127668552, sre=1013002518538853602038572, 00:01:05 v #719 > > sim=90883161825546323029600502 / f_lineno: 1637 / f_code.co_filename: 00:01:05 v #720 > > /mpmath/libmp/gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename: 00:01:05 v #721 > > /mpmath/libmp/gammazeta.py / arg: None 00:01:05 v #722 > > │ line(gamma_) / f_code.co_name: complex_stirling_series 00:01:05 v #723 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81, 00:01:05 v #724 > > _m=3416353708500640443578529333, tre=-1816151534455075068, 00:01:05 v #725 > > tim=-45486653225747820096, ure=-1710577520534459139249, 00:01:05 v #726 > > uim=45518868236127668552, sre=1013002518538853602038572, 00:01:05 v #727 > > sim=90883161825546323029600502 / f_lineno: 1638 / f_code.co_filename: 00:01:05 v #728 > > /mpmath/libmp/gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename: 00:01:05 v #729 > > /mpmath/libmp/gammazeta.py / arg: None 00:01:05 v #730 > > │ gamma_ / result: (-1.32798420042152e-26 + 00:01:05 v #731 > > 5.5751975252688e-26j) / count: 309 00:01:05 v #732 > > │ gamma__ / s: Complex { re: 0.5, im: -37.586178 } / result: 00:01:05 v #733 > > Ok(Complex { re: -1.3279842004215153e-26, im: 5.575197525268802e-26 }) 00:01:05 v #734 > > │ zeta__ / s: Complex { re: 0.5, im: 37.586178 } / result: 00:01:05 v #735 > > Ok(Complex { re: -8.910186507947958e-8, im: -2.943780446402868e-7 }) / z: 00:01:05 v #736 > > Complex { re: -0.0, im: 0.0 } 00:01:05 v #737 > > │ __assert_lt / actual: 8.910186507947958e-8 / expected: 0.0001 00:01:05 v #738 > > │ __assert_lt / actual: 2.943780446402868e-7 / expected: 0.0001 00:01:05 v #739 > > │ 00:01:05 v #740 > > 00:01:05 v #741 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:05 v #742 > > │ ## test_real_part_greater_than_one___ 00:01:05 v #743 > > 00:01:05 v #744 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:05 v #745 > > inl test_real_part_greater_than_one___ log = run_test log fun zeta, gamma => 00:01:05 v #746 > > inl points = ;[[ 2; 3; 4; 5; 10; 20; 50 ]] 00:01:05 v #747 > > (a points : _ i32 _) 00:01:05 v #748 > > |> am.iter fun point => 00:01:05 v #749 > > inl s = .^(point, 0) 00:01:05 v #750 > > inl result = zeta s 00:01:05 v #751 > > result |> re |> _assert_gt 0 00:01:05 v #752 > > result |> im |> _assert_eq 0 00:01:05 v #753 > > 00:01:05 v #754 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:05 v #755 > > //// test 00:01:05 v #756 > > ///! rust -d num-complex pyo3 00:01:05 v #757 > > 00:01:05 v #758 > > test_real_part_greater_than_one___ true 00:01:13 v #759 > > 00:01:13 v #760 > > ── [ 7.24s - return value ] ──────────────────────────────────────────────────── 00:01:13 v #761 > > │ zeta_ / s: (2.0, 0.0) / count: 0 00:01:13 v #762 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:01:13 v #763 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:01:13 v #764 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:13 v #765 > > arg: None 00:01:13 v #766 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:01:13 v #767 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:01:13 v #768 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:13 v #769 > > arg: None 00:01:13 v #770 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:01:13 v #771 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: 00:01:13 v #772 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:13 v #773 > > arg: None 00:01:13 v #774 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:01:13 v #775 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: 00:01:13 v #776 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:13 v #777 > > arg: None 00:01:13 v #778 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:01:13 v #779 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: 00:01:13 v #780 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:13 v #781 > > arg: None 00:01:13 v #782 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), 00:01:13 v #783 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:01:13 v #784 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:01:13 v #785 > > /mpmath/functions/zeta.py / arg: None 00:01:13 v #786 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), 00:01:13 v #787 > > kwargs={}, name='zeta' / f_linen...f_code.co_filename: /mpmath/ctx_mp_python.py 00:01:13 v #788 > > / f_back.f_lineno: 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py 00:01:13 v #789 > > arg: None 00:01:13 v #790 > > │ line(zeta_) / f_code.co_name: make_mpc / f_locals: 00:01:13 v #791 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:01:13 v #792 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:01:13 v #793 > > │ return(zeta_) / f_code.co_name: make_mpc / f_locals: 00:01:13 v #794 > > f_lineno: 605 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:01:13 v #795 > > 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: 00:01:13 v #796 > > mpc(real='1.0000000000000009', imag='0.0') 00:01:13 v #797 > > │ return(zeta_) / f_code.co_name: f / f_locals: 00:01:13 v #798 > > x=mpc(real='50.0', imag='0.0'), kwargs={}, name='zeta', prec=53, rounding='n' 00:01:13 v #799 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:01:13 v #800 > > 533 / f_back.f_code.co_filename: /mpmath/functions/zeta.py / arg: 00:01:13 v #801 > > mpc(real='1.0000000000000009', imag='0.0') 00:01:13 v #802 > > │ return(zeta_) / f_code.co_name: zeta / f_locals: s=(50+0j), 00:01:13 v #803 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 00:01:13 v #804 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:13 v #805 > > f_back.f_code.co_filename: / arg: mpc(real='1.0000000000000009', imag='0.0') 00:01:13 v #806 > > │ zeta_ / result: (1.0 + 0.0j) / count: 181 00:01:13 v #807 > > │ zeta / count: 0 / s: Complex { re: 50.0, im: 0.0 } 00:01:13 v #808 > > │ zeta__ / s: Complex { re: 50.0, im: 0.0 } / result: 00:01:13 v #809 > > Ok(Complex { re: 1.0000000000000009, im: 0.0 }) / z: Complex { re: NaN, im: NaN 00:01:13 v #810 > > } 00:01:13 v #811 > > │ __assert_gt / actual: 1.0000000000000009 / expected: 0.0 00:01:13 v #812 > > │ __assert_eq / actual: 0.0 / expected: 0.0 00:01:13 v #813 > > │ 00:01:13 v #814 > > 00:01:13 v #815 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:13 v #816 > > │ ## test_zeta_at_1___ 00:01:13 v #817 > > 00:01:13 v #818 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:13 v #819 > > inl test_zeta_at_1___ log = run_test log fun zeta, gamma => 00:01:13 v #820 > > inl s = .^(1, 0) 00:01:13 v #821 > > inl result = zeta s 00:01:13 v #822 > > result |> re |> _assert_eq limit.max 00:01:13 v #823 > > result |> im |> _assert_eq 0 00:01:13 v #824 > > 00:01:13 v #825 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:13 v #826 > > //// test 00:01:13 v #827 > > ///! rust -d num-complex pyo3 00:01:13 v #828 > > 00:01:13 v #829 > > test_zeta_at_1___ true 00:01:20 v #830 > > 00:01:20 v #831 > > ── [ 7.06s - return value ] ──────────────────────────────────────────────────── 00:01:20 v #832 > > │ zeta_ / s: (1.0, 0.0) / count: 0 00:01:20 v #833 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, 00:01:20 v #834 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:01:20 v #835 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:20 v #836 > > arg: None 00:01:20 v #837 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, 00:01:20 v #838 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:01:20 v #839 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:20 v #840 > > arg: None 00:01:20 v #841 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, 00:01:20 v #842 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: 00:01:20 v #843 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:20 v #844 > > arg: None 00:01:20 v #845 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, 00:01:20 v #846 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: 00:01:20 v #847 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:20 v #848 > > arg: None 00:01:20 v #849 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, 00:01:20 v #850 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: 00:01:20 v #851 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:20 v #852 > > arg: None 00:01:20 v #853 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(1+0j), 00:01:20 v #854 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:01:20 v #855 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:01:20 v #856 > > /mpmath/functions/zeta.py / arg: None 00:01:20 v #857 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(1+0j), 00:01:20 v #858 > > kwargs={}, name='zeta' / f_linen...back object at 0x<?>>) 00:01:20 v #859 > > │ return(gamma_) / f_code.co_name: f / f_locals: 00:01:20 v #860 > > x=mpc(real='0.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' 00:01:20 v #861 > > f_lineno: 1007 / f_code.co_filename: /mpmath/ctx_mp_python.py / f_back.f_lineno: 00:01:20 v #862 > > 25 / f_back.f_code.co_filename: / arg: None 00:01:20 v #863 > > │ exception(gamma_) / f_code.co_name: fn / f_locals: log=True, 00:01:20 v #864 > > s=0j / f_lineno: 25 / f_code.co_filename: / f_back.f_lineno: 00:01:20 v #865 > > f_back.f_code.co_filename: / arg: (<class 'ValueError'>, ValueError('gamma 00:01:20 v #866 > > function pole'), <traceback object at 0x<?>>) 00:01:20 v #867 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j 00:01:20 v #868 > > / f_lineno: 29 / f_code.co_filename: / f_back.f_lineno: 00:01:20 v #869 > > f_back.f_code.co_filename: / arg: None 00:01:20 v #870 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j, 00:01:20 v #871 > > e=ValueError('gamma function pole') / f_lineno: 30 / f_code.co_filename: 00:01:20 v #872 > > f_back.f_lineno: / f_back.f_code.co_filename: / arg: None 00:01:20 v #873 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j 00:01:20 v #874 > > / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno: 00:01:20 v #875 > > f_back.f_code.co_filename: / arg: None 00:01:20 v #876 > > │ return(gamma_) / f_code.co_name: fn / f_locals: log=True, 00:01:20 v #877 > > s=0j / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno: 00:01:20 v #878 > > f_back.f_code.co_filename: / arg: (0.0, 0.0) 00:01:20 v #879 > > │ gamma__ / s: Complex { re: 0.0, im: 0.0 } / result: 00:01:20 v #880 > > Ok(Complex { re: 0.0, im: 0.0 }) 00:01:20 v #881 > > │ zeta__ / s: Complex { re: 1.0, im: 0.0 } / result: Ok(Complex 00:01:20 v #882 > > { re: inf, im: 0.0 }) / z: Complex { re: 0.0, im: 0.0 } 00:01:20 v #883 > > │ __assert_eq / actual: inf / expected: inf 00:01:20 v #884 > > │ __assert_eq / actual: 0.0 / expected: 0.0 00:01:20 v #885 > > │ 00:01:20 v #886 > > 00:01:20 v #887 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:20 v #888 > > │ ## test_symmetry_across_real_axis___ 00:01:20 v #889 > > 00:01:20 v #890 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:20 v #891 > > inl test_symmetry_across_real_axis___ log = run_test log fun zeta, gamma => 00:01:20 v #892 > > inl s = .^(2, 10) 00:01:20 v #893 > > inl result_positive_im = zeta s 00:01:20 v #894 > > inl result_negative_im = zeta .^(re s, -(im s)) 00:01:20 v #895 > > inl conj = result_negative_im |> conj 00:01:20 v #896 > > result_positive_im |> re |> _assert_eq (conj |> re) 00:01:20 v #897 > > result_positive_im |> im |> _assert_eq (conj |> im) 00:01:20 v #898 > > 00:01:20 v #899 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:20 v #900 > > //// test 00:01:20 v #901 > > ///! rust -d num-complex pyo3 00:01:20 v #902 > > 00:01:20 v #903 > > test_symmetry_across_real_axis___ true 00:01:27 v #904 > > 00:01:27 v #905 > > ── [ 7.08s - return value ] ──────────────────────────────────────────────────── 00:01:27 v #906 > > │ zeta_ / s: (2.0, 10.0) / count: 0 00:01:27 v #907 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), 00:01:27 v #908 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:01:27 v #909 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:27 v #910 > > arg: None 00:01:27 v #911 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), 00:01:27 v #912 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:01:27 v #913 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:27 v #914 > > arg: None 00:01:27 v #915 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), 00:01:27 v #916 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 00:01:27 v #917 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:27 v #918 > > f_back.f_code.co_filename: / arg: None 00:01:27 v #919 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), 00:01:27 v #920 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 00:01:27 v #921 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:27 v #922 > > f_back.f_code.co_filename: / arg: None 00:01:27 v #923 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), 00:01:27 v #924 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 00:01:27 v #925 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:27 v #926 > > f_back.f_code.co_filename: / arg: None 00:01:27 v #927 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+10j), 00:01:27 v #928 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:01:27 v #929 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:01:27 v #930 > > /mpmath/functions/zeta.py / arg: None 00:01:27 v #931 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+10j), 00:01:27 v #932 > > kwargs={}, name='zeta' /.../ f_back.f_code.co_filename: /mpmath/libmp/libmpf.py 00:01:27 v #933 > > / arg: None 00:01:27 v #934 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: 00:01:27 v #935 > > n=26, bc=5 / f_lineno: 94 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:01:27 v #936 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:01:27 v #937 > > None 00:01:27 v #938 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: 00:01:27 v #939 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:01:27 v #940 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:01:27 v #941 > > None 00:01:27 v #942 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals: 00:01:27 v #943 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: /mpmath/libmp/libintmath.py 00:01:27 v #944 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: 00:01:27 v #945 > > 5 00:01:27 v #946 > > │ line(zeta_) / f_code.co_name: mpf_add / f_locals: s=(0, 1, 2, 00:01:27 v #947 > > 1), t=(0, 25, 2, 5), prec=14, rnd='d', _sub=0, ssign=0, sman=1, sexp=2, sbc=1, 00:01:27 v #948 > > tsign=0, tman=25, texp=2, tbc=5, offset=0, man=26, bc=5 / f_lineno: 779 00:01:27 v #949 > > f_code.co_filename: /mpmath/libmp/libmpf.py / f_back.f_lineno: 1401 00:01:27 v #950 > > f_back.f_code.co_filename: /mpmath/libmp/libmpf.py / arg: None 00:01:27 v #951 > > │ zeta_ / result: (1.19798250067418 + 0.0791704917205257j) 00:01:27 v #952 > > count: 1174 00:01:27 v #953 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -10.0 } 00:01:27 v #954 > > │ zeta__ / s: Complex { re: 2.0, im: -10.0 } / result: 00:01:27 v #955 > > Ok(Complex { re: 1.1979825006741847, im: 0.07917049172052575 }) / z: Complex { 00:01:27 v #956 > > re: NaN, im: NaN } 00:01:27 v #957 > > │ __assert_eq / actual: 1.1979825006741847 / expected: 00:01:27 v #958 > > 1.1979825006741847 00:01:27 v #959 > > │ __assert_eq / actual: -0.07917049172052575 / expected: 00:01:27 v #960 > > -0.07917049172052575 00:01:27 v #961 > > │ 00:01:27 v #962 > > 00:01:27 v #963 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:27 v #964 > > │ ## test_behavior_near_origin___ 00:01:27 v #965 > > 00:01:27 v #966 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:27 v #967 > > inl test_behavior_near_origin___ log = run_test log fun zeta, gamma => 00:01:27 v #968 > > inl s = .^(0.01, 0.01) 00:01:27 v #969 > > inl result = zeta s 00:01:27 v #970 > > result |> re |> _assert_lt limit.max 00:01:27 v #971 > > result |> im |> _assert_lt limit.max 00:01:27 v #972 > > 00:01:27 v #973 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:27 v #974 > > //// test 00:01:27 v #975 > > ///! rust -d num-complex pyo3 00:01:27 v #976 > > 00:01:27 v #977 > > test_behavior_near_origin___ true 00:01:34 v #978 > > 00:01:34 v #979 > > ── [ 7.10s - return value ] ──────────────────────────────────────────────────── 00:01:34 v #980 > > │ zeta_ / s: (0.01, 0.01) / count: 0 00:01:34 v #981 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: 00:01:34 v #982 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 00:01:34 v #983 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:34 v #984 > > f_back.f_code.co_filename: / arg: None 00:01:34 v #985 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:34 v #986 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 00:01:34 v #987 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:34 v #988 > > f_back.f_code.co_filename: / arg: None 00:01:34 v #989 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:34 v #990 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 00:01:34 v #991 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:34 v #992 > > f_back.f_code.co_filename: / arg: None 00:01:34 v #993 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:34 v #994 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 00:01:34 v #995 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:34 v #996 > > f_back.f_code.co_filename: / arg: None 00:01:34 v #997 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:34 v #998 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 00:01:34 v #999 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:34 v #1000 > > f_back.f_code.co_filename: / arg: None 00:01:34 v #1001 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(0.01+0.01j), 00:01:34 v #1002 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:01:34 v #1003 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:01:34 v #1004 > > /mpmath/functions/zeta.py / arg: None 00:01:34 v #1005 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(0...py 00:01:34 v #1006 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py 00:01:34 v #1007 > > arg: None 00:01:34 v #1008 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0, 00:01:34 v #1009 > > 4458563631096791, -52, 52), (1, 5764607523034235, -59, 53)), prec=53, rnd='n', 00:01:34 v #1010 > > type=0, a=(0, 4458563631096791, -52, 52), b=(1, 5764607523034235, -59, 53), 00:01:34 v #1011 > > asign=0, aman=4458563631096791, aexp=-52, abc=52, bsign=1, 00:01:34 v #1012 > > bman=5764607523034235, bexp=-59, bbc=53, wp=73, amag=0, bmag=-6, mag=0, an=0, 00:01:34 v #1013 > > bn=0, absn=0j, gamma_size=0, need_reflection=0, zorig=((0, 4458563631096791, 00:01:34 v #1014 > > -52, 52), (1, 5764607523034235, -59, 53)), yfinal=0, balance_prec=0, 00:01:34 v #1015 > > n_for_stirling=14, need_reduction=True, afix=132131814190692672995328, 00:01:34 v #1016 > > bfix=-94447329657392906240, r=0, zprered=((0, 4458563631096791, -52, 52), (1, 00:01:34 v #1017 > > 5764607523034235, -59, 53)), d=14, rre=56942610883563778729574216337150, 00:01:34 v #1018 > > one=9444732965739290427392, rim=-1820461636508155576115177658065, k=12 00:01:34 v #1019 > > f_lineno: 2043 / f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:34 v #1020 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: /mpmath/ctx_mp_python.py 00:01:34 v #1021 > > arg: None 00:01:34 v #1022 > > │ gamma_ / result: (1.00577030202902 + 0.0059717824054102j) 00:01:34 v #1023 > > count: 383 00:01:34 v #1024 > > │ gamma__ / s: Complex { re: 0.99, im: -0.01 } / result: 00:01:34 v #1025 > > Ok(Complex { re: 1.005770302029023, im: 0.005971782405410201 }) 00:01:34 v #1026 > > │ zeta__ / s: Complex { re: 0.01, im: 0.01 } / result: 00:01:34 v #1027 > > Ok(Complex { re: -0.5091873433665667, im: -0.00939202213994577 }) / z: Complex { 00:01:34 v #1028 > > re: 0.0, im: 0.0 } 00:01:34 v #1029 > > │ __assert_lt / actual: -0.5091873433665667 / expected: inf 00:01:34 v #1030 > > │ __assert_lt / actual: -0.00939202213994577 / expected: inf 00:01:34 v #1031 > > │ 00:01:34 v #1032 > > 00:01:34 v #1033 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:34 v #1034 > > │ ## test_imaginary_axis 00:01:34 v #1035 > > 00:01:34 v #1036 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:34 v #1037 > > inl test_imaginary_axis log = run_test log fun zeta, gamma => 00:01:34 v #1038 > > (join [[ 10; 20; 30; 40; 50; 60; 70; 80; 90; 100 ]]) 00:01:34 v #1039 > > |> listm.iter fun s => 00:01:34 v #1040 > > inl s = .^(0, s) 00:01:34 v #1041 > > inl result = zeta s 00:01:34 v #1042 > > result |> re |> _assert_ne 0 00:01:34 v #1043 > > result |> im |> _assert_ne 0 00:01:35 v #1044 > > 00:01:35 v #1045 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:35 v #1046 > > //// test 00:01:35 v #1047 > > ///! rust -d num-complex pyo3 00:01:35 v #1048 > > 00:01:35 v #1049 > > test_imaginary_axis true 00:01:42 v #1050 > > 00:01:42 v #1051 > > ── [ 7.40s - return value ] ──────────────────────────────────────────────────── 00:01:42 v #1052 > > │ zeta_ / s: (0.0, 10.0) / count: 0 00:01:42 v #1053 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, 00:01:42 v #1054 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:01:42 v #1055 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:42 v #1056 > > arg: None 00:01:42 v #1057 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, 00:01:42 v #1058 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:01:42 v #1059 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:42 v #1060 > > arg: None 00:01:42 v #1061 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, 00:01:42 v #1062 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: 00:01:42 v #1063 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:42 v #1064 > > arg: None 00:01:42 v #1065 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, 00:01:42 v #1066 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: 00:01:42 v #1067 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:42 v #1068 > > arg: None 00:01:42 v #1069 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, 00:01:42 v #1070 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: 00:01:42 v #1071 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:42 v #1072 > > arg: None 00:01:42 v #1073 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={}, 00:01:42 v #1074 > > name='zeta' / f_lineno: 989 / f_code.co_filename: /mpmath/ctx_mp_python.py 00:01:42 v #1075 > > f_back.f_lineno: 533 / f_back.f_code.co_filename: /mpmath/functions/zeta.py 00:01:42 v #1076 > > arg: None 00:01:42 v #1077 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={}, 00:01:42 v #1078 > > name='zeta' / f_lineno: 990 / f_code.co_f...g: None 00:01:42 v #1079 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, 00:01:42 v #1080 > > 0, 1), prec=83 / f_lineno: 511 / f_code.co_filename: /mpmath/libmp/libmpf.py 00:01:42 v #1081 > > f_back.f_lineno: 2031 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:42 v #1082 > > arg: None 00:01:42 v #1083 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, 00:01:42 v #1084 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1 / f_lineno: 512 / f_code.co_filename: 00:01:42 v #1085 > > /mpmath/libmp/libmpf.py / f_back.f_lineno: 2031 / f_back.f_code.co_filename: 00:01:42 v #1086 > > /mpmath/libmp/gammazeta.py / arg: None 00:01:42 v #1087 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, 00:01:42 v #1088 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 513 00:01:42 v #1089 > > f_code.co_filename: /mpmath/libmp/libmpf.py / f_back.f_lineno: 2031 00:01:42 v #1090 > > f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py / arg: None 00:01:42 v #1091 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, 00:01:42 v #1092 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 517 00:01:42 v #1093 > > f_code.co_filename: /mpmath/libmp/libmpf.py / f_back.f_lineno: 2031 00:01:42 v #1094 > > f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py / arg: None 00:01:42 v #1095 > > │ gamma_ / result: (-1.51425318049776e-67 + 00:01:42 v #1096 > > 2.79082155561748e-69j) / count: 289 00:01:42 v #1097 > > │ gamma__ / s: Complex { re: 1.0, im: -100.0 } / result: 00:01:42 v #1098 > > Ok(Complex { re: -1.514253180497756e-67, im: 2.7908215556174775e-69 }) 00:01:42 v #1099 > > │ zeta__ / s: Complex { re: 0.0, im: 100.0 } / result: 00:01:42 v #1100 > > Ok(Complex { re: 6.51721042625301, im: 0.18128842533791736 }) / z: Complex { re: 00:01:42 v #1101 > > 0.0, im: 0.0 } 00:01:42 v #1102 > > │ __assert_ne / actual: 6.51721042625301 / expected: 0.0 00:01:42 v #1103 > > │ __assert_ne / actual: 0.18128842533791736 / expected: 0.0 00:01:42 v #1104 > > │ 00:01:42 v #1105 > > 00:01:42 v #1106 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:42 v #1107 > > │ ## test_critical_strip 00:01:42 v #1108 > > 00:01:42 v #1109 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:42 v #1110 > > inl test_critical_strip log = run_test log fun zeta, gamma => 00:01:42 v #1111 > > (join [[ 00:01:42 v #1112 > > .^(0.5, 14.134725) 00:01:42 v #1113 > > .^(0.75, 20.5) 00:01:42 v #1114 > > .^(1.25, 30.1) 00:01:42 v #1115 > > .^(0.25, 40.0) 00:01:42 v #1116 > > .^(1.0, 50.0) 00:01:42 v #1117 > > ]]) 00:01:42 v #1118 > > |> listm.iter fun s => 00:01:42 v #1119 > > inl result = zeta s 00:01:42 v #1120 > > result |> re |> _assert_ne 0 00:01:42 v #1121 > > result |> im |> _assert_ne 0 00:01:42 v #1122 > > 00:01:42 v #1123 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:42 v #1124 > > //// test 00:01:42 v #1125 > > ///! rust -d num-complex pyo3 00:01:42 v #1126 > > 00:01:42 v #1127 > > test_critical_strip true 00:01:49 v #1128 > > 00:01:49 v #1129 > > ── [ 7.17s - return value ] ──────────────────────────────────────────────────── 00:01:49 v #1130 > > │ zeta_ / s: (0.5, 14.134725) / count: 0 00:01:49 v #1131 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: 00:01:49 v #1132 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 00:01:49 v #1133 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:49 v #1134 > > f_back.f_code.co_filename: / arg: None 00:01:49 v #1135 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:49 v #1136 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 00:01:49 v #1137 > > f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:49 v #1138 > > f_back.f_code.co_filename: / arg: None 00:01:49 v #1139 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:49 v #1140 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 00:01:49 v #1141 > > 531 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:49 v #1142 > > f_back.f_code.co_filename: / arg: None 00:01:49 v #1143 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:49 v #1144 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 00:01:49 v #1145 > > 532 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:49 v #1146 > > f_back.f_code.co_filename: / arg: None 00:01:49 v #1147 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: 00:01:49 v #1148 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 00:01:49 v #1149 > > 533 / f_code.co_filename: /mpmath/functions/zeta.py / f_back.f_lineno: 25 00:01:49 v #1150 > > f_back.f_code.co_filename: / arg: None 00:01:49 v #1151 > > │ call(zeta_) / f_code.co_name: f / f_locals: 00:01:49 v #1152 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:01:49 v #1153 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:01:49 v #1154 > > /mpmath/functions/zeta.py / arg: None 00:01:49 v #1155 > > │ line(zeta_) / f_code...210, sim=241793223535862290161314995 00:01:49 v #1156 > > f_lineno: 1648 / f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:49 v #1157 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:49 v #1158 > > arg: None 00:01:49 v #1159 > > │ line(gamma_) / f_code.co_name: complex_stirling_series 00:01:49 v #1160 > > f_locals: x=0, y=-241785163922925834941235200, prec=82, 00:01:49 v #1161 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530, 00:01:49 v #1162 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314995 00:01:49 v #1163 > > f_lineno: 1649 / f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:49 v #1164 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:49 v #1165 > > arg: None 00:01:49 v #1166 > > │ line(gamma_) / f_code.co_name: complex_stirling_series 00:01:49 v #1167 > > f_locals: x=0, y=-241785163922925834941235200, prec=82, 00:01:49 v #1168 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530, 00:01:49 v #1169 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314997 00:01:49 v #1170 > > f_lineno: 1650 / f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:49 v #1171 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py 00:01:49 v #1172 > > arg: None 00:01:49 v #1173 > > │ gamma_ / result: (2.63173210619768e-35 - 00:01:49 v #1174 > > 8.16464935465334e-36j) / count: 262 00:01:49 v #1175 > > │ gamma__ / s: Complex { re: 0.0, im: -50.0 } / result: 00:01:49 v #1176 > > Ok(Complex { re: 2.6317321061976804e-35, im: -8.164649354653339e-36 }) 00:01:49 v #1177 > > │ zeta__ / s: Complex { re: 1.0, im: 50.0 } / result: 00:01:49 v #1178 > > Ok(Complex { re: 0.44103873082309397, im: 0.281582455029683 }) / z: Complex { 00:01:49 v #1179 > > re: 0.0, im: 0.0 } 00:01:49 v #1180 > > │ __assert_ne / actual: 0.44103873082309397 / expected: 0.0 00:01:49 v #1181 > > │ __assert_ne / actual: 0.281582455029683 / expected: 0.0 00:01:49 v #1182 > > │ 00:01:49 v #1183 > > 00:01:49 v #1184 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:49 v #1185 > > │ ## test_reflection_formula_for_specific_value 00:01:49 v #1186 > > 00:01:49 v #1187 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:49 v #1188 > > inl test_reflection_formula_for_specific_value log = run_test log fun zeta, 00:01:49 v #1189 > > gamma => 00:01:49 v #1190 > > (join [[ 00:01:49 v #1191 > > .^(3, 4) 00:01:49 v #1192 > > .^(2.5, -3.5) 00:01:49 v #1193 > > .^(1.5, 2.5) 00:01:49 v #1194 > > .^(0.5, 14.134725) 00:01:49 v #1195 > > ]]) 00:01:49 v #1196 > > |> listm.iter fun s => 00:01:49 v #1197 > > inl lhs = zeta s 00:01:49 v #1198 > > inl reflection_coefficient = 00:01:49 v #1199 > > (.^(2, 0) .** s) 00:01:49 v #1200 > > .* (.^(pi, 0) .** (s .- .^(1, 0))) 00:01:49 v #1201 > > .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin) 00:01:49 v #1202 > > .* gamma (.^(1, 0) .- s) 00:01:49 v #1203 > > 00:01:49 v #1204 > > inl one_minus_s = .^(1 - re s, -(im s)) 00:01:49 v #1205 > > inl rhs = reflection_coefficient .* zeta one_minus_s 00:01:49 v #1206 > > 00:01:49 v #1207 > > re lhs - re rhs |> abs |> _assert_lt 0.0001 00:01:49 v #1208 > > im lhs - im rhs |> abs |> _assert_lt 0.0001 00:01:49 v #1209 > > 00:01:49 v #1210 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:49 v #1211 > > //// test 00:01:49 v #1212 > > ///! rust -d num-complex pyo3 00:01:49 v #1213 > > 00:01:49 v #1214 > > test_reflection_formula_for_specific_value true 00:01:57 v #1215 > > 00:01:57 v #1216 > > ── [ 7.47s - return value ] ──────────────────────────────────────────────────── 00:01:57 v #1217 > > │ zeta_ / s: (3.0, 4.0) / count: 0 00:01:57 v #1218 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, 00:01:57 v #1219 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:01:57 v #1220 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:57 v #1221 > > arg: None 00:01:57 v #1222 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, 00:01:57 v #1223 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:01:57 v #1224 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:57 v #1225 > > arg: None 00:01:57 v #1226 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, 00:01:57 v #1227 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: 00:01:57 v #1228 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:57 v #1229 > > arg: None 00:01:57 v #1230 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, 00:01:57 v #1231 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: 00:01:57 v #1232 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:57 v #1233 > > arg: None 00:01:57 v #1234 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, 00:01:57 v #1235 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: 00:01:57 v #1236 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:01:57 v #1237 > > arg: None 00:01:57 v #1238 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(3+4j), 00:01:57 v #1239 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:01:57 v #1240 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:01:57 v #1241 > > /mpmath/functions/zeta.py / arg: None 00:01:57 v #1242 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(3+4j), 00:01:57 v #1243 > > kwargs={}, name='zeta' / f_linen...045 / f_code.co_filename: 00:01:57 v #1244 > > /mpmath/libmp/gammazeta.py / f_back.f_lineno: 1007 / f_back.f_code.co_filename: 00:01:57 v #1245 > > /mpmath/ctx_mp_python.py / arg: None 00:01:57 v #1246 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0, 00:01:57 v #1247 > > 1, -1, 1), (0, 3978571390186527, -48, 52)), prec=53, rnd='n', type=0, a=(0, 1, 00:01:57 v #1248 > > -1, 1), b=(0, 3978571390186527, -48, 52), asign=0, aman=1, aexp=-1, abc=1, 00:01:57 v #1249 > > bsign=0, bman=3978571390186527, bexp=-48, bbc=52, wp=79, amag=0, bmag=4, mag=4, 00:01:57 v #1250 > > an=0, bn=14, absn=14j, gamma_size=56, need_reflection=0, zorig=((0, 1, -1, 1), 00:01:57 v #1251 > > (0, 3978571390186527, -48, 52)), yfinal=0, balance_prec=0, n_for_stirling=15, 00:01:57 v #1252 > > need_reduction=True, afix=2115620184325601055735808, 00:01:57 v #1253 > > bfix=8543917002826194402410496, r=0, zprered=((0, 1, -1, 1), (0, 00:01:57 v #1254 > > 3978571390186527, -48, 52)), d=5, rre=-542313259704087430481959845, 00:01:57 v #1255 > > one=604462909807314587353088, rim=-1657865507045117397880679064, k=2 / f_lineno: 00:01:57 v #1256 > > 2043 / f_code.co_filename: /mpmath/libmp/gammazeta.py / f_back.f_lineno: 1007 00:01:57 v #1257 > > f_back.f_code.co_filename: /mpmath/ctx_mp_python.py / arg: None 00:01:57 v #1258 > > │ gamma_ / result: (-1.4455538437607e-10 - 00:01:57 v #1259 > > 5.52278876877407e-10j) / count: 318 00:01:57 v #1260 > > │ gamma__ / s: Complex { re: 0.5, im: 14.134725 } / result: 00:01:57 v #1261 > > Ok(Complex { re: -1.4455538437606964e-10, im: -5.522788768774066e-10 }) 00:01:57 v #1262 > > │ zeta__ / s: Complex { re: 0.5, im: -14.134725 } / result: 00:01:57 v #1263 > > Ok(Complex { re: 1.7674298413849186e-8, im: 1.1102028930923156e-7 }) / z: 00:01:57 v #1264 > > Complex { re: 0.0, im: 0.0 } 00:01:57 v #1265 > > │ __assert_lt / actual: 4.433688083284228e-22 / expected: 00:01:57 v #1266 > > 0.0001 00:01:57 v #1267 > > │ __assert_lt / actual: 1.3234889800848443e-22 / expected: 00:01:57 v #1268 > > 0.0001 00:01:57 v #1269 > > │ 00:01:57 v #1270 > > 00:01:57 v #1271 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:57 v #1272 > > │ ## test_euler_product_formula 00:01:57 v #1273 > > 00:01:57 v #1274 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:57 v #1275 > > inl test_euler_product_formula log = run_test log fun zeta, gamma => 00:01:57 v #1276 > > inl s_values = join [[ 2; 2.5; 3; 3.5; 4; 4.5; 5 ]] 00:01:57 v #1277 > > inl primes = join [[ 2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 00:01:57 v #1278 > > 53; 59; 61; 67; 71 ]] 00:01:57 v #1279 > > s_values 00:01:57 v #1280 > > |> listm.iter fun s_re => 00:01:57 v #1281 > > inl s = .^(s_re, 0) 00:01:57 v #1282 > > inl product = 00:01:57 v #1283 > > (1, primes) 00:01:57 v #1284 > > ||> listm.fold fun acc x => 00:01:57 v #1285 > > acc * 1 / (1 - x ** -s_re) 00:01:57 v #1286 > > 00:01:57 v #1287 > > inl result = zeta s 00:01:57 v #1288 > > re result - product |> abs |> _assert_lt 0.01 00:01:57 v #1289 > > result |> im |> _assert_lt 0.01 00:01:57 v #1290 > > 00:01:57 v #1291 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:57 v #1292 > > //// test 00:01:57 v #1293 > > ///! rust -d num-complex pyo3 00:01:57 v #1294 > > 00:01:57 v #1295 > > test_euler_product_formula true 00:02:04 v #1296 > > 00:02:04 v #1297 > > ── [ 7.21s - return value ] ──────────────────────────────────────────────────── 00:02:04 v #1298 > > │ zeta_ / s: (2.0, 0.0) / count: 0 00:02:04 v #1299 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:02:04 v #1300 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: 00:02:04 v #1301 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:02:04 v #1302 > > arg: None 00:02:04 v #1303 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:02:04 v #1304 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: 00:02:04 v #1305 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:02:04 v #1306 > > arg: None 00:02:04 v #1307 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:02:04 v #1308 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: 00:02:04 v #1309 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:02:04 v #1310 > > arg: None 00:02:04 v #1311 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:02:04 v #1312 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: 00:02:04 v #1313 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:02:04 v #1314 > > arg: None 00:02:04 v #1315 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, 00:02:04 v #1316 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: 00:02:04 v #1317 > > /mpmath/functions/zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: 00:02:04 v #1318 > > arg: None 00:02:04 v #1319 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), 00:02:04 v #1320 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: 00:02:04 v #1321 > > /mpmath/ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: 00:02:04 v #1322 > > /mpmath/functions/zeta.py / arg: None 00:02:04 v #1323 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), 00:02:04 v #1324 > > kwargs={}, name='zeta' / f_linen...k.f_lineno: 985 / f_back.f_code.co_filename: 00:02:04 v #1325 > > /mpmath/libmp/gammazeta.py / arg: None 00:02:04 v #1326 > > │ line(zeta_) / f_code.co_name: mpf_zeta_int / f_locals: s=5, 00:02:04 v #1327 > > prec=53, rnd='n', wp=73, m=19.25, needed_terms=623488, n=33, d=[1, 2179, 792067, 00:02:04 v #1328 > > 115062531, 8930212611, 429314925315, 13983537177347, 327666966438659, 00:02:04 v #1329 > > 5764846406968067, 78615943485956867, 851604426176701187, 7470527451121689347, 00:02:04 v #1330 > > 53898915046387983107, 323897845985013506819, 1638178356374090130179, 00:02:04 v #1331 > > 7034281785235908174595, 25833609859980306522883, 81661917475887913739011, 00:02:04 v #1332 > > 223448095548034217779971, 532029677981012660429571, 1108048631855905753375491, 00:02:04 v #1333 > > 2029946562680066824315651, 3292927237466655352791811, 4769455369342763680768771, 00:02:04 v #1334 > > 6235511670496346417767171, 7463408621503347142796035, 8322751284048216428487427, 00:02:04 v #1335 > > 8818779962777819524211459, 9050689474911140452082435, 9136270117622166323831555, 00:02:04 v #1336 > > 9160252037839493347779331, 9165045885455648617505539, 9165654628010081032708867, 00:02:04 v #1337 > > 9165691521498228451812099], t=-84153986440240940095109733900764881301998910956, 00:02:04 v #1338 > > k=26 / f_lineno: 954 / f_code.co_filename: /mpmath/libmp/gammazeta.py 00:02:04 v #1339 > > f_back.f_lineno: 985 / f_back.f_code.co_filename: /mpmath/libmp/gammazeta.py 00:02:04 v #1340 > > arg: None 00:02:04 v #1341 > > │ zeta_ / result: (1.03692775514337 + 0.0j) / count: 228 00:02:04 v #1342 > > │ zeta / count: 0 / s: Complex { re: 5.0, im: 0.0 } 00:02:04 v #1343 > > │ zeta__ / s: Complex { re: 5.0, im: 0.0 } / result: Ok(Complex 00:02:04 v #1344 > > { re: 1.03692775514337, im: 0.0 }) / z: Complex { re: NaN, im: NaN } 00:02:04 v #1345 > > │ __assert_lt / actual: 2.0033654735129858e-9 / expected: 0.01 00:02:04 v #1346 > > │ __assert_lt / actual: 0.0 / expected: 0.01 00:02:04 v #1347 > > │ 00:02:04 v #1348 > > 00:02:04 v #1349 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:02:04 v #1350 > > │ ## graph 00:02:04 v #1351 > > 00:02:04 v #1352 > > ── mermaid ───────────────────────────────────────────────────────────────────── 00:02:04 v #1353 > > │ <div class="mermaidMarkdownContainer" 00:02:04 v #1354 > > style="background-color:white"> 00:02:04 v #1355 > > │ <link rel="stylesheet" 00:02:04 v #1356 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" 00:02:04 v #1357 > > > 00:02:04 v #1358 > > │ <div id="e092b4599ae94bf6bb471ae7a774de03"></div> 00:02:04 v #1359 > > │ <script type="module"> 00:02:04 v #1360 > > │ 00:02:04 v #1361 > > │ import mermaid from 00:02:04 v #1362 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; 00:02:04 v #1363 > > │ let renderTarget = 00:02:04 v #1364 > > document.getElementById('e092b4599ae94bf6bb471ae7a774de03'); 00:02:04 v #1365 > > │ try { 00:02:04 v #1366 > > │ const {svg, bindFunctions} = await 00:02:04 v #1367 > > mermaid.mermaidAPI.render( 00:02:04 v #1368 > > │ 00:02:04 v #1369 > > 'mermaid_e092b4599ae94bf6bb471ae7a774de03', 00:02:04 v #1370 > > │ `graph TD 00:02:04 v #1371 > > │ zeta("zeta()") --> convert 00:02:04 v #1372 > > │ zeta --> f["f()"] 00:02:04 v #1373 > > │ f --> mpc_f["mpc_zeta()"] 00:02:04 v #1374 > > │ f --> mpf_f["mpf_zeta()"] 00:02:04 v #1375 > > │ convert --> from_float 00:02:04 v #1376 > > │ from_float --> from_man_exp 00:02:04 v #1377 > > │ from_man_exp --> python_bitcount 00:02:04 v #1378 > > │ python_bitcount --> _normalize 00:02:04 v #1379 > > │ _normalize --> make_mpc 00:02:04 v #1380 > > │ make_mpc --> mpc_zeta["mpc_zeta()"] 00:02:04 v #1381 > > │ mpc_zeta --> mpf_zeta["mpf_zeta()"] 00:02:04 v #1382 > > │ mpf_zeta --> to_int 00:02:04 v #1383 > > │ to_int --> mpf_zeta_int["mpf_zeta_int()"] 00:02:04 v #1384 > > │ mpf_zeta_int --> borwein_coefficients 00:02:04 v #1385 > > │ borwein_coefficients --> 00:02:04 v #1386 > > from_man_exp_2("from_man_exp()") 00:02:04 v #1387 > > │ from_man_exp_2 --> 00:02:04 v #1388 > > python_bitcount_2("python_bitcount()") 00:02:04 v #1389 > > │ python_bitcount_2 --> _normalize_2("_normalize()") 00:02:04 v #1390 > > │ _normalize_2 --> make_mpc_2("make_mpc()") 00:02:04 v #1391 > > │ make_mpc_2 --> stop_trace 00:02:04 v #1392 > > │ mpf_zeta_int --> mpf_bernoulli 00:02:04 v #1393 > > │ mpf_bernoulli --> bernoulli_size 00:02:04 v #1394 > > │ bernoulli_size --> mpf_rdiv_int 00:02:04 v #1395 > > │ mpf_rdiv_int --> python_bitcount_3("python_bitcount()") 00:02:04 v #1396 > > │ python_bitcount_3 --> _normalize1 00:02:04 v #1397 > > │ _normalize1 --> from_man_exp_3("from_man_exp()") 00:02:04 v #1398 > > │ from_man_exp_3 --> _normalize_3("_normalize()") 00:02:04 v #1399 > > │ _normalize_3 --> mpf_sub 00:02:04 v #1400 > > │ mpf_sub --> mpf_add 00:02:04 v #1401 > > │ mpf_add --> mpf_neg 00:02:04 v #1402 > > │ mpf_neg --> _normalize1_2("_normalize1()") 00:02:04 v #1403 > > │ _normalize1_2 --> from_int 00:02:04 v #1404 > > │ from_int --> mpf_div 00:02:04 v #1405 > > │ mpf_div --> python_bitcount_4("python_bitcount()") 00:02:04 v #1406 > > │ python_bitcount_4 --> _normalize1_3("_normalize1()") 00:02:04 v #1407 > > │ _normalize1_3 --> make_mpc_3("make_mpc()") 00:02:04 v #1408 > > │ make_mpc_3 --> final_stop["stop_trace()"]`); 00:02:04 v #1409 > > │ renderTarget.innerHTML = svg; 00:02:04 v #1410 > > │ bindFunctions?.(renderTarget); 00:02:04 v #1411 > > │ } 00:02:04 v #1412 > > │ catch (error) { 00:02:04 v #1413 > > │ console.log(error); 00:02:04 v #1414 > > │ } 00:02:04 v #1415 > > │ </script> 00:02:04 v #1416 > > │ </div> 00:02:04 v #1417 > > │ 00:02:04 v #1418 > > 00:02:04 v #1419 > > ── mermaid ───────────────────────────────────────────────────────────────────── 00:02:04 v #1420 > > │ <div class="mermaidMarkdownContainer" 00:02:04 v #1421 > > style="background-color:white"> 00:02:04 v #1422 > > │ <link rel="stylesheet" 00:02:04 v #1423 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" 00:02:04 v #1424 > > > 00:02:04 v #1425 > > │ <div id="b134d93e66fb48caad184eb5553fb99e"></div> 00:02:04 v #1426 > > │ <script type="module"> 00:02:04 v #1427 > > │ 00:02:04 v #1428 > > │ import mermaid from 00:02:04 v #1429 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; 00:02:04 v #1430 > > │ let renderTarget = 00:02:04 v #1431 > > document.getElementById('b134d93e66fb48caad184eb5553fb99e'); 00:02:04 v #1432 > > │ try { 00:02:04 v #1433 > > │ const {svg, bindFunctions} = await 00:02:04 v #1434 > > mermaid.mermaidAPI.render( 00:02:04 v #1435 > > │ 00:02:04 v #1436 > > 'mermaid_b134d93e66fb48caad184eb5553fb99e', 00:02:04 v #1437 > > │ `graph TD 00:02:04 v #1438 > > │ zeta_rust("zeta() - Rust") --> num_traits("num-traits") 00:02:04 v #1439 > > │ zeta_rust --> num_bigint("num-bigint") 00:02:04 v #1440 > > │ zeta_rust --> rust_decimal("rust_decimal for 00:02:04 v #1441 > > precision") 00:02:04 v #1442 > > │ zeta_rust --> error_handling("Rust Error Handling") 00:02:04 v #1443 > > │ 00:02:04 v #1444 > > │ num_traits --> num_traits_usage("Use for common 00:02:04 v #1445 > > traits") 00:02:04 v #1446 > > │ num_bigint --> bigint_operations("Arbitrary-precision 00:02:04 v #1447 > > arithmetic operations") 00:02:04 v #1448 > > │ rust_decimal --> decimal_operations("High-precision 00:02:04 v #1449 > > decimal operations") 00:02:04 v #1450 > > │ error_handling --> result_type("Use Result<T, E> for 00:02:04 v #1451 > > error handling") 00:02:04 v #1452 > > │ 00:02:04 v #1453 > > │ bigint_operations --> convert_rust("convert() - Rust") 00:02:04 v #1454 > > │ bigint_operations --> normalize_rust("_normalize() - 00:02:04 v #1455 > > Rust") 00:02:04 v #1456 > > │ 00:02:04 v #1457 > > │ convert_rust --> from_float_rust("from_float() - Rust") 00:02:04 v #1458 > > │ from_float_rust --> from_man_exp_rust("from_man_exp() - 00:02:04 v #1459 > > Rust") 00:02:04 v #1460 > > │ from_man_exp_rust --> bitcount_rust("bitcount() - 00:02:04 v #1461 > > Rust") 00:02:04 v #1462 > > │ bitcount_rust --> normalize_rust 00:02:04 v #1463 > > │ normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust") 00:02:04 v #1464 > > │ mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust") 00:02:04 v #1465 > > │ mpf_zeta_rust --> to_int_rust("to_int() - Rust") 00:02:04 v #1466 > > │ to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() - 00:02:04 v #1467 > > Rust") 00:02:04 v #1468 > > │ 00:02:04 v #1469 > > │ mpf_zeta_int_rust --> 00:02:04 v #1470 > > borwein_coefficients_rust("borwein_coefficients() - Rust") 00:02:04 v #1471 > > │ borwein_coefficients_rust --> 00:02:04 v #1472 > > from_man_exp_rust_2("from_man_exp() - Rust") 00:02:04 v #1473 > > │ from_man_exp_rust_2 --> bitcount_rust_2("bitcount() - 00:02:04 v #1474 > > Rust") 00:02:04 v #1475 > > │ bitcount_rust_2 --> normalize_rust_2("_normalize() - 00:02:04 v #1476 > > Rust") 00:02:04 v #1477 > > │ normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust") 00:02:04 v #1478 > > │ 00:02:04 v #1479 > > │ mpf_zeta_int_rust --> 00:02:04 v #1480 > > mpf_bernoulli_rust("mpf_bernoulli() - Rust") 00:02:04 v #1481 > > │ mpf_bernoulli_rust --> 00:02:04 v #1482 > > bernoulli_size_rust("bernoulli_size() - Rust") 00:02:04 v #1483 > > │ bernoulli_size_rust --> 00:02:04 v #1484 > > mpf_rdiv_int_rust("mpf_rdiv_int() - Rust") 00:02:04 v #1485 > > │ mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() - 00:02:04 v #1486 > > Rust") 00:02:04 v #1487 > > │ bitcount_rust_3 --> normalize1_rust("_normalize1() - 00:02:04 v #1488 > > Rust") 00:02:04 v #1489 > > │ normalize1_rust --> from_man_exp_rust_3("from_man_exp() 00:02:04 v #1490 > > - Rust") 00:02:04 v #1491 > > │ from_man_exp_rust_3 --> normalize_rust_3("_normalize() 00:02:04 v #1492 > > - Rust") 00:02:04 v #1493 > > │ normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust") 00:02:04 v #1494 > > │ mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust") 00:02:04 v #1495 > > │ mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust") 00:02:04 v #1496 > > │ mpf_neg_rust --> normalize1_rust_2("_normalize1() - 00:02:04 v #1497 > > Rust") 00:02:04 v #1498 > > │ normalize1_rust_2 --> from_int_rust("from_int() - 00:02:04 v #1499 > > Rust") 00:02:04 v #1500 > > │ from_int_rust --> mpf_div_rust("mpf_div() - Rust") 00:02:04 v #1501 > > │ mpf_div_rust --> bitcount_rust_4("bitcount() - Rust") 00:02:04 v #1502 > > │ bitcount_rust_4 --> normalize1_rust_3("_normalize1() - 00:02:04 v #1503 > > Rust") 00:02:04 v #1504 > > │ 00:02:04 v #1505 > > │ style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px 00:02:04 v #1506 > > │ style num_traits fill:#bbf,stroke:#333,stroke-width:2px 00:02:04 v #1507 > > │ style num_bigint fill:#bbf,stroke:#333,stroke-width:2px 00:02:04 v #1508 > > │ style rust_decimal 00:02:04 v #1509 > > fill:#bbf,stroke:#333,stroke-width:2px 00:02:04 v #1510 > > │ style error_handling 00:02:04 v #1511 > > fill:#bbf,stroke:#333,stroke-width:2px 00:02:04 v #1512 > > │ style bigint_operations 00:02:04 v #1513 > > fill:#bfb,stroke:#333,stroke-width:2px 00:02:04 v #1514 > > │ style decimal_operations 00:02:04 v #1515 > > fill:#bfb,stroke:#333,stroke-width:2px 00:02:04 v #1516 > > │ style result_type 00:02:04 v #1517 > > fill:#bfb,stroke:#333,stroke-width:2px`); 00:02:04 v #1518 > > │ renderTarget.innerHTML = svg; 00:02:04 v #1519 > > │ bindFunctions?.(renderTarget); 00:02:04 v #1520 > > │ } 00:02:04 v #1521 > > │ catch (error) { 00:02:04 v #1522 > > │ console.log(error); 00:02:04 v #1523 > > │ } 00:02:04 v #1524 > > │ </script> 00:02:04 v #1525 > > │ </div> 00:02:04 v #1526 > > │ 00:02:04 v #1527 > > 00:02:04 v #1528 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:02:04 v #1529 > > │ ## tests 00:02:04 v #1530 > > 00:02:04 v #1531 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:02:04 v #1532 > > inl tests () = 00:02:04 v #1533 > > testing.run_tests_log { 00:02:04 v #1534 > > test_zeta_at_known_values_ 00:02:04 v #1535 > > test_zeta_at_2_minus2 00:02:04 v #1536 > > test_trivial_zero_at_negative_even___ 00:02:04 v #1537 > > test_non_trivial_zero___ 00:02:04 v #1538 > > test_real_part_greater_than_one___ 00:02:04 v #1539 > > test_zeta_at_1___ 00:02:04 v #1540 > > test_symmetry_across_real_axis___ 00:02:04 v #1541 > > test_behavior_near_origin___ 00:02:04 v #1542 > > test_imaginary_axis 00:02:04 v #1543 > > test_critical_strip 00:02:04 v #1544 > > test_reflection_formula_for_specific_value 00:02:04 v #1545 > > test_euler_product_formula 00:02:04 v #1546 > > } 00:02:04 v #1547 > > 00:02:04 v #1548 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:02:04 v #1549 > > ///! _ 00:02:04 v #1550 > > 00:02:04 v #1551 > > inl main (_args : array_base string) = 00:02:04 v #1552 > > inl value = 1i32 00:02:04 v #1553 > > console.write_line ($'$"value: {!value}"' : string) 00:02:04 v #1554 > > 0i32 00:02:04 v #1555 > > 00:02:04 v #1556 > > inl main () = 00:02:04 v #1557 > > $'let tests () = !tests ()' : () 00:02:04 v #1558 > > $'let main args = !main args' : () 00:02:05 v #1559 > 00:02:04 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 78550 } 00:02:05 v #1560 > 00:02:04 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:02:06 v #1561 > 00:02:04 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/lib/math/math.dib.ipynb to html 00:02:06 v #1562 > 00:02:04 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:02:06 v #1563 > 00:02:04 v #7 ! validate(nb) 00:02:06 v #1564 > 00:02:05 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:02:06 v #1565 > 00:02:05 v #9 ! return _pygments_highlight( 00:02:07 v #1566 > 00:02:06 v #10 ! [NbConvertApp] Writing 7170941 bytes to /home/runner/work/polyglot/polyglot/lib/math/math.dib.html 00:02:07 v #1567 > 00:02:06 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 889 } 00:02:07 v #1568 > 00:02:06 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 889 } 00:02:07 v #1569 > 00:02:06 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:02:08 v #1570 > 00:02:06 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:02:08 v #1571 > 00:02:06 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:02:08 v #1572 > 00:02:06 d #16 spiral.run / dib / { exit_code = 0; result_length = 79498 } 00:02:08 d #1573 runtime.execute_with_options_async / { exit_code = 0; output_length = 85217 } 00:02:08 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path math.dib --retries 5 00:02:08 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 writeDibCode / output: Spi / path: math.dib 00:00:00 d #2 parseDibCode / output: Spi / file: math.dib 00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 v #28 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # math\nopen testing\nopen rust.rust_operators\nopen rust\n\n/// ## comp...gs = !main args\u0027 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/lib/math/math.spi"}} / result: 00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/lib/math/math.spi"}} / result: 00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] #endif type pyo3_Python = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] #endif type num_complex_Complex<'T> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end #else type Ref<'T> = 'T #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end #else type std_string_String = string #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::CString")>] #endif type std_ffi_CString = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] #endif type pyo3_PyErr = class end #...rop.emitRustExpr () v56 let v57 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v57 let v58 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v58 let v59 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v59 let v60 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v60 let v61 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v61 () and closure3 () (v0 : (string [])) : int32 = let v1 : string = $"value: {1}" let v2 : unit = () let v3 : (unit -> unit) = closure2(v1) let v4 : unit = (fun () -> v3 (); v2) () 0 let v0 : (unit -> unit) = closure0() let tests () = v0 () let v1 : ((string []) -> int32) = closure3() let main args = v1 args () 00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] #endif type pyo3_Python = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] #endif type num_complex_Complex<'T> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end #else type Ref<'T> = 'T #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end #else type std_string_String = string #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::CString")>] #endif type std_ffi_CString = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] #endif type pyo3_PyErr = class end #...rop.emitRustExpr () v56 let v57 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v57 let v58 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v58 let v59 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v59 let v60 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v60 let v61 : string = "{ //" Fable.Core.RustInterop.emitRustExpr () v61 () and closure3 () (v0 : (string [])) : int32 = let v1 : string = $"value: {1}" let v2 : unit = () let v3 : (unit -> unit) = closure2(v1) let v4 : unit = (fun () -> v3 (); v2) () 0 let v0 : (unit -> unit) = closure0() let tests () = v0 () let v1 : ((string []) -> int32) = closure3() let main args = v1 args () 00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite 00:00:04 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: math / hash: / code.Length: 217410 00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 "publish "/home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/lib/math/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/lib/math/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/math" } } 00:00:00 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds 00:00:01 v #6 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #7 > Restoring /home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj 00:00:01 v #8 > Starting restore process. 00:00:01 v #9 > Total time taken: 0 milliseconds 00:00:02 v #10 > Restored /home/runner/work/polyglot/polyglot/target/Builder/math/math.fsproj (in 302 ms). 00:00:11 v #11 > math -> /home/runner/work/polyglot/polyglot/target/Builder/math/bin/Release/net9.0/linux-x64/math.dll 00:00:12 v #12 > math -> /home/runner/work/polyglot/polyglot/lib/math/dist 00:00:12 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 662 } polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/math spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/math polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target: / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/math / ProjectName: math / Language: rs / Runtime: / root: /home/runner/work/polyglot/polyglot Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha) Thanks to the contributor! @Titaye Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target/Builder/math/math.fsproj... Project and references (14 source files) parsed in 2465ms Started Fable compilation... Fable compilation finished in 8860ms ./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./target/Builder/math/math.fs(46,0): (48,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs polyglot/lib/math/build.ps1 / path: /home/runner/work/polyglot/polyglot/target/Builder/math/target/rs/math.rs Updating crates.io index Downloading crates ... Downloaded approx v0.5.1 Downloaded matrixmultiply v0.3.9 Downloaded rawpointer v0.2.1 Downloaded pyo3-macros v0.23.3 Downloaded pyo3-build-config v0.23.3 Downloaded float-cmp v0.10.0 Downloaded bytemuck v1.20.0 Downloaded simba v0.9.0 Downloaded safe_arch v0.7.2 Downloaded wide v0.7.30 Downloaded pyo3-ffi v0.23.3 Downloaded rand_distr v0.4.3 Downloaded pyo3-macros-backend v0.23.3 Downloaded statrs v0.18.0 Downloaded nalgebra v0.33.2 Downloaded syn v2.0.90 Downloaded libc v0.2.168 Downloaded pyo3 v0.23.3 Compiling autocfg v1.4.0 Compiling libc v0.2.168 Compiling target-lexicon v0.12.16 Compiling proc-macro2 v1.0.92 Compiling unicode-ident v1.0.14 Compiling libm v0.2.11 Compiling num-traits v0.2.19 Compiling pyo3-build-config v0.23.3 Compiling quote v1.0.37 Compiling syn v2.0.90 Compiling cfg-if v1.0.0 Compiling once_cell v1.20.2 Compiling typenum v1.17.0 Compiling getrandom v0.2.15 Compiling byteorder v1.5.0 Compiling memchr v2.7.4 Compiling slab v0.4.9 Compiling rand_core v0.6.4 Compiling futures-core v0.3.31 Compiling paste v1.0.15 Compiling bytemuck v1.20.0 Compiling futures-sink v0.3.31 Compiling safe_arch v0.7.2 Compiling futures-channel v0.3.31 Compiling hybrid-array v0.2.3 Compiling pyo3-ffi v0.23.3 Compiling pyo3-macros-backend v0.23.3 Compiling matrixmultiply v0.3.9 Compiling futures-task v0.3.31 Compiling pin-project-lite v0.2.15 Compiling futures-io v0.3.31 Compiling pin-utils v0.1.0 Compiling futures-util v0.3.31 Compiling wide v0.7.30 Compiling num-complex v0.4.6 Compiling approx v0.5.1 Compiling num-integer v0.1.46 Compiling num_cpus v1.16.0 Compiling memoffset v0.9.1 Compiling heck v0.5.0 Compiling rawpointer v0.2.1 Compiling zerocopy-derive v0.7.35 Compiling futures-executor v0.3.31 Compiling simba v0.9.0 Compiling num-rational v0.4.2 Compiling zerocopy v0.7.35 Compiling ppv-lite86 v0.2.20 Compiling crypto-common v0.2.0-rc.1 Compiling rand_chacha v0.3.1 Compiling rand v0.8.5 Compiling rand_distr v0.4.3 Compiling block-buffer v0.11.0-rc.3 Compiling aho-corasick v1.1.3 Compiling pyo3 v0.23.3 Compiling const-oid v0.10.0-rc.3 Compiling iana-time-zone v0.1.61 Compiling regex-syntax v0.8.5 Compiling pyo3-macros v0.23.3 Compiling chrono v0.4.39 Compiling nalgebra v0.33.2 Compiling regex-automata v0.4.9 Compiling digest v0.11.0-pre.9 Compiling futures v0.3.31 Compiling uuid v1.11.0 Compiling indoc v2.0.5 Compiling unindent v0.2.3 Compiling cpufeatures v0.2.16 Compiling startup v0.1.1 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust/vendored/startup) Compiling futures-timer v3.0.3 Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust) Compiling regex v1.11.1 Compiling sha2 v0.11.0-pre.4 Compiling statrs v0.18.0 Compiling float-cmp v0.10.0 Compiling inline_colorization v0.1.6 Compiling math v0.0.1 (/home/runner/work/polyglot/polyglot/lib/math) Finished `release` profile [optimized] target(s) in 29.08s Running unittests math.rs (/home/runner/work/polyglot/polyglot/workspace/target/release/deps/math-69deb02515f397d4) running 12 tests test module_b7a9935b::Math::test_behavior_near_origin___ ... ok test module_b7a9935b::Math::test_euler_product_formula ... ok test module_b7a9935b::Math::test_non_trivial_zero___ ... ok test module_b7a9935b::Math::test_critical_strip ... ok test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok test module_b7a9935b::Math::test_zeta_at_1___ ... ok test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok test module_b7a9935b::Math::test_imaginary_axis ... ok test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
In [ ]:
{ pwsh ../apps/plot/build.ps1 } | Invoke-Block
Downloading crates ... Downloaded plotters-svg v0.3.7 Downloaded plotters v0.3.7 Downloaded plotters-backend v0.3.7 Downloaded serde v1.0.216 Downloaded serde_json v1.0.133 Compiling memchr v2.7.4 Compiling libc v0.2.168 Compiling typenum v1.17.0 Compiling num-traits v0.2.19 Compiling futures-sink v0.3.31 Compiling futures-core v0.3.31 Compiling futures-channel v0.3.31 Compiling slab v0.4.9 Compiling futures-io v0.3.31 Compiling pin-project-lite v0.2.15 Compiling pin-utils v0.1.0 Compiling cfg-if v1.0.0 Compiling futures-task v0.3.31 Compiling hybrid-array v0.2.3 Compiling num_cpus v1.16.0 Compiling futures-util v0.3.31 Compiling serde v1.0.216 Compiling crypto-common v0.2.0-rc.1 Compiling block-buffer v0.11.0-rc.3 Compiling getrandom v0.2.15 Compiling aho-corasick v1.1.3 Compiling plotters-backend v0.3.7 Compiling regex-syntax v0.8.5 Compiling const-oid v0.10.0-rc.3 Compiling serde_json v1.0.133 Compiling iana-time-zone v0.1.61 Compiling chrono v0.4.39 Compiling futures-executor v0.3.31 Compiling regex-automata v0.4.9 Compiling futures v0.3.31 Compiling digest v0.11.0-pre.9 Compiling plotters-svg v0.3.7 Compiling uuid v1.11.0 Compiling cpufeatures v0.2.16 Compiling ryu v1.0.18 Compiling futures-timer v3.0.3 Compiling itoa v1.0.14 Compiling startup v0.1.1 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust/vendored/startup) Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust) Compiling sha2 v0.11.0-pre.4 Compiling regex v1.11.1 Compiling plotters v0.3.7 Compiling inline_colorization v0.1.6 Compiling plot v0.0.1 (/home/runner/work/polyglot/polyglot/apps/plot) warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./networking.rs:533:33 | 533 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | = note: `#[warn(unused_parens)]` on by default help: remove these parentheses | 533 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 533 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./networking.rs:533:58 | 533 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 533 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 533 + let v3: string = append((v0_1.l0.get().clone()), v1_1); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:708:33 | 708 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 708 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 708 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:708:58 | 708 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 708 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 708 + let v3: string = append((v0_1.l0.get().clone()), v1_1); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1019:62 | 1019 | (Runtime::method30(v0_1, (v1_1) + 1_i32))(append((v2_1), string(" "))) | ^ ^ | help: remove these parentheses | 1019 - (Runtime::method30(v0_1, (v1_1) + 1_i32))(append((v2_1), string(" "))) 1019 + (Runtime::method30(v0_1, (v1_1) + 1_i32))(append(v2_1, string(" "))) | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1109:25 | 1109 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 1109 - ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), 1109 + (Runtime::method30((v3) - 1_i32, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1197:25 | 1197 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 1197 - ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), 1197 + (Runtime::method30((v3) - 1_i32, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1378:36 | 1378 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ | help: remove these parentheses | 1378 - append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); 1378 + append(v0_1.get().clone(), (ofChar(v121_0_0.clone()))); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1378:58 | 1378 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ | help: remove these parentheses | 1378 - append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); 1378 + append((v0_1.get().clone()), ofChar(v121_0_0.clone())); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1586:36 | 1586 | ... append((v0_1.get().clone()), (ofChar(v127_0_0.clone()))); | ^ ^ | help: remove these parentheses | 1586 - append((v0_1.get().clone()), (ofChar(v127_0_0.clone()))); 1586 + append(v0_1.get().clone(), (ofChar(v127_0_0.clone()))); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1586:58 | 1586 | ... append((v0_1.get().clone()), (ofChar(v127_0_0.clone()))); | ^ ^ | help: remove these parentheses | 1586 - append((v0_1.get().clone()), (ofChar(v127_0_0.clone()))); 1586 + append((v0_1.get().clone()), ofChar(v127_0_0.clone())); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1696:36 | 1696 | ... append((v0_1.get().clone()), (ofChar(v79_0_0.clone()))); | ^ ^ | help: remove these parentheses | 1696 - append((v0_1.get().clone()), (ofChar(v79_0_0.clone()))); 1696 + append(v0_1.get().clone(), (ofChar(v79_0_0.clone()))); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:1696:58 | 1696 | ... append((v0_1.get().clone()), (ofChar(v79_0_0.clone()))); | ^ ^ | help: remove these parentheses | 1696 - append((v0_1.get().clone()), (ofChar(v79_0_0.clone()))); 1696 + append((v0_1.get().clone()), ofChar(v79_0_0.clone())); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:2154:37 | 2154 | ... ((Runtime::method30((v419) - 1_i32, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 2154 - ((Runtime::method30((v419) - 1_i32, 0_i32))(string(""))), 2154 + (Runtime::method30((v419) - 1_i32, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3183:36 | 3183 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ | help: remove these parentheses | 3183 - append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); 3183 + append(v0_1.get().clone(), (ofChar(v121_0_0.clone()))); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3183:58 | 3183 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ | help: remove these parentheses | 3183 - append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); 3183 + append((v0_1.get().clone()), ofChar(v121_0_0.clone())); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3329:25 | 3329 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 3329 - ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), 3329 + (Runtime::method30((v3) - 1_i32, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3396:28 | 3396 | append((ofChar('\\')), (ofChar(v210_0_0.clone()))), | ^ ^ | help: remove these parentheses | 3396 - append((ofChar('\\')), (ofChar(v210_0_0.clone()))), 3396 + append(ofChar('\\'), (ofChar(v210_0_0.clone()))), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3396:44 | 3396 | append((ofChar('\\')), (ofChar(v210_0_0.clone()))), | ^ ^ | help: remove these parentheses | 3396 - append((ofChar('\\')), (ofChar(v210_0_0.clone()))), 3396 + append((ofChar('\\')), ofChar(v210_0_0.clone())), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3486:25 | 3486 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 3486 - ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), 3486 + (Runtime::method30((v3) - 1_i32, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3553:28 | 3553 | append((ofChar('`')), (ofChar(v210_0_0.clone()))), | ^ ^ | help: remove these parentheses | 3553 - append((ofChar('`')), (ofChar(v210_0_0.clone()))), 3553 + append(ofChar('`'), (ofChar(v210_0_0.clone()))), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:3553:43 | 3553 | append((ofChar('`')), (ofChar(v210_0_0.clone()))), | ^ ^ | help: remove these parentheses | 3553 - append((ofChar('`')), (ofChar(v210_0_0.clone()))), 3553 + append((ofChar('`')), ofChar(v210_0_0.clone())), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:4101:96 | 4101 | ... append(((Runtime::method30((v4.get().clone()) | ^ ... 4104 | ... 0_i32))(string(""))), | ^ | help: remove these parentheses | 4101 ~ append((Runtime::method30((v4.get().clone()) 4102 | - 4103 | 1_i32, 4104 ~ 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./runtime.rs:4249:116 | 4249 | ... append(((Runtime::method30((v307) | ^ ... 4252 | ... 0_i32))(string(""))), | ^ | help: remove these parentheses | 4249 ~ append((Runtime::method30((v307) 4250 | - 4251 | 1_i32, 4252 ~ 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./trace.rs:480:33 | 480 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 480 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 480 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./trace.rs:480:58 | 480 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 480 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 480 + let v3: string = append((v0_1.l0.get().clone()), v1_1); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:759:33 | 759 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 759 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 759 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:759:58 | 759 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 759 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 759 + let v3: string = append((v0_1.l0.get().clone()), v1_1); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2446:81 | 2446 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) | ^ ^ | help: remove these parentheses | 2446 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) 2446 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3, (v1_1))) | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2446:87 | 2446 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) | ^ ^ | help: remove these parentheses | 2446 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) 2446 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), v1_1)) | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2460:13 | 2460 | ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 2460 - ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))), 2460 + (File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:2461:13 | 2461 | (v0_1), | ^ ^ | help: remove these parentheses | 2461 - (v0_1), 2461 + v0_1, | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:3300:25 | 3300 | (concat(new_array(&[ | ^ ... 3307 | ]))), | ^ | help: remove these parentheses | 3300 ~ concat(new_array(&[ 3301 | string("file_system.find_parent / No parent for "), ... 3306 | }, 3307 ~ ])), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./file_system.rs:3344:21 | 3344 | (concat(new_array(&[ | ^ ... 3347 | ]))), | ^ | help: remove these parentheses | 3344 ~ concat(new_array(&[ 3345 | string("file_system.find_parent / No parent for "), 3346 | if v2_1 { string("file") } else { string("dir") }, 3347 ~ ])), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:94:70 | 94 | (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1))) | ^ ^ | help: remove these parentheses | 94 - (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1))) 94 + (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3_1, (v1_1))) | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:94:78 | 94 | (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1))) | ^ ^ | help: remove these parentheses | 94 - (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1))) 94 + (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), v1_1)) | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:108:13 | 108 | ((Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 108 - ((Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string(""))), 108 + (Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:109:13 | 109 | (v2_1), | ^ ^ | help: remove these parentheses | 109 - (v2_1), 109 + v2_1, | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:128:13 | 128 | (v2_1.clone()), | ^ ^ | help: remove these parentheses | 128 - (v2_1.clone()), 128 + v2_1.clone(), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:129:13 | 129 | ((Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | 129 - ((Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string(""))), 129 + (Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string("")), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:345:17 | 345 | (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))), | ^ ^ | help: remove these parentheses | 345 - (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))), 345 + getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32)), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:17 | 410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | 410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), 410 + append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue)), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:25 | 410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | 410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), 410 + (append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue))), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:73 | 410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | 410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), 410 + (append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue)), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:33 | 410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | 410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), 410 + (append((append(v1_1[v9_1].clone(), (matchValue_1))), (matchValue))), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./sm.rs:410:55 | 410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | 410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), 410 + (append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue))), | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./crypto.rs:626:33 | 626 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 626 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 626 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./crypto.rs:626:58 | 626 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 626 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 626 + let v3: string = append((v0_1.l0.get().clone()), v1_1); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./common.rs:558:33 | 558 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 558 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 558 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); | warning: unnecessary parentheses around function argument --> /home/runner/work/polyglot/polyglot/apps/plot/../../deps/spiral/lib/spiral/./common.rs:558:58 | 558 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | 558 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); 558 + let v3: string = append((v0_1.l0.get().clone()), v1_1); | warning: `plot` (lib) generated 50 warnings (run `cargo fix --lib -p plot` to apply 50 suggestions) Finished `release` profile [optimized] target(s) in 21.63s
In [ ]:
{ pwsh ../apps/perf/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Perf.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Perf.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Perf.dib", "--retries", "3"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ # Perf (Polyglot) 00:00:16 v #13 > > 00:00:16 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:16 v #15 > > //// test 00:00:16 v #16 > > 00:00:16 v #17 > > open testing 00:00:16 v #18 > > open benchmark 00:00:20 v #19 > > 00:00:20 v #20 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:20 v #21 > > #if !INTERACTIVE 00:00:20 v #22 > > open Lib 00:00:20 v #23 > > #endif 00:00:20 v #24 > > 00:00:20 v #25 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:20 v #26 > > │ ## TestCaseResult 00:00:20 v #27 > > 00:00:20 v #28 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:20 v #29 > > type TestCaseResult = 00:00:20 v #30 > > { 00:00:20 v #31 > > Input: string 00:00:20 v #32 > > Expected: string 00:00:20 v #33 > > Result: string 00:00:20 v #34 > > TimeList: int64 list 00:00:20 v #35 > > } 00:00:20 v #36 > > 00:00:20 v #37 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:20 v #38 > > │ ## run 00:00:20 v #39 > > 00:00:20 v #40 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:20 v #41 > > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input, 00:00:20 v #42 > > expected) = 00:00:20 v #43 > > let inputStr = 00:00:20 v #44 > > match box input with 00:00:20 v #45 > > | :? System.Collections.ICollection as input -> 00:00:20 v #46 > > System.Linq.Enumerable.Cast<obj> input 00:00:20 v #47 > > |> Seq.map string 00:00:20 v #48 > > |> SpiralSm.concat "," 00:00:20 v #49 > > | _ -> input.ToString () 00:00:20 v #50 > > 00:00:20 v #51 > > printfn "" 00:00:20 v #52 > > printfn $"Solution: {inputStr} " 00:00:20 v #53 > > 00:00:20 v #54 > > let performanceInvoke (fn: unit -> 'T) = 00:00:20 v #55 > > GC.Collect () 00:00:20 v #56 > > let stopwatch = System.Diagnostics.Stopwatch () 00:00:20 v #57 > > stopwatch.Start () 00:00:20 v #58 > > let time1 = stopwatch.ElapsedMilliseconds 00:00:20 v #59 > > 00:00:20 v #60 > > let result = 00:00:20 v #61 > > [[| 0 .. count |]] 00:00:20 v #62 > > |> Array.Parallel.map (fun _ -> 00:00:20 v #63 > > fn () 00:00:20 v #64 > > ) 00:00:20 v #65 > > |> Array.last 00:00:20 v #66 > > 00:00:20 v #67 > > let time2 = stopwatch.ElapsedMilliseconds - time1 00:00:20 v #68 > > 00:00:20 v #69 > > result, time2 00:00:20 v #70 > > 00:00:20 v #71 > > let resultsWithTime = 00:00:20 v #72 > > solutions 00:00:20 v #73 > > |> List.mapi (fun i (testName, solution) -> 00:00:20 v #74 > > let result, time = performanceInvoke (fun () -> solution input) 00:00:20 v #75 > > printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time} " 00:00:20 v #76 > > result, time 00:00:20 v #77 > > ) 00:00:20 v #78 > > 00:00:20 v #79 > > 00:00:20 v #80 > > match resultsWithTime |> List.map fst with 00:00:20 v #81 > > | ([[]] | [[ _ ]]) -> () 00:00:20 v #82 > > | (head :: tail) when tail |> List.forall ((=) head) -> () 00:00:20 v #83 > > | results -> failwithf $"Challenge error: %A{results}" 00:00:20 v #84 > > 00:00:20 v #85 > > { 00:00:20 v #86 > > Input = inputStr 00:00:20 v #87 > > Expected = expected.ToString () 00:00:20 v #88 > > Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString() 00:00:20 v #89 > > TimeList = resultsWithTime |> List.map snd 00:00:20 v #90 > > } 00:00:20 v #91 > > 00:00:20 v #92 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:20 v #93 > > │ ## runAll 00:00:20 v #94 > > 00:00:20 v #95 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:20 v #96 > > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list) 00:00:20 v #97 > > testCases = 00:00:20 v #98 > > printfn "" 00:00:20 v #99 > > printfn "" 00:00:20 v #100 > > printfn $"Test: {testName}" 00:00:20 v #101 > > testCases 00:00:20 v #102 > > |> Seq.map (run count solutions) 00:00:20 v #103 > > |> Seq.toList 00:00:20 v #104 > > 00:00:20 v #105 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:20 v #106 > > │ ## sortResultList 00:00:20 v #107 > > 00:00:20 v #108 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:20 v #109 > > let sortResultList resultList = 00:00:20 v #110 > > let table = 00:00:20 v #111 > > let rows = 00:00:20 v #112 > > resultList 00:00:20 v #113 > > |> List.map (fun result -> 00:00:20 v #114 > > let best = 00:00:20 v #115 > > result.TimeList 00:00:20 v #116 > > |> List.mapi (fun i time -> 00:00:20 v #117 > > i + 1, time 00:00:20 v #118 > > ) 00:00:20 v #119 > > |> List.sortBy snd 00:00:20 v #120 > > |> List.head 00:00:20 v #121 > > |> _.ToString() 00:00:20 v #122 > > let row = 00:00:20 v #123 > > [[ 00:00:20 v #124 > > result.Input 00:00:20 v #125 > > result.Expected 00:00:20 v #126 > > result.Result 00:00:20 v #127 > > best 00:00:20 v #128 > > ]] 00:00:20 v #129 > > let color = 00:00:20 v #130 > > match result.Expected = result.Result with 00:00:20 v #131 > > | true -> Some ConsoleColor.DarkGreen 00:00:20 v #132 > > | false -> Some ConsoleColor.DarkRed 00:00:20 v #133 > > row, color 00:00:20 v #134 > > ) 00:00:20 v #135 > > let header = 00:00:20 v #136 > > [[ 00:00:20 v #137 > > [[ 00:00:20 v #138 > > "Input" 00:00:20 v #139 > > "Expected" 00:00:20 v #140 > > "Result" 00:00:20 v #141 > > "Best" 00:00:20 v #142 > > ]] 00:00:20 v #143 > > [[ 00:00:20 v #144 > > "---" 00:00:20 v #145 > > "---" 00:00:20 v #146 > > "---" 00:00:20 v #147 > > "---" 00:00:20 v #148 > > ]] 00:00:20 v #149 > > ]] 00:00:20 v #150 > > |> List.map (fun row -> row, None) 00:00:20 v #151 > > header @ rows 00:00:20 v #152 > > 00:00:20 v #153 > > let formattedTable = 00:00:20 v #154 > > let lengthMap = 00:00:20 v #155 > > table 00:00:20 v #156 > > |> List.map fst 00:00:20 v #157 > > |> List.transpose 00:00:20 v #158 > > |> List.map (fun column -> 00:00:20 v #159 > > column 00:00:20 v #160 > > |> List.map String.length 00:00:20 v #161 > > |> List.sortDescending 00:00:20 v #162 > > |> List.tryHead 00:00:20 v #163 > > |> Option.defaultValue 0 00:00:20 v #164 > > ) 00:00:20 v #165 > > |> List.indexed 00:00:20 v #166 > > |> Map.ofList 00:00:20 v #167 > > table 00:00:20 v #168 > > |> List.map (fun (row, color) -> 00:00:20 v #169 > > let newRow = 00:00:20 v #170 > > row 00:00:20 v #171 > > |> List.mapi (fun i cell -> 00:00:20 v #172 > > cell.PadRight lengthMap.[[i]] 00:00:20 v #173 > > ) 00:00:20 v #174 > > newRow, color 00:00:20 v #175 > > ) 00:00:20 v #176 > > 00:00:20 v #177 > > printfn "" 00:00:20 v #178 > > formattedTable 00:00:20 v #179 > > |> List.iter (fun (row, color) -> 00:00:20 v #180 > > match color with 00:00:20 v #181 > > | Some color -> Console.ForegroundColor <- color 00:00:20 v #182 > > | None -> Console.ResetColor () 00:00:20 v #183 > > 00:00:20 v #184 > > printfn "%s" (String.Join ("\t| ", row)) 00:00:20 v #185 > > 00:00:20 v #186 > > Console.ResetColor () 00:00:20 v #187 > > ) 00:00:20 v #188 > > 00:00:20 v #189 > > let averages = 00:00:20 v #190 > > resultList 00:00:20 v #191 > > |> List.map (fun result -> result.TimeList |> List.map float) 00:00:20 v #192 > > |> List.transpose 00:00:20 v #193 > > |> List.map List.average 00:00:20 v #194 > > |> List.map int64 00:00:20 v #195 > > |> List.indexed 00:00:20 v #196 > > 00:00:20 v #197 > > printfn "" 00:00:20 v #198 > > printfn "Average Ranking " 00:00:20 v #199 > > averages 00:00:20 v #200 > > |> List.sortBy snd 00:00:20 v #201 > > |> List.iter (fun (i, avg) -> 00:00:20 v #202 > > printfn $"Test case %d{i + 1}. Average Time: %A{avg} " 00:00:20 v #203 > > ) 00:00:20 v #204 > > 00:00:20 v #205 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:20 v #206 > > let mutable _count = 00:00:20 v #207 > > if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}") 00:00:20 v #208 > > <> "<null>" 00:00:20 v #209 > > then 2000000 00:00:20 v #210 > > else 2000 00:00:20 v #211 > > 00:00:20 v #212 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:20 v #213 > > inl is_fast () = 00:00:20 v #214 > > false 00:00:20 v #215 > > 00:00:20 v #216 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:20 v #217 > > │ ## empty3Tests 00:00:20 v #218 > > 00:00:20 v #219 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:20 v #220 > > │ Test: Empty3 00:00:20 v #221 > > │ 00:00:20 v #222 > > │ Solution: (a, a) 00:00:20 v #223 > > │ Test case 1. A. Time: 91L 00:00:20 v #224 > > │ 00:00:20 v #225 > > │ Solution: (a, a) 00:00:20 v #226 > > │ Test case 1. A. Time: 56L 00:00:20 v #227 > > │ 00:00:20 v #228 > > │ Input | Expected | Result | Best 00:00:20 v #229 > > │ --- | --- | --- | --- 00:00:20 v #230 > > │ (a, a) | a | a | (1, 91) 00:00:20 v #231 > > │ (a, a) | a | a | (1, 56) 00:00:20 v #232 > > │ 00:00:20 v #233 > > │ Averages 00:00:20 v #234 > > │ Test case 1. Average Time: 73L 00:00:20 v #235 > > │ 00:00:20 v #236 > > │ Ranking 00:00:20 v #237 > > │ Test case 1. Average Time: 73L 00:00:20 v #238 > > 00:00:20 v #239 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:20 v #240 > > //// test 00:00:20 v #241 > > 00:00:20 v #242 > > let solutions = [[ 00:00:20 v #243 > > "A", 00:00:20 v #244 > > fun (a, _b) -> 00:00:20 v #245 > > a 00:00:20 v #246 > > ]] 00:00:20 v #247 > > let testCases = seq { 00:00:20 v #248 > > ("a", "a"), "a" 00:00:20 v #249 > > ("a", "a"), "a" 00:00:20 v #250 > > } 00:00:20 v #251 > > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases 00:00:20 v #252 > > empty3Tests 00:00:20 v #253 > > |> sortResultList 00:00:21 v #254 > > 00:00:21 v #255 > > ── [ 506.16ms - stdout ] ─────────────────────────────────────────────────────── 00:00:21 v #256 > > │ 00:00:21 v #257 > > │ 00:00:21 v #258 > > │ Test: empty3Tests 00:00:21 v #259 > > │ 00:00:21 v #260 > > │ Solution: (a, a) 00:00:21 v #261 > > │ Test case 1. A. Time: 34L 00:00:21 v #262 > > │ 00:00:21 v #263 > > │ Solution: (a, a) 00:00:21 v #264 > > │ Test case 1. A. Time: 29L 00:00:21 v #265 > > │ 00:00:21 v #266 > > │ Input | Expected | Result | Best 00:00:21 v #267 > > │ --- | --- | --- | --- 00:00:21 v #268 > > │ (a, a) | a | a | (1, 34) 00:00:21 v #269 > > │ (a, a) | a | a | (1, 29) 00:00:21 v #270 > > │ 00:00:21 v #271 > > │ Average Ranking 00:00:21 v #272 > > │ Test case 1. Average Time: 31L 00:00:21 v #273 > > │ 00:00:21 v #274 > > 00:00:21 v #275 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:21 v #276 > > │ ## empty2Tests 00:00:21 v #277 > > 00:00:21 v #278 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:21 v #279 > > │ Test: Empty2 00:00:21 v #280 > > │ 00:00:21 v #281 > > │ Solution: (a, a) 00:00:21 v #282 > > │ Test case 1. A. Time: 59L 00:00:21 v #283 > > │ 00:00:21 v #284 > > │ Solution: (a, a) 00:00:21 v #285 > > │ Test case 1. A. Time: 53L 00:00:21 v #286 > > │ 00:00:21 v #287 > > │ Input | Expected | Result | Best 00:00:21 v #288 > > │ --- | --- | --- | --- 00:00:21 v #289 > > │ (a, a) | a | a | (1, 59) 00:00:21 v #290 > > │ (a, a) | a | a | (1, 53) 00:00:21 v #291 > > │ 00:00:21 v #292 > > │ Averages 00:00:21 v #293 > > │ Test case 1. Average Time: 56L 00:00:21 v #294 > > │ 00:00:21 v #295 > > │ Ranking 00:00:21 v #296 > > │ Test case 1. Average Time: 56L 00:00:21 v #297 > > 00:00:21 v #298 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:21 v #299 > > //// test 00:00:21 v #300 > > 00:00:21 v #301 > > let solutions = [[ 00:00:21 v #302 > > "A", 00:00:21 v #303 > > fun (a, _b) -> 00:00:21 v #304 > > a 00:00:21 v #305 > > ]] 00:00:21 v #306 > > let testCases = seq { 00:00:21 v #307 > > ("a", "a"), "a" 00:00:21 v #308 > > ("a", "a"), "a" 00:00:21 v #309 > > } 00:00:21 v #310 > > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases 00:00:21 v #311 > > empty2Tests 00:00:21 v #312 > > |> sortResultList 00:00:21 v #313 > > 00:00:21 v #314 > > ── [ 472.96ms - stdout ] ─────────────────────────────────────────────────────── 00:00:21 v #315 > > │ 00:00:21 v #316 > > │ 00:00:21 v #317 > > │ Test: empty2Tests 00:00:21 v #318 > > │ 00:00:21 v #319 > > │ Solution: (a, a) 00:00:21 v #320 > > │ Test case 1. A. Time: 31L 00:00:21 v #321 > > │ 00:00:21 v #322 > > │ Solution: (a, a) 00:00:21 v #323 > > │ Test case 1. A. Time: 29L 00:00:21 v #324 > > │ 00:00:21 v #325 > > │ Input | Expected | Result | Best 00:00:21 v #326 > > │ --- | --- | --- | --- 00:00:21 v #327 > > │ (a, a) | a | a | (1, 31) 00:00:21 v #328 > > │ (a, a) | a | a | (1, 29) 00:00:21 v #329 > > │ 00:00:21 v #330 > > │ Average Ranking 00:00:21 v #331 > > │ Test case 1. Average Time: 30L 00:00:21 v #332 > > │ 00:00:21 v #333 > > 00:00:21 v #334 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:21 v #335 > > │ ## emptyTests 00:00:21 v #336 > > 00:00:21 v #337 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:21 v #338 > > │ Test: Empty 00:00:21 v #339 > > │ 00:00:21 v #340 > > │ Solution: 0 00:00:21 v #341 > > │ Test case 1. A. Time: 61L 00:00:21 v #342 > > │ 00:00:21 v #343 > > │ Solution: 2 00:00:21 v #344 > > │ Test case 1. A. Time: 62L 00:00:21 v #345 > > │ 00:00:21 v #346 > > │ Solution: 5 00:00:21 v #347 > > │ Test case 1. A. Time: 70L 00:00:21 v #348 > > │ 00:00:21 v #349 > > │ Input | Expected | Result | Best 00:00:21 v #350 > > │ --- | --- | --- | --- 00:00:21 v #351 > > │ 0 | 0 | 0 | (1, 61) 00:00:21 v #352 > > │ 2 | 2 | 2 | (1, 62) 00:00:21 v #353 > > │ 5 | 5 | 5 | (1, 70) 00:00:21 v #354 > > │ 00:00:21 v #355 > > │ Averages 00:00:21 v #356 > > │ Test case 1. Average Time: 64L 00:00:21 v #357 > > │ 00:00:21 v #358 > > │ Ranking 00:00:21 v #359 > > │ Test case 1. Average Time: 64L 00:00:21 v #360 > > 00:00:21 v #361 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:21 v #362 > > //// test 00:00:21 v #363 > > 00:00:21 v #364 > > let solutions = [[ 00:00:21 v #365 > > "A", 00:00:21 v #366 > > fun n -> 00:00:21 v #367 > > n + 0 00:00:21 v #368 > > ]] 00:00:21 v #369 > > let testCases = seq { 00:00:21 v #370 > > 0, 0 00:00:21 v #371 > > 2, 2 00:00:21 v #372 > > 5, 5 00:00:21 v #373 > > } 00:00:21 v #374 > > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases 00:00:21 v #375 > > emptyTests 00:00:21 v #376 > > |> sortResultList 00:00:22 v #377 > > 00:00:22 v #378 > > ── [ 691.06ms - stdout ] ─────────────────────────────────────────────────────── 00:00:22 v #379 > > │ 00:00:22 v #380 > > │ 00:00:22 v #381 > > │ Test: emptyTests 00:00:22 v #382 > > │ 00:00:22 v #383 > > │ Solution: 0 00:00:22 v #384 > > │ Test case 1. A. Time: 28L 00:00:22 v #385 > > │ 00:00:22 v #386 > > │ Solution: 2 00:00:22 v #387 > > │ Test case 1. A. Time: 29L 00:00:22 v #388 > > │ 00:00:22 v #389 > > │ Solution: 5 00:00:22 v #390 > > │ Test case 1. A. Time: 27L 00:00:22 v #391 > > │ 00:00:22 v #392 > > │ Input | Expected | Result | Best 00:00:22 v #393 > > │ --- | --- | --- | --- 00:00:22 v #394 > > │ 0 | 0 | 0 | (1, 28) 00:00:22 v #395 > > │ 2 | 2 | 2 | (1, 29) 00:00:22 v #396 > > │ 5 | 5 | 5 | (1, 27) 00:00:22 v #397 > > │ 00:00:22 v #398 > > │ Average Ranking 00:00:22 v #399 > > │ Test case 1. Average Time: 28L 00:00:22 v #400 > > │ 00:00:22 v #401 > > 00:00:22 v #402 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:22 v #403 > > │ ## uniqueLettersTests 00:00:22 v #404 > > 00:00:22 v #405 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:22 v #406 > > │ Test: UniqueLetters 00:00:22 v #407 > > │ 00:00:22 v #408 > > │ Solution: abc 00:00:22 v #409 > > │ Test case 1. A. Time: 1512L 00:00:22 v #410 > > │ Test case 2. B. Time: 1947L 00:00:22 v #411 > > │ Test case 3. C. Time: 2023L 00:00:22 v #412 > > │ Test case 4. D. Time: 1358L 00:00:22 v #413 > > │ Test case 5. E. Time: 1321L 00:00:22 v #414 > > │ Test case 6. F. Time: 1346L 00:00:22 v #415 > > │ Test case 7. G. Time: 1304L 00:00:22 v #416 > > │ Test case 8. H. Time: 1383L 00:00:22 v #417 > > │ Test case 9. I. Time: 1495L 00:00:22 v #418 > > │ Test case 10. J. Time: 1245L 00:00:22 v #419 > > │ Test case 11. K. Time: 1219L 00:00:22 v #420 > > │ 00:00:22 v #421 > > │ Solution: accabb 00:00:22 v #422 > > │ Test case 1. A. Time: 1648L 00:00:22 v #423 > > │ Test case 2. B. Time: 2061L 00:00:22 v #424 > > │ Test case 3. C. Time: 2413L 00:00:22 v #425 > > │ Test case 4. D. Time: 1561L 00:00:22 v #426 > > │ Test case 5. E. Time: 1593L 00:00:22 v #427 > > │ Test case 6. F. Time: 1518L 00:00:22 v #428 > > │ Test case 7. G. Time: 1415L 00:00:22 v #429 > > │ Test case 8. H. Time: 1510L 00:00:22 v #430 > > │ Test case 9. I. Time: 1445L 00:00:22 v #431 > > │ Test case 10. J. Time: 1636L 00:00:22 v #432 > > │ Test case 11. K. Time: 1317L 00:00:22 v #433 > > │ 00:00:22 v #434 > > │ Solution: pprrqqpp 00:00:22 v #435 > > │ Test case 1. A. Time: 2255L 00:00:22 v #436 > > │ Test case 2. B. Time: 2408L 00:00:22 v #437 > > │ Test case 3. C. Time: 2393L 00:00:22 v #438 > > │ Test case 4. D. Time: 1675L 00:00:22 v #439 > > │ Test case 5. E. Time: 1911L 00:00:22 v #440 > > │ Test case 6. F. Time: 2126L 00:00:22 v #441 > > │ Test case 7. G. Time: 1504L 00:00:22 v #442 > > │ Test case 8. H. Time: 1715L 00:00:22 v #443 > > │ Test case 9. I. Time: 1537L 00:00:22 v #444 > > │ Test case 10. J. Time: 1522L 00:00:22 v #445 > > │ Test case 11. K. Time: 1322L 00:00:22 v #446 > > │ 00:00:22 v #447 > > │ Solution: 00:00:22 v #448 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb 00:00:22 v #449 > > │ Test case 1. A. Time: 13073L 00:00:22 v #450 > > │ Test case 2. B. Time: 11519L 00:00:22 v #451 > > │ Test case 3. C. Time: 8373L 00:00:22 v #452 > > │ Test case 4. D. Time: 5860L 00:00:22 v #453 > > │ Test case 5. E. Time: 6490L 00:00:22 v #454 > > │ Test case 6. F. Time: 6325L 00:00:22 v #455 > > │ Test case 7. G. Time: 5799L 00:00:22 v #456 > > │ Test case 8. H. Time: 7099L 00:00:22 v #457 > > │ Test case 9. I. Time: 6133L 00:00:22 v #458 > > │ Test case 10. J. Time: 5993L 00:00:22 v #459 > > │ Test case 11. K. Time: 2040L 00:00:22 v #460 > > │ 00:00:22 v #461 > > │ Input 00:00:22 v #462 > > | Expected | Result | Best 00:00:22 v #463 > > │ --- 00:00:22 v #464 > > | --- | --- | --- 00:00:22 v #465 > > │ abc 00:00:22 v #466 > > | abc | abc | (11, 1219) 00:00:22 v #467 > > │ accabb 00:00:22 v #468 > > | acb | acb | (11, 1317) 00:00:22 v #469 > > │ pprrqqpp 00:00:22 v #470 > > | prq | prq | (11, 1322) 00:00:22 v #471 > > │ 00:00:22 v #472 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb 00:00:22 v #473 > > | acb | acb | (11, 2040) 00:00:22 v #474 > > │ 00:00:22 v #475 > > │ Averages 00:00:22 v #476 > > │ Test case 1. Average Time: 4622L 00:00:22 v #477 > > │ Test case 2. Average Time: 4483L 00:00:22 v #478 > > │ Test case 3. Average Time: 3800L 00:00:22 v #479 > > │ Test case 4. Average Time: 2613L 00:00:22 v #480 > > │ Test case 5. Average Time: 2828L 00:00:22 v #481 > > │ Test case 6. Average Time: 2828L 00:00:22 v #482 > > │ Test case 7. Average Time: 2505L 00:00:22 v #483 > > │ Test case 8. Average Time: 2926L 00:00:22 v #484 > > │ Test case 9. Average Time: 2652L 00:00:22 v #485 > > │ Test case 10. Average Time: 2599L 00:00:22 v #486 > > │ Test case 11. Average Time: 1474L 00:00:22 v #487 > > │ 00:00:22 v #488 > > │ Ranking 00:00:22 v #489 > > │ Test case 1. Average Time: 4622L 00:00:22 v #490 > > │ Test case 2. Average Time: 4483L 00:00:22 v #491 > > │ Test case 3. Average Time: 3800L 00:00:22 v #492 > > │ Test case 8. Average Time: 2926L 00:00:22 v #493 > > │ Test case 5. Average Time: 2828L 00:00:22 v #494 > > │ Test case 6. Average Time: 2828L 00:00:22 v #495 > > │ Test case 9. Average Time: 2652L 00:00:22 v #496 > > │ Test case 4. Average Time: 2613L 00:00:22 v #497 > > │ Test case 10. Average Time: 2599L 00:00:22 v #498 > > │ Test case 7. Average Time: 2505L 00:00:22 v #499 > > │ Test case 11. Average Time: 1474L 00:00:22 v #500 > > 00:00:22 v #501 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:22 v #502 > > //// test 00:00:22 v #503 > > 00:00:22 v #504 > > let solutions = [[ 00:00:22 v #505 > > "A", 00:00:22 v #506 > > fun input -> 00:00:22 v #507 > > input 00:00:22 v #508 > > |> Seq.toList 00:00:22 v #509 > > |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[ 00:00:22 v #510 > > x ]]) [[]] 00:00:22 v #511 > > |> Seq.toArray 00:00:22 v #512 > > |> String 00:00:22 v #513 > > 00:00:22 v #514 > > "B", 00:00:22 v #515 > > fun input -> 00:00:22 v #516 > > input 00:00:22 v #517 > > |> Seq.rev 00:00:22 v #518 > > |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then 00:00:22 v #519 > > acc else x :: acc) list [[]] 00:00:22 v #520 > > |> Seq.rev 00:00:22 v #521 > > |> Seq.toArray 00:00:22 v #522 > > |> String 00:00:22 v #523 > > 00:00:22 v #524 > > "C", 00:00:22 v #525 > > fun input -> 00:00:22 v #526 > > input 00:00:22 v #527 > > |> Seq.rev 00:00:22 v #528 > > |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set 00:00:22 v #529 > > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]]) 00:00:22 v #530 > > |> snd 00:00:22 v #531 > > |> Seq.rev 00:00:22 v #532 > > |> Seq.toArray 00:00:22 v #533 > > |> String 00:00:22 v #534 > > 00:00:22 v #535 > > "D", 00:00:22 v #536 > > fun input -> 00:00:22 v #537 > > input 00:00:22 v #538 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc 00:00:22 v #539 > > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]]) 00:00:22 v #540 > > |> snd 00:00:22 v #541 > > |> String 00:00:22 v #542 > > 00:00:22 v #543 > > "E", 00:00:22 v #544 > > fun input -> 00:00:22 v #545 > > input 00:00:22 v #546 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc 00:00:22 v #547 > > else set.Add x, x :: acc) (Set.empty, [[]]) 00:00:22 v #548 > > |> snd 00:00:22 v #549 > > |> List.rev 00:00:22 v #550 > > |> List.toArray 00:00:22 v #551 > > |> String 00:00:22 v #552 > > 00:00:22 v #553 > > "F", 00:00:22 v #554 > > fun input -> 00:00:22 v #555 > > input 00:00:22 v #556 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc 00:00:22 v #557 > > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]]) 00:00:22 v #558 > > |> snd 00:00:22 v #559 > > |> List.toArray 00:00:22 v #560 > > |> String 00:00:22 v #561 > > 00:00:22 v #562 > > "G", 00:00:22 v #563 > > fun input -> 00:00:22 v #564 > > input 00:00:22 v #565 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc 00:00:22 v #566 > > else set.Add x, x :: acc) (Set.empty, [[]]) 00:00:22 v #567 > > |> snd 00:00:22 v #568 > > |> List.toArray 00:00:22 v #569 > > |> Array.rev 00:00:22 v #570 > > |> String 00:00:22 v #571 > > 00:00:22 v #572 > > "H", 00:00:22 v #573 > > fun input -> 00:00:22 v #574 > > input 00:00:22 v #575 > > |> Seq.toList 00:00:22 v #576 > > |> fun list -> 00:00:22 v #577 > > let rec loop set = function 00:00:22 v #578 > > | head :: tail when Set.contains head set -> loop set tail 00:00:22 v #579 > > | head :: tail -> (loop (set.Add head) tail) @ [[ head ]] 00:00:22 v #580 > > | [[]] -> [[]] 00:00:22 v #581 > > loop Set.empty list 00:00:22 v #582 > > |> List.rev 00:00:22 v #583 > > |> List.toArray 00:00:22 v #584 > > |> String 00:00:22 v #585 > > 00:00:22 v #586 > > "I", 00:00:22 v #587 > > fun input -> 00:00:22 v #588 > > input 00:00:22 v #589 > > |> Seq.toList 00:00:22 v #590 > > |> fun list -> 00:00:22 v #591 > > let rec loop set = function 00:00:22 v #592 > > | head :: tail when Set.contains head set -> loop set tail 00:00:22 v #593 > > | head :: tail -> loop (set.Add head) tail |> Array.append [[| 00:00:22 v #594 > > head |]] 00:00:22 v #595 > > | [[]] -> [[||]] 00:00:22 v #596 > > loop Set.empty list 00:00:22 v #597 > > |> String 00:00:22 v #598 > > 00:00:22 v #599 > > "J", 00:00:22 v #600 > > fun input -> 00:00:22 v #601 > > input 00:00:22 v #602 > > |> Seq.toList 00:00:22 v #603 > > |> fun list -> 00:00:22 v #604 > > let rec loop set = function 00:00:22 v #605 > > | head :: tail when Set.contains head set -> loop set tail 00:00:22 v #606 > > | head :: tail -> head :: loop (set.Add head) tail 00:00:22 v #607 > > | [[]] -> [[]] 00:00:22 v #608 > > loop Set.empty list 00:00:22 v #609 > > |> List.toArray 00:00:22 v #610 > > |> String 00:00:22 v #611 > > 00:00:22 v #612 > > "K", 00:00:22 v #613 > > fun input -> 00:00:22 v #614 > > input 00:00:22 v #615 > > |> Seq.distinct 00:00:22 v #616 > > |> Seq.toArray 00:00:22 v #617 > > |> String 00:00:22 v #618 > > ]] 00:00:22 v #619 > > let testCases = seq { 00:00:22 v #620 > > "abc", "abc" 00:00:22 v #621 > > "accabb", "acb" 00:00:22 v #622 > > "pprrqqpp", "prq" 00:00:22 v #623 > > 00:00:22 v #624 > > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb 00:00:22 v #625 > > ", "acb" 00:00:22 v #626 > > } 00:00:22 v #627 > > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions 00:00:22 v #628 > > testCases 00:00:22 v #629 > > uniqueLettersTests 00:00:22 v #630 > > |> sortResultList 00:01:18 v #631 > > 00:01:18 v #632 > > ── [ 55.51s - stdout ] ───────────────────────────────────────────────────────── 00:01:18 v #633 > > │ 00:01:18 v #634 > > │ 00:01:18 v #635 > > │ Test: uniqueLettersTests 00:01:18 v #636 > > │ 00:01:18 v #637 > > │ Solution: abc 00:01:18 v #638 > > │ Test case 1. A. Time: 995L 00:01:18 v #639 > > │ Test case 2. B. Time: 1599L 00:01:18 v #640 > > │ Test case 3. C. Time: 1835L 00:01:18 v #641 > > │ Test case 4. D. Time: 760L 00:01:18 v #642 > > │ Test case 5. E. Time: 651L 00:01:18 v #643 > > │ Test case 6. F. Time: 740L 00:01:18 v #644 > > │ Test case 7. G. Time: 658L 00:01:18 v #645 > > │ Test case 8. H. Time: 747L 00:01:18 v #646 > > │ Test case 9. I. Time: 687L 00:01:18 v #647 > > │ Test case 10. J. Time: 657L 00:01:18 v #648 > > │ Test case 11. K. Time: 607L 00:01:18 v #649 > > │ 00:01:18 v #650 > > │ Solution: accabb 00:01:18 v #651 > > │ Test case 1. A. Time: 677L 00:01:18 v #652 > > │ Test case 2. B. Time: 846L 00:01:18 v #653 > > │ Test case 3. C. Time: 1104L 00:01:18 v #654 > > │ Test case 4. D. Time: 723L 00:01:18 v #655 > > │ Test case 5. E. Time: 706L 00:01:18 v #656 > > │ Test case 6. F. Time: 714L 00:01:18 v #657 > > │ Test case 7. G. Time: 720L 00:01:18 v #658 > > │ Test case 8. H. Time: 782L 00:01:18 v #659 > > │ Test case 9. I. Time: 731L 00:01:18 v #660 > > │ Test case 10. J. Time: 647L 00:01:18 v #661 > > │ Test case 11. K. Time: 551L 00:01:18 v #662 > > │ 00:01:18 v #663 > > │ Solution: pprrqqpp 00:01:18 v #664 > > │ Test case 1. A. Time: 666L 00:01:18 v #665 > > │ Test case 2. B. Time: 820L 00:01:18 v #666 > > │ Test case 3. C. Time: 1134L 00:01:18 v #667 > > │ Test case 4. D. Time: 761L 00:01:18 v #668 > > │ Test case 5. E. Time: 758L 00:01:18 v #669 > > │ Test case 6. F. Time: 802L 00:01:18 v #670 > > │ Test case 7. G. Time: 789L 00:01:18 v #671 > > │ Test case 8. H. Time: 844L 00:01:18 v #672 > > │ Test case 9. I. Time: 749L 00:01:18 v #673 > > │ Test case 10. J. Time: 733L 00:01:18 v #674 > > │ Test case 11. K. Time: 573L 00:01:18 v #675 > > │ 00:01:18 v #676 > > │ Solution: 00:01:18 v #677 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb│ Test case 1. A. Time: 1725L 00:01:18 v #678 > > │ Test case 2. B. Time: 1906L 00:01:18 v #679 > > │ Test case 3. C. Time: 2953L 00:01:18 v #680 > > │ Test case 4. D. Time: 1776L 00:01:18 v #681 > > │ Test case 5. E. Time: 1926L 00:01:18 v #682 > > │ Test case 6. F. Time: 1978L 00:01:18 v #683 > > │ Test case 7. G. Time: 1860L 00:01:18 v #684 > > │ Test case 8. H. Time: 1803L 00:01:18 v #685 > > │ Test case 9. I. Time: 1714L 00:01:18 v #686 > > │ Test case 10. J. Time: 1700L 00:01:18 v #687 > > │ Test case 11. K. Time: 1013L 00:01:18 v #688 > > │ 00:01:18 v #689 > > │ Input 00:01:18 v #690 > > | Expected | Result | Best 00:01:18 v #691 > > │ --- 00:01:18 v #692 > > | --- | --- | --- 00:01:18 v #693 > > │ abc 00:01:18 v #694 > > | abc | abc | (11, 607) 00:01:18 v #695 > > │ accabb 00:01:18 v #696 > > | acb | acb | (11, 551) 00:01:18 v #697 > > │ pprrqqpp 00:01:18 v #698 > > | prq | prq | (11, 573) 00:01:18 v #699 > > │ 00:01:18 v #700 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb | 00:01:18 v #701 > > acb | acb | (11, 1013) 00:01:18 v #702 > > │ 00:01:18 v #703 > > │ Average Ranking 00:01:18 v #704 > > │ Test case 11. Average Time: 686L 00:01:18 v #705 > > │ Test case 10. Average Time: 934L 00:01:18 v #706 > > │ Test case 9. Average Time: 970L 00:01:18 v #707 > > │ Test case 4. Average Time: 1005L 00:01:18 v #708 > > │ Test case 7. Average Time: 1006L 00:01:18 v #709 > > │ Test case 5. Average Time: 1010L 00:01:18 v #710 > > │ Test case 1. Average Time: 1015L 00:01:18 v #711 > > │ Test case 8. Average Time: 1044L 00:01:18 v #712 > > │ Test case 6. Average Time: 1058L 00:01:18 v #713 > > │ Test case 2. Average Time: 1292L 00:01:18 v #714 > > │ Test case 3. Average Time: 1756L 00:01:18 v #715 > > │ 00:01:18 v #716 > > 00:01:18 v #717 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:18 v #718 > > │ ## rotateStringsTests 00:01:18 v #719 > > 00:01:18 v #720 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:18 v #721 > > │ https://www.hackerrank.com/challenges/rotate-string/forum 00:01:18 v #722 > > │ 00:01:18 v #723 > > │ Test: RotateStrings 00:01:18 v #724 > > │ 00:01:18 v #725 > > │ Solution: abc 00:01:18 v #726 > > │ Test case 1. A. Time: 1842L 00:01:18 v #727 > > │ Test case 2. B. Time: 1846L 00:01:18 v #728 > > │ Test case 3. C. Time: 1936L 00:01:18 v #729 > > │ Test case 4. CA. Time: 2224L 00:01:18 v #730 > > │ Test case 5. CB. Time: 2329L 00:01:18 v #731 > > │ Test case 6. D. Time: 2474L 00:01:18 v #732 > > │ Test case 7. E. Time: 1664L 00:01:18 v #733 > > │ Test case 8. F. Time: 1517L 00:01:18 v #734 > > │ Test case 9. FA. Time: 1651L 00:01:18 v #735 > > │ Test case 10. FB. Time: 3764L 00:01:18 v #736 > > │ Test case 11. FC. Time: 5415L 00:01:18 v #737 > > │ 00:01:18 v #738 > > │ Solution: abcde 00:01:18 v #739 > > │ Test case 1. A. Time: 3356L 00:01:18 v #740 > > │ Test case 2. B. Time: 2592L 00:01:18 v #741 > > │ Test case 3. C. Time: 2346L 00:01:18 v #742 > > │ Test case 4. CA. Time: 2997L 00:01:18 v #743 > > │ Test case 5. CB. Time: 3061L 00:01:18 v #744 > > │ Test case 6. D. Time: 4051L 00:01:18 v #745 > > │ Test case 7. E. Time: 1905L 00:01:18 v #746 > > │ Test case 8. F. Time: 1771L 00:01:18 v #747 > > │ Test case 9. FA. Time: 2175L 00:01:18 v #748 > > │ Test case 10. FB. Time: 3275L 00:01:18 v #749 > > │ Test case 11. FC. Time: 5266L 00:01:18 v #750 > > │ 00:01:18 v #751 > > │ Solution: abcdefghi 00:01:18 v #752 > > │ Test case 1. A. Time: 4492L 00:01:18 v #753 > > │ Test case 2. B. Time: 3526L 00:01:18 v #754 > > │ Test case 3. C. Time: 3583L 00:01:18 v #755 > > │ Test case 4. CA. Time: 3711L 00:01:18 v #756 > > │ Test case 5. CB. Time: 4783L 00:01:18 v #757 > > │ Test case 6. D. Time: 7557L 00:01:18 v #758 > > │ Test case 7. E. Time: 3452L 00:01:18 v #759 > > │ Test case 8. F. Time: 3050L 00:01:18 v #760 > > │ Test case 9. FA. Time: 3275L 00:01:18 v #761 > > │ Test case 10. FB. Time: 4635L 00:01:18 v #762 > > │ Test case 11. FC. Time: 5616L 00:01:18 v #763 > > │ 00:01:18 v #764 > > │ Solution: abab 00:01:18 v #765 > > │ Test case 1. A. Time: 2093L 00:01:18 v #766 > > │ Test case 2. B. Time: 1843L 00:01:18 v #767 > > │ Test case 3. C. Time: 1746L 00:01:18 v #768 > > │ Test case 4. CA. Time: 2085L 00:01:18 v #769 > > │ Test case 5. CB. Time: 2139L 00:01:18 v #770 > > │ Test case 6. D. Time: 2095L 00:01:18 v #771 > > │ Test case 7. E. Time: 1723L 00:01:18 v #772 > > │ Test case 8. F. Time: 1558L 00:01:18 v #773 > > │ Test case 9. FA. Time: 1620L 00:01:18 v #774 > > │ Test case 10. FB. Time: 2319L 00:01:18 v #775 > > │ Test case 11. FC. Time: 3918L 00:01:18 v #776 > > │ 00:01:18 v #777 > > │ Solution: aa 00:01:18 v #778 > > │ Test case 1. A. Time: 1107L 00:01:18 v #779 > > │ Test case 2. B. Time: 1241L 00:01:18 v #780 > > │ Test case 3. C. Time: 1183L 00:01:18 v #781 > > │ Test case 4. CA. Time: 1563L 00:01:18 v #782 > > │ Test case 5. CB. Time: 1525L 00:01:18 v #783 > > │ Test case 6. D. Time: 1591L 00:01:18 v #784 > > │ Test case 7. E. Time: 1327L 00:01:18 v #785 > > │ Test case 8. F. Time: 1151L 00:01:18 v #786 > > │ Test case 9. FA. Time: 1180L 00:01:18 v #787 > > │ Test case 10. FB. Time: 1733L 00:01:18 v #788 > > │ Test case 11. FC. Time: 2817L 00:01:18 v #789 > > │ 00:01:18 v #790 > > │ Solution: z 00:01:18 v #791 > > │ Test case 1. A. Time: 816L 00:01:18 v #792 > > │ Test case 2. B. Time: 745L 00:01:18 v #793 > > │ Test case 3. C. Time: 928L 00:01:18 v #794 > > │ Test case 4. CA. Time: 1375L 00:01:18 v #795 > > │ Test case 5. CB. Time: 1029L 00:01:18 v #796 > > │ Test case 6. D. Time: 852L 00:01:18 v #797 > > │ Test case 7. E. Time: 712L 00:01:18 v #798 > > │ Test case 8. F. Time: 263L 00:01:18 v #799 > > │ Test case 9. FA. Time: 232L 00:01:18 v #800 > > │ Test case 10. FB. Time: 773L 00:01:18 v #801 > > │ Test case 11. FC. Time: 1789L 00:01:18 v #802 > > │ 00:01:18 v #803 > > │ Input | Expected 00:01:18 v #804 > > 00:01:18 v #805 > > | Result 00:01:18 v #806 > > 00:01:18 v #807 > > | Best 00:01:18 v #808 > > │ --- | --- 00:01:18 v #809 > > 00:01:18 v #810 > > | --- 00:01:18 v #811 > > 00:01:18 v #812 > > | --- 00:01:18 v #813 > > │ abc | bca cab abc 00:01:18 v #814 > > 00:01:18 v #815 > > | bca cab abc 00:01:18 v #816 > > 00:01:18 v #817 > > | (8, 1517) 00:01:18 v #818 > > │ abcde | bcdea cdeab deabc eabcd abcde 00:01:18 v #819 > > | bcdea cdeab deabc eabcd abcde 00:01:18 v #820 > > | (8, 1771) 00:01:18 v #821 > > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd 00:01:18 v #822 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab 00:01:18 v #823 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | 00:01:18 v #824 > > (8, 3050) 00:01:18 v #825 > > │ abab | baba abab baba abab 00:01:18 v #826 > > | baba abab baba abab 00:01:18 v #827 > > | (8, 1558) 00:01:18 v #828 > > │ aa | aa aa 00:01:18 v #829 > > 00:01:18 v #830 > > | aa aa 00:01:18 v #831 > > 00:01:18 v #832 > > | (1, 1107) 00:01:18 v #833 > > │ z | z 00:01:18 v #834 > > 00:01:18 v #835 > > | z 00:01:18 v #836 > > 00:01:18 v #837 > > | (9, 232) 00:01:18 v #838 > > │ 00:01:18 v #839 > > │ Averages 00:01:18 v #840 > > │ Test case 1. Average Time: 2284L 00:01:18 v #841 > > │ Test case 2. Average Time: 1965L 00:01:18 v #842 > > │ Test case 3. Average Time: 1953L 00:01:18 v #843 > > │ Test case 4. Average Time: 2325L 00:01:18 v #844 > > │ Test case 5. Average Time: 2477L 00:01:18 v #845 > > │ Test case 6. Average Time: 3103L 00:01:18 v #846 > > │ Test case 7. Average Time: 1797L 00:01:18 v #847 > > │ Test case 8. Average Time: 1551L 00:01:18 v #848 > > │ Test case 9. Average Time: 1688L 00:01:18 v #849 > > │ Test case 10. Average Time: 2749L 00:01:18 v #850 > > │ Test case 11. Average Time: 4136L 00:01:18 v #851 > > │ 00:01:18 v #852 > > │ Ranking 00:01:18 v #853 > > │ Test case 11. Average Time: 4136L 00:01:18 v #854 > > │ Test case 6. Average Time: 3103L 00:01:18 v #855 > > │ Test case 10. Average Time: 2749L 00:01:18 v #856 > > │ Test case 5. Average Time: 2477L 00:01:18 v #857 > > │ Test case 4. Average Time: 2325L 00:01:18 v #858 > > │ Test case 1. Average Time: 2284L 00:01:18 v #859 > > │ Test case 2. Average Time: 1965L 00:01:18 v #860 > > │ Test case 3. Average Time: 1953L 00:01:18 v #861 > > │ Test case 7. Average Time: 1797L 00:01:18 v #862 > > │ Test case 9. Average Time: 1688L 00:01:18 v #863 > > │ Test case 8. Average Time: 1551L 00:01:18 v #864 > > 00:01:18 v #865 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:01:18 v #866 > > //// test 00:01:18 v #867 > > 00:01:18 v #868 > > let solutions = [[ 00:01:18 v #869 > > "A", 00:01:18 v #870 > > fun (input: string) -> 00:01:18 v #871 > > let resultList = 00:01:18 v #872 > > List.fold (fun acc x -> 00:01:18 v #873 > > let rotate (text: string) (letter: string) = (text |> 00:01:18 v #874 > > SpiralSm.slice 1 (input.Length - 1)) + letter 00:01:18 v #875 > > [[ rotate (if acc.IsEmpty then input else acc.Head) (string x) 00:01:18 v #876 > > ]] @ acc 00:01:18 v #877 > > ) [[]] (Seq.toList input) 00:01:18 v #878 > > 00:01:18 v #879 > > (resultList, "") 00:01:18 v #880 > > ||> List.foldBack (fun acc x -> x + acc + " ") 00:01:18 v #881 > > |> _.TrimEnd() 00:01:18 v #882 > > 00:01:18 v #883 > > "B", 00:01:18 v #884 > > fun input -> 00:01:18 v #885 > > input 00:01:18 v #886 > > |> Seq.toList 00:01:18 v #887 > > |> List.fold (fun (acc: string list) letter -> 00:01:18 v #888 > > let last = 00:01:18 v #889 > > if acc.IsEmpty 00:01:18 v #890 > > then input 00:01:18 v #891 > > else acc.Head 00:01:18 v #892 > > 00:01:18 v #893 > > let item = last.[[1 .. input.Length - 1]] + string letter 00:01:18 v #894 > > 00:01:18 v #895 > > item :: acc 00:01:18 v #896 > > ) [[]] 00:01:18 v #897 > > |> List.rev 00:01:18 v #898 > > |> SpiralSm.concat " " 00:01:18 v #899 > > 00:01:18 v #900 > > "C", 00:01:18 v #901 > > fun input -> 00:01:18 v #902 > > input 00:01:18 v #903 > > |> Seq.toList 00:01:18 v #904 > > |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 .. 00:01:18 v #905 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] 00:01:18 v #906 > > |> List.rev 00:01:18 v #907 > > |> List.skip 1 00:01:18 v #908 > > |> SpiralSm.concat " " 00:01:18 v #909 > > 00:01:18 v #910 > > "CA", 00:01:18 v #911 > > fun input -> 00:01:18 v #912 > > input 00:01:18 v #913 > > |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 .. 00:01:18 v #914 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] 00:01:18 v #915 > > |> Seq.rev 00:01:18 v #916 > > |> Seq.skip 1 00:01:18 v #917 > > |> SpiralSm.concat " " 00:01:18 v #918 > > 00:01:18 v #919 > > "CB", 00:01:18 v #920 > > fun input -> 00:01:18 v #921 > > input 00:01:18 v #922 > > |> Seq.toArray 00:01:18 v #923 > > |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[| 00:01:18 v #924 > > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]] 00:01:18 v #925 > > |> Array.rev 00:01:18 v #926 > > |> Array.skip 1 00:01:18 v #927 > > |> SpiralSm.concat " " 00:01:18 v #928 > > 00:01:18 v #929 > > "D", 00:01:18 v #930 > > fun input -> 00:01:18 v #931 > > input 00:01:18 v #932 > > |> Seq.toList 00:01:18 v #933 > > |> fun list -> 00:01:18 v #934 > > let rec loop (acc: char list list) = function 00:01:18 v #935 > > | _ when acc.Length = list.Length -> acc 00:01:18 v #936 > > | head :: tail -> 00:01:18 v #937 > > let item = tail @ [[ head ]] 00:01:18 v #938 > > loop (item :: acc) item 00:01:18 v #939 > > | [[]] -> [[]] 00:01:18 v #940 > > loop [[]] list 00:01:18 v #941 > > |> List.rev 00:01:18 v #942 > > |> List.map (List.toArray >> String) 00:01:18 v #943 > > |> SpiralSm.concat " " 00:01:18 v #944 > > 00:01:18 v #945 > > "E", 00:01:18 v #946 > > fun input -> 00:01:18 v #947 > > input 00:01:18 v #948 > > |> Seq.toList 00:01:18 v #949 > > |> fun list -> 00:01:18 v #950 > > let rec loop (last: string) = function 00:01:18 v #951 > > | head :: tail -> 00:01:18 v #952 > > let item = last.[[1 .. input.Length - 1]] + string head 00:01:18 v #953 > > item :: loop item tail 00:01:18 v #954 > > | [[]] -> [[]] 00:01:18 v #955 > > loop input list 00:01:18 v #956 > > |> SpiralSm.concat " " 00:01:18 v #957 > > 00:01:18 v #958 > > "F", 00:01:18 v #959 > > fun input -> 00:01:18 v #960 > > Array.singleton 0 00:01:18 v #961 > > |> Array.append [[| 1 .. input.Length - 1 |]] 00:01:18 v #962 > > |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) 00:01:18 v #963 > > |> SpiralSm.concat " " 00:01:18 v #964 > > 00:01:18 v #965 > > "FA", 00:01:18 v #966 > > fun input -> 00:01:18 v #967 > > List.singleton 0 00:01:18 v #968 > > |> List.append [[ 1 .. input.Length - 1 ]] 00:01:18 v #969 > > |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) 00:01:18 v #970 > > |> SpiralSm.concat " " 00:01:18 v #971 > > 00:01:18 v #972 > > "FB", 00:01:18 v #973 > > fun input -> 00:01:18 v #974 > > Seq.singleton 0 00:01:18 v #975 > > |> Seq.append (seq { 1 .. input.Length - 1 }) 00:01:18 v #976 > > |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) 00:01:18 v #977 > > |> SpiralSm.concat " " 00:01:18 v #978 > > 00:01:18 v #979 > > "FC", 00:01:18 v #980 > > fun input -> 00:01:18 v #981 > > Array.singleton 0 00:01:18 v #982 > > |> Array.append [[| 1 .. input.Length - 1 |]] 00:01:18 v #983 > > |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) 00:01:18 v #984 > > |> SpiralSm.concat " " 00:01:18 v #985 > > ]] 00:01:18 v #986 > > let testCases = seq { 00:01:18 v #987 > > "abc", "bca cab abc" 00:01:18 v #988 > > "abcde", "bcdea cdeab deabc eabcd abcde" 00:01:18 v #989 > > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef 00:01:18 v #990 > > hiabcdefg iabcdefgh abcdefghi" 00:01:18 v #991 > > "abab", "baba abab baba abab" 00:01:18 v #992 > > "aa", "aa aa" 00:01:18 v #993 > > "z", "z" 00:01:18 v #994 > > } 00:01:18 v #995 > > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions 00:01:18 v #996 > > testCases 00:01:18 v #997 > > rotateStringsTests 00:01:18 v #998 > > |> sortResultList 00:02:39 v #999 > > 00:02:39 v #1000 > > ── [ 1.35m - stdout ] ────────────────────────────────────────────────────────── 00:02:39 v #1001 > > │ 00:02:39 v #1002 > > │ 00:02:39 v #1003 > > │ Test: rotateStringsTests 00:02:39 v #1004 > > │ 00:02:39 v #1005 > > │ Solution: abc 00:02:39 v #1006 > > │ Test case 1. A. Time: 913L 00:02:39 v #1007 > > │ Test case 2. B. Time: 814L 00:02:39 v #1008 > > │ Test case 3. C. Time: 828L 00:02:39 v #1009 > > │ Test case 4. CA. Time: 1021L 00:02:39 v #1010 > > │ Test case 5. CB. Time: 939L 00:02:39 v #1011 > > │ Test case 6. D. Time: 918L 00:02:39 v #1012 > > │ Test case 7. E. Time: 697L 00:02:39 v #1013 > > │ Test case 8. F. Time: 585L 00:02:39 v #1014 > > │ Test case 9. FA. Time: 609L 00:02:39 v #1015 > > │ Test case 10. FB. Time: 1168L 00:02:39 v #1016 > > │ Test case 11. FC. Time: 1609L 00:02:39 v #1017 > > │ 00:02:39 v #1018 > > │ Solution: abcde 00:02:39 v #1019 > > │ Test case 1. A. Time: 1223L 00:02:39 v #1020 > > │ Test case 2. B. Time: 999L 00:02:39 v #1021 > > │ Test case 3. C. Time: 918L 00:02:39 v #1022 > > │ Test case 4. CA. Time: 992L 00:02:39 v #1023 > > │ Test case 5. CB. Time: 1131L 00:02:39 v #1024 > > │ Test case 6. D. Time: 1381L 00:02:39 v #1025 > > │ Test case 7. E. Time: 839L 00:02:39 v #1026 > > │ Test case 8. F. Time: 637L 00:02:39 v #1027 > > │ Test case 9. FA. Time: 870L 00:02:39 v #1028 > > │ Test case 10. FB. Time: 1479L 00:02:39 v #1029 > > │ Test case 11. FC. Time: 1875L 00:02:39 v #1030 > > │ 00:02:39 v #1031 > > │ Solution: abcdefghi 00:02:39 v #1032 > > │ Test case 1. A. Time: 2012L 00:02:39 v #1033 > > │ Test case 2. B. Time: 1391L 00:02:39 v #1034 > > │ Test case 3. C. Time: 1591L 00:02:39 v #1035 > > │ Test case 4. CA. Time: 1486L 00:02:39 v #1036 > > │ Test case 5. CB. Time: 1809L 00:02:39 v #1037 > > │ Test case 6. D. Time: 2587L 00:02:39 v #1038 > > │ Test case 7. E. Time: 1380L 00:02:39 v #1039 > > │ Test case 8. F. Time: 1197L 00:02:39 v #1040 > > │ Test case 9. FA. Time: 1370L 00:02:39 v #1041 > > │ Test case 10. FB. Time: 1939L 00:02:39 v #1042 > > │ Test case 11. FC. Time: 2200L 00:02:39 v #1043 > > │ 00:02:39 v #1044 > > │ Solution: abab 00:02:39 v #1045 > > │ Test case 1. A. Time: 935L 00:02:39 v #1046 > > │ Test case 2. B. Time: 765L 00:02:39 v #1047 > > │ Test case 3. C. Time: 846L 00:02:39 v #1048 > > │ Test case 4. CA. Time: 974L 00:02:39 v #1049 > > │ Test case 5. CB. Time: 1036L 00:02:39 v #1050 > > │ Test case 6. D. Time: 1053L 00:02:39 v #1051 > > │ Test case 7. E. Time: 713L 00:02:39 v #1052 > > │ Test case 8. F. Time: 560L 00:02:39 v #1053 > > │ Test case 9. FA. Time: 690L 00:02:39 v #1054 > > │ Test case 10. FB. Time: 1234L 00:02:39 v #1055 > > │ Test case 11. FC. Time: 1601L 00:02:39 v #1056 > > │ 00:02:39 v #1057 > > │ Solution: aa 00:02:39 v #1058 > > │ Test case 1. A. Time: 645L 00:02:39 v #1059 > > │ Test case 2. B. Time: 624L 00:02:39 v #1060 > > │ Test case 3. C. Time: 649L 00:02:39 v #1061 > > │ Test case 4. CA. Time: 789L 00:02:39 v #1062 > > │ Test case 5. CB. Time: 732L 00:02:39 v #1063 > > │ Test case 6. D. Time: 673L 00:02:39 v #1064 > > │ Test case 7. E. Time: 604L 00:02:39 v #1065 > > │ Test case 8. F. Time: 441L 00:02:39 v #1066 > > │ Test case 9. FA. Time: 515L 00:02:39 v #1067 > > │ Test case 10. FB. Time: 1008L 00:02:39 v #1068 > > │ Test case 11. FC. Time: 1390L 00:02:39 v #1069 > > │ 00:02:39 v #1070 > > │ Solution: z 00:02:39 v #1071 > > │ Test case 1. A. Time: 418L 00:02:39 v #1072 > > │ Test case 2. B. Time: 403L 00:02:39 v #1073 > > │ Test case 3. C. Time: 460L 00:02:39 v #1074 > > │ Test case 4. CA. Time: 641L 00:02:39 v #1075 > > │ Test case 5. CB. Time: 533L 00:02:39 v #1076 > > │ Test case 6. D. Time: 441L 00:02:39 v #1077 > > │ Test case 7. E. Time: 391L 00:02:39 v #1078 > > │ Test case 8. F. Time: 75L 00:02:39 v #1079 > > │ Test case 9. FA. Time: 95L 00:02:39 v #1080 > > │ Test case 10. FB. Time: 404L 00:02:39 v #1081 > > │ Test case 11. FC. Time: 723L 00:02:39 v #1082 > > │ 00:02:39 v #1083 > > │ Input | Expected 00:02:39 v #1084 > > | Result 00:02:39 v #1085 > > 00:02:39 v #1086 > > | Best 00:02:39 v #1087 > > │ --- | --- 00:02:39 v #1088 > > 00:02:39 v #1089 > > | --- 00:02:39 v #1090 > > 00:02:39 v #1091 > > | --- 00:02:39 v #1092 > > │ abc | bca cab abc 00:02:39 v #1093 > > | bca cab abc 00:02:39 v #1094 > > | (8, 585) 00:02:39 v #1095 > > │ abcde | bcdea cdeab deabc eabcd abcde 00:02:39 v #1096 > > | bcdea cdeab deabc eabcd abcde 00:02:39 v #1097 > > | (8, 637) 00:02:39 v #1098 > > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde 00:02:39 v #1099 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd 00:02:39 v #1100 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | (8, 1197) 00:02:39 v #1101 > > │ abab | baba abab baba abab 00:02:39 v #1102 > > | baba abab baba abab 00:02:39 v #1103 > > | (8, 560) 00:02:39 v #1104 > > │ aa | aa aa 00:02:39 v #1105 > > 00:02:39 v #1106 > > | aa aa 00:02:39 v #1107 > > 00:02:39 v #1108 > > | (8, 441) 00:02:39 v #1109 > > │ z | z 00:02:39 v #1110 > > 00:02:39 v #1111 > > | z 00:02:39 v #1112 > > 00:02:39 v #1113 > > | (8, 75) 00:02:39 v #1114 > > │ 00:02:39 v #1115 > > │ Average Ranking 00:02:39 v #1116 > > │ Test case 8. Average Time: 582L 00:02:39 v #1117 > > │ Test case 9. Average Time: 691L 00:02:39 v #1118 > > │ Test case 7. Average Time: 770L 00:02:39 v #1119 > > │ Test case 2. Average Time: 832L 00:02:39 v #1120 > > │ Test case 3. Average Time: 882L 00:02:39 v #1121 > > │ Test case 4. Average Time: 983L 00:02:39 v #1122 > > │ Test case 1. Average Time: 1024L 00:02:39 v #1123 > > │ Test case 5. Average Time: 1030L 00:02:39 v #1124 > > │ Test case 6. Average Time: 1175L 00:02:39 v #1125 > > │ Test case 10. Average Time: 1205L 00:02:39 v #1126 > > │ Test case 11. Average Time: 1566L 00:02:39 v #1127 > > │ 00:02:39 v #1128 > > 00:02:39 v #1129 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:02:39 v #1130 > > │ ## rotate_strings_tests 00:02:39 v #1131 > > 00:02:39 v #1132 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:02:39 v #1133 > > │ ``` 00:02:39 v #1134 > > │ 02:21:12 verbose #1 benchmark.run_all / {count = 00:02:39 v #1135 > > 2000000; test_name = rotate_strings_tests} 00:02:39 v #1136 > > │ 00:02:39 v #1137 > > │ 02:21:12 verbose #2 benchmark.run / {input_str = 00:02:39 v #1138 > > "abc"} 00:02:39 v #1139 > > │ 02:21:13 verbose #3 benchmark.run / solutions.map / {i 00:02:39 v #1140 > > = 1; test_name = F; time = 638} 00:02:39 v #1141 > > │ 02:21:14 verbose #4 benchmark.run / solutions.map / {i 00:02:39 v #1142 > > = 2; test_name = FA; time = 779} 00:02:39 v #1143 > > │ 00:02:39 v #1144 > > │ 02:21:14 verbose #5 benchmark.run / {input_str = 00:02:39 v #1145 > > "abcde"} 00:02:39 v #1146 > > │ 02:21:15 verbose #6 benchmark.run / solutions.map / {i 00:02:39 v #1147 > > = 1; test_name = F; time = 745} 00:02:39 v #1148 > > │ 02:21:16 verbose #7 benchmark.run / solutions.map / {i 00:02:39 v #1149 > > = 2; test_name = FA; time = 809} 00:02:39 v #1150 > > │ 00:02:39 v #1151 > > │ 02:21:16 verbose #8 benchmark.run / {input_str = 00:02:39 v #1152 > > "abcdefghi"} 00:02:39 v #1153 > > │ 02:21:17 verbose #9 benchmark.run / solutions.map / {i 00:02:39 v #1154 > > = 1; test_name = F; time = 1092} 00:02:39 v #1155 > > │ 02:21:18 verbose #10 benchmark.run / solutions.map 00:02:39 v #1156 > > {i = 2; test_name = FA; time = 1304} 00:02:39 v #1157 > > │ 00:02:39 v #1158 > > │ 02:21:18 verbose #11 benchmark.run / {input_str = 00:02:39 v #1159 > > "abab"} 00:02:39 v #1160 > > │ 02:21:19 verbose #12 benchmark.run / solutions.map 00:02:39 v #1161 > > {i = 1; test_name = F; time = 536} 00:02:39 v #1162 > > │ 02:21:20 verbose #13 benchmark.run / solutions.map 00:02:39 v #1163 > > {i = 2; test_name = FA; time = 620} 00:02:39 v #1164 > > │ 00:02:39 v #1165 > > │ 02:21:20 verbose #14 benchmark.run / {input_str = 00:02:39 v #1166 > > "aa"} 00:02:39 v #1167 > > │ 02:21:21 verbose #15 benchmark.run / solutions.map 00:02:39 v #1168 > > {i = 1; test_name = F; time = 365} 00:02:39 v #1169 > > │ 02:21:21 verbose #16 benchmark.run / solutions.map 00:02:39 v #1170 > > {i = 2; test_name = FA; time = 396} 00:02:39 v #1171 > > │ 00:02:39 v #1172 > > │ 02:21:21 verbose #17 benchmark.run / {input_str = "z"} 00:02:39 v #1173 > > │ 02:21:22 verbose #18 benchmark.run / solutions.map 00:02:39 v #1174 > > {i = 1; test_name = F; time = 158} 00:02:39 v #1175 > > │ 02:21:22 verbose #19 benchmark.run / solutions.map 00:02:39 v #1176 > > {i = 2; test_name = FA; time = 143} 00:02:39 v #1177 > > │ ``` 00:02:39 v #1178 > > │ input | expected 00:02:39 v #1179 > > 00:02:39 v #1180 > > | result 00:02:39 v #1181 > > 00:02:39 v #1182 > > | best 00:02:39 v #1183 > > │ --- | --- 00:02:39 v #1184 > > 00:02:39 v #1185 > > | --- 00:02:39 v #1186 > > 00:02:39 v #1187 > > | --- 00:02:39 v #1188 > > │ "abc" | "bca cab abc" 00:02:39 v #1189 > > | "bca cab abc" 00:02:39 v #1190 > > | 1, 638 00:02:39 v #1191 > > │ "abcde" | "bcdea cdeab deabc eabcd abcde" 00:02:39 v #1192 > > | "bcdea cdeab deabc eabcd abcde" 00:02:39 v #1193 > > | 1, 745 00:02:39 v #1194 > > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd 00:02:39 v #1195 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab 00:02:39 v #1196 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | 1, 1092 00:02:39 v #1197 > > │ "abab" | "baba abab baba abab" 00:02:39 v #1198 > > | "baba abab baba abab" 00:02:39 v #1199 > > | 1, 536 00:02:39 v #1200 > > │ "aa" | "aa aa" 00:02:39 v #1201 > > 00:02:39 v #1202 > > | "aa aa" 00:02:39 v #1203 > > 00:02:39 v #1204 > > | 1, 365 00:02:39 v #1205 > > │ "z" | "z" 00:02:39 v #1206 > > 00:02:39 v #1207 > > | "z" 00:02:39 v #1208 > > 00:02:39 v #1209 > > | 2, 143 00:02:39 v #1210 > > │ ``` 00:02:39 v #1211 > > │ 02:21:22 verbose #20 benchmark.sort_result_list 00:02:39 v #1212 > > averages.iter / {avg = 589; i = 1} 00:02:39 v #1213 > > │ 02:21:22 verbose #21 benchmark.sort_result_list 00:02:39 v #1214 > > averages.iter / {avg = 675; i = 2} 00:02:39 v #1215 > > │ ``` 00:02:39 v #1216 > > 00:02:39 v #1217 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:02:39 v #1218 > > //// test 00:02:39 v #1219 > > //// timeout=60000 00:02:39 v #1220 > > 00:02:39 v #1221 > > inl get_solutions () = 00:02:39 v #1222 > > [[ 00:02:39 v #1223 > > // "A", 00:02:39 v #1224 > > // fun (input : string) => 00:02:39 v #1225 > > // let resultList = 00:02:39 v #1226 > > // List.fold (fun acc x => 00:02:39 v #1227 > > // let rotate (text : string) (letter : string) = 00:02:39 v #1228 > > text.Substring (1, input.Length - 1) + letter 00:02:39 v #1229 > > // [[ rotate (if acc.IsEmpty then input else acc.Head) 00:02:39 v #1230 > > (string x) ]] ++ acc 00:02:39 v #1231 > > // ) [[]] (Seq.toList input) 00:02:39 v #1232 > > 00:02:39 v #1233 > > // List.foldBack (fun acc x => x + acc + " ") resultList "" 00:02:39 v #1234 > > // |> fun x => x.TrimEnd () 00:02:39 v #1235 > > 00:02:39 v #1236 > > // "B", 00:02:39 v #1237 > > // fun input => 00:02:39 v #1238 > > // input 00:02:39 v #1239 > > // |> Seq.toList 00:02:39 v #1240 > > // |> List.fold (fun (acc : string list) letter => 00:02:39 v #1241 > > // let last = 00:02:39 v #1242 > > // if acc.IsEmpty 00:02:39 v #1243 > > // then input 00:02:39 v #1244 > > // else acc.Head 00:02:39 v #1245 > > 00:02:39 v #1246 > > // let item = last.[[1 .. input.Length - 1]] + string letter 00:02:39 v #1247 > > 00:02:39 v #1248 > > // item :: acc 00:02:39 v #1249 > > // ) [[]] 00:02:39 v #1250 > > // |> List.rev 00:02:39 v #1251 > > // |> SpiralSm.concat " " 00:02:39 v #1252 > > 00:02:39 v #1253 > > // "C", 00:02:39 v #1254 > > // fun input => 00:02:39 v #1255 > > // input 00:02:39 v #1256 > > // |> Seq.toList 00:02:39 v #1257 > > // |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 .. 00:02:39 v #1258 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] 00:02:39 v #1259 > > // |> List.rev 00:02:39 v #1260 > > // |> List.skip 1 00:02:39 v #1261 > > // |> SpiralSm.concat " " 00:02:39 v #1262 > > 00:02:39 v #1263 > > // "CA", 00:02:39 v #1264 > > // fun input => 00:02:39 v #1265 > > // input 00:02:39 v #1266 > > // |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 .. 00:02:39 v #1267 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] 00:02:39 v #1268 > > // |> Seq.rev 00:02:39 v #1269 > > // |> Seq.skip 1 00:02:39 v #1270 > > // |> SpiralSm.concat " " 00:02:39 v #1271 > > 00:02:39 v #1272 > > // "CB", 00:02:39 v #1273 > > // fun input => 00:02:39 v #1274 > > // input 00:02:39 v #1275 > > // |> Seq.toArray 00:02:39 v #1276 > > // |> Array.fold (fun (acc : a _ string) letter => acc |> 00:02:39 v #1277 > > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]])) 00:02:39 v #1278 > > (a ;[[ input ]]) 00:02:39 v #1279 > > // |> Array.rev 00:02:39 v #1280 > > // |> Array.skip 1 00:02:39 v #1281 > > // |> SpiralSm.concat " " 00:02:39 v #1282 > > 00:02:39 v #1283 > > // "D", 00:02:39 v #1284 > > // fun input => 00:02:39 v #1285 > > // input 00:02:39 v #1286 > > // |> Seq.toList 00:02:39 v #1287 > > // |> fun list => 00:02:39 v #1288 > > // let rec loop (acc : list (list char)) = function 00:02:39 v #1289 > > // | _ when acc.Length = list.Length => acc 00:02:39 v #1290 > > // | head :: tail => 00:02:39 v #1291 > > // let item = tail ++ [[ head ]] 00:02:39 v #1292 > > // loop (item :: acc) item 00:02:39 v #1293 > > // | [[]] => [[]] 00:02:39 v #1294 > > // loop [[]] list 00:02:39 v #1295 > > // |> List.rev 00:02:39 v #1296 > > // |> List.map (List.toArray >> String) 00:02:39 v #1297 > > // |> SpiralSm.concat " " 00:02:39 v #1298 > > 00:02:39 v #1299 > > // "E", 00:02:39 v #1300 > > // fun input => 00:02:39 v #1301 > > // input 00:02:39 v #1302 > > // |> Seq.toList 00:02:39 v #1303 > > // |> fun list => 00:02:39 v #1304 > > // let rec loop (last : string) = function 00:02:39 v #1305 > > // | head :: tail => 00:02:39 v #1306 > > // let item = last.[[1 .. input.Length - 1]] + string 00:02:39 v #1307 > > head 00:02:39 v #1308 > > // item :: loop item tail 00:02:39 v #1309 > > // | [[]] => [[]] 00:02:39 v #1310 > > // loop input list 00:02:39 v #1311 > > // |> SpiralSm.concat " " 00:02:39 v #1312 > > 00:02:39 v #1313 > > "F", 00:02:39 v #1314 > > fun input => 00:02:39 v #1315 > > // Array.singleton 0 00:02:39 v #1316 > > // |> Array.append [[| 1 .. input.Length - 1 |]] 00:02:39 v #1317 > > // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) 00:02:39 v #1318 > > // |> SpiralSm.concat " " 00:02:39 v #1319 > > inl input_length = input |> sm.length 00:02:39 v #1320 > > am.singleton 0i32 00:02:39 v #1321 > > |> am.append (am'.init_series 1 (input_length - 1) 1 |> fun x => a x 00:02:39 v #1322 > > : _ int _) 00:02:39 v #1323 > > |> fun (a x) => x 00:02:39 v #1324 > > |> am'.map_base fun i => 00:02:39 v #1325 > > inl a = input |> sm'.slice i (input_length - 1) 00:02:39 v #1326 > > inl b = input |> sm'.slice 0 (i - 1) 00:02:39 v #1327 > > a +. b 00:02:39 v #1328 > > |> fun x => a x : _ int _ 00:02:39 v #1329 > > |> seq.of_array 00:02:39 v #1330 > > |> sm'.concat " " 00:02:39 v #1331 > > 00:02:39 v #1332 > > "FA", 00:02:39 v #1333 > > fun input => 00:02:39 v #1334 > > // List.singleton 0 00:02:39 v #1335 > > // |> List.append [[ 1 .. input.Length - 1 ]] 00:02:39 v #1336 > > // // |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]]) 00:02:39 v #1337 > > // |> SpiralSm.concat " " 00:02:39 v #1338 > > inl input_length = input |> sm.length 00:02:39 v #1339 > > listm.singleton 0i32 00:02:39 v #1340 > > |> listm.append (listm'.init_series 1 (input_length - 1) 1) 00:02:39 v #1341 > > |> listm.map (fun i => 00:02:39 v #1342 > > inl a = input |> sm'.slice i (input_length - 1) 00:02:39 v #1343 > > inl b = if i = 0 then "" else input |> sm'.slice 0 (i - 1) 00:02:39 v #1344 > > a +. b 00:02:39 v #1345 > > ) 00:02:39 v #1346 > > |> listm'.box 00:02:39 v #1347 > > |> listm'.to_array' 00:02:39 v #1348 > > |> fun x => a x : _ int _ 00:02:39 v #1349 > > |> seq.of_array 00:02:39 v #1350 > > |> sm'.concat " " 00:02:39 v #1351 > > 00:02:39 v #1352 > > // "FB", 00:02:39 v #1353 > > // fun input => 00:02:39 v #1354 > > // Seq.singleton 0 00:02:39 v #1355 > > // // |> Seq.append (seq { 1 .. input.Length - 1 }) 00:02:39 v #1356 > > // // |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]]) 00:02:39 v #1357 > > // |> SpiralSm.concat " " 00:02:39 v #1358 > > 00:02:39 v #1359 > > // "FC", 00:02:39 v #1360 > > // fun input => 00:02:39 v #1361 > > // Array.singleton 0 00:02:39 v #1362 > > // |> Array.append (a ;[[ 1 .. input.Length - 1 ]]) 00:02:39 v #1363 > > //// |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ .. i 00:02:39 v #1364 > > - 1 ]]) 00:02:39 v #1365 > > // |> SpiralSm.concat " " 00:02:39 v #1366 > > ]] 00:02:39 v #1367 > > 00:02:39 v #1368 > > inl rec rotate_strings_tests () = 00:02:39 v #1369 > > inl test_cases = [[ 00:02:39 v #1370 > > "abc", "bca cab abc" 00:02:39 v #1371 > > "abcde", "bcdea cdeab deabc eabcd abcde" 00:02:39 v #1372 > > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde 00:02:39 v #1373 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi" 00:02:39 v #1374 > > "abab", "baba abab baba abab" 00:02:39 v #1375 > > "aa", "aa aa" 00:02:39 v #1376 > > "z", "z" 00:02:39 v #1377 > > ]] 00:02:39 v #1378 > > 00:02:39 v #1379 > > inl solutions = get_solutions () 00:02:39 v #1380 > > 00:02:39 v #1381 > > // inl is_fast () = true 00:02:39 v #1382 > > 00:02:39 v #1383 > > inl count = 00:02:39 v #1384 > > if is_fast () 00:02:39 v #1385 > > then 1000i32 00:02:39 v #1386 > > else 2000000i32 00:02:39 v #1387 > > 00:02:39 v #1388 > > run_all (reflection.nameof { rotate_strings_tests }) count solutions 00:02:39 v #1389 > > test_cases 00:02:39 v #1390 > > |> sort_result_list 00:02:39 v #1391 > > 00:02:39 v #1392 > > rotate_strings_tests () 00:02:52 v #1393 > > 00:02:52 v #1394 > > ── [ 13.23s - stdout ] ───────────────────────────────────────────────────────── 00:02:52 v #1395 > > │ 00:02:52 v #1396 > > │ ``` 00:02:52 v #1397 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = 00:02:52 v #1398 > > rotate_strings_tests; count = 2000000 } 00:02:52 v #1399 > > │ 00:02:52 v #1400 > > │ 00:00:00 v #2 benchmark.run / { input_str = "abc" } 00:02:52 v #1401 > > │ 00:00:00 v #3 benchmark.run / solutions.map / { i = 1; 00:02:52 v #1402 > > test_name = F; time = 753 } 00:02:52 v #1403 > > │ 00:00:02 v #4 benchmark.run / solutions.map / { i = 2; 00:02:52 v #1404 > > test_name = FA; time = 954 } 00:02:52 v #1405 > > │ 00:02:52 v #1406 > > │ 00:00:02 v #5 benchmark.run / { input_str = "abcde" } 00:02:52 v #1407 > > │ 00:00:03 v #6 benchmark.run / solutions.map / { i = 1; 00:02:52 v #1408 > > test_name = F; time = 720 } 00:02:52 v #1409 > > │ 00:00:04 v #7 benchmark.run / solutions.map / { i = 2; 00:02:52 v #1410 > > test_name = FA; time = 920 } 00:02:52 v #1411 > > │ 00:02:52 v #1412 > > │ 00:00:04 v #8 benchmark.run / { input_str = "abcdefghi" 00:02:52 v #1413 > > } 00:02:52 v #1414 > > │ 00:00:06 v #9 benchmark.run / solutions.map / { i = 1; 00:02:52 v #1415 > > test_name = F; time = 1307 } 00:02:52 v #1416 > > │ 00:00:07 v #10 benchmark.run / solutions.map / { i = 2; 00:02:52 v #1417 > > test_name = FA; time = 1544 } 00:02:52 v #1418 > > │ 00:02:52 v #1419 > > │ 00:00:07 v #11 benchmark.run / { input_str = "abab" } 00:02:52 v #1420 > > │ 00:00:08 v #12 benchmark.run / solutions.map / { i = 1; 00:02:52 v #1421 > > test_name = F; time = 625 } 00:02:52 v #1422 > > │ 00:00:09 v #13 benchmark.run / solutions.map / { i = 2; 00:02:52 v #1423 > > test_name = FA; time = 799 } 00:02:52 v #1424 > > │ 00:02:52 v #1425 > > │ 00:00:09 v #14 benchmark.run / { input_str = "aa" } 00:02:52 v #1426 > > │ 00:00:10 v #15 benchmark.run / solutions.map / { i = 1; 00:02:52 v #1427 > > test_name = F; time = 513 } 00:02:52 v #1428 > > │ 00:00:11 v #16 benchmark.run / solutions.map / { i = 2; 00:02:52 v #1429 > > test_name = FA; time = 601 } 00:02:52 v #1430 > > │ 00:02:52 v #1431 > > │ 00:00:11 v #17 benchmark.run / { input_str = "z" } 00:02:52 v #1432 > > │ 00:00:11 v #18 benchmark.run / solutions.map / { i = 1; 00:02:52 v #1433 > > test_name = F; time = 108 } 00:02:52 v #1434 > > │ 00:00:12 v #19 benchmark.run / solutions.map / { i = 2; 00:02:52 v #1435 > > test_name = FA; time = 123 } 00:02:52 v #1436 > > │ ``` 00:02:52 v #1437 > > │ input | expected 00:02:52 v #1438 > > 00:02:52 v #1439 > > | result 00:02:52 v #1440 > > 00:02:52 v #1441 > > | best 00:02:52 v #1442 > > │ --- | --- 00:02:52 v #1443 > > 00:02:52 v #1444 > > | --- 00:02:52 v #1445 > > 00:02:52 v #1446 > > | --- 00:02:52 v #1447 > > │ "abc" | "bca cab abc" 00:02:52 v #1448 > > | "bca cab abc" 00:02:52 v #1449 > > | 1, 753 00:02:52 v #1450 > > │ "abcde" | "bcdea cdeab deabc eabcd abcde" 00:02:52 v #1451 > > | "bcdea cdeab deabc eabcd abcde" 00:02:52 v #1452 > > | 1, 720 00:02:52 v #1453 > > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd 00:02:52 v #1454 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab 00:02:52 v #1455 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | 1, 1307 00:02:52 v #1456 > > │ "abab" | "baba abab baba abab" 00:02:52 v #1457 > > | "baba abab baba abab" 00:02:52 v #1458 > > | 1, 625 00:02:52 v #1459 > > │ "aa" | "aa aa" 00:02:52 v #1460 > > 00:02:52 v #1461 > > | "aa aa" 00:02:52 v #1462 > > 00:02:52 v #1463 > > | 1, 513 00:02:52 v #1464 > > │ "z" | "z" 00:02:52 v #1465 > > 00:02:52 v #1466 > > | "z" 00:02:52 v #1467 > > 00:02:52 v #1468 > > | 1, 108 00:02:52 v #1469 > > │ ``` 00:02:52 v #1470 > > │ 00:00:12 v #20 benchmark.sort_result_list 00:02:52 v #1471 > > averages.iter / { i = 1; avg = 671 } 00:02:52 v #1472 > > │ 00:00:12 v #21 benchmark.sort_result_list 00:02:52 v #1473 > > averages.iter / { i = 2; avg = 823 } 00:02:52 v #1474 > > │ ``` 00:02:52 v #1475 > > │ 00:02:52 v #1476 > > 00:02:52 v #1477 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:02:52 v #1478 > > //// test 00:02:52 v #1479 > > 00:02:52 v #1480 > > // rotate_strings_tests () 00:02:52 v #1481 > > () 00:02:52 v #1482 > > 00:02:52 v #1483 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:02:52 v #1484 > > │ ## binary_search_tests 00:02:52 v #1485 > > 00:02:52 v #1486 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:02:52 v #1487 > > │ ``` 00:02:52 v #1488 > > │ 02:19:29 verbose #1 benchmark.run_all / {count = 00:02:52 v #1489 > > 10000000; test_name = binary_search_tests} 00:02:52 v #1490 > > │ 00:02:52 v #1491 > > │ 02:19:29 verbose #2 benchmark.run / {input_str = 00:02:52 v #1492 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)} 00:02:52 v #1493 > > │ 02:19:30 verbose #3 benchmark.run / solutions.map / {i 00:02:52 v #1494 > > = 1; test_name = semi_open_1; time = 662} 00:02:52 v #1495 > > │ 02:19:30 verbose #4 benchmark.run / solutions.map / {i 00:02:52 v #1496 > > = 2; test_name = closed_1; time = 619} 00:02:52 v #1497 > > │ 02:19:31 verbose #5 benchmark.run / solutions.map / {i 00:02:52 v #1498 > > = 3; test_name = semi_open_2; time = 644} 00:02:52 v #1499 > > │ 02:19:32 verbose #6 benchmark.run / solutions.map / {i 00:02:52 v #1500 > > = 4; test_name = closed_2; time = 610} 00:02:52 v #1501 > > │ 00:02:52 v #1502 > > │ 02:19:32 verbose #7 benchmark.run / {input_str = 00:02:52 v #1503 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)} 00:02:52 v #1504 > > │ 02:19:33 verbose #8 benchmark.run / solutions.map / {i 00:02:52 v #1505 > > = 1; test_name = semi_open_1; time = 607} 00:02:52 v #1506 > > │ 02:19:33 verbose #9 benchmark.run / solutions.map / {i 00:02:52 v #1507 > > = 2; test_name = closed_1; time = 559} 00:02:52 v #1508 > > │ 02:19:34 verbose #10 benchmark.run / solutions.map 00:02:52 v #1509 > > {i = 3; test_name = semi_open_2; time = 612} 00:02:52 v #1510 > > │ 02:19:35 verbose #11 benchmark.run / solutions.map 00:02:52 v #1511 > > {i = 4; test_name = closed_2; time = 577} 00:02:52 v #1512 > > │ 00:02:52 v #1513 > > │ 02:19:35 verbose #12 benchmark.run / {input_str = 00:02:52 v #1514 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)} 00:02:52 v #1515 > > │ 02:19:35 verbose #13 benchmark.run / solutions.map 00:02:52 v #1516 > > {i = 1; test_name = semi_open_1; time = 550} 00:02:52 v #1517 > > │ 02:19:36 verbose #14 benchmark.run / solutions.map 00:02:52 v #1518 > > {i = 2; test_name = closed_1; time = 580} 00:02:52 v #1519 > > │ 02:19:37 verbose #15 benchmark.run / solutions.map 00:02:52 v #1520 > > {i = 3; test_name = semi_open_2; time = 624} 00:02:52 v #1521 > > │ 02:19:37 verbose #16 benchmark.run / solutions.map 00:02:52 v #1522 > > {i = 4; test_name = closed_2; time = 590} 00:02:52 v #1523 > > │ 00:02:52 v #1524 > > │ 02:19:37 verbose #17 benchmark.run / {input_str = 00:02:52 v #1525 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)} 00:02:52 v #1526 > > │ 02:19:38 verbose #18 benchmark.run / solutions.map 00:02:52 v #1527 > > {i = 1; test_name = semi_open_1; time = 574} 00:02:52 v #1528 > > │ 02:19:39 verbose #19 benchmark.run / solutions.map 00:02:52 v #1529 > > {i = 2; test_name = closed_1; time = 577} 00:02:52 v #1530 > > │ 02:19:39 verbose #20 benchmark.run / solutions.map 00:02:52 v #1531 > > {i = 3; test_name = semi_open_2; time = 582} 00:02:52 v #1532 > > │ 02:19:40 verbose #21 benchmark.run / solutions.map 00:02:52 v #1533 > > {i = 4; test_name = closed_2; time = 585} 00:02:52 v #1534 > > │ 00:02:52 v #1535 > > │ 02:19:40 verbose #22 benchmark.run / {input_str = 00:02:52 v #1536 > > struct ([|1; 2; 3; 4...00; ...|], 60, 1000)} 00:02:52 v #1537 > > │ 02:19:41 verbose #23 benchmark.run / solutions.map 00:02:52 v #1538 > > {i = 1; test_name = semi_open_1; time = 610} 00:02:52 v #1539 > > │ 02:19:42 verbose #24 benchmark.run / solutions.map 00:02:52 v #1540 > > {i = 2; test_name = closed_1; time = 672} 00:02:52 v #1541 > > │ 02:19:42 verbose #25 benchmark.run / solutions.map 00:02:52 v #1542 > > {i = 3; test_name = semi_open_2; time = 636} 00:02:52 v #1543 > > │ 02:19:43 verbose #26 benchmark.run / solutions.map 00:02:52 v #1544 > > {i = 4; test_name = closed_2; time = 629} 00:02:52 v #1545 > > │ 00:02:52 v #1546 > > │ 02:19:43 verbose #27 benchmark.run / {input_str = 00:02:52 v #1547 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)} 00:02:52 v #1548 > > │ 02:19:44 verbose #28 benchmark.run / solutions.map 00:02:52 v #1549 > > {i = 1; test_name = semi_open_1; time = 599} 00:02:52 v #1550 > > │ 02:19:44 verbose #29 benchmark.run / solutions.map 00:02:52 v #1551 > > {i = 2; test_name = closed_1; time = 561} 00:02:52 v #1552 > > │ 02:19:45 verbose #30 benchmark.run / solutions.map 00:02:52 v #1553 > > {i = 3; test_name = semi_open_2; time = 604} 00:02:52 v #1554 > > │ 02:19:46 verbose #31 benchmark.run / solutions.map 00:02:52 v #1555 > > {i = 4; test_name = closed_2; time = 573} 00:02:52 v #1556 > > │ 00:02:52 v #1557 > > │ 02:19:46 verbose #32 benchmark.run / {input_str = 00:02:52 v #1558 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)} 00:02:52 v #1559 > > │ 02:19:47 verbose #33 benchmark.run / solutions.map 00:02:52 v #1560 > > {i = 1; test_name = semi_open_1; time = 635} 00:02:52 v #1561 > > │ 02:19:47 verbose #34 benchmark.run / solutions.map 00:02:52 v #1562 > > {i = 2; test_name = closed_1; time = 603} 00:02:52 v #1563 > > │ 02:19:48 verbose #35 benchmark.run / solutions.map 00:02:52 v #1564 > > {i = 3; test_name = semi_open_2; time = 644} 00:02:52 v #1565 > > │ 02:19:49 verbose #36 benchmark.run / solutions.map 00:02:52 v #1566 > > {i = 4; test_name = closed_2; time = 628} 00:02:52 v #1567 > > │ 00:02:52 v #1568 > > │ 02:19:49 verbose #37 benchmark.run / {input_str = 00:02:52 v #1569 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)} 00:02:52 v #1570 > > │ 02:19:49 verbose #38 benchmark.run / solutions.map 00:02:52 v #1571 > > {i = 1; test_name = semi_open_1; time = 643} 00:02:52 v #1572 > > │ 02:19:50 verbose #39 benchmark.run / solutions.map 00:02:52 v #1573 > > {i = 2; test_name = closed_1; time = 606} 00:02:52 v #1574 > > │ 02:19:51 verbose #40 benchmark.run / solutions.map 00:02:52 v #1575 > > {i = 3; test_name = semi_open_2; time = 636} 00:02:52 v #1576 > > │ 02:19:52 verbose #41 benchmark.run / solutions.map 00:02:52 v #1577 > > {i = 4; test_name = closed_2; time = 624} 00:02:52 v #1578 > > │ 00:02:52 v #1579 > > │ 02:19:52 verbose #42 benchmark.run / {input_str = 00:02:52 v #1580 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)} 00:02:52 v #1581 > > │ 02:19:52 verbose #43 benchmark.run / solutions.map 00:02:52 v #1582 > > {i = 1; test_name = semi_open_1; time = 689} 00:02:52 v #1583 > > │ 02:19:53 verbose #44 benchmark.run / solutions.map 00:02:52 v #1584 > > {i = 2; test_name = closed_1; time = 613} 00:02:52 v #1585 > > │ 02:19:54 verbose #45 benchmark.run / solutions.map 00:02:52 v #1586 > > {i = 3; test_name = semi_open_2; time = 623} 00:02:52 v #1587 > > │ 02:19:55 verbose #46 benchmark.run / solutions.map 00:02:52 v #1588 > > {i = 4; test_name = closed_2; time = 613} 00:02:52 v #1589 > > │ 00:02:52 v #1590 > > │ 02:19:55 verbose #47 benchmark.run / {input_str = 00:02:52 v #1591 > > struct ([|1; 2; 3; 4...100; ...|], 60, 100)} 00:02:52 v #1592 > > │ 02:19:55 verbose #48 benchmark.run / solutions.map 00:02:52 v #1593 > > {i = 1; test_name = semi_open_1; time = 630} 00:02:52 v #1594 > > │ 02:19:56 verbose #49 benchmark.run / solutions.map 00:02:52 v #1595 > > {i = 2; test_name = closed_1; time = 633} 00:02:52 v #1596 > > │ 02:19:57 verbose #50 benchmark.run / solutions.map 00:02:52 v #1597 > > {i = 3; test_name = semi_open_2; time = 653} 00:02:52 v #1598 > > │ 02:19:58 verbose #51 benchmark.run / solutions.map 00:02:52 v #1599 > > {i = 4; test_name = closed_2; time = 646} 00:02:52 v #1600 > > │ ``` 00:02:52 v #1601 > > │ input | expected | result | 00:02:52 v #1602 > > best 00:02:52 v #1603 > > │ --- | --- | --- | 00:02:52 v #1604 > > --- 00:02:52 v #1605 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US4_0 3 | US4_0 3 | 00:02:52 v #1606 > > 4, 610 00:02:52 v #1607 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US4_0 0 | US4_0 0 | 00:02:52 v #1608 > > 2, 559 00:02:52 v #1609 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US4_0 6 | US4_0 6 | 00:02:52 v #1610 > > 1, 550 00:02:52 v #1611 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US4_1 | US4_1 | 00:02:52 v #1612 > > 1, 574 00:02:52 v #1613 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000) | US4_0 59 | US4_0 59 | 00:02:52 v #1614 > > 1, 610 00:02:52 v #1615 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US4_0 3 | US4_0 3 | 00:02:52 v #1616 > > 2, 561 00:02:52 v #1617 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US4_0 0 | US4_0 0 | 00:02:52 v #1618 > > 2, 603 00:02:52 v #1619 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US4_0 6 | US4_0 6 | 00:02:52 v #1620 > > 2, 606 00:02:52 v #1621 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US4_1 | US4_1 | 00:02:52 v #1622 > > 2, 613 00:02:52 v #1623 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100) | US4_0 59 | US4_0 59 | 00:02:52 v #1624 > > 1, 630 00:02:52 v #1625 > > │ ``` 00:02:52 v #1626 > > │ 02:19:58 verbose #52 benchmark.sort_result_list 00:02:52 v #1627 > > averages.iter / {avg = 602; i = 2} 00:02:52 v #1628 > > │ 02:19:58 verbose #53 benchmark.sort_result_list 00:02:52 v #1629 > > averages.iter / {avg = 607; i = 4} 00:02:52 v #1630 > > │ 02:19:58 verbose #54 benchmark.sort_result_list 00:02:52 v #1631 > > averages.iter / {avg = 619; i = 1} 00:02:52 v #1632 > > │ 02:19:58 verbose #55 benchmark.sort_result_list 00:02:52 v #1633 > > averages.iter / {avg = 625; i = 3} 00:02:52 v #1634 > > │ ``` 00:02:52 v #1635 > > 00:02:52 v #1636 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:02:52 v #1637 > > //// test 00:02:52 v #1638 > > //// timeout=90000 00:02:52 v #1639 > > 00:02:52 v #1640 > > inl binary_search_semi_open_1 arr target left right = 00:02:52 v #1641 > > inl rec body left right = 00:02:52 v #1642 > > if left >= right 00:02:52 v #1643 > > then None 00:02:52 v #1644 > > else 00:02:52 v #1645 > > inl mid = (left + right) / 2 00:02:52 v #1646 > > inl item = index arr mid 00:02:52 v #1647 > > if item = target 00:02:52 v #1648 > > then Some mid 00:02:52 v #1649 > > elif item < target 00:02:52 v #1650 > > then loop (mid + 1) right 00:02:52 v #1651 > > else loop left mid 00:02:52 v #1652 > > and inl loop left right = 00:02:52 v #1653 > > if var_is right |> not 00:02:52 v #1654 > > then body left right 00:02:52 v #1655 > > else 00:02:52 v #1656 > > inl left = dyn left 00:02:52 v #1657 > > join body left right 00:02:52 v #1658 > > loop left right 00:02:52 v #1659 > > 00:02:52 v #1660 > > inl binary_search_closed_1 arr target left right = 00:02:52 v #1661 > > inl rec body left right = 00:02:52 v #1662 > > if left > right 00:02:52 v #1663 > > then None 00:02:52 v #1664 > > else 00:02:52 v #1665 > > inl mid = (left + right) / 2 00:02:52 v #1666 > > inl item = index arr mid 00:02:52 v #1667 > > if item = target 00:02:52 v #1668 > > then Some mid 00:02:52 v #1669 > > elif item < target 00:02:52 v #1670 > > then loop (mid + 1) right 00:02:52 v #1671 > > else loop left (mid - 1) 00:02:52 v #1672 > > and inl loop left right = 00:02:52 v #1673 > > if var_is right |> not 00:02:52 v #1674 > > then body left right 00:02:52 v #1675 > > else 00:02:52 v #1676 > > inl left = dyn left 00:02:52 v #1677 > > join body left right 00:02:52 v #1678 > > loop left right 00:02:52 v #1679 > > 00:02:52 v #1680 > > inl binary_search_semi_open_2 arr target left right = 00:02:52 v #1681 > > let rec body left right = 00:02:52 v #1682 > > if left >= right 00:02:52 v #1683 > > then None 00:02:52 v #1684 > > else 00:02:52 v #1685 > > inl mid = (left + right) / 2 00:02:52 v #1686 > > inl item = index arr mid 00:02:52 v #1687 > > if item = target 00:02:52 v #1688 > > then Some mid 00:02:52 v #1689 > > elif item < target 00:02:52 v #1690 > > then loop (mid + 1) right 00:02:52 v #1691 > > else loop left mid 00:02:52 v #1692 > > and inl loop left right = body left right 00:02:52 v #1693 > > loop left right 00:02:52 v #1694 > > 00:02:52 v #1695 > > inl binary_search_closed_2 arr target left right = 00:02:52 v #1696 > > let rec body left right = 00:02:52 v #1697 > > if left > right 00:02:52 v #1698 > > then None 00:02:52 v #1699 > > else 00:02:52 v #1700 > > inl mid = (left + right) / 2 00:02:52 v #1701 > > inl item = index arr mid 00:02:52 v #1702 > > if item = target 00:02:52 v #1703 > > then Some mid 00:02:52 v #1704 > > elif item < target 00:02:52 v #1705 > > then loop (mid + 1) right 00:02:52 v #1706 > > else loop left (mid - 1) 00:02:52 v #1707 > > and inl loop left right = body left right 00:02:52 v #1708 > > loop left right 00:02:52 v #1709 > > 00:02:52 v #1710 > > inl get_solutions () = 00:02:52 v #1711 > > [[ 00:02:52 v #1712 > > "semi_open_1", 00:02:52 v #1713 > > fun (arr, (target, len)) => 00:02:52 v #1714 > > binary_search_semi_open_1 arr target 0 len 00:02:52 v #1715 > > 00:02:52 v #1716 > > "closed_1", 00:02:52 v #1717 > > fun (arr, (target, len)) => 00:02:52 v #1718 > > binary_search_closed_1 arr target 0 (len - 1) 00:02:52 v #1719 > > 00:02:52 v #1720 > > "semi_open_2", 00:02:52 v #1721 > > fun (arr, (target, len)) => 00:02:52 v #1722 > > binary_search_semi_open_2 arr target 0 len 00:02:52 v #1723 > > 00:02:52 v #1724 > > "closed_2", 00:02:52 v #1725 > > fun (arr, (target, len)) => 00:02:52 v #1726 > > binary_search_closed_2 arr target 0 (len - 1) 00:02:52 v #1727 > > ]] 00:02:52 v #1728 > > 00:02:52 v #1729 > > inl rec binary_search_tests () = 00:02:52 v #1730 > > inl arr_with_len target len arr = 00:02:52 v #1731 > > arr, (target, (len |> optionm'.default_with fun () => length arr)) 00:02:52 v #1732 > > 00:02:52 v #1733 > > inl test_cases = [[ 00:02:52 v #1734 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32) 00:02:52 v #1735 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32) 00:02:52 v #1736 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32) 00:02:52 v #1737 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None 00:02:52 v #1738 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len 00:02:52 v #1739 > > 60 None), (Some 59) 00:02:52 v #1740 > > 00:02:52 v #1741 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some 00:02:52 v #1742 > > 3i32) 00:02:52 v #1743 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some 00:02:52 v #1744 > > 0i32) 00:02:52 v #1745 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some 00:02:52 v #1746 > > 6i32) 00:02:52 v #1747 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None 00:02:52 v #1748 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len 00:02:52 v #1749 > > 60 (Some 100)), (Some 59) 00:02:52 v #1750 > > ]] 00:02:52 v #1751 > > 00:02:52 v #1752 > > inl solutions = get_solutions () 00:02:52 v #1753 > > 00:02:52 v #1754 > > // inl is_fast () = true 00:02:52 v #1755 > > 00:02:52 v #1756 > > inl count = 00:02:52 v #1757 > > if is_fast () 00:02:52 v #1758 > > then 1000i32 00:02:52 v #1759 > > else 10000000i32 00:02:52 v #1760 > > 00:02:52 v #1761 > > run_all (reflection.nameof { binary_search_tests }) count solutions 00:02:52 v #1762 > > test_cases 00:02:52 v #1763 > > |> sort_result_list 00:02:52 v #1764 > > 00:02:52 v #1765 > > 00:02:52 v #1766 > > let main () = 00:02:52 v #1767 > > binary_search_tests () 00:03:05 v #1768 > > 00:03:05 v #1769 > > ── [ 13.12s - stdout ] ───────────────────────────────────────────────────────── 00:03:05 v #1770 > > │ 00:03:05 v #1771 > > │ ``` 00:03:05 v #1772 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = 00:03:05 v #1773 > > binary_search_tests; count = 10000000 } 00:03:05 v #1774 > > │ 00:03:05 v #1775 > > │ 00:00:00 v #2 benchmark.run / { input_str = struct ([|1; 00:03:05 v #1776 > > 3; 4; 6; 8; 9; 11|], 6, 7) } 00:03:05 v #1777 > > │ 00:00:00 v #3 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1778 > > test_name = semi_open_1; time = 266 } 00:03:05 v #1779 > > │ 00:00:00 v #4 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1780 > > test_name = closed_1; time = 160 } 00:03:05 v #1781 > > │ 00:00:01 v #5 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1782 > > test_name = semi_open_2; time = 158 } 00:03:05 v #1783 > > │ 00:00:01 v #6 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1784 > > test_name = closed_2; time = 154 } 00:03:05 v #1785 > > │ 00:03:05 v #1786 > > │ 00:00:01 v #7 benchmark.run / { input_str = struct ([|1; 00:03:05 v #1787 > > 3; 4; 6; 8; 9; 11|], 1, 7) } 00:03:05 v #1788 > > │ 00:00:01 v #8 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1789 > > test_name = semi_open_1; time = 253 } 00:03:05 v #1790 > > │ 00:00:02 v #9 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1791 > > test_name = closed_1; time = 135 } 00:03:05 v #1792 > > │ 00:00:02 v #10 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1793 > > test_name = semi_open_2; time = 84 } 00:03:05 v #1794 > > │ 00:00:02 v #11 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1795 > > test_name = closed_2; time = 86 } 00:03:05 v #1796 > > │ 00:03:05 v #1797 > > │ 00:00:02 v #12 benchmark.run / { input_str = struct 00:03:05 v #1798 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) } 00:03:05 v #1799 > > │ 00:00:03 v #13 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1800 > > test_name = semi_open_1; time = 87 } 00:03:05 v #1801 > > │ 00:00:03 v #14 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1802 > > test_name = closed_1; time = 89 } 00:03:05 v #1803 > > │ 00:00:03 v #15 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1804 > > test_name = semi_open_2; time = 83 } 00:03:05 v #1805 > > │ 00:00:03 v #16 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1806 > > test_name = closed_2; time = 86 } 00:03:05 v #1807 > > │ 00:03:05 v #1808 > > │ 00:00:03 v #17 benchmark.run / { input_str = struct 00:03:05 v #1809 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) } 00:03:05 v #1810 > > │ 00:00:04 v #18 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1811 > > test_name = semi_open_1; time = 86 } 00:03:05 v #1812 > > │ 00:00:04 v #19 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1813 > > test_name = closed_1; time = 98 } 00:03:05 v #1814 > > │ 00:00:04 v #20 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1815 > > test_name = semi_open_2; time = 104 } 00:03:05 v #1816 > > │ 00:00:05 v #21 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1817 > > test_name = closed_2; time = 105 } 00:03:05 v #1818 > > │ 00:03:05 v #1819 > > │ 00:00:05 v #22 benchmark.run / { input_str = struct 00:03:05 v #1820 > > ([|1; 2; 3; 4...00; ...|], 60, 1000) } 00:03:05 v #1821 > > │ 00:00:05 v #23 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1822 > > test_name = semi_open_1; time = 129 } 00:03:05 v #1823 > > │ 00:00:05 v #24 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1824 > > test_name = closed_1; time = 142 } 00:03:05 v #1825 > > │ 00:00:06 v #25 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1826 > > test_name = semi_open_2; time = 130 } 00:03:05 v #1827 > > │ 00:00:06 v #26 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1828 > > test_name = closed_2; time = 142 } 00:03:05 v #1829 > > │ 00:03:05 v #1830 > > │ 00:00:06 v #27 benchmark.run / { input_str = struct 00:03:05 v #1831 > > ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) } 00:03:05 v #1832 > > │ 00:00:06 v #28 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1833 > > test_name = semi_open_1; time = 87 } 00:03:05 v #1834 > > │ 00:00:06 v #29 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1835 > > test_name = closed_1; time = 88 } 00:03:05 v #1836 > > │ 00:00:07 v #30 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1837 > > test_name = semi_open_2; time = 87 } 00:03:05 v #1838 > > │ 00:00:07 v #31 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1839 > > test_name = closed_2; time = 88 } 00:03:05 v #1840 > > │ 00:03:05 v #1841 > > │ 00:00:07 v #32 benchmark.run / { input_str = struct 00:03:05 v #1842 > > ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) } 00:03:05 v #1843 > > │ 00:00:07 v #33 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1844 > > test_name = semi_open_1; time = 96 } 00:03:05 v #1845 > > │ 00:00:07 v #34 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1846 > > test_name = closed_1; time = 102 } 00:03:05 v #1847 > > │ 00:00:08 v #35 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1848 > > test_name = semi_open_2; time = 96 } 00:03:05 v #1849 > > │ 00:00:08 v #36 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1850 > > test_name = closed_2; time = 101 } 00:03:05 v #1851 > > │ 00:03:05 v #1852 > > │ 00:00:08 v #37 benchmark.run / { input_str = struct 00:03:05 v #1853 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) } 00:03:05 v #1854 > > │ 00:00:08 v #38 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1855 > > test_name = semi_open_1; time = 84 } 00:03:05 v #1856 > > │ 00:00:09 v #39 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1857 > > test_name = closed_1; time = 86 } 00:03:05 v #1858 > > │ 00:00:09 v #40 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1859 > > test_name = semi_open_2; time = 83 } 00:03:05 v #1860 > > │ 00:00:09 v #41 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1861 > > test_name = closed_2; time = 86 } 00:03:05 v #1862 > > │ 00:03:05 v #1863 > > │ 00:00:09 v #42 benchmark.run / { input_str = struct 00:03:05 v #1864 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) } 00:03:05 v #1865 > > │ 00:00:09 v #43 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1866 > > test_name = semi_open_1; time = 88 } 00:03:05 v #1867 > > │ 00:00:10 v #44 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1868 > > test_name = closed_1; time = 90 } 00:03:05 v #1869 > > │ 00:00:10 v #45 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1870 > > test_name = semi_open_2; time = 91 } 00:03:05 v #1871 > > │ 00:00:10 v #46 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1872 > > test_name = closed_2; time = 88 } 00:03:05 v #1873 > > │ 00:03:05 v #1874 > > │ 00:00:10 v #47 benchmark.run / { input_str = struct 00:03:05 v #1875 > > ([|1; 2; 3; 4...100; ...|], 60, 100) } 00:03:05 v #1876 > > │ 00:00:11 v #48 benchmark.run / solutions.map / { i = 1; 00:03:05 v #1877 > > test_name = semi_open_1; time = 102 } 00:03:05 v #1878 > > │ 00:00:11 v #49 benchmark.run / solutions.map / { i = 2; 00:03:05 v #1879 > > test_name = closed_1; time = 103 } 00:03:05 v #1880 > > │ 00:00:11 v #50 benchmark.run / solutions.map / { i = 3; 00:03:05 v #1881 > > test_name = semi_open_2; time = 103 } 00:03:05 v #1882 > > │ 00:00:11 v #51 benchmark.run / solutions.map / { i = 4; 00:03:05 v #1883 > > test_name = closed_2; time = 106 } 00:03:05 v #1884 > > │ ``` 00:03:05 v #1885 > > │ input | expected | result | 00:03:05 v #1886 > > best 00:03:05 v #1887 > > │ --- | --- | --- | 00:03:05 v #1888 > > --- 00:03:05 v #1889 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US6_0 3 | US6_0 3 | 00:03:05 v #1890 > > 4, 154 00:03:05 v #1891 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US6_0 0 | US6_0 0 | 00:03:05 v #1892 > > 3, 84 00:03:05 v #1893 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US6_0 6 | US6_0 6 | 00:03:05 v #1894 > > 3, 83 00:03:05 v #1895 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US6_1 | US6_1 | 00:03:05 v #1896 > > 1, 86 00:03:05 v #1897 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000) | US6_0 59 | US6_0 59 | 00:03:05 v #1898 > > 1, 129 00:03:05 v #1899 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US6_0 3 | US6_0 3 | 00:03:05 v #1900 > > 1, 87 00:03:05 v #1901 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US6_0 0 | US6_0 0 | 00:03:05 v #1902 > > 1, 96 00:03:05 v #1903 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US6_0 6 | US6_0 6 | 00:03:05 v #1904 > > 3, 83 00:03:05 v #1905 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US6_1 | US6_1 | 00:03:05 v #1906 > > 1, 88 00:03:05 v #1907 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100) | US6_0 59 | US6_0 59 | 00:03:05 v #1908 > > 1, 102 00:03:05 v #1909 > > │ ``` 00:03:05 v #1910 > > │ 00:00:11 v #52 benchmark.sort_result_list 00:03:05 v #1911 > > averages.iter / { i = 3; avg = 101 } 00:03:05 v #1912 > > │ 00:00:11 v #53 benchmark.sort_result_list 00:03:05 v #1913 > > averages.iter / { i = 4; avg = 104 } 00:03:05 v #1914 > > │ 00:00:11 v #54 benchmark.sort_result_list 00:03:05 v #1915 > > averages.iter / { i = 2; avg = 109 } 00:03:05 v #1916 > > │ 00:00:11 v #55 benchmark.sort_result_list 00:03:05 v #1917 > > averages.iter / { i = 1; avg = 127 } 00:03:05 v #1918 > > │ ``` 00:03:05 v #1919 > > │ 00:03:05 v #1920 > > 00:03:05 v #1921 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:03:05 v #1922 > > │ ## returnLettersWithOddCountTests 00:03:05 v #1923 > > 00:03:05 v #1924 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:03:05 v #1925 > > │ Test: ReturnLettersWithOddCount 00:03:05 v #1926 > > │ 00:03:05 v #1927 > > │ Solution: 1 00:03:05 v #1928 > > │ Test case 1. A. Time: 645L 00:03:05 v #1929 > > │ 00:03:05 v #1930 > > │ Solution: 2 00:03:05 v #1931 > > │ Test case 1. A. Time: 663L 00:03:05 v #1932 > > │ 00:03:05 v #1933 > > │ Solution: 3 00:03:05 v #1934 > > │ Test case 1. A. Time: 680L 00:03:05 v #1935 > > │ 00:03:05 v #1936 > > │ Solution: 9 00:03:05 v #1937 > > │ Test case 1. A. Time: 730L 00:03:05 v #1938 > > │ 00:03:05 v #1939 > > │ Solution: 10 00:03:05 v #1940 > > │ Test case 1. A. Time: 815L 00:03:05 v #1941 > > │ 00:03:05 v #1942 > > │ Input | Expected | Result | Best 00:03:05 v #1943 > > │ --- | --- | --- | --- 00:03:05 v #1944 > > │ 1 | a | a | (1, 645) 00:03:05 v #1945 > > │ 2 | ba | ba | (1, 663) 00:03:05 v #1946 > > │ 3 | aaa | aaa | (1, 680) 00:03:05 v #1947 > > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 730) 00:03:05 v #1948 > > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 815) 00:03:05 v #1949 > > │ 00:03:05 v #1950 > > │ Averages 00:03:05 v #1951 > > │ Test case 1. Average Time: 706L 00:03:05 v #1952 > > │ 00:03:05 v #1953 > > │ Ranking 00:03:05 v #1954 > > │ Test case 1. Average Time: 706L 00:03:05 v #1955 > > 00:03:05 v #1956 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:03:05 v #1957 > > //// test 00:03:05 v #1958 > > 00:03:05 v #1959 > > let solutions = [[ 00:03:05 v #1960 > > "A", 00:03:05 v #1961 > > fun n -> 00:03:05 v #1962 > > let mutable _builder = StringBuilder (new string('a', n)) 00:03:05 v #1963 > > if n % 2 = 0 then 00:03:05 v #1964 > > _builder.[[0]] <- 'b' 00:03:05 v #1965 > > 00:03:05 v #1966 > > _builder.ToString () 00:03:05 v #1967 > > ]] 00:03:05 v #1968 > > let testCases = seq { 00:03:05 v #1969 > > 1, "a" 00:03:05 v #1970 > > 2, "ba" 00:03:05 v #1971 > > 3, "aaa" 00:03:05 v #1972 > > 9, "aaaaaaaaa" 00:03:05 v #1973 > > 10, "baaaaaaaaa" 00:03:05 v #1974 > > } 00:03:05 v #1975 > > let rec returnLettersWithOddCountTests = 00:03:05 v #1976 > > runAll (nameof returnLettersWithOddCountTests) _count solutions testCases 00:03:05 v #1977 > > returnLettersWithOddCountTests 00:03:05 v #1978 > > |> sortResultList 00:03:08 v #1979 > > 00:03:08 v #1980 > > ── [ 2.63s - stdout ] ────────────────────────────────────────────────────────── 00:03:08 v #1981 > > │ 00:03:08 v #1982 > > │ 00:03:08 v #1983 > > │ Test: returnLettersWithOddCountTests 00:03:08 v #1984 > > │ 00:03:08 v #1985 > > │ Solution: 1 00:03:08 v #1986 > > │ Test case 1. A. Time: 310L 00:03:08 v #1987 > > │ 00:03:08 v #1988 > > │ Solution: 2 00:03:08 v #1989 > > │ Test case 1. A. Time: 311L 00:03:08 v #1990 > > │ 00:03:08 v #1991 > > │ Solution: 3 00:03:08 v #1992 > > │ Test case 1. A. Time: 316L 00:03:08 v #1993 > > │ 00:03:08 v #1994 > > │ Solution: 9 00:03:08 v #1995 > > │ Test case 1. A. Time: 360L 00:03:08 v #1996 > > │ 00:03:08 v #1997 > > │ Solution: 10 00:03:08 v #1998 > > │ Test case 1. A. Time: 334L 00:03:08 v #1999 > > │ 00:03:08 v #2000 > > │ Input | Expected | Result | Best 00:03:08 v #2001 > > │ --- | --- | --- | --- 00:03:08 v #2002 > > │ 1 | a | a | (1, 310) 00:03:08 v #2003 > > │ 2 | ba | ba | (1, 311) 00:03:08 v #2004 > > │ 3 | aaa | aaa | (1, 316) 00:03:08 v #2005 > > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 360) 00:03:08 v #2006 > > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 334) 00:03:08 v #2007 > > │ 00:03:08 v #2008 > > │ Average Ranking 00:03:08 v #2009 > > │ Test case 1. Average Time: 326L 00:03:08 v #2010 > > │ 00:03:08 v #2011 > > 00:03:08 v #2012 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:03:08 v #2013 > > │ ## hasAnyPairCloseToEachotherTests 00:03:08 v #2014 > > 00:03:08 v #2015 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:03:08 v #2016 > > │ Test: HasAnyPairCloseToEachother 00:03:08 v #2017 > > │ 00:03:08 v #2018 > > │ Solution: 0 00:03:08 v #2019 > > │ Test case 1. A. Time: 137L 00:03:08 v #2020 > > │ 00:03:08 v #2021 > > │ Solution: 1,2 00:03:08 v #2022 > > │ Test case 1. A. Time: 186L 00:03:08 v #2023 > > │ 00:03:08 v #2024 > > │ Solution: 3,5 00:03:08 v #2025 > > │ Test case 1. A. Time: 206L 00:03:08 v #2026 > > │ 00:03:08 v #2027 > > │ Solution: 3,4,6 00:03:08 v #2028 > > │ Test case 1. A. Time: 149L 00:03:08 v #2029 > > │ 00:03:08 v #2030 > > │ Solution: 2,4,6 00:03:08 v #2031 > > │ Test case 1. A. Time: 150L 00:03:08 v #2032 > > │ 00:03:08 v #2033 > > │ Input | Expected | Result | Best 00:03:08 v #2034 > > │ --- | --- | --- | --- 00:03:08 v #2035 > > │ 0 | False | False | (1, 137) 00:03:08 v #2036 > > │ 1,2 | True | True | (1, 186) 00:03:08 v #2037 > > │ 3,5 | False | False | (1, 206) 00:03:08 v #2038 > > │ 3,4,6 | True | True | (1, 149) 00:03:08 v #2039 > > │ 2,4,6 | False | False | (1, 150) 00:03:08 v #2040 > > │ 00:03:08 v #2041 > > │ Averages 00:03:08 v #2042 > > │ Test case 1. Average Time: 165L 00:03:08 v #2043 > > │ 00:03:08 v #2044 > > │ Ranking 00:03:08 v #2045 > > │ Test case 1. Average Time: 165L 00:03:08 v #2046 > > 00:03:08 v #2047 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:03:08 v #2048 > > //// test 00:03:08 v #2049 > > 00:03:08 v #2050 > > let solutions = [[ 00:03:08 v #2051 > > "A", 00:03:08 v #2052 > > fun (a: int[[]]) -> 00:03:08 v #2053 > > let indices = System.Linq.Enumerable.Range(0, a.Length) |> 00:03:08 v #2054 > > System.Linq.Enumerable.ToArray 00:03:08 v #2055 > > System.Array.Sort (a, indices) 00:03:08 v #2056 > > 00:03:08 v #2057 > > indices 00:03:08 v #2058 > > |> Array.take (a.Length - 1) 00:03:08 v #2059 > > |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1) 00:03:08 v #2060 > > ]] 00:03:08 v #2061 > > let testCases = seq { 00:03:08 v #2062 > > [[| 0 |]], false 00:03:08 v #2063 > > [[| 1; 2 |]], true 00:03:08 v #2064 > > [[| 3; 5 |]], false 00:03:08 v #2065 > > [[| 3; 4; 6 |]], true 00:03:08 v #2066 > > [[| 2; 4; 6 |]], false 00:03:08 v #2067 > > } 00:03:08 v #2068 > > let rec hasAnyPairCloseToEachotherTests = 00:03:08 v #2069 > > runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases 00:03:08 v #2070 > > hasAnyPairCloseToEachotherTests 00:03:08 v #2071 > > |> sortResultList 00:03:09 v #2072 > > 00:03:09 v #2073 > > ── [ 1.52s - stdout ] ────────────────────────────────────────────────────────── 00:03:09 v #2074 > > │ 00:03:09 v #2075 > > │ 00:03:09 v #2076 > > │ Test: hasAnyPairCloseToEachotherTests 00:03:09 v #2077 > > │ 00:03:09 v #2078 > > │ Solution: 0 00:03:09 v #2079 > > │ Test case 1. A. Time: 143L 00:03:09 v #2080 > > │ 00:03:09 v #2081 > > │ Solution: 1,2 00:03:09 v #2082 > > │ Test case 1. A. Time: 67L 00:03:09 v #2083 > > │ 00:03:09 v #2084 > > │ Solution: 3,5 00:03:09 v #2085 > > │ Test case 1. A. Time: 70L 00:03:09 v #2086 > > │ 00:03:09 v #2087 > > │ Solution: 3,4,6 00:03:09 v #2088 > > │ Test case 1. A. Time: 69L 00:03:09 v #2089 > > │ 00:03:09 v #2090 > > │ Solution: 2,4,6 00:03:09 v #2091 > > │ Test case 1. A. Time: 69L 00:03:09 v #2092 > > │ 00:03:09 v #2093 > > │ Input | Expected | Result | Best 00:03:09 v #2094 > > │ --- | --- | --- | --- 00:03:09 v #2095 > > │ 0 | False | False | (1, 143) 00:03:09 v #2096 > > │ 1,2 | True | True | (1, 67) 00:03:09 v #2097 > > │ 3,5 | False | False | (1, 70) 00:03:09 v #2098 > > │ 3,4,6 | True | True | (1, 69) 00:03:09 v #2099 > > │ 2,4,6 | False | False | (1, 69) 00:03:09 v #2100 > > │ 00:03:09 v #2101 > > │ Average Ranking 00:03:09 v #2102 > > │ Test case 1. Average Time: 83L 00:03:09 v #2103 > > │ 00:03:09 v #2104 > 00:03:08 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 85814 } 00:03:09 v #2105 > 00:03:08 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:03:10 v #2106 > 00:03:09 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.ipynb to html 00:03:10 v #2107 > 00:03:09 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:03:10 v #2108 > 00:03:09 v #7 ! validate(nb) 00:03:10 v #2109 > 00:03:09 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:03:10 v #2110 > 00:03:09 v #9 ! return _pygments_highlight( 00:03:11 v #2111 > 00:03:10 v #10 ! [NbConvertApp] Writing 458101 bytes to /home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.html 00:03:11 v #2112 > 00:03:10 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 890 } 00:03:11 v #2113 > 00:03:10 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 890 } 00:03:11 v #2114 > 00:03:10 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:03:11 v #2115 > 00:03:10 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:03:11 v #2116 > 00:03:10 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:03:11 v #2117 > 00:03:10 d #16 spiral.run / dib / { exit_code = 0; result_length = 86763 } 00:03:11 d #2118 runtime.execute_with_options_async / { exit_code = 0; output_length = 93580 } 00:03:11 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Perf.dib --retries 3 00:03:11 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 writeDibCode / output: Fs / path: Perf.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Perf.dib
In [ ]:
{ pwsh ../apps/dir-tree-html/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path DirTreeHtml.dib"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path DirTreeHtml.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "DirTreeHtml.dib"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ # DirTreeHtml (Polyglot) 00:00:05 v #13 > > 00:00:05 v #14 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:05 v #15 > > #r 00:00:05 v #16 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan 00:00:05 v #17 > > dard2.1/FSharp.Control.AsyncSeq.dll" 00:00:05 v #18 > > #r 00:00:05 v #19 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. 00:00:05 v #20 > > 0/System.Reactive.dll" 00:00:05 v #21 > > #r 00:00:05 v #22 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib 00:00:05 v #23 > > netstandard2.0/System.Reactive.Linq.dll" 00:00:05 v #24 > > #r 00:00:05 v #25 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" 00:00:05 v #26 > > #r 00:00:05 v #27 > > @"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal 00:00:05 v #28 > > co.Markup.dll" 00:00:16 v #29 > > 00:00:16 v #30 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #31 > > #if !INTERACTIVE 00:00:16 v #32 > > open Lib 00:00:16 v #33 > > #endif 00:00:16 v #34 > > 00:00:16 v #35 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #36 > > open SpiralFileSystem.Operators 00:00:16 v #37 > > open Falco.Markup 00:00:16 v #38 > > 00:00:16 v #39 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #40 > > type FileSystemNode = 00:00:16 v #41 > > | File of string * string * int64 00:00:16 v #42 > > | Folder of string * string * FileSystemNode list 00:00:16 v #43 > > | Root of FileSystemNode list 00:00:16 v #44 > > 00:00:16 v #45 > > let rec scanDirectory isRoot (basePath : string) (path : string) = 00:00:16 v #46 > > let relativePath = 00:00:16 v #47 > > path 00:00:16 v #48 > > |> SpiralSm.replace basePath "" 00:00:16 v #49 > > |> SpiralSm.replace "\\" "/" 00:00:16 v #50 > > |> SpiralSm.replace "//" "/" 00:00:16 v #51 > > |> SpiralSm.trim_start [[| '/' |]] 00:00:16 v #52 > > 00:00:16 v #53 > > let directories = 00:00:16 v #54 > > path 00:00:16 v #55 > > |> System.IO.Directory.GetDirectories 00:00:16 v #56 > > |> Array.toList 00:00:16 v #57 > > |> List.sort 00:00:16 v #58 > > |> List.map (scanDirectory false basePath) 00:00:16 v #59 > > let files = 00:00:16 v #60 > > path 00:00:16 v #61 > > |> System.IO.Directory.GetFiles 00:00:16 v #62 > > |> Array.toList 00:00:16 v #63 > > |> List.sort 00:00:16 v #64 > > |> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath, 00:00:16 v #65 > > System.IO.FileInfo(f).Length)) 00:00:16 v #66 > > 00:00:16 v #67 > > let children = directories @ files 00:00:16 v #68 > > if isRoot 00:00:16 v #69 > > then Root children 00:00:16 v #70 > > else Folder (path |> System.IO.Path.GetFileName, relativePath, children) 00:00:16 v #71 > > 00:00:16 v #72 > > let rec generateHtml fsNode = 00:00:16 v #73 > > let sizeLabel size = 00:00:16 v #74 > > match float size with 00:00:16 v #75 > > | size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB" 00:00:16 v #76 > > | size when size > 1024.0 -> $"%.2f{size / 1024.0} KB" 00:00:16 v #77 > > | size -> $"%.2f{size} B" 00:00:16 v #78 > > match fsNode with 00:00:16 v #79 > > | File (fileName, relativePath, size) -> 00:00:16 v #80 > > Elem.div [[]] [[ 00:00:16 v #81 > > Text.raw "📄 " 00:00:16 v #82 > > Elem.a [[ 00:00:16 v #83 > > Attr.href $"""{relativePath}{if relativePath = "" then "" else 00:00:16 v #84 > > "/"}{fileName}""" 00:00:16 v #85 > > ]] [[ 00:00:16 v #86 > > Text.raw fileName 00:00:16 v #87 > > ]] 00:00:16 v #88 > > Elem.span [[]] [[ 00:00:16 v #89 > > Text.raw $" ({size |> sizeLabel})" 00:00:16 v #90 > > ]] 00:00:16 v #91 > > ]] 00:00:16 v #92 > > | Folder (folderName, relativePath, children) -> 00:00:16 v #93 > > let size = 00:00:16 v #94 > > let rec loop children = 00:00:16 v #95 > > children 00:00:16 v #96 > > |> List.sumBy (function 00:00:16 v #97 > > | File (_, _, size) -> size 00:00:16 v #98 > > | Folder (_, _, children) 00:00:16 v #99 > > | Root children -> loop children 00:00:16 v #100 > > ) 00:00:16 v #101 > > loop children 00:00:16 v #102 > > Elem.details [[ 00:00:16 v #103 > > Attr.open' "true" 00:00:16 v #104 > > ]] [[ 00:00:16 v #105 > > Elem.summary [[]] [[ 00:00:16 v #106 > > Text.raw "📂 " 00:00:16 v #107 > > Elem.a [[ 00:00:16 v #108 > > Attr.href relativePath 00:00:16 v #109 > > ]] [[ 00:00:16 v #110 > > Text.raw folderName 00:00:16 v #111 > > ]] 00:00:16 v #112 > > Elem.span [[]] [[ 00:00:16 v #113 > > Text.raw $" ({size |> sizeLabel})" 00:00:16 v #114 > > ]] 00:00:16 v #115 > > ]] 00:00:16 v #116 > > Elem.div [[]] [[ 00:00:16 v #117 > > yield! children |> List.map generateHtml 00:00:16 v #118 > > ]] 00:00:16 v #119 > > ]] 00:00:16 v #120 > > | Root children -> 00:00:16 v #121 > > Elem.div [[]] [[ 00:00:16 v #122 > > yield! children |> List.map generateHtml 00:00:16 v #123 > > ]] 00:00:16 v #124 > > 00:00:16 v #125 > > let generateHtmlForFileSystem root = 00:00:16 v #126 > > $"""<!DOCTYPE html> 00:00:16 v #127 > > <html lang="en"> 00:00:16 v #128 > > <head> 00:00:16 v #129 > > <meta charset="UTF-8"> 00:00:16 v #130 > > <style> 00:00:16 v #131 > > body {{ 00:00:16 v #132 > > background-color: #222; 00:00:16 v #133 > > color: #ccc; 00:00:16 v #134 > > }} 00:00:16 v #135 > > a {{ 00:00:16 v #136 > > color: #777; 00:00:16 v #137 > > font-size: 15px; 00:00:16 v #138 > > }} 00:00:16 v #139 > > span {{ 00:00:16 v #140 > > font-size: 11px; 00:00:16 v #141 > > }} 00:00:16 v #142 > > div > div {{ 00:00:16 v #143 > > padding-left: 10px; 00:00:16 v #144 > > }} 00:00:16 v #145 > > details > div {{ 00:00:16 v #146 > > padding-left: 19px; 00:00:16 v #147 > > }} 00:00:16 v #148 > > </style> 00:00:16 v #149 > > </head> 00:00:16 v #150 > > <body> 00:00:16 v #151 > > {root |> generateHtml |> renderNode} 00:00:16 v #152 > > </body> 00:00:16 v #153 > > </html> 00:00:16 v #154 > > """ 00:00:16 v #155 > > 00:00:16 v #156 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #157 > > //// test 00:00:16 v #158 > > 00:00:16 v #159 > > let expected = """<!DOCTYPE html> 00:00:16 v #160 > > <html lang="en"> 00:00:16 v #161 > > <head> 00:00:16 v #162 > > <meta charset="UTF-8"> 00:00:16 v #163 > > <style> 00:00:16 v #164 > > body { 00:00:16 v #165 > > background-color: #222; 00:00:16 v #166 > > color: #ccc; 00:00:16 v #167 > > } 00:00:16 v #168 > > a { 00:00:16 v #169 > > color: #777; 00:00:16 v #170 > > font-size: 15px; 00:00:16 v #171 > > } 00:00:16 v #172 > > span { 00:00:16 v #173 > > font-size: 11px; 00:00:16 v #174 > > } 00:00:16 v #175 > > div > div { 00:00:16 v #176 > > padding-left: 10px; 00:00:16 v #177 > > } 00:00:16 v #178 > > details > div { 00:00:16 v #179 > > padding-left: 19px; 00:00:16 v #180 > > } 00:00:16 v #181 > > </style> 00:00:16 v #182 > > </head> 00:00:16 v #183 > > <body> 00:00:16 v #184 > > <div><details open="true"><summary>📂 <a href="_.root">_.root</a><span> 00:00:16 v #185 > > (10.00 B)</span></summary><div><details open="true"><summary>📂 <a 00:00:16 v #186 > > href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details 00:00:16 v #187 > > open="true"><summary>📂 <a href="_.root/3/2">2</a><span> (3.00 00:00:16 v #188 > > B)</span></summary><div><details open="true"><summary>📂 <a 00:00:16 v #189 > > href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>📄 <a 00:00:16 v #190 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 00:00:16 v #191 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #192 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 00:00:16 v #193 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #194 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 00:00:16 v #195 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #196 > > href="_.root/file.txt">file.txt</a><span> (4.00 00:00:16 v #197 > > B)</span></div></div></details></div> 00:00:16 v #198 > > </body> 00:00:16 v #199 > > </html> 00:00:16 v #200 > > """ 00:00:16 v #201 > > 00:00:16 v #202 > > let struct (tempFolder, disposable) = expected |> SpiralCrypto.hash_text |> 00:00:16 v #203 > > SpiralFileSystem.create_temp_dir' 00:00:16 v #204 > > let rec loop d n = async { 00:00:16 v #205 > > if n >= 0 then 00:00:16 v #206 > > tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore 00:00:16 v #207 > > do! 00:00:16 v #208 > > n 00:00:16 v #209 > > |> string 00:00:16 v #210 > > |> String.replicate (n + 1) 00:00:16 v #211 > > |> SpiralFileSystem.write_all_text_async (tempFolder </> d </> 00:00:16 v #212 > > $"file.txt") 00:00:16 v #213 > > do! loop $"{d}/{n}" (n - 1) 00:00:16 v #214 > > } 00:00:16 v #215 > > loop "_.root" 3 00:00:16 v #216 > > |> Async.RunSynchronously 00:00:16 v #217 > > 00:00:16 v #218 > > let html = 00:00:16 v #219 > > scanDirectory true tempFolder tempFolder 00:00:16 v #220 > > |> generateHtmlForFileSystem 00:00:16 v #221 > > 00:00:16 v #222 > > html 00:00:16 v #223 > > |> _assertEqual expected 00:00:16 v #224 > > 00:00:16 v #225 > > disposable.Dispose () 00:00:16 v #226 > > 00:00:16 v #227 > > html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent 00:00:16 v #228 > > 00:00:16 v #229 > > ── [ 137.73ms - return value ] ───────────────────────────────────────────────── 00:00:16 v #230 > > │ <!DOCTYPE html> 00:00:16 v #231 > > │ <html lang="en"> 00:00:16 v #232 > > │ <head> 00:00:16 v #233 > > │ <meta charset="UTF-8"> 00:00:16 v #234 > > │ <style> 00:00:16 v #235 > > │ body { 00:00:16 v #236 > > │ background-color: #222; 00:00:16 v #237 > > │ color: #ccc; 00:00:16 v #238 > > │ } 00:00:16 v #239 > > │ a { 00:00:16 v #240 > > │ color: #777; 00:00:16 v #241 > > │ font-size: 15px; 00:00:16 v #242 > > │ } 00:00:16 v #243 > > │ span { 00:00:16 v #244 > > │ font-size: 11px; 00:00:16 v #245 > > │ } 00:00:16 v #246 > > │ div > div { 00:00:16 v #247 > > │ padding-left: 10px; 00:00:16 v #248 > > │ } 00:00:16 v #249 > > │ details > div { 00:00:16 v #250 > > │ padding-left: 19px; 00:00:16 v #251 > > │ } 00:00:16 v #252 > > │ </style> 00:00:16 v #253 > > │ </head> 00:00:16 v #254 > > │ <body> 00:00:16 v #255 > > │ <div><details open="true"><summary>📂 <a 00:00:16 v #256 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details 00:00:16 v #257 > > open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 00:00:16 v #258 > > B)</span></summary><div><details open="true"><summary>📂 <a 00:00:16 v #259 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details 00:00:16 v #260 > > open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 00:00:16 v #261 > > B)</span></summary><div><div>📄 <a 00:00:16 v #262 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 00:00:16 v #263 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #264 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 00:00:16 v #265 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #266 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 00:00:16 v #267 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #268 > > href="_.root/file.txt">file.txt</a><span> (4.00 00:00:16 v #269 > > B)</span></div></div></details></div> 00:00:16 v #270 > > │ </body> 00:00:16 v #271 > > │ </html> 00:00:16 v #272 > > │ 00:00:16 v #273 > > 00:00:16 v #274 > > ── [ 141.16ms - stdout ] ─────────────────────────────────────────────────────── 00:00:16 v #275 > > │ "<!DOCTYPE html> 00:00:16 v #276 > > │ <html lang="en"> 00:00:16 v #277 > > │ <head> 00:00:16 v #278 > > │ <meta charset="UTF-8"> 00:00:16 v #279 > > │ <style> 00:00:16 v #280 > > │ body { 00:00:16 v #281 > > │ background-color: #222; 00:00:16 v #282 > > │ color: #ccc; 00:00:16 v #283 > > │ } 00:00:16 v #284 > > │ a { 00:00:16 v #285 > > │ color: #777; 00:00:16 v #286 > > │ font-size: 15px; 00:00:16 v #287 > > │ } 00:00:16 v #288 > > │ span { 00:00:16 v #289 > > │ font-size: 11px; 00:00:16 v #290 > > │ } 00:00:16 v #291 > > │ div > div { 00:00:16 v #292 > > │ padding-left: 10px; 00:00:16 v #293 > > │ } 00:00:16 v #294 > > │ details > div { 00:00:16 v #295 > > │ padding-left: 19px; 00:00:16 v #296 > > │ } 00:00:16 v #297 > > │ </style> 00:00:16 v #298 > > │ </head> 00:00:16 v #299 > > │ <body> 00:00:16 v #300 > > │ <div><details open="true"><summary>📂 <a 00:00:16 v #301 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details 00:00:16 v #302 > > open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 00:00:16 v #303 > > B)</span></summary><div><details open="true"><summary>📂 <a 00:00:16 v #304 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details 00:00:16 v #305 > > open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 00:00:16 v #306 > > B)</span></summary><div><div>📄 <a 00:00:16 v #307 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 00:00:16 v #308 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #309 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 00:00:16 v #310 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #311 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 00:00:16 v #312 > > B)</span></div></div></details><div>📄 <a 00:00:16 v #313 > > href="_.root/file.txt">file.txt</a><span> (4.00 00:00:16 v #314 > > B)</span></div></div></details></div> 00:00:16 v #315 > > │ </body> 00:00:16 v #316 > > │ </html> 00:00:16 v #317 > > │ " 00:00:16 v #318 > > │ 00:00:16 v #319 > > │ 00:00:16 v #320 > > 00:00:16 v #321 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:16 v #322 > > │ ## Arguments 00:00:16 v #323 > > 00:00:16 v #324 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #325 > > [[<RequireQualifiedAccess>]] 00:00:16 v #326 > > type Arguments = 00:00:16 v #327 > > | [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string 00:00:16 v #328 > > | [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string 00:00:16 v #329 > > 00:00:16 v #330 > > interface Argu.IArgParserTemplate with 00:00:16 v #331 > > member s.Usage = 00:00:16 v #332 > > match s with 00:00:16 v #333 > > | Dir _ -> nameof Dir 00:00:16 v #334 > > | Html _ -> nameof Html 00:00:16 v #335 > > 00:00:16 v #336 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #337 > > //// test 00:00:16 v #338 > > 00:00:16 v #339 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () 00:00:16 v #340 > > 00:00:16 v #341 > > ── [ 66.31ms - return value ] ────────────────────────────────────────────────── 00:00:16 v #342 > > │ "USAGE: dotnet-repl [--help] --dir <string> --html <string> 00:00:16 v #343 > > │ 00:00:16 v #344 > > │ OPTIONS: 00:00:16 v #345 > > │ 00:00:16 v #346 > > │ --dir <string> Dir 00:00:16 v #347 > > │ --html <string> Html 00:00:16 v #348 > > │ --help display this list of options. 00:00:16 v #349 > > │ " 00:00:16 v #350 > > │ 00:00:16 v #351 > > 00:00:16 v #352 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:16 v #353 > > │ ## main 00:00:16 v #354 > > 00:00:16 v #355 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #356 > > let main args = 00:00:16 v #357 > > let argsMap = args |> Runtime.parseArgsMap<Arguments> 00:00:16 v #358 > > 00:00:16 v #359 > > let dir = 00:00:16 v #360 > > match argsMap.[[nameof Arguments.Dir]] with 00:00:16 v #361 > > | [[ Arguments.Dir dir ]] -> Some dir 00:00:16 v #362 > > | _ -> None 00:00:16 v #363 > > |> Option.get 00:00:16 v #364 > > 00:00:16 v #365 > > let htmlPath = 00:00:16 v #366 > > match argsMap.[[nameof Arguments.Html]] with 00:00:16 v #367 > > | [[ Arguments.Html html ]] -> Some html 00:00:16 v #368 > > | _ -> None 00:00:16 v #369 > > |> Option.get 00:00:16 v #370 > > 00:00:16 v #371 > > let fileSystem = scanDirectory true dir dir 00:00:16 v #372 > > let html = generateHtmlForFileSystem fileSystem 00:00:16 v #373 > > 00:00:16 v #374 > > html |> SpiralFileSystem.write_all_text_async htmlPath 00:00:16 v #375 > > |> Async.runWithTimeout 30000 00:00:16 v #376 > > |> function 00:00:16 v #377 > > | Some () -> 0 00:00:16 v #378 > > | None -> 1 00:00:16 v #379 > > 00:00:16 v #380 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:16 v #381 > > //// test 00:00:16 v #382 > > 00:00:16 v #383 > > let args = 00:00:16 v #384 > > System.Environment.GetEnvironmentVariable "ARGS" 00:00:16 v #385 > > |> SpiralRuntime.split_args 00:00:16 v #386 > > |> Result.toArray 00:00:16 v #387 > > |> Array.collect id 00:00:16 v #388 > > 00:00:16 v #389 > > match args with 00:00:16 v #390 > > | [[||]] -> 0 00:00:16 v #391 > > | args -> if main args = 0 then 0 else failwith "main failed" 00:00:16 v #392 > > 00:00:16 v #393 > > ── [ 67.55ms - return value ] ────────────────────────────────────────────────── 00:00:16 v #394 > > │ <div class="dni-plaintext"><pre>0 00:00:16 v #395 > > │ </pre></div><style> 00:00:16 v #396 > > │ .dni-code-hint { 00:00:16 v #397 > > │ font-style: italic; 00:00:16 v #398 > > │ overflow: hidden; 00:00:16 v #399 > > │ white-space: nowrap; 00:00:16 v #400 > > │ } 00:00:16 v #401 > > │ .dni-treeview { 00:00:16 v #402 > > │ white-space: nowrap; 00:00:16 v #403 > > │ } 00:00:16 v #404 > > │ .dni-treeview td { 00:00:16 v #405 > > │ vertical-align: top; 00:00:16 v #406 > > │ text-align: start; 00:00:16 v #407 > > │ } 00:00:16 v #408 > > │ details.dni-treeview { 00:00:16 v #409 > > │ padding-left: 1em; 00:00:16 v #410 > > │ } 00:00:16 v #411 > > │ table td { 00:00:16 v #412 > > │ text-align: start; 00:00:16 v #413 > > │ } 00:00:16 v #414 > > │ table tr { 00:00:16 v #415 > > │ vertical-align: top; 00:00:16 v #416 > > │ margin: 0em 0px; 00:00:16 v #417 > > │ } 00:00:16 v #418 > > │ table tr td pre 00:00:16 v #419 > > │ { 00:00:16 v #420 > > │ vertical-align: top !important; 00:00:16 v #421 > > │ margin: 0em 0px !important; 00:00:16 v #422 > > │ } 00:00:16 v #423 > > │ table th { 00:00:16 v #424 > > │ text-align: start; 00:00:16 v #425 > > │ } 00:00:16 v #426 > > │ </style> 00:00:16 v #427 > 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13920 } 00:00:16 v #428 > 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:17 v #429 > 00:00:16 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb to html 00:00:17 v #430 > 00:00:16 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:17 v #431 > 00:00:16 v #7 ! validate(nb) 00:00:17 v #432 > 00:00:16 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:17 v #433 > 00:00:16 v #9 ! return _pygments_highlight( 00:00:18 v #434 > 00:00:16 v #10 ! [NbConvertApp] Writing 310055 bytes to /home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html 00:00:18 v #435 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 922 } 00:00:18 v #436 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 922 } 00:00:18 v #437 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:18 v #438 > 00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:18 v #439 > 00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:18 v #440 > 00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 14901 } 00:00:18 d #441 runtime.execute_with_options_async / { exit_code = 0; output_length = 18481 } 00:00:18 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path DirTreeHtml.dib 00:00:18 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 writeDibCode / output: Fs / path: DirTreeHtml.dib 00:00:00 d #2 parseDibCode / output: Fs / file: DirTreeHtml.dib 00:00:00 d #1 persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DirTreeHtml / hash: / code.Length: 4638 00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 "publish "/home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml" } } 00:00:00 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds 00:00:01 v #6 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #7 > Restoring /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj 00:00:01 v #8 > Starting restore process. 00:00:01 v #9 > Total time taken: 0 milliseconds 00:00:02 v #10 > Restored /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/DirTreeHtml.fsproj (in 323 ms). 00:00:12 v #11 > DirTreeHtml -> /home/runner/work/polyglot/polyglot/target/Builder/DirTreeHtml/bin/Release/net9.0/linux-x64/DirTreeHtml.dll 00:00:12 v #12 > DirTreeHtml -> /home/runner/work/polyglot/polyglot/apps/dir-tree-html/dist 00:00:12 d #13 runtime.execute_with_options_async / { exit_code = 0; output_length = 728 }
In [ ]:
{ pwsh ../apps/scheduler/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path Tasks.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral dib --path Tasks.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Tasks.dib", "--retries", "3"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ ## Tasks (Polyglot) 00:00:05 v #13 > > 00:00:05 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:05 v #15 > > //// test 00:00:05 v #16 > > 00:00:05 v #17 > > open testing 00:00:08 v #18 > > 00:00:08 v #19 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:08 v #20 > > │ ## task_name 00:00:08 v #21 > > 00:00:08 v #22 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:08 v #23 > > nominal task_name = string 00:00:09 v #24 > > 00:00:09 v #25 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:09 v #26 > > │ ## manual_scheduling 00:00:09 v #27 > > 00:00:09 v #28 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #29 > > union manual_scheduling = 00:00:09 v #30 > > | WithSuggestion 00:00:09 v #31 > > | WithoutSuggestion 00:00:09 v #32 > > 00:00:09 v #33 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:09 v #34 > > │ ## recurrency_offset 00:00:09 v #35 > > 00:00:09 v #36 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #37 > > union recurrency_offset = 00:00:09 v #38 > > | Days : i32 00:00:09 v #39 > > | Weeks : i32 00:00:09 v #40 > > | Months : i32 00:00:09 v #41 > > 00:00:09 v #42 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:09 v #43 > > │ ## day_of_week 00:00:09 v #44 > > 00:00:09 v #45 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #46 > > union day_of_week = 00:00:09 v #47 > > | Sunday 00:00:09 v #48 > > | Monday 00:00:09 v #49 > > | Tuesday 00:00:09 v #50 > > | Wednesday 00:00:09 v #51 > > | Thursday 00:00:09 v #52 > > | Friday 00:00:09 v #53 > > | Saturday 00:00:09 v #54 > > 00:00:09 v #55 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:09 v #56 > > │ ## month 00:00:09 v #57 > > 00:00:09 v #58 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #59 > > union month = 00:00:09 v #60 > > | January 00:00:09 v #61 > > | February 00:00:09 v #62 > > | March 00:00:09 v #63 > > | April 00:00:09 v #64 > > | May 00:00:09 v #65 > > | June 00:00:09 v #66 > > | July 00:00:09 v #67 > > | August 00:00:09 v #68 > > | September 00:00:09 v #69 > > | October 00:00:09 v #70 > > | November 00:00:09 v #71 > > | December 00:00:10 v #72 > > 00:00:10 v #73 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:10 v #74 > > │ ## day 00:00:10 v #75 > > 00:00:10 v #76 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:10 v #77 > > nominal day = i32 00:00:10 v #78 > > 00:00:10 v #79 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:10 v #80 > > │ ## year 00:00:10 v #81 > > 00:00:10 v #82 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:10 v #83 > > nominal year = i32 00:00:10 v #84 > > 00:00:10 v #85 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:10 v #86 > > │ ## fixed_recurrency 00:00:10 v #87 > > 00:00:10 v #88 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:10 v #89 > > union fixed_recurrency = 00:00:10 v #90 > > | Weekly : day_of_week 00:00:10 v #91 > > | Monthly : day 00:00:10 v #92 > > | Yearly : day * month 00:00:11 v #93 > > 00:00:11 v #94 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:11 v #95 > > │ ## recurrency 00:00:11 v #96 > > 00:00:11 v #97 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:11 v #98 > > union recurrency = 00:00:11 v #99 > > | Offset : recurrency_offset 00:00:11 v #100 > > | Fixed : list fixed_recurrency 00:00:11 v #101 > > 00:00:11 v #102 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:11 v #103 > > │ ## scheduling 00:00:11 v #104 > > 00:00:11 v #105 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:11 v #106 > > union scheduling = 00:00:11 v #107 > > | Manual : manual_scheduling 00:00:11 v #108 > > | Recurrent : recurrency 00:00:11 v #109 > > 00:00:11 v #110 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:11 v #111 > > │ ## task 00:00:11 v #112 > > 00:00:11 v #113 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:11 v #114 > > type task = 00:00:11 v #115 > > { 00:00:11 v #116 > > name : task_name 00:00:11 v #117 > > scheduling : scheduling 00:00:11 v #118 > > } 00:00:11 v #119 > > 00:00:11 v #120 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:11 v #121 > > │ ## date 00:00:11 v #122 > > 00:00:11 v #123 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:11 v #124 > > type date = 00:00:11 v #125 > > { 00:00:11 v #126 > > year : year 00:00:11 v #127 > > month : month 00:00:11 v #128 > > day : day 00:00:11 v #129 > > } 00:00:11 v #130 > > 00:00:11 v #131 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:11 v #132 > > │ ## status 00:00:11 v #133 > > 00:00:11 v #134 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:11 v #135 > > union status = 00:00:11 v #136 > > | Postponed : option () 00:00:12 v #137 > > 00:00:12 v #138 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:12 v #139 > > │ ## event 00:00:12 v #140 > > 00:00:12 v #141 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:12 v #142 > > type event = 00:00:12 v #143 > > { 00:00:12 v #144 > > date : date 00:00:12 v #145 > > status : status 00:00:12 v #146 > > } 00:00:12 v #147 > > 00:00:12 v #148 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:12 v #149 > > │ ## task_template 00:00:12 v #150 > > 00:00:12 v #151 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:12 v #152 > > type task_template = 00:00:12 v #153 > > { 00:00:12 v #154 > > task : task 00:00:12 v #155 > > events : list event 00:00:12 v #156 > > } 00:00:12 v #157 > > 00:00:12 v #158 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:12 v #159 > > │ ## get_tasks (test) 00:00:12 v #160 > > 00:00:12 v #161 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:12 v #162 > > //// test 00:00:12 v #163 > > 00:00:12 v #164 > > inl get_tasks () : list task_template = 00:00:12 v #165 > > [[ 00:00:12 v #166 > > { 00:00:12 v #167 > > task = 00:00:12 v #168 > > { 00:00:12 v #169 > > name = task_name "01" 00:00:12 v #170 > > scheduling = Manual WithSuggestion 00:00:12 v #171 > > } 00:00:12 v #172 > > events = [[]] 00:00:12 v #173 > > } 00:00:12 v #174 > > { 00:00:12 v #175 > > task = 00:00:12 v #176 > > { 00:00:12 v #177 > > name = task_name "02" 00:00:12 v #178 > > scheduling = Manual WithSuggestion 00:00:12 v #179 > > } 00:00:12 v #180 > > events = [[]] 00:00:12 v #181 > > } 00:00:12 v #182 > > { 00:00:12 v #183 > > task = 00:00:12 v #184 > > { 00:00:12 v #185 > > name = task_name "03" 00:00:12 v #186 > > scheduling = Manual WithSuggestion 00:00:12 v #187 > > } 00:00:12 v #188 > > events = [[]] 00:00:12 v #189 > > } 00:00:12 v #190 > > ]] 00:00:12 v #191 > > 00:00:12 v #192 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:12 v #193 > > //// test 00:00:12 v #194 > > ///! fsharp 00:00:12 v #195 > > ///! cuda 00:00:12 v #196 > > ///! rust 00:00:12 v #197 > > ///! typescript 00:00:12 v #198 > > ///! python 00:00:12 v #199 > > 00:00:12 v #200 > > get_tasks () 00:00:12 v #201 > > |> sm'.format_debug 00:00:12 v #202 > > |> _assert sm'.contains "01" 00:00:26 v #203 > > 00:00:26 v #204 > > ── [ 14.13s - return value ] ─────────────────────────────────────────────────── 00:00:26 v #205 > > │ .py output (Cuda): 00:00:26 v #206 > > │ __assert / actual: 01 / expected: UH2_1(v0='01', 00:00:26 v #207 > > v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_1(v0='02', v1=US1_0(v0=US0_0()), 00:00:26 v #208 > > v2=UH1_0(), v3=UH2_1(v0='03', v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_0()))) 00:00:26 v #209 > > │ 00:00:26 v #210 > > │ .rs output: 00:00:26 v #211 > > │ __assert / actual: "01" / expected: "UH2_1("01", 00:00:26 v #212 > > US1_0(US0_0), UH1_0, UH2_1("02", US1_0(US0_0), UH1_0, UH2_1("03", US1_0(US0_0), 00:00:26 v #213 > > UH1_0, UH2_0)))" 00:00:26 v #214 > > │ 00:00:26 v #215 > > │ .ts output: 00:00:26 v #216 > > │ __assert / actual: 01 / expected: UH2_1 (01, US1_0 US0_0, 00:00:26 v #217 > > UH1_0, UH2_1 (02, US1_0 US0_0, UH1_0, UH2_1 (03, US1_0 US0_0, UH1_0, UH2_0))) 00:00:26 v #218 > > │ 00:00:26 v #219 > > │ .py output: 00:00:26 v #220 > > │ __assert / actual: 01 / expected: UH2_1 ("01", US1_0 US0_0, 00:00:26 v #221 > > UH1_0, UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0, UH1_0, 00:00:26 v #222 > > UH2_0))) 00:00:26 v #223 > > │ 00:00:26 v #224 > > │ 00:00:26 v #225 > > 00:00:26 v #226 > > ── [ 14.13s - stdout ] ───────────────────────────────────────────────────────── 00:00:26 v #227 > > │ .fsx output: 00:00:26 v #228 > > │ __assert / actual: "01" / expected: "UH2_1 00:00:26 v #229 > > │ ("01", US1_0 US0_0, UH1_0, 00:00:26 v #230 > > │ UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0, 00:00:26 v #231 > > UH1_0, UH2_0)))" 00:00:26 v #232 > > │ 00:00:26 v #233 > > 00:00:26 v #234 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:26 v #235 > > //// test 00:00:26 v #236 > > ///! fsharp 00:00:26 v #237 > > ///! cuda 00:00:26 v #238 > > ///! rust 00:00:26 v #239 > > ///! typescript 00:00:26 v #240 > > ///! python 00:00:26 v #241 > > 00:00:26 v #242 > > get_tasks () 00:00:26 v #243 > > |> listm'.try_item 0i32 00:00:26 v #244 > > |> fun (Some task) => task.task.name 00:00:26 v #245 > > |> _assert_eq (task_name "01") 00:00:34 v #246 > > 00:00:34 v #247 > > ── [ 7.60s - return value ] ──────────────────────────────────────────────────── 00:00:34 v #248 > > │ .py output (Cuda): 00:00:34 v #249 > > │ __assert_eq / actual: 01 / expected: 01 00:00:34 v #250 > > │ 00:00:34 v #251 > > │ .rs output: 00:00:34 v #252 > > │ __assert_eq / actual: "01" / expected: "01" 00:00:34 v #253 > > │ 00:00:34 v #254 > > │ .ts output: 00:00:34 v #255 > > │ __assert_eq / actual: 01 / expected: 01 00:00:34 v #256 > > │ 00:00:34 v #257 > > │ .py output: 00:00:34 v #258 > > │ __assert_eq / actual: 01 / expected: 01 00:00:34 v #259 > > │ 00:00:34 v #260 > > │ 00:00:34 v #261 > > 00:00:34 v #262 > > ── [ 7.60s - stdout ] ────────────────────────────────────────────────────────── 00:00:34 v #263 > > │ .fsx output: 00:00:34 v #264 > > │ __assert_eq / actual: "01" / expected: "01" 00:00:34 v #265 > > │ 00:00:34 v #266 > > 00:00:34 v #267 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:34 v #268 > > //// test 00:00:34 v #269 > > ///! fsharp 00:00:34 v #270 > > ////! cuda 00:00:34 v #271 > > ////! typescript 00:00:34 v #272 > > ////! python 00:00:34 v #273 > > ///// print_code 00:00:34 v #274 > > 00:00:34 v #275 > > inl print padding cols = 00:00:34 v #276 > > ({ lines = [[]]; last_lines = [[]]; max_acc = 0i32 }, cols) 00:00:34 v #277 > > ||> listm.fold fun { last_lines max_acc } lines => 00:00:34 v #278 > > inl { count max } = 00:00:34 v #279 > > (lines, { count = 0i32; max = 0i32 }) 00:00:34 v #280 > > ||> listm.foldBack fun line { count max } => { 00:00:34 v #281 > > count = count + 1 00:00:34 v #282 > > max = 00:00:34 v #283 > > inl len = line |> sm'.length 00:00:34 v #284 > > if len > max 00:00:34 v #285 > > then len 00:00:34 v #286 > > else max 00:00:34 v #287 > > } 00:00:34 v #288 > > inl { lines } = 00:00:34 v #289 > > (lines, { lines = [[]]; i = 0i32 }) 00:00:34 v #290 > > ||> listm.foldBack fun line { lines i } => { 00:00:34 v #291 > > lines = 00:00:34 v #292 > > inl last_line = 00:00:34 v #293 > > last_lines 00:00:34 v #294 > > |> listm'.try_item (count - i - 1) 00:00:34 v #295 > > |> optionm'.default_with fun () => 00:00:34 v #296 > > " " |> sm'.replicate max_acc 00:00:34 v #297 > > inl line = 00:00:34 v #298 > > if padding = 0 00:00:34 v #299 > > then line 00:00:34 v #300 > > else 00:00:34 v #301 > > inl padding = " " |> sm'.replicate padding 00:00:34 v #302 > > $'$"{!line}{!padding}"' 00:00:34 v #303 > > inl line = line |> sm'.pad_right (max + padding) ' ' 00:00:34 v #304 > > $'$"{!last_line}{!line}"' :: lines 00:00:34 v #305 > > i = i + 1 00:00:34 v #306 > > } 00:00:34 v #307 > > { 00:00:34 v #308 > > lines 00:00:34 v #309 > > last_lines = lines 00:00:34 v #310 > > max_acc = max_acc + max + padding 00:00:34 v #311 > > } 00:00:34 v #312 > > |> fun x => x.lines 00:00:34 v #313 > > |> listm'.box 00:00:34 v #314 > > |> seq.of_list' 00:00:34 v #315 > > |> sm'.concat "\n" 00:00:34 v #316 > > 00:00:34 v #317 > > inl col () = 00:00:34 v #318 > > [[ "Task" ]] 00:00:34 v #319 > > ++ ( 00:00:34 v #320 > > get_tasks () 00:00:34 v #321 > > |> listm.map fun task => 00:00:34 v #322 > > inl (task_name name) = task.task.name 00:00:34 v #323 > > name 00:00:34 v #324 > > ) 00:00:34 v #325 > > 00:00:34 v #326 > > inl cols () = 00:00:34 v #327 > > [[ 00:00:34 v #328 > > col () 00:00:34 v #329 > > col () 00:00:34 v #330 > > [[ "a"; "b"; "c"; "d"; "e" ]] 00:00:34 v #331 > > ]] 00:00:34 v #332 > > 00:00:34 v #333 > > inl main () = 00:00:34 v #334 > > cols () 00:00:34 v #335 > > |> print 1i32 00:00:34 v #336 > > |> console.write_line 00:00:34 v #337 > > 00:00:34 v #338 > > ── [ 377.73ms - stdout ] ─────────────────────────────────────────────────────── 00:00:34 v #339 > > │ Task Task a 00:00:34 v #340 > > │ 01 01 b 00:00:34 v #341 > > │ 02 02 c 00:00:34 v #342 > > │ 03 03 d 00:00:34 v #343 > > │ e 00:00:34 v #344 > > │ 00:00:34 v #345 > 00:00:33 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 10901 } 00:00:34 v #346 > 00:00:33 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:35 v #347 > 00:00:34 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.ipynb to html 00:00:35 v #348 > 00:00:34 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:35 v #349 > 00:00:34 v #7 ! validate(nb) 00:00:36 v #350 > 00:00:34 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:36 v #351 > 00:00:34 v #9 ! return _pygments_highlight( 00:00:36 v #352 > 00:00:34 v #10 ! [NbConvertApp] Writing 309952 bytes to /home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.html 00:00:36 v #353 > 00:00:35 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 902 } 00:00:36 v #354 > 00:00:35 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 902 } 00:00:36 v #355 > 00:00:35 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:36 v #356 > 00:00:35 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:36 v #357 > 00:00:35 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:36 v #358 > 00:00:35 d #16 spiral.run / dib / { exit_code = 0; result_length = 11862 } 00:00:36 d #359 runtime.execute_with_options_async / { exit_code = 0; output_length = 15210 } 00:00:36 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral dib --path Tasks.dib --retries 3 00:00:36 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 writeDibCode / output: Spi / path: Tasks.dib 00:00:00 d #2 parseDibCode / output: Spi / file: Tasks.dib
In [ ]:
{ pwsh ../apps/chat/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path chat_contract.dib --retries 5"; options = { command = ../../../deps/spiral/workspace/target/release/spiral dib --path chat_contract.dib --retries 5; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "chat_contract.dib", "--retries", "5"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ # chat_contract 00:00:05 v #13 > > 00:00:05 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:05 v #15 > > open rust 00:00:05 v #16 > > open rust.rust_operators 00:00:08 v #17 > > 00:00:08 v #18 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:08 v #19 > > //// test 00:00:08 v #20 > > 00:00:08 v #21 > > open testing 00:00:09 v #22 > > 00:00:09 v #23 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:09 v #24 > > │ ## chat_contract 00:00:09 v #25 > > 00:00:09 v #26 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:09 v #27 > > │ ### state 00:00:09 v #28 > > 00:00:09 v #29 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #30 > > type state = 00:00:09 v #31 > > { 00:00:09 v #32 > > version : u32 00:00:09 v #33 > > account_set : near.iterable_set near.account_id 00:00:09 v #34 > > alias_set : near.iterable_set sm'.std_string 00:00:09 v #35 > > account_map : near.lookup_map near.account_id sm'.std_string 00:00:09 v #36 > > alias_map : near.lookup_map sm'.std_string (mapm.hash_map 00:00:09 v #37 > > near.account_id (u64 * u32)) 00:00:09 v #38 > > } 00:00:09 v #39 > > 00:00:09 v #40 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #41 > > //// test 00:00:09 v #42 > > ///! rust -c 00:00:09 v #43 > > 00:00:09 v #44 > > () 00:01:04 v #45 > > 00:01:04 v #46 > > ── [ 54.60s - return value ] ─────────────────────────────────────────────────── 00:01:04 v #47 > > │ Installed near-sandbox into 00:01:04 v #48 > > /home/runner/work/polyglot/spiral/workspace/target/release/build/near-sandbox-ut 00:01:04 v #49 > > ils-c39df2faf0b47791/out/.near/near-sandbox-1.40.0_7dd0b5993577f592be15eb102e5a3 00:01:04 v #50 > > da37be66271/near-sandbox 00:01:04 v #51 > > │ 00:01:04 v #52 > > │ 00:00:03 i #2 near_workspaces.print_usd / { retry = 1; 00:01:04 v #53 > > total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209301725971 } 00:01:04 v #54 > > │ 00:00:03 i #3 near_workspaces.print_usd / outcome / { 00:01:04 v #55 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:04 v #56 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:04 v #57 > > │ 00:00:03 i #4 near_workspaces.print_usd / outcome / { 00:01:04 v #58 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 00:01:04 v #59 > > gas_burnt = 901219866631; tokens_burnt = 90121986663100000000 } 00:01:04 v #60 > > │ 00:00:03 w #5 spiral_wasm.run / Error error / { retry = 00:01:04 v #61 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } 00:01:04 v #62 > > │ 00:01:04 v #63 > > │ 00:01:04 v #64 > > │ 00:01:04 v #65 > > │ 00:00:05 i #8 near_workspaces.print_usd / { retry = 2; 00:01:04 v #66 > > total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209301725971 } 00:01:04 v #67 > > │ 00:00:05 i #9 near_workspaces.print_usd / outcome / { 00:01:04 v #68 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:04 v #69 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:04 v #70 > > │ 00:00:05 i #10 near_workspaces.print_usd / outcome / { 00:01:04 v #71 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 00:01:04 v #72 > > gas_burnt = 901219866631; tokens_burnt = 90121986663100000000 } 00:01:04 v #73 > > │ 00:00:05 w #11 spiral_wasm.run / Error error ...n 00:01:04 v #74 > > Error error / { retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13; 00:01:04 v #75 > > receipt_failures = [] }" } 00:01:04 v #76 > > │ 00:01:04 v #77 > > │ 00:01:04 v #78 > > │ 00:01:04 v #79 > > │ 00:00:30 i #80 near_workspaces.print_usd / { retry = 00:01:04 v #80 > > 14; total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209301725971 } 00:01:04 v #81 > > │ 00:00:30 i #81 near_workspaces.print_usd / outcome / { 00:01:04 v #82 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:04 v #83 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:04 v #84 > > │ 00:00:30 i #82 near_workspaces.print_usd / outcome / { 00:01:04 v #85 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 00:01:04 v #86 > > gas_burnt = 901219866631; tokens_burnt = 90121986663100000000 } 00:01:04 v #87 > > │ 00:00:30 w #83 spiral_wasm.run / Error error / { retry 00:01:04 v #88 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }" 00:01:04 v #89 > > } 00:01:04 v #90 > > │ 00:01:04 v #91 > > │ 00:01:04 v #92 > > │ 00:01:04 v #93 > > │ 00:00:32 i #86 near_workspaces.print_usd / { retry = 00:01:04 v #94 > > 15; total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209301725971 } 00:01:04 v #95 > > │ 00:00:32 i #87 near_workspaces.print_usd / outcome / { 00:01:04 v #96 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:04 v #97 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:04 v #98 > > │ 00:00:32 i #88 near_workspaces.print_usd / outcome / { 00:01:04 v #99 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; 00:01:04 v #100 > > gas_burnt = 901219866631; tokens_burnt = 90121986663100000000 } 00:01:04 v #101 > > │ 00:00:32 w #89 spiral_wasm.run / Error error / { retry 00:01:04 v #102 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:01:04 v #103 > > } 00:01:04 v #104 > > │ 00:01:04 v #105 > > │ 00:01:04 v #106 > > │ 00:01:04 v #107 > > 00:01:04 v #108 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:04 v #109 > > //// test 00:01:04 v #110 > > ///! rust -c 00:01:04 v #111 > > 00:01:04 v #112 > > trace Verbose (fun () => "") id 00:01:43 v #113 > > 00:01:43 v #114 > > ── [ 39.89s - return value ] ─────────────────────────────────────────────────── 00:01:43 v #115 > > │ 00:01:43 v #116 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:01:43 v #117 > > total_gas_burnt_usd = +0.000885; total_gas_burnt = 1324654026848 } 00:01:43 v #118 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:01:43 v #119 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:43 v #120 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:43 v #121 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:01:43 v #122 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 00:01:43 v #123 > > gas_burnt = 1016572167508; tokens_burnt = 101657216750800000000 } 00:01:43 v #124 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry = 00:01:43 v #125 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } 00:01:43 v #126 > > │ 00:01:43 v #127 > > │ 00:01:43 v #128 > > │ 00:01:43 v #129 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2; 00:01:43 v #130 > > total_gas_burnt_usd = +0.000885; total_gas_burnt = 1324654026848 } 00:01:43 v #131 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / { 00:01:43 v #132 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:43 v #133 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:43 v #134 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / { 00:01:43 v #135 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 00:01:43 v #136 > > gas_burnt = 1016572167508; tokens_burnt = 101657216750800000000 } 00:01:43 v #137 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry 00:01:43 v #138 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } 00:01:43 v #139 > > │ 00:01:43 v #140 > > │ 00:01:43 v #141 > > │ 00:01:43 v #142 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3; 00:01:43 v #143 > > total_gas_burnt_usd = +0.000885; total_gas_burnt ...Error error / { retry = 13; 00:01:43 v #144 > > error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures = [] }" } 00:01:43 v #145 > > │ 00:01:43 v #146 > > │ 00:01:43 v #147 > > │ 00:01:43 v #148 > > │ 00:00:28 i #80 near_workspaces.print_usd / { retry = 00:01:43 v #149 > > 14; total_gas_burnt_usd = +0.000885; total_gas_burnt = 1324654026848 } 00:01:43 v #150 > > │ 00:00:28 i #81 near_workspaces.print_usd / outcome / { 00:01:43 v #151 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:43 v #152 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:43 v #153 > > │ 00:00:28 i #82 near_workspaces.print_usd / outcome / { 00:01:43 v #154 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 00:01:43 v #155 > > gas_burnt = 1016572167508; tokens_burnt = 101657216750800000000 } 00:01:43 v #156 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry 00:01:43 v #157 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }" 00:01:43 v #158 > > } 00:01:43 v #159 > > │ 00:01:43 v #160 > > │ 00:01:43 v #161 > > │ 00:01:43 v #162 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry = 00:01:43 v #163 > > 15; total_gas_burnt_usd = +0.000885; total_gas_burnt = 1324654026848 } 00:01:43 v #164 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / { 00:01:43 v #165 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:01:43 v #166 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:01:43 v #167 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / { 00:01:43 v #168 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; 00:01:43 v #169 > > gas_burnt = 1016572167508; tokens_burnt = 101657216750800000000 } 00:01:43 v #170 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry 00:01:43 v #171 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:01:43 v #172 > > } 00:01:43 v #173 > > │ 00:01:43 v #174 > > │ 00:01:43 v #175 > > │ 00:01:43 v #176 > > 00:01:43 v #177 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:01:43 v #178 > > │ ### new 00:01:43 v #179 > > 00:01:43 v #180 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:43 v #181 > > inl new () : state = 00:01:43 v #182 > > { 00:01:43 v #183 > > version = 2 00:01:43 v #184 > > account_set = "account_set" |> sm'.byte_slice |> near.new_iterable_set 00:01:43 v #185 > > alias_set = "alias_set" |> sm'.byte_slice |> near.new_iterable_set 00:01:43 v #186 > > account_map = "account_map" |> sm'.byte_slice |> near.new_lookup_map 00:01:43 v #187 > > alias_map = "alias_map" |> sm'.byte_slice |> near.new_lookup_map 00:01:43 v #188 > > } 00:01:44 v #189 > > 00:01:44 v #190 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:01:44 v #191 > > //// test 00:01:44 v #192 > > ///! rust -c 00:01:44 v #193 > > 00:01:44 v #194 > > inl state = new () 00:01:44 v #195 > > trace Verbose (fun () => "chat_contract") fun () => { state = state |> 00:01:44 v #196 > > sm'.format_debug } 00:01:44 v #197 > > trace Verbose (fun () => "") id 00:02:24 v #198 > > 00:02:24 v #199 > > ── [ 40.81s - return value ] ─────────────────────────────────────────────────── 00:02:24 v #200 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet 00:02:24 v #201 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, 00:02:24 v #202 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 00:02:24 v #203 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 0, prefix: 00:02:24 v #204 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: 00:02:24 v #205 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, 00:02:24 v #206 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, 00:02:24 v #207 > > 105, 97, 115, 95, 109, 97, 112] }) } 00:02:24 v #208 > > │ 00:02:24 v #209 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:02:24 v #210 > > total_gas_burnt_usd = +0.001326; total_gas_burnt = 1984960561482 } 00:02:24 v #211 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:02:24 v #212 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:02:24 v #213 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:02:24 v #214 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:02:24 v #215 > > is_success = true; gas_burnt_usd = +0.001120; tokens_burnt_usd = +0.001120; 00:02:24 v #216 > > gas_burnt = 1676878702142; tokens_burnt = 167687870214200000000 } 00:02:24 v #217 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry = 00:02:24 v #218 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } 00:02:24 v #219 > > │ 00:02:24 v #220 > > │ 00:02:24 v #221 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet 00:02:24 v #222 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, 00:02:24 v #223 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 00:02:24 v #224 > > 95, 115, 101,...d = +0.001120; gas_burnt = 1676878702142; tokens_burnt = 00:02:24 v #225 > > 167687870214200000000 } 00:02:24 v #226 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry 00:02:24 v #227 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }" 00:02:24 v #228 > > } 00:02:24 v #229 > > │ 00:02:24 v #230 > > │ 00:02:24 v #231 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet 00:02:24 v #232 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, 00:02:24 v #233 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 00:02:24 v #234 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 0, prefix: 00:02:24 v #235 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: 00:02:24 v #236 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, 00:02:24 v #237 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, 00:02:24 v #238 > > 105, 97, 115, 95, 109, 97, 112] }) } 00:02:24 v #239 > > │ 00:02:24 v #240 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry = 00:02:24 v #241 > > 15; total_gas_burnt_usd = +0.001326; total_gas_burnt = 1984960561482 } 00:02:24 v #242 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / { 00:02:24 v #243 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:02:24 v #244 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:02:24 v #245 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / { 00:02:24 v #246 > > is_success = true; gas_burnt_usd = +0.001120; tokens_burnt_usd = +0.001120; 00:02:24 v #247 > > gas_burnt = 1676878702142; tokens_burnt = 167687870214200000000 } 00:02:24 v #248 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry 00:02:24 v #249 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:02:24 v #250 > > } 00:02:24 v #251 > > │ 00:02:24 v #252 > > │ 00:02:24 v #253 > > │ 00:02:24 v #254 > > 00:02:24 v #255 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:02:24 v #256 > > │ ### is_valid_alias 00:02:24 v #257 > > 00:02:24 v #258 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:02:24 v #259 > > inl is_valid_alias (alias : sm'.std_string) : bool = 00:02:24 v #260 > > inl alias' = alias |> sm'.from_std_string 00:02:24 v #261 > > inl alias_len = alias' |> sm'.length 00:02:24 v #262 > > 00:02:24 v #263 > > alias_len > 0i32 00:02:24 v #264 > > && alias_len < 64 00:02:24 v #265 > > && (alias' |> sm'.starts_with "-" |> not) 00:02:24 v #266 > > && (alias' |> sm'.ends_with "-" |> not) 00:02:24 v #267 > > && (alias' |> sm'.as_str |> sm'.chars |> iter.all (fun c => (c |> 00:02:24 v #268 > > sm'.char_is_alphanumeric) || c = '-')) 00:02:25 v #269 > > 00:02:25 v #270 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:02:25 v #271 > > //// test 00:02:25 v #272 > > ///! rust -c 00:02:25 v #273 > > 00:02:25 v #274 > > "" 00:02:25 v #275 > > |> sm'.to_std_string 00:02:25 v #276 > > |> is_valid_alias 00:02:25 v #277 > > |> _assert_eq false 00:03:03 v #278 > > 00:03:03 v #279 > > ── [ 38.69s - return value ] ─────────────────────────────────────────────────── 00:03:03 v #280 > > │ 00:03:03 v #281 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:03:03 v #282 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230879128160 } 00:03:03 v #283 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:03:03 v #284 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:03 v #285 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:03 v #286 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:03:03 v #287 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; 00:03:03 v #288 > > gas_burnt = 922797268820; tokens_burnt = 92279726882000000000 } 00:03:03 v #289 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry = 00:03:03 v #290 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } 00:03:03 v #291 > > │ 00:03:03 v #292 > > │ 00:03:03 v #293 > > │ 00:03:03 v #294 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2; 00:03:03 v #295 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230879128160 } 00:03:03 v #296 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / { 00:03:03 v #297 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:03 v #298 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:03 v #299 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / { 00:03:03 v #300 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; 00:03:03 v #301 > > gas_burnt = 922797268820; tokens_burnt = 92279726882000000000 } 00:03:03 v #302 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry 00:03:03 v #303 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } 00:03:03 v #304 > > │ 00:03:03 v #305 > > │ 00:03:03 v #306 > > │ 00:03:03 v #307 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3; 00:03:03 v #308 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 12...n / Error error / { 00:03:03 v #309 > > retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures = 00:03:03 v #310 > > [] }" } 00:03:03 v #311 > > │ 00:03:03 v #312 > > │ 00:03:03 v #313 > > │ 00:03:03 v #314 > > │ 00:00:28 i #80 near_workspaces.print_usd / { retry = 00:03:03 v #315 > > 14; total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230879128160 } 00:03:03 v #316 > > │ 00:00:28 i #81 near_workspaces.print_usd / outcome / { 00:03:03 v #317 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:03 v #318 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:03 v #319 > > │ 00:00:28 i #82 near_workspaces.print_usd / outcome / { 00:03:03 v #320 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; 00:03:03 v #321 > > gas_burnt = 922797268820; tokens_burnt = 92279726882000000000 } 00:03:03 v #322 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry 00:03:03 v #323 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }" 00:03:03 v #324 > > } 00:03:03 v #325 > > │ 00:03:03 v #326 > > │ 00:03:03 v #327 > > │ 00:03:03 v #328 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry = 00:03:03 v #329 > > 15; total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230879128160 } 00:03:03 v #330 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / { 00:03:03 v #331 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:03 v #332 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:03 v #333 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / { 00:03:03 v #334 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; 00:03:03 v #335 > > gas_burnt = 922797268820; tokens_burnt = 92279726882000000000 } 00:03:03 v #336 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry 00:03:03 v #337 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:03:03 v #338 > > } 00:03:03 v #339 > > │ 00:03:03 v #340 > > │ 00:03:03 v #341 > > │ 00:03:03 v #342 > > 00:03:03 v #343 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:03:03 v #344 > > //// test 00:03:03 v #345 > > ///! rust -c 00:03:03 v #346 > > 00:03:03 v #347 > > "a-" 00:03:03 v #348 > > |> sm'.to_std_string 00:03:03 v #349 > > |> is_valid_alias 00:03:03 v #350 > > |> _assert_eq false 00:03:42 v #351 > > 00:03:42 v #352 > > ── [ 38.58s - return value ] ─────────────────────────────────────────────────── 00:03:42 v #353 > > │ 00:03:42 v #354 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:03:42 v #355 > > total_gas_burnt_usd = +0.000824; total_gas_burnt = 1232868482751 } 00:03:42 v #356 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:03:42 v #357 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:42 v #358 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:42 v #359 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:03:42 v #360 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618; 00:03:42 v #361 > > gas_burnt = 924786623411; tokens_burnt = 92478662341100000000 } 00:03:42 v #362 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry = 00:03:42 v #363 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } 00:03:42 v #364 > > │ 00:03:42 v #365 > > │ 00:03:42 v #366 > > │ 00:03:42 v #367 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2; 00:03:42 v #368 > > total_gas_burnt_usd = +0.000824; total_gas_burnt = 1232868482751 } 00:03:42 v #369 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / { 00:03:42 v #370 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:42 v #371 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:42 v #372 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / { 00:03:42 v #373 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618; 00:03:42 v #374 > > gas_burnt = 924786623411; tokens_burnt = 92478662341100000000 } 00:03:42 v #375 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry 00:03:42 v #376 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } 00:03:42 v #377 > > │ 00:03:42 v #378 > > │ 00:03:42 v #379 > > │ 00:03:42 v #380 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3; 00:03:42 v #381 > > total_gas_burnt_usd = +0.000824; total_gas_burnt = 12...n / Error error / { 00:03:42 v #382 > > retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures = 00:03:42 v #383 > > [] }" } 00:03:42 v #384 > > │ 00:03:42 v #385 > > │ 00:03:42 v #386 > > │ 00:03:42 v #387 > > │ 00:00:28 i #80 near_workspaces.print_usd / { retry = 00:03:42 v #388 > > 14; total_gas_burnt_usd = +0.000824; total_gas_burnt = 1232868482751 } 00:03:42 v #389 > > │ 00:00:28 i #81 near_workspaces.print_usd / outcome / { 00:03:42 v #390 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:42 v #391 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:42 v #392 > > │ 00:00:28 i #82 near_workspaces.print_usd / outcome / { 00:03:42 v #393 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618; 00:03:42 v #394 > > gas_burnt = 924786623411; tokens_burnt = 92478662341100000000 } 00:03:42 v #395 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry 00:03:42 v #396 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }" 00:03:42 v #397 > > } 00:03:42 v #398 > > │ 00:03:42 v #399 > > │ 00:03:42 v #400 > > │ 00:03:42 v #401 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry = 00:03:42 v #402 > > 15; total_gas_burnt_usd = +0.000824; total_gas_burnt = 1232868482751 } 00:03:42 v #403 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / { 00:03:42 v #404 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:03:42 v #405 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:03:42 v #406 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / { 00:03:42 v #407 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618; 00:03:42 v #408 > > gas_burnt = 924786623411; tokens_burnt = 92478662341100000000 } 00:03:42 v #409 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry 00:03:42 v #410 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:03:42 v #411 > > } 00:03:42 v #412 > > │ 00:03:42 v #413 > > │ 00:03:42 v #414 > > │ 00:03:42 v #415 > > 00:03:42 v #416 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:03:42 v #417 > > //// test 00:03:42 v #418 > > ///! rust -c 00:03:42 v #419 > > 00:03:42 v #420 > > "a-a" 00:03:42 v #421 > > |> sm'.to_std_string 00:03:42 v #422 > > |> is_valid_alias 00:03:42 v #423 > > |> _assert_eq true 00:04:21 v #424 > > 00:04:21 v #425 > > ── [ 38.66s - return value ] ─────────────────────────────────────────────────── 00:04:21 v #426 > > │ 00:04:21 v #427 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:04:21 v #428 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234466599730 } 00:04:21 v #429 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:04:21 v #430 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:04:21 v #431 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:04:21 v #432 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:04:21 v #433 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; 00:04:21 v #434 > > gas_burnt = 926384740390; tokens_burnt = 92638474039000000000 } 00:04:21 v #435 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry = 00:04:21 v #436 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } 00:04:21 v #437 > > │ 00:04:21 v #438 > > │ 00:04:21 v #439 > > │ 00:04:21 v #440 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2; 00:04:21 v #441 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234466599730 } 00:04:21 v #442 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / { 00:04:21 v #443 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:04:21 v #444 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:04:21 v #445 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / { 00:04:21 v #446 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; 00:04:21 v #447 > > gas_burnt = 926384740390; tokens_burnt = 92638474039000000000 } 00:04:21 v #448 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry 00:04:21 v #449 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } 00:04:21 v #450 > > │ 00:04:21 v #451 > > │ 00:04:21 v #452 > > │ 00:04:21 v #453 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3; 00:04:21 v #454 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 12...n / Error error / { 00:04:21 v #455 > > retry = 13; error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures = 00:04:21 v #456 > > [] }" } 00:04:21 v #457 > > │ 00:04:21 v #458 > > │ 00:04:21 v #459 > > │ 00:04:21 v #460 > > │ 00:00:28 i #80 near_workspaces.print_usd / { retry = 00:04:21 v #461 > > 14; total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234466599730 } 00:04:21 v #462 > > │ 00:00:28 i #81 near_workspaces.print_usd / outcome / { 00:04:21 v #463 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:04:21 v #464 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:04:21 v #465 > > │ 00:00:28 i #82 near_workspaces.print_usd / outcome / { 00:04:21 v #466 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; 00:04:21 v #467 > > gas_burnt = 926384740390; tokens_burnt = 92638474039000000000 } 00:04:21 v #468 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry 00:04:21 v #469 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }" 00:04:21 v #470 > > } 00:04:21 v #471 > > │ 00:04:21 v #472 > > │ 00:04:21 v #473 > > │ 00:04:21 v #474 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry = 00:04:21 v #475 > > 15; total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234466599730 } 00:04:21 v #476 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / { 00:04:21 v #477 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:04:21 v #478 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:04:21 v #479 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / { 00:04:21 v #480 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; 00:04:21 v #481 > > gas_burnt = 926384740390; tokens_burnt = 92638474039000000000 } 00:04:21 v #482 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry 00:04:21 v #483 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:04:21 v #484 > > } 00:04:21 v #485 > > │ 00:04:21 v #486 > > │ 00:04:21 v #487 > > │ 00:04:21 v #488 > > 00:04:21 v #489 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:04:21 v #490 > > │ ### generate_cid 00:04:21 v #491 > > 00:04:21 v #492 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:04:21 v #493 > > inl generate_cid (content : am'.vec u8) : sm'.std_string = 00:04:21 v #494 > > !\($'" fn encode_u64(value: u64) -> Vec<u8> { //"') : () 00:04:21 v #495 > > !\($'" let mut buffer = unsigned_varint::encode::u64_buffer(); //"') : () 00:04:21 v #496 > > !\($'" unsigned_varint::encode::u64(value, &mut buffer).to_vec() //"') : 00:04:21 v #497 > > () 00:04:21 v #498 > > !\($'" } //"') : () 00:04:21 v #499 > > 00:04:21 v #500 > > !\($'" fn sha256_hash(content: &[[u8]]) -> Vec<u8> { //"') : () 00:04:21 v #501 > > !\($'" let mut hasher: sha2::Sha256 = sha2::Digest::new(); //"') : () 00:04:21 v #502 > > !\($'" sha2::Digest::update(&mut hasher, content); //"') : () 00:04:21 v #503 > > !\($'" sha2::Digest::finalize(hasher).to_vec() //"') : () 00:04:21 v #504 > > !\($'" } //"') : () 00:04:21 v #505 > > 00:04:21 v #506 > > !\($'" let version: u8 = 1; //"') : () 00:04:21 v #507 > > !\($'" let codec_raw: u64 = 0x55; //"') : () 00:04:21 v #508 > > 00:04:21 v #509 > > !\($'" let codec_bytes = encode_u64(codec_raw); //"') : () 00:04:21 v #510 > > !\($'" let hash_result = sha256_hash(&!content); //"') : () 00:04:21 v #511 > > !\($'" let multihash = std::iter::once(0x12) //"') : () 00:04:21 v #512 > > !\($'" .chain(std::iter::once(32)) //"') : () 00:04:21 v #513 > > !\($'" .chain(hash_result.into_iter()) //"') : () 00:04:21 v #514 > > !\($'" .collect(); //"') : () 00:04:21 v #515 > > !\($'" let cid_bytes = [[vec\![[version]], codec_bytes, 00:04:21 v #516 > > multihash]].concat(); //"') : () 00:04:21 v #517 > > !\($'" let result = multibase::encode(multibase::Base::Base32Lower, 00:04:21 v #518 > > &cid_bytes); //"') : () 00:04:21 v #519 > > !\($'"result"') 00:04:21 v #520 > > 00:04:21 v #521 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:04:21 v #522 > > //// test 00:04:21 v #523 > > ///! rust -c -d multibase sha2 unsigned-varint 00:04:21 v #524 > > 00:04:21 v #525 > > ;[[]] 00:04:21 v #526 > > |> am'.to_vec 00:04:21 v #527 > > |> generate_cid 00:04:21 v #528 > > |> sm'.from_std_string 00:04:21 v #529 > > |> _assert_eq "bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku" 00:05:01 v #530 > > 00:05:01 v #531 > > ── [ 40.70s - return value ] ─────────────────────────────────────────────────── 00:05:01 v #532 > > │ 00:05:01 v #533 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:05:01 v #534 > > total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311718876185 } 00:05:01 v #535 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:05:01 v #536 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:05:01 v #537 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:05:01 v #538 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:05:01 v #539 > > is_success = true; gas_burnt_usd = +0.000670; tokens_burnt_usd = +0.000670; 00:05:01 v #540 > > gas_burnt = 1003637016845; tokens_burnt = 100363701684500000000 } 00:05:01 v #541 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry = 00:05:01 v #542 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } 00:05:01 v #543 > > │ 00:05:01 v #544 > > │ 00:05:01 v #545 > > │ 00:05:01 v #546 > > │ 00:00:04 i #8 near_workspaces.print_usd / { retry = 2; 00:05:01 v #547 > > total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311718876185 } 00:05:01 v #548 > > │ 00:00:04 i #9 near_workspaces.print_usd / outcome / { 00:05:01 v #549 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:05:01 v #550 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:05:01 v #551 > > │ 00:00:04 i #10 near_workspaces.print_usd / outcome / { 00:05:01 v #552 > > is_success = true; gas_burnt_usd = +0.000670; tokens_burnt_usd = +0.000670; 00:05:01 v #553 > > gas_burnt = 1003637016845; tokens_burnt = 100363701684500000000 } 00:05:01 v #554 > > │ 00:00:04 w #11 spiral_wasm.run / Error error / { retry 00:05:01 v #555 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } 00:05:01 v #556 > > │ 00:05:01 v #557 > > │ 00:05:01 v #558 > > │ 00:05:01 v #559 > > │ 00:00:06 i #14 near_workspaces.print_usd / { retry = 3; 00:05:01 v #560 > > total_gas_burnt_usd = +0.000876; total_gas_burnt ...Error error / { retry = 13; 00:05:01 v #561 > > error = "{ receipt_outcomes_len = 1; retry = 13; receipt_failures = [] }" } 00:05:01 v #562 > > │ 00:05:01 v #563 > > │ 00:05:01 v #564 > > │ 00:05:01 v #565 > > │ 00:00:28 i #80 near_workspaces.print_usd / { retry = 00:05:01 v #566 > > 14; total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311718876185 } 00:05:01 v #567 > > │ 00:00:28 i #81 near_workspaces.print_usd / outcome / { 00:05:01 v #568 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:05:01 v #569 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:05:01 v #570 > > │ 00:00:28 i #82 near_workspaces.print_usd / outcome / { 00:05:01 v #571 > > is_success = true; gas_burnt_usd = +0.000670; tokens_burnt_usd = +0.000670; 00:05:01 v #572 > > gas_burnt = 1003637016845; tokens_burnt = 100363701684500000000 } 00:05:01 v #573 > > │ 00:00:28 w #83 spiral_wasm.run / Error error / { retry 00:05:01 v #574 > > = 14; error = "{ receipt_outcomes_len = 1; retry = 14; receipt_failures = [] }" 00:05:01 v #575 > > } 00:05:01 v #576 > > │ 00:05:01 v #577 > > │ 00:05:01 v #578 > > │ 00:05:01 v #579 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry = 00:05:01 v #580 > > 15; total_gas_burnt_usd = +0.000876; total_gas_burnt = 1311718876185 } 00:05:01 v #581 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / { 00:05:01 v #582 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:05:01 v #583 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:05:01 v #584 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / { 00:05:01 v #585 > > is_success = true; gas_burnt_usd = +0.000670; tokens_burnt_usd = +0.000670; 00:05:01 v #586 > > gas_burnt = 1003637016845; tokens_burnt = 100363701684500000000 } 00:05:01 v #587 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry 00:05:01 v #588 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:05:01 v #589 > > } 00:05:01 v #590 > > │ 00:05:01 v #591 > > │ 00:05:01 v #592 > > │ 00:05:01 v #593 > > 00:05:01 v #594 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:05:01 v #595 > > │ ### claim_alias 00:05:01 v #596 > > 00:05:01 v #597 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:05:01 v #598 > > inl claim_alias (state : rust.ref (rust.mut' state)) (alias : sm'.std_string) : 00:05:01 v #599 > > () = 00:05:01 v #600 > > inl account_set : rust.ref (rust.mut' (near.iterable_set near.account_id)) = 00:05:01 v #601 > > !\($'$"&mut !state.1"') 00:05:01 v #602 > > 00:05:01 v #603 > > inl alias_set : rust.ref (rust.mut' (near.iterable_set sm'.std_string)) = 00:05:01 v #604 > > !\($'$"&mut !state.2"') 00:05:01 v #605 > > 00:05:01 v #606 > > inl account_map : rust.ref (rust.mut' (near.lookup_map near.account_id 00:05:01 v #607 > > sm'.std_string)) = 00:05:01 v #608 > > !\($'$"&mut !state.3"') 00:05:01 v #609 > > 00:05:01 v #610 > > inl alias_map : rust.ref (rust.mut' (near.lookup_map sm'.std_string 00:05:01 v #611 > > (mapm.hash_map near.account_id (u64 * u32)))) = 00:05:01 v #612 > > !\($'$"&mut !state.4"') 00:05:01 v #613 > > 00:05:01 v #614 > > inl signer_account_id = near.signer_account_id () 00:05:01 v #615 > > inl predecessor_account_id = near.predecessor_account_id () 00:05:01 v #616 > > inl block_timestamp = near.block_timestamp () 00:05:01 v #617 > > 00:05:01 v #618 > > trace Debug 00:05:01 v #619 > > fun () => "chat_contract.claim_alias" 00:05:01 v #620 > > fun () => { 00:05:01 v #621 > > alias 00:05:01 v #622 > > block_timestamp 00:05:01 v #623 > > signer_account_id = signer_account_id |> sm'.to_string' 00:05:01 v #624 > > predecessor_account_id = predecessor_account_id |> sm'.to_string' 00:05:01 v #625 > > } 00:05:01 v #626 > > 00:05:01 v #627 > > if alias |> is_valid_alias |> not 00:05:01 v #628 > > then near.panic_str "chat_contract.claim_alias / invalid alias" . true 00:05:01 v #629 > > else false 00:05:01 v #630 > > |> ignore 00:05:01 v #631 > > 00:05:01 v #632 > > inl account_alias = 00:05:01 v #633 > > account_map 00:05:01 v #634 > > |> near.lookup_get signer_account_id 00:05:01 v #635 > > |> optionm'.cloned 00:05:01 v #636 > > 00:05:01 v #637 > > match account_alias |> optionm'.unbox with 00:05:01 v #638 > > | Some account_alias when account_alias =. alias => 00:05:01 v #639 > > trace Warning 00:05:01 v #640 > > fun () => "chat_contract.claim_alias / alias already claimed" 00:05:01 v #641 > > fun () => { account_alias = account_alias |> sm'.format_debug } 00:05:01 v #642 > > | account_alias' => 00:05:01 v #643 > > trace Debug 00:05:01 v #644 > > fun () => "chat_contract.claim_alias" 00:05:01 v #645 > > fun () => { account_alias = account_alias |> sm'.format_debug } 00:05:01 v #646 > > 00:05:01 v #647 > > match account_alias' with 00:05:01 v #648 > > | Some account_alias => 00:05:01 v #649 > > !\($'" !alias_map //"') : () 00:05:01 v #650 > > !\($'" .get_mut(&!account_alias) //"') : () 00:05:01 v #651 > > !\($'" .unwrap() //"') : () 00:05:01 v #652 > > !\\(signer_account_id, $'" .remove(&$0); //"') : () 00:05:01 v #653 > > | None => () 00:05:01 v #654 > > 00:05:01 v #655 > > !\\((signer_account_id, alias), $'" !account_map.insert($0.clone(), 00:05:01 v #656 > > $1.clone()); //"') : () 00:05:01 v #657 > > 00:05:01 v #658 > > account_set |> near.iterable_set_insert signer_account_id |> ignore 00:05:01 v #659 > > alias_set |> near.iterable_set_insert alias |> ignore 00:05:01 v #660 > > 00:05:01 v #661 > > !\\(alias, $'" let new_alias_account_map = match !alias_map.get(&$0) { 00:05:01 v #662 > > //"') : () 00:05:01 v #663 > > !\($'" None => { //"') : () 00:05:01 v #664 > > !\($'" let mut new_map = std::collections::HashMap::new(); //"') : 00:05:01 v #665 > > () 00:05:01 v #666 > > !\\((signer_account_id, block_timestamp), $'" new_map.insert($0, 00:05:01 v #667 > > ($1, 0u32)); //"') : () 00:05:01 v #668 > > !\($'" new_map //"') : () 00:05:01 v #669 > > !\($'" } //"') : () 00:05:01 v #670 > > !\($'" Some(accounts) => { //"') : () 00:05:01 v #671 > > !\($'" let mut accounts_vec = accounts.iter().collect::<Vec<_>>(); 00:05:01 v #672 > > //"') : () 00:05:01 v #673 > > !\($'" accounts_vec.sort_unstable_by_key(|(_, (_, index))| index); 00:05:01 v #674 > > //"') : () 00:05:01 v #675 > > !\($'" let mut new_map = accounts_vec //"') : () 00:05:01 v #676 > > !\($'" .iter() //"') : () 00:05:01 v #677 > > !\($'" .enumerate() //"') : () 00:05:01 v #678 > > !\($'" .map(|(i, (signer_account_id, (timestamp, _)))| { //"') : 00:05:01 v #679 > > () 00:05:01 v #680 > > !\($'" ((*signer_account_id).clone(), (*timestamp, i as u32)) 00:05:01 v #681 > > //"') : () 00:05:01 v #682 > > !\($'" }) //"') : () 00:05:01 v #683 > > !\($'" .collect::<std::collections::HashMap<_, _>>(); //"') : () 00:05:01 v #684 > > !\\(signer_account_id, $'" new_map.insert($0, (!block_timestamp, 00:05:01 v #685 > > accounts_vec.len() as u32)); //"') : () 00:05:01 v #686 > > !\($'" new_map //"') : () 00:05:01 v #687 > > !\($'" } //"') : () 00:05:01 v #688 > > !\($'" }; //"') : () 00:05:01 v #689 > > 00:05:01 v #690 > > !\\(alias, $'" !alias_map.insert($0, new_alias_account_map); //"') : () 00:05:02 v #691 > > 00:05:02 v #692 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:05:02 v #693 > > //// test 00:05:02 v #694 > > ///! rust -c 00:05:02 v #695 > > 00:05:02 v #696 > > inl state = new () 00:05:02 v #697 > > inl version = state.version 00:05:02 v #698 > > inl account_set = state.account_set 00:05:02 v #699 > > inl alias_set = state.alias_set 00:05:02 v #700 > > inl account_map = state.account_map 00:05:02 v #701 > > inl alias_map = state.alias_map 00:05:02 v #702 > > inl version = join version 00:05:02 v #703 > > inl account_set = join account_set 00:05:02 v #704 > > inl alias_set = join alias_set 00:05:02 v #705 > > inl account_map = join account_map 00:05:02 v #706 > > inl alias_map = join alias_map 00:05:02 v #707 > > inl state : rust.ref (rust.mut' state) = 00:05:02 v #708 > > !\\( 00:05:02 v #709 > > version, 00:05:02 v #710 > > $'$"&mut ($0, !account_set, !alias_set, !account_map, !alias_map)"' 00:05:02 v #711 > > ) 00:05:02 v #712 > > 00:05:02 v #713 > > "alias1" 00:05:02 v #714 > > |> sm'.to_std_string 00:05:02 v #715 > > |> claim_alias state 00:05:02 v #716 > > 00:05:02 v #717 > > trace Verbose 00:05:02 v #718 > > fun () => "chat_contract" 00:05:02 v #719 > > fun () => { state = state |> sm'.format_debug } 00:05:02 v #720 > > 00:05:02 v #721 > > trace Debug (fun () => "") id 00:05:40 v #722 > > 00:05:40 v #723 > > ── [ 38.20s - return value ] ─────────────────────────────────────────────────── 00:05:40 v #724 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias = 00:05:40 v #725 > > "alias1"; block_timestamp = 1738172416052596431; signer_account_id = 00:05:40 v #726 > > "dev-20250129174015-61814665038191"; predecessor_account_id = 00:05:40 v #727 > > "dev-20250129174015-61814665038191" } 00:05:40 v #728 > > │ 00:00:00 d #2 chat_contract.claim_alias / { 00:05:40 v #729 > > account_alias = None } 00:05:40 v #730 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet 00:05:40 v #731 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, 00:05:40 v #732 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 00:05:40 v #733 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix: 00:05:40 v #734 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: 00:05:40 v #735 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, 00:05:40 v #736 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, 00:05:40 v #737 > > 105, 97, 115, 95, 109, 97, 112] }) } 00:05:40 v #738 > > │ 00:05:40 v #739 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:05:40 v #740 > > total_gas_burnt_usd = +0.002520; total_gas_burnt = 3772408646760 } 00:05:40 v #741 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:05:40 v #742 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:05:40 v #743 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:05:40 v #744 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:05:40 v #745 > > is_success = true; gas_burnt_usd = +0.002314; tokens_burnt_usd = +0.002314; 00:05:40 v #746 > > gas_burnt = 3464326787420; tokens_burnt = 346432678742000000000 } 00:05:40 v #747 > > │ 00:00:02 w #5 spiral_wasm.run / Error error / { retry = 00:05:40 v #748 > > 1; error...er_account_id = "dev-20250129174039-34591833408709"; 00:05:40 v #749 > > predecessor_account_id = "dev-20250129174039-34591833408709" } 00:05:40 v #750 > > │ 00:00:00 d #2 chat_contract.claim_alias / { 00:05:40 v #751 > > account_alias = None } 00:05:40 v #752 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet 00:05:40 v #753 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, 00:05:40 v #754 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 00:05:40 v #755 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix: 00:05:40 v #756 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: 00:05:40 v #757 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, 00:05:40 v #758 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, 00:05:40 v #759 > > 105, 97, 115, 95, 109, 97, 112] }) } 00:05:40 v #760 > > │ 00:05:40 v #761 > > │ 00:00:26 i #74 near_workspaces.print_usd / { retry = 00:05:40 v #762 > > 13; total_gas_burnt_usd = +0.002669; total_gas_burnt = 3995591209260 } 00:05:40 v #763 > > │ 00:00:26 i #75 near_workspaces.print_usd / outcome / { 00:05:40 v #764 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:05:40 v #765 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:05:40 v #766 > > │ 00:00:26 i #76 near_workspaces.print_usd / outcome / { 00:05:40 v #767 > > is_success = true; gas_burnt_usd = +0.002314; tokens_burnt_usd = +0.002314; 00:05:40 v #768 > > gas_burnt = 3464326787420; tokens_burnt = 346432678742000000000 } 00:05:40 v #769 > > │ 00:00:26 i #77 near_workspaces.print_usd / outcome / { 00:05:40 v #770 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; 00:05:40 v #771 > > gas_burnt = 223182562500; tokens_burnt = 0 } 00:05:40 v #772 > > │ 00:05:40 v #773 > > 00:05:40 v #774 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:05:40 v #775 > > //// test 00:05:40 v #776 > > ///! rust \"-c=-e=\\\"chat_contract.claim_alias / invalid alias\\\"\" 00:05:40 v #777 > > 00:05:40 v #778 > > "" 00:05:40 v #779 > > |> sm'.to_std_string 00:05:40 v #780 > > |> claim_alias ( 00:05:40 v #781 > > inl state = new () 00:05:40 v #782 > > inl version = state.version 00:05:40 v #783 > > inl account_set = state.account_set 00:05:40 v #784 > > inl alias_set = state.alias_set 00:05:40 v #785 > > inl account_map = state.account_map 00:05:40 v #786 > > inl alias_map = state.alias_map 00:05:40 v #787 > > !\\(version, $'$"&mut ($0, !account_set, !alias_set, !account_map, 00:05:40 v #788 > > !alias_map)"') 00:05:40 v #789 > > ) 00:05:40 v #790 > > trace Debug (fun () => "") id 00:05:53 v #791 > > 00:05:53 v #792 > > ── [ 13.28s - return value ] ─────────────────────────────────────────────────── 00:05:53 v #793 > > │ 00:05:53 v #794 > > │ 00:00:02 i #2 near_workspaces.print_usd / { retry = 1; 00:05:53 v #795 > > total_gas_burnt_usd = +0.001145; total_gas_burnt = 1713913922898 } 00:05:53 v #796 > > │ 00:00:02 i #3 near_workspaces.print_usd / outcome / { 00:05:53 v #797 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:05:53 v #798 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:05:53 v #799 > > │ 00:00:02 i #4 near_workspaces.print_usd / outcome / { 00:05:53 v #800 > > is_success = false; gas_burnt_usd = +0.000939; tokens_burnt_usd = +0.000939; 00:05:53 v #801 > > gas_burnt = 1405832063558; tokens_burnt = 140583206355800000000 } 00:05:53 v #802 > > │ 00:00:02 c #5 spiral_wasm.run / Ok (Some error) / { 00:05:53 v #803 > > retry = 1; error = { receipt_outcomes_len = 1; retry = 1; receipt_failures = [ 00:05:53 v #804 > > │ ExecutionOutcome { 00:05:53 v #805 > > │ transaction_hash: 00:05:53 v #806 > > CCBe8C3JRgdahWnm72JrvqByAN7vTbGXBGQUbCQTQ6cS, 00:05:53 v #807 > > │ block_hash: 00:05:53 v #808 > > Eeib3eAKbCiE6nPpvnimkdEqf5MJuiqJX4EiMyvni7Av, 00:05:53 v #809 > > │ logs: [], 00:05:53 v #810 > > │ receipt_ids: [ 00:05:53 v #811 > > │ HkL8xuK9oyycKJTVwhZkFsrH3e8vNPGfn2ufj3HbijhC, 00:05:53 v #812 > > │ ], 00:05:53 v #813 > > │ gas_burnt: NearGas { 00:05:53 v #814 > > │ inner: 1405832063558, 00:05:53 v #815 > > │ }, 00:05:53 v #816 > > │ tokens_burnt: NearToken { 00:05:53 v #817 > > │ inner: 140583206355800000000, 00:05:53 v #818 > > │ }, 00:05:53 v #819 > > │ executor_id: AccountId( 00:05:53 v #820 > > │ "dev-20250129174053-67029412443504", 00:05:53 v #821 > > │ ), 00:05:53 v #822 > > │ status: Failure(ActionError(ActionError { index: 00:05:53 v #823 > > Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: 00:05:53 v #824 > > chat_contract.claim_alias / invalid alias")) })), 00:05:53 v #825 > > │ }, 00:05:53 v #826 > > │ ] } } 00:05:53 v #827 > > │ 00:05:53 v #828 > > 00:05:53 v #829 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:05:53 v #830 > > //// test 00:05:53 v #831 > > ///! rust -cd borsh 00:05:53 v #832 > > 00:05:53 v #833 > > inl state' = new () 00:05:53 v #834 > > inl state = state' 00:05:53 v #835 > > inl version = state.version 00:05:53 v #836 > > inl account_set = state.account_set 00:05:53 v #837 > > inl alias_set = state.alias_set 00:05:53 v #838 > > inl account_map = state.account_map 00:05:53 v #839 > > inl alias_map = state.alias_map 00:05:53 v #840 > > inl version = join version 00:05:53 v #841 > > inl account_set = join account_set 00:05:53 v #842 > > inl alias_set = join alias_set 00:05:53 v #843 > > inl account_map = join account_map 00:05:53 v #844 > > inl alias_map = join alias_map 00:05:53 v #845 > > 00:05:53 v #846 > > inl state = 00:05:53 v #847 > > !\\( 00:05:53 v #848 > > (version, account_set, alias_set), 00:05:53 v #849 > > $'$"&mut ($0, $1, $2, !account_map, !alias_map)"' 00:05:53 v #850 > > ) 00:05:53 v #851 > > 00:05:53 v #852 > > "alias1" 00:05:53 v #853 > > |> sm'.to_std_string 00:05:53 v #854 > > |> claim_alias state 00:05:53 v #855 > > 00:05:53 v #856 > > "alias1" 00:05:53 v #857 > > |> sm'.to_std_string 00:05:53 v #858 > > |> claim_alias state 00:05:53 v #859 > > 00:05:53 v #860 > > "alias1" 00:05:53 v #861 > > |> sm'.to_std_string 00:05:53 v #862 > > |> claim_alias state 00:05:53 v #863 > > 00:05:53 v #864 > > inl account_set' : rust.ref (near.iterable_set near.account_id) = 00:05:53 v #865 > > !\($'$"&!state.1"') 00:05:53 v #866 > > 00:05:53 v #867 > > inl alias_set' : rust.ref (near.iterable_set sm'.std_string) = 00:05:53 v #868 > > !\($'$"&!state.2"') 00:05:53 v #869 > > 00:05:53 v #870 > > inl account_set' = 00:05:53 v #871 > > account_set' 00:05:53 v #872 > > |> iter.iter_ref'' 00:05:53 v #873 > > |> iter.cloned 00:05:53 v #874 > > |> iter_collect 00:05:53 v #875 > > 00:05:53 v #876 > > inl alias_set' = 00:05:53 v #877 > > alias_set' 00:05:53 v #878 > > |> iter.iter_ref'' 00:05:53 v #879 > > |> iter.cloned 00:05:53 v #880 > > |> iter_collect 00:05:53 v #881 > > |> am'.vec_map sm'.from_std_string 00:05:53 v #882 > > 00:05:53 v #883 > > trace Verbose 00:05:53 v #884 > > fun () => "chat_contract" 00:05:53 v #885 > > fun () => { 00:05:53 v #886 > > account_set' = account_set' |> sm'.format_debug 00:05:53 v #887 > > alias_set' = alias_set' |> sm'.format_debug 00:05:53 v #888 > > state = state |> sm'.format_debug 00:05:53 v #889 > > } 00:05:53 v #890 > > 00:05:53 v #891 > > trace Debug (fun () => "") id 00:05:53 v #892 > > 00:05:53 v #893 > > account_set' 00:05:53 v #894 > > |> am'.vec_len 00:05:53 v #895 > > |> convert 00:05:53 v #896 > > |> _assert_eq 1u32 00:05:53 v #897 > > 00:05:53 v #898 > > alias_set' 00:05:53 v #899 > > |> am'.from_vec_base 00:05:53 v #900 > > |> _assert_eq' ;[[ "alias1" ]] 00:06:35 v #901 > > 00:06:35 v #902 > > ── [ 42.47s - return value ] ─────────────────────────────────────────────────── 00:06:35 v #903 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias = 00:06:35 v #904 > > "alias1"; block_timestamp = 1738172468225637508; signer_account_id = 00:06:35 v #905 > > "dev-20250129174107-41489110006539"; predecessor_account_id = 00:06:35 v #906 > > "dev-20250129174107-41489110006539" } 00:06:35 v #907 > > │ 00:00:00 d #2 chat_contract.claim_alias / { 00:06:35 v #908 > > account_alias = None } 00:06:35 v #909 > > │ 00:00:00 d #3 chat_contract.claim_alias / { alias = 00:06:35 v #910 > > "alias1"; block_timestamp = 1738172468225637508; signer_account_id = 00:06:35 v #911 > > "dev-20250129174107-41489110006539"; predecessor_account_id = 00:06:35 v #912 > > "dev-20250129174107-41489110006539" } 00:06:35 v #913 > > │ 00:00:00 d #4 chat_contract.claim_alias / { 00:06:35 v #914 > > account_alias = Some("alias1") } 00:06:35 v #915 > > │ 00:00:00 d #5 chat_contract.claim_alias / { alias = 00:06:35 v #916 > > "alias1"; block_timestamp = 1738172468225637508; signer_account_id = 00:06:35 v #917 > > "dev-20250129174107-41489110006539"; predecessor_account_id = 00:06:35 v #918 > > "dev-20250129174107-41489110006539" } 00:06:35 v #919 > > │ 00:00:00 d #6 chat_contract.claim_alias / { 00:06:35 v #920 > > account_alias = Some("alias1") } 00:06:35 v #921 > > │ 00:00:00 v #7 chat_contract / { account_set' = 00:06:35 v #922 > > [AccountId("dev-20250129174107-41489110006539")]; alias_set' = ["alias1"]; state 00:06:35 v #923 > > = (2, IterableSet { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 00:06:35 v #924 > > 110, 116, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 00:06:35 v #925 > > 111, 117, 110, 116, 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector 00:06:35 v #926 > > { len: 1, prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: 00:06:35 v #927 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, 00:06:35 v #928 > > LookupMap { prefix: [97, 99, 99, ...r_account_id = 00:06:35 v #929 > > "dev-20250129174135-24365451682101" } 00:06:35 v #930 > > │ 00:00:00 d #6 chat_contract.claim_alias / { 00:06:35 v #931 > > account_alias = Some("alias1") } 00:06:35 v #932 > > │ 00:00:00 v #7 chat_contract / { account_set' = 00:06:35 v #933 > > [AccountId("dev-20250129174135-24365451682101")]; alias_set' = ["alias1"]; state 00:06:35 v #934 > > = (2, IterableSet { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 00:06:35 v #935 > > 110, 116, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 00:06:35 v #936 > > 111, 117, 110, 116, 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector 00:06:35 v #937 > > { len: 1, prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: 00:06:35 v #938 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, 00:06:35 v #939 > > LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, 00:06:35 v #940 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 109, 97, 112] }) } 00:06:35 v #941 > > │ 00:06:35 v #942 > > │ 00:00:30 i #86 near_workspaces.print_usd / { retry = 00:06:35 v #943 > > 15; total_gas_burnt_usd = +0.004333; total_gas_burnt = 6487171869662 } 00:06:35 v #944 > > │ 00:00:30 i #87 near_workspaces.print_usd / outcome / { 00:06:35 v #945 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; 00:06:35 v #946 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } 00:06:35 v #947 > > │ 00:00:30 i #88 near_workspaces.print_usd / outcome / { 00:06:35 v #948 > > is_success = true; gas_burnt_usd = +0.004128; tokens_burnt_usd = +0.004128; 00:06:35 v #949 > > gas_burnt = 6179090010322; tokens_burnt = 617909001032200000000 } 00:06:35 v #950 > > │ 00:00:30 w #89 spiral_wasm.run / Error error / { retry 00:06:35 v #951 > > = 15; error = "{ receipt_outcomes_len = 1; retry = 15; receipt_failures = [] }" 00:06:35 v #952 > > } 00:06:35 v #953 > > │ 00:06:35 v #954 > > │ 00:06:35 v #955 > > │ 00:06:35 v #956 > > 00:06:35 v #957 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:06:35 v #958 > > │ ### get_account_info 00:06:35 v #959 > > 00:06:35 v #960 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:06:35 v #961 > > inl get_account_info 00:06:35 v #962 > > (state : rust.ref state) 00:06:35 v #963 > > (account_id : near.account_id) 00:06:35 v #964 > > : optionm'.option' (sm'.std_string * (u64 * u32)) 00:06:35 v #965 > > = 00:06:35 v #966 > > inl account_map : rust.ref (near.lookup_map near.account_id sm'.std_string) 00:06:35 v #967 > > = 00:06:35 v #968 > > !\($'$"&!state.3"') 00:06:35 v #969 > > 00:06:35 v #970 > > inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map 00:06:35 v #971 > > near.account_id (u64 * u32))) = 00:06:35 v #972 > > !\($'$"&!state.4"') 00:06:35 v #973 > > 00:06:35 v #974 > > !\\(account_id, $'"let result = !account_map.get(&$0).and_then(|alias| { 00:06:35 v #975 > > //"') : () 00:06:35 v #976 > > !\($'" !alias_map //"') : () 00:06:35 v #977 > > !\($'" .get(alias) //"') : () 00:06:35 v #978 > > !\($'" .map(|accounts| { //"') : () 00:06:35 v #979 > > !\($'" let result = (alias.clone(), 00:06:35 v #980 > > *accounts.get(&!account_id).unwrap()); //"') : () 00:06:35 v #981 > > !\($'" (result.0, result.1.0, result.1.1) //"') : () 00:06:35 v #982 > > !\($'" }) //"') : () 00:06:35 v #983 > > !\($'"}); //"') : () 00:06:35 v #984 > > 00:06:35 v #985 > > inl result = !\($'"result"') 00:06:35 v #986 > > 00:06:35 v #987 > > trace Debug 00:06:35 v #988 > > fun () => "chat_contract.get_account_info" 00:06:35 v #989 > > fun () => { account_id result } 00:06:35 v #990 > > 00:06:35 v #991 > > trace Debug (fun () => "") id 00:06:35 v #992 > > 00:06:35 v #993 > > result 00:06:36 v #994 > > 00:06:36 v #995 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:06:36 v #996 > > │ ### main 00:06:36 v #997 > > 00:06:36 v #998 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:06:36 v #999 > > ///! _ 00:06:36 v #1000 > > 00:06:36 v #1001 > > inl main () = 00:06:36 v #1002 > > !\($'"} //"') : () 00:06:36 v #1003 > > 00:06:36 v #1004 > > !\($'"#[[near_sdk::near_bindgen]] //"') : () 00:06:36 v #1005 > > 00:06:36 v #1006 > > !\($'"#[[derive( //"') : () 00:06:36 v #1007 > > !\($'" near_sdk::PanicOnDefault, //"') : () 00:06:36 v #1008 > > !\($'" borsh::BorshDeserialize, //"') : () 00:06:36 v #1009 > > !\($'" borsh::BorshSerialize, //"') : () 00:06:36 v #1010 > > !\($'")]] //"') : () 00:06:36 v #1011 > > 00:06:36 v #1012 > > !\($'"pub struct State ( //"') : () 00:06:36 v #1013 > > 00:06:36 v #1014 > > !\($'"/*"') : () 00:06:36 v #1015 > > (null () : rust.type_emit state) |> ignore 00:06:36 v #1016 > > !\($'"*/ )"') : () 00:06:36 v #1017 > > 00:06:36 v #1018 > > inl new_ () = 00:06:36 v #1019 > > !\($'"#[[init]] //"') : () 00:06:36 v #1020 > > !\($'"pub fn new() -> Self { // 1"') : () 00:06:36 v #1021 > > 00:06:36 v #1022 > > (!\($'"true; /*"') : bool) |> ignore 00:06:36 v #1023 > > 00:06:36 v #1024 > > (null () : rust.type_emit ()) |> ignore 00:06:36 v #1025 > > 00:06:36 v #1026 > > (!\($'"true; */"') : bool) |> ignore 00:06:36 v #1027 > > 00:06:36 v #1028 > > inl result = new () 00:06:36 v #1029 > > 00:06:36 v #1030 > > $'let _result = !result in _result |> (fun x -> 00:06:36 v #1031 > > Fable.Core.RustInterop.emitRustExpr x $"Self($0) // x") // 2' : () 00:06:36 v #1032 > > 00:06:36 v #1033 > > !\($'"} // 2."') : () 00:06:36 v #1034 > > 00:06:36 v #1035 > > !\($'"} // 1."') : () 00:06:36 v #1036 > > 00:06:36 v #1037 > > 2 00:06:36 v #1038 > > 00:06:36 v #1039 > > inl is_valid_alias () = 00:06:36 v #1040 > > !\($'"fn is_valid_alias(alias: String) -> bool { //"') : () 00:06:36 v #1041 > > inl alias = !\($'$"alias"') 00:06:36 v #1042 > > inl result = alias |> is_valid_alias 00:06:36 v #1043 > > $'let _result = !result in _result |> (fun x -> 00:06:36 v #1044 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : () 00:06:36 v #1045 > > !\($'"} //"') : () 00:06:36 v #1046 > > 1 00:06:36 v #1047 > > 00:06:36 v #1048 > > inl generate_cid () = 00:06:36 v #1049 > > !\($'"pub fn generate_cid( //"') : () 00:06:36 v #1050 > > !\($'" &self, //"') : () 00:06:36 v #1051 > > !\($'" content: Vec<u8>, //"') : () 00:06:36 v #1052 > > !\($'") -> String { //"') : () 00:06:36 v #1053 > > inl content = !\($'$"content"') 00:06:36 v #1054 > > inl result = generate_cid content 00:06:36 v #1055 > > $'let _result = !result in _result |> (fun x -> 00:06:36 v #1056 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : () 00:06:36 v #1057 > > !\($'"} //"') : () 00:06:36 v #1058 > > 2 00:06:36 v #1059 > > 00:06:36 v #1060 > > inl generate_cid_borsh () = 00:06:36 v #1061 > > !\($'"#[[result_serializer(borsh)]] //"') : () 00:06:36 v #1062 > > !\($'"pub fn generate_cid_borsh( //"') : () 00:06:36 v #1063 > > !\($'" &self, //"') : () 00:06:36 v #1064 > > !\($'" #[[serializer(borsh)]] content: Vec<u8>, //"') : () 00:06:36 v #1065 > > !\($'") -> String { //"') : () 00:06:36 v #1066 > > !\($'" self.generate_cid(content) //"') : () 00:06:36 v #1067 > > !\($'"} //"') : () 00:06:36 v #1068 > > 1 00:06:36 v #1069 > > 00:06:36 v #1070 > > inl claim_alias () = 00:06:36 v #1071 > > !\($'"pub fn claim_alias( //"') : () 00:06:36 v #1072 > > !\($'" &mut self, //"') : () 00:06:36 v #1073 > > !\($'" alias: String, //"') : () 00:06:36 v #1074 > > !\($'") { //"') : () 00:06:36 v #1075 > > 00:06:36 v #1076 > > inl state = !\($'$"&mut self.0"') 00:06:36 v #1077 > > inl alias = !\($'$"alias"') 00:06:36 v #1078 > > 00:06:36 v #1079 > > inl result = claim_alias state alias 00:06:36 v #1080 > > trace Debug (fun () => "") (join id) 00:06:36 v #1081 > > 00:06:36 v #1082 > > !\($'"} //"') : () 00:06:36 v #1083 > > 00:06:36 v #1084 > > !\($'"} //"') : () 00:06:36 v #1085 > > 00:06:36 v #1086 > > !\($'"} //"') : () 00:06:36 v #1087 > > 00:06:36 v #1088 > > 3 00:06:36 v #1089 > > 00:06:36 v #1090 > > inl get_account_info () = 00:06:36 v #1091 > > !\($'"pub fn get_account_info( //"') : () 00:06:36 v #1092 > > !\($'" &self, //"') : () 00:06:36 v #1093 > > !\($'" account_id: near_sdk::AccountId, //"') : () 00:06:36 v #1094 > > !\($'") -> Option<(String, u64, u32)> { //"') : () 00:06:36 v #1095 > > 00:06:36 v #1096 > > inl state = !\($'$"&self.0"') 00:06:36 v #1097 > > inl account_id : near.account_id = !\($'$"account_id"') 00:06:36 v #1098 > > 00:06:36 v #1099 > > inl result = account_id |> get_account_info state 00:06:36 v #1100 > > $'let _result = !result in _result |> (fun x -> 00:06:36 v #1101 > > Fable.Core.RustInterop.emitRustExpr x "$0 } // 4") // 3' : () 00:06:36 v #1102 > > 00:06:36 v #1103 > > !\($'"} // 2"') : () 00:06:36 v #1104 > > 00:06:36 v #1105 > > !\($'"} // 1"') : () 00:06:36 v #1106 > > 00:06:36 v #1107 > > 2 00:06:36 v #1108 > > 00:06:36 v #1109 > > inl get_alias_map () = 00:06:36 v #1110 > > !\($'"pub fn get_alias_map( //"') : () 00:06:36 v #1111 > > !\($'" &self, //"') : () 00:06:36 v #1112 > > !\($'" alias: String, //"') : () 00:06:36 v #1113 > > !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64, 00:06:36 v #1114 > > u32)>> { //"') : () 00:06:36 v #1115 > > 00:06:36 v #1116 > > inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map 00:06:36 v #1117 > > near.account_id (u64 * u32))) = 00:06:36 v #1118 > > !\($'$"&self.0.4"') 00:06:36 v #1119 > > 00:06:36 v #1120 > > inl alias : sm'.std_string = !\($'$"alias"') 00:06:36 v #1121 > > 00:06:36 v #1122 > > trace Debug 00:06:36 v #1123 > > fun () => "chat_contract.get_alias_map" 00:06:36 v #1124 > > fun () => { alias } 00:06:36 v #1125 > > 00:06:36 v #1126 > > trace Debug (fun () => "") (join id) 00:06:36 v #1127 > > 00:06:36 v #1128 > > !\\(alias, $'" !alias_map.get(&$0).cloned() //"') : () 00:06:36 v #1129 > > !\($'"} //"') : () 00:06:36 v #1130 > > 00:06:36 v #1131 > > !\($'"} //"') : () 00:06:36 v #1132 > > 00:06:36 v #1133 > > 2 00:06:36 v #1134 > > 00:06:36 v #1135 > > inl get_alias_map_borsh () = 00:06:36 v #1136 > > !\($'"#[[result_serializer(borsh)]] //"') : () 00:06:36 v #1137 > > !\($'"pub fn get_alias_map_borsh( //"') : () 00:06:36 v #1138 > > !\($'" &self, //"') : () 00:06:36 v #1139 > > !\($'" #[[serializer(borsh)]] alias: String, //"') : () 00:06:36 v #1140 > > !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64, 00:06:36 v #1141 > > u32)>> { //"') : () 00:06:36 v #1142 > > !\($'" self.get_alias_map(alias) //"') : () 00:06:36 v #1143 > > !\($'"} //"') : () 00:06:36 v #1144 > > 1 00:06:36 v #1145 > > 00:06:36 v #1146 > > inl fns = 00:06:36 v #1147 > > [[ 00:06:36 v #1148 > > new_ 00:06:36 v #1149 > > is_valid_alias 00:06:36 v #1150 > > generate_cid 00:06:36 v #1151 > > generate_cid_borsh 00:06:36 v #1152 > > claim_alias 00:06:36 v #1153 > > get_account_info 00:06:36 v #1154 > > get_alias_map 00:06:36 v #1155 > > get_alias_map_borsh 00:06:36 v #1156 > > ]] 00:06:36 v #1157 > > 00:06:36 v #1158 > > inl rec loop acc fns i = 00:06:36 v #1159 > > match fns with 00:06:36 v #1160 > > | [[]] => acc 00:06:36 v #1161 > > | x :: xs => 00:06:36 v #1162 > > !\($'"#[[near_sdk::near_bindgen]] //"') : () 00:06:36 v #1163 > > !\($'"impl State { //"') : () 00:06:36 v #1164 > > inl n = x () 00:06:36 v #1165 > > !\($'"} /* c"') : () 00:06:36 v #1166 > > inl rec loop' i' = 00:06:36 v #1167 > > if i' <> 1 // <= n 00:06:36 v #1168 > > then (!\($'"true; */ // ???? / i: !i / i\': !i' / acc: !acc / n: 00:06:36 v #1169 > > !n"') : bool) |> ignore 00:06:36 v #1170 > > else 00:06:36 v #1171 > > (!\($'"true; // ??? / i: !i / i\': !i' / acc: !acc / n: 00:06:36 v #1172 > > !n"') : bool) |> ignore 00:06:36 v #1173 > > loop' (i' + 1) 00:06:36 v #1174 > > loop' 1u8 00:06:36 v #1175 > > loop (acc + n) xs (i + 1) 00:06:36 v #1176 > > inl n = loop 0u8 fns 1u8 00:06:36 v #1177 > > 00:06:36 v #1178 > > 00:06:36 v #1179 > > // !\($'"/* a"') : () 00:06:36 v #1180 > > 00:06:36 v #1181 > > // !\($'"} // b"') : () 00:06:36 v #1182 > > 00:06:36 v #1183 > > !\($'"fn _main() //"') : () 00:06:36 v #1184 > > !\($'"{ { //"') : () 00:06:36 v #1185 > > 00:06:36 v #1186 > > inl rec loop' i' = 00:06:36 v #1187 > > if i' <= n 00:06:36 v #1188 > > then 00:06:36 v #1189 > > (!\($'"true; { (); // ?? / i\': !i' / n: !n"') : bool) |> ignore 00:06:36 v #1190 > > loop' (i' + 1) 00:06:36 v #1191 > > else 00:06:36 v #1192 > > (!\($'"true; { { (); // ? / i\': !i' / n: !n"') : bool) |> ignore 00:06:36 v #1193 > > // (!\($'"true; */ // ?? / i\': !i' / n: !n"') : bool) |> ignore 00:06:36 v #1194 > > loop' 1u8 00:06:36 v #1195 > > 00:06:36 v #1196 > > inl main () = 00:06:36 v #1197 > > $'!main |> ignore' : () 00:06:36 v #1198 > 00:06:35 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 55067 } 00:06:36 v #1199 > 00:06:35 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:06:37 v #1200 > 00:06:35 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.ipynb to html 00:06:37 v #1201 > 00:06:35 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:06:37 v #1202 > 00:06:35 v #7 ! validate(nb) 00:06:37 v #1203 > 00:06:36 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:06:37 v #1204 > 00:06:36 v #9 ! return _pygments_highlight( 00:06:38 v #1205 > 00:06:36 v #10 ! [NbConvertApp] Writing 519079 bytes to /home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.html 00:06:38 v #1206 > 00:06:36 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 926 } 00:06:38 v #1207 > 00:06:36 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 926 } 00:06:38 v #1208 > 00:06:36 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:06:38 v #1209 > 00:06:37 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:06:38 v #1210 > 00:06:37 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:06:38 v #1211 > 00:06:37 d #16 spiral.run / dib / { exit_code = 0; result_length = 56052 } 00:06:38 d #1212 runtime.execute_with_options_async / { exit_code = 0; output_length = 61210 } 00:06:38 d #3 main / executeCommand / exitCode: 0 / command: ../../../deps/spiral/workspace/target/release/spiral dib --path chat_contract.dib --retries 5 00:06:38 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 writeDibCode / output: Spi / path: chat_contract.dib 00:00:00 d #2 parseDibCode / output: Spi / file: chat_contract.dib 00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 v #29 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # chat_contract\nopen rust\nopen rust.rust_operators\n\n/// ## chat_cont...27 : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.spi"}} / result: 00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/apps/chat/contract/chat_contract.spi"}} / result: 00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("*/ $0 /*")>] #endif type TypeEmit<'T> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end #else type Ref<'T> = 'T #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::IterableSet<$0>")>] #endif type near_sdk_store_IterableSet<'T> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::LookupMap<$0, $1>")>] #endif type near_sdk_store_LookupMap<'K, 'V> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end #else type std_string_String = string #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("mut $0...nterop.emitRustExpr () v802 let v804 : string = "true; { (); // ?? / i': 11uy / n: 14uy" let v805 : bool = Fable.Core.RustInterop.emitRustExpr () v804 let v806 : string = "true; { (); // ?? / i': 12uy / n: 14uy" let v807 : bool = Fable.Core.RustInterop.emitRustExpr () v806 let v808 : string = "true; { (); // ?? / i': 13uy / n: 14uy" let v809 : bool = Fable.Core.RustInterop.emitRustExpr () v808 let v810 : string = "true; { (); // ?? / i': 14uy / n: 14uy" let v811 : bool = Fable.Core.RustInterop.emitRustExpr () v810 let v812 : string = "true; { { (); // ? / i': 15uy / n: 14uy" let v813 : bool = Fable.Core.RustInterop.emitRustExpr () v812 () let v0 : (unit -> unit) = closure0() v0 |> ignore () 00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("*/ $0 /*")>] #endif type TypeEmit<'T> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end #else type Ref<'T> = 'T #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::IterableSet<$0>")>] #endif type near_sdk_store_IterableSet<'T> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("near_sdk::store::LookupMap<$0, $1>")>] #endif type near_sdk_store_LookupMap<'K, 'V> = class end #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end #else type std_string_String = string #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("mut $0...nterop.emitRustExpr () v802 let v804 : string = "true; { (); // ?? / i': 11uy / n: 14uy" let v805 : bool = Fable.Core.RustInterop.emitRustExpr () v804 let v806 : string = "true; { (); // ?? / i': 12uy / n: 14uy" let v807 : bool = Fable.Core.RustInterop.emitRustExpr () v806 let v808 : string = "true; { (); // ?? / i': 13uy / n: 14uy" let v809 : bool = Fable.Core.RustInterop.emitRustExpr () v808 let v810 : string = "true; { (); // ?? / i': 14uy / n: 14uy" let v811 : bool = Fable.Core.RustInterop.emitRustExpr () v810 let v812 : string = "true; { { (); // ? / i': 15uy / n: 14uy" let v813 : bool = Fable.Core.RustInterop.emitRustExpr () v812 () let v0 : (unit -> unit) = closure0() v0 |> ignore () 00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite 00:00:04 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: chat_contract / hash: / code.Length: 144141 00:00:00 d #2 buildProject / fullPath: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 "publish "/home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/chat/contract/dist" --runtime linux-x64"; options = { command = dotnet publish "/home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj" --configuration Release --output "/home/runner/work/polyglot/polyglot/apps/chat/contract/dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot/target/Builder/chat_contract" } } 00:00:00 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds 00:00:01 v #6 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #7 > Restoring /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj 00:00:01 v #8 > Starting restore process. 00:00:01 v #9 > Total time taken: 0 milliseconds 00:00:02 v #10 > Restored /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj (in 308 ms). 00:00:07 v #11 > /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fs(3284,15): warning FS0025: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). [/home/runner/work/polyglot/polyglot/target/Builder/chat_contract/chat_contract.fsproj] 00:00:11 v #12 > chat_contract -> /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/bin/Release/net9.0/linux-x64/chat_contract.dll 00:00:11 v #13 > chat_contract -> /home/runner/work/polyglot/polyglot/apps/chat/contract/dist 00:00:11 d #14 runtime.execute_with_options_async / { exit_code = 0; output_length = 1073 } polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/chat_contract spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target: / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract / ProjectName: chat_contract / Language: rs / Runtime: CONTRACT / root: /home/runner/work/polyglot/polyglot Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha) Thanks to the contributor! @jmmk Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target/Builder/chat_contract/chat_contract.fsproj... Project and references (14 source files) parsed in 2448ms Started Fable compilation... Fable compilation finished in 7945ms ./target/Builder/chat_contract/chat_contract.fs(3284,15): (3284,19) warning FSHARP: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). (code 25) ./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./target/Builder/chat_contract/chat_contract.fs(3502,6): (3502,12) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async__contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async__contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace_contract.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib_contract.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib_contract.rs Downloading crates ... Downloaded serde_derive v1.0.216 Downloaded rustversion v1.0.18 Downloaded wasm-bindgen-macro v0.2.99 Downloaded js-sys v0.3.76 Downloaded wasm-bindgen-macro-support v0.2.99 Downloaded wasm-bindgen-shared v0.2.99 Downloaded wasm-bindgen v0.2.99 Downloaded data-encoding-macro v0.1.15 Downloaded wasm-bindgen-backend v0.2.99 Downloaded near-sdk-macros v5.6.0 Downloaded data-encoding v2.6.0 Downloaded data-encoding-macro-internal v0.1.13 Downloaded near-sdk v5.6.0 Compiling proc-macro2 v1.0.92 Compiling unicode-ident v1.0.14 Compiling equivalent v1.0.1 Compiling wasm-bindgen-shared v0.2.99 Compiling hashbrown v0.15.2 Compiling toml_datetime v0.6.8 Compiling winnow v0.6.20 Compiling cfg_aliases v0.2.1 Compiling typenum v1.17.0 Compiling indexmap v2.7.0 Compiling quote v1.0.37 Compiling bumpalo v3.16.0 Compiling syn v2.0.90 Compiling log v0.4.22 Compiling serde v1.0.216 Compiling borsh v1.5.3 Compiling serde_json v1.0.133 Compiling once_cell v1.20.2 Compiling syn v1.0.109 Compiling toml_edit v0.22.22 Compiling wasm-bindgen v0.2.99 Compiling cfg-if v1.0.0 Compiling fnv v1.0.7 Compiling rustversion v1.0.18 Compiling ident_case v1.0.1 Compiling hybrid-array v0.2.3 Compiling proc-macro-crate v3.2.0 Compiling data-encoding v2.6.0 Compiling itoa v1.0.14 Compiling memchr v2.7.4 Compiling heck v0.5.0 Compiling near-sdk-macros v5.6.0 Compiling wee_alloc v0.4.5 Compiling wasm-bindgen-backend v0.2.99 Compiling darling_core v0.20.10 Compiling ryu v1.0.18 Compiling data-encoding-macro-internal v0.1.13 Compiling block-buffer v0.11.0-rc.3 Compiling crypto-common v0.2.0-rc.1 Compiling wasm-bindgen-macro-support v0.2.99 Compiling serde_derive v1.0.216 Compiling borsh-derive v1.5.3 Compiling darling_macro v0.20.10 Compiling wasm-bindgen-macro v0.2.99 Compiling darling v0.20.10 Compiling strum_macros v0.26.4 Compiling js-sys v0.3.76 Compiling strum v0.26.3 Compiling Inflector v0.11.4 Compiling memory_units v0.4.0 Compiling cfg-if v0.1.10 Compiling const-oid v0.10.0-rc.3 Compiling digest v0.11.0-pre.9 Compiling data-encoding-macro v0.1.15 Compiling base-x v0.2.11 Compiling near-sys v0.2.2 Compiling base64 v0.22.1 Compiling bs58 v0.5.1 Compiling multibase v0.9.1 Compiling sha2 v0.11.0-pre.4 Compiling unsigned-varint v0.8.0 Compiling inline_colorization v0.1.6 Compiling near-account-id v1.0.0 Compiling near-token v0.3.0 Compiling near-gas v0.3.0 Compiling getrandom v0.2.15 Compiling fable_library_rust v0.1.0 (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library-rust) Compiling near-sdk v5.6.0 Compiling chat_contract v0.0.1 (/home/runner/work/polyglot/polyglot/apps/chat/contract) Finished `release` profile [optimized] target(s) in 20.90s Downloading crates ... Downloaded hyper-rustls v0.27.3 Downloaded pin-project-internal v1.1.7 Downloaded near-sandbox-utils v0.12.0 Downloaded async-trait v0.1.83 Downloaded open v5.3.1 Downloaded ordered-float v4.5.0 Downloaded tokio-macros v2.4.0 Downloaded pin-project v1.1.7 Downloaded serde_with_macros v3.11.0 Downloaded tempfile v3.14.0 Downloaded xml-rs v0.8.24 Downloaded cc v1.2.4 Downloaded anyhow v1.0.94 Downloaded serde_with v3.11.0 Downloaded hyper v1.5.1 Downloaded reqwest v0.12.9 Downloaded hyper v0.14.31 Downloaded rustix v0.37.27 Downloaded tokio v1.42.0 Compiling proc-macro2 v1.0.92 Compiling unicode-ident v1.0.14 Compiling libc v0.2.168 Compiling serde v1.0.216 Compiling version_check v0.9.5 Compiling shlex v1.3.0 Compiling once_cell v1.20.2 Compiling quote v1.0.37 Compiling jobserver v0.1.32 Compiling typenum v1.17.0 Compiling syn v2.0.90 Compiling cc v1.2.4 Compiling generic-array v0.14.7 Compiling smallvec v1.13.2 Compiling pkg-config v0.3.31 Compiling futures-core v0.3.31 Compiling lock_api v0.4.12 Compiling parking_lot_core v0.9.10 Compiling scopeguard v1.2.0 Compiling byteorder v1.5.0 Compiling bytes v1.9.0 Compiling log v0.4.22 Compiling parking_lot v0.12.3 Compiling signal-hook-registry v1.4.2 Compiling getrandom v0.2.15 Compiling hashbrown v0.15.2 Compiling equivalent v1.0.1 Compiling toml_datetime v0.6.8 Compiling tracing-core v0.1.33 Compiling futures-io v0.3.31 Compiling socket2 v0.5.8 Compiling indexmap v2.7.0 Compiling mio v1.0.3 Compiling subtle v2.6.1 Compiling futures-sink v0.3.31 Compiling rand_core v0.6.4 Compiling crypto-common v0.1.6 Compiling futures-channel v0.3.31 Compiling synstructure v0.13.1 Compiling anyhow v1.0.94 Compiling block-buffer v0.10.4 Compiling num-traits v0.2.19 Compiling syn v1.0.109 Compiling fnv v1.0.7 Compiling cfg_aliases v0.2.1 Compiling digest v0.10.7 Compiling winnow v0.6.20 Compiling zstd-sys v2.0.13+zstd.1.5.6 Compiling rustversion v1.0.18 Compiling crossbeam-utils v0.8.21 Compiling lazy_static v1.5.0 Compiling bitflags v2.6.0 Compiling serde_derive v1.0.216 Compiling zerofrom-derive v0.1.5 Compiling yoke-derive v0.7.5 Compiling zerovec-derive v0.10.3 Compiling tracing-attributes v0.1.28 Compiling tokio-macros v2.4.0 Compiling tokio v1.42.0 Compiling tracing v0.1.41 Compiling displaydoc v0.2.5 Compiling futures-macro v0.3.31 Compiling futures-util v0.3.31 Compiling zerocopy-derive v0.7.35 Compiling zerocopy v0.7.35 Compiling toml_edit v0.22.22 Compiling icu_provider_macros v1.5.0 Compiling thiserror v1.0.69 Compiling proc-macro-crate v3.2.0 Compiling ppv-lite86 v0.2.20 Compiling thiserror-impl v1.0.69 Compiling borsh-derive v1.5.3 Compiling rand_chacha v0.3.1 Compiling serde_json v1.0.133 Compiling rand v0.8.5 Compiling borsh v1.5.3 Compiling stable_deref_trait v1.2.0 Compiling tokio-util v0.7.13 Compiling sha2 v0.10.8 Compiling semver v1.0.24 Compiling percent-encoding v2.3.1 Compiling zerofrom v0.1.5 Compiling bitflags v1.3.2 Compiling yoke v0.7.5 Compiling num-integer v0.1.46 Compiling memchr v2.7.4 Compiling httparse v1.9.5 Compiling zerovec v0.10.4 Compiling hex v0.4.3 Compiling ring v0.17.8 Compiling try-lock v0.2.5 Compiling cfg-if v1.0.0 Compiling tower-service v0.3.3 Compiling want v0.3.1 Compiling async-trait v0.1.83 Compiling static_assertions v1.1.0 Compiling tinystr v0.7.6 Compiling http v0.2.12 Compiling thread_local v1.1.8 Compiling utf8parse v0.2.2 Compiling litemap v0.7.4 Compiling writeable v0.5.5 Compiling powerfmt v0.2.0 Compiling regex-syntax v0.6.29 Compiling deranged v0.3.11 Compiling icu_locid v1.5.0 Compiling openssl-src v300.4.1+3.4.0 Compiling overload v0.1.1 Compiling vcpkg v0.2.15 Compiling time-core v0.1.2 Compiling num-conv v0.1.0 Compiling regex-automata v0.1.10 Compiling openssl-sys v0.9.104 Compiling matchers v0.1.0 Compiling time v0.3.37 Compiling nu-ansi-term v0.46.0 Compiling icu_provider v1.5.0 Compiling http-body v0.4.6 Compiling aho-corasick v1.1.3 Compiling rustc_version v0.4.1 Compiling crossbeam-channel v0.5.14 Compiling pin-project-internal v1.1.7 Compiling serde_repr v0.1.19 Compiling sharded-slab v0.1.7 Compiling tracing-log v0.2.0 Compiling bzip2-sys v0.1.11+1.0.8 Compiling indexmap v1.9.3 Compiling num-bigint v0.3.3 Compiling zstd-safe v5.0.2+zstd.1.5.2 Compiling regex-syntax v0.8.5 Compiling icu_locid_transform_data v1.5.0 Compiling base64 v0.21.7 Compiling atomic-waker v1.1.2 Compiling icu_locid_transform v1.5.0 Compiling tracing-subscriber v0.3.19 Compiling pin-project v1.1.7 Compiling curve25519-dalek v4.1.3 Compiling regex-automata v0.4.9 Compiling h2 v0.3.26 Compiling icu_collections v1.5.0 Compiling near-account-id v1.0.0 Compiling axum-core v0.3.4 Compiling futures-executor v0.3.31 Compiling num-rational v0.3.2 Compiling mime v0.3.17 Compiling crunchy v0.2.2 Compiling strsim v0.11.1 Compiling convert_case v0.4.0 Compiling tower-layer v0.3.3 Compiling hashbrown v0.12.3 Compiling icu_properties_data v1.5.0 Compiling either v1.13.0 Compiling ident_case v1.0.1 Compiling httpdate v1.0.3 Compiling base64 v0.22.1 Compiling hyper v0.14.31 Compiling darling_core v0.20.10 Compiling itertools v0.12.1 Compiling icu_properties v1.5.1 Compiling derive_more v0.99.18 Compiling regex v1.11.1 Compiling axum v0.6.20 Compiling tokio-stream v0.1.17 Compiling curve25519-dalek-derive v0.1.1 Compiling enum-map-derive v0.17.0 Compiling derive_arbitrary v1.4.1 Compiling secp256k1-sys v0.8.1 Compiling rustls-pki-types v1.10.1 Compiling schemars v0.8.21 Compiling utf16_iter v1.0.5 Compiling heck v0.4.1 Compiling rustls v0.23.20 Compiling write16 v1.0.0 Compiling bs58 v0.4.0 Compiling heck v0.5.0 Compiling icu_normalizer_data v1.5.0 Compiling signature v2.2.0 Compiling urlencoding v2.1.3 Compiling utf8_iter v1.0.4 Compiling opentelemetry v0.22.0 Compiling icu_normalizer v1.5.0 Compiling ed25519 v2.2.3 Compiling strum_macros v0.24.3 Compiling arbitrary v1.4.1 Compiling enum-map v2.7.3 Compiling prost-derive v0.12.6 Compiling darling_macro v0.20.10 Compiling tower v0.4.13 Compiling anstyle-parse v0.2.6 Compiling concurrent-queue v2.5.0 Compiling tokio-io-timeout v1.2.0 Compiling async-stream-impl v0.3.6 Compiling ordered-float v4.5.0 Compiling serde_derive_internals v0.29.1 Compiling block-padding v0.3.3 Compiling sync_wrapper v0.1.2 Compiling matchit v0.7.3 Compiling foreign-types-shared v0.1.1 Compiling colorchoice v1.0.3 Compiling anstyle v1.0.10 Compiling is_terminal_polyfill v1.70.1 Compiling glob v0.3.1 Compiling parking v2.2.1 Compiling anstyle-query v1.1.2 Compiling openssl v0.10.68 Compiling anstream v0.6.18 Compiling opentelemetry_sdk v0.22.1 Compiling schemars_derive v0.8.21 Compiling foreign-types v0.3.2 Compiling inout v0.1.3 Compiling prost v0.12.6 Compiling async-stream v0.3.6 Compiling hyper-timeout v0.4.1 Compiling darling v0.20.10 Compiling uint v0.9.5 Compiling near-primitives-core v0.23.0 Compiling ed25519-dalek v2.1.1 Compiling strum v0.24.1 Compiling idna_adapter v1.2.0 Compiling fixed-hash v0.7.0 Compiling form_urlencoded v1.2.1 Compiling openssl-macros v0.1.1 Compiling http v1.2.0 Compiling winnow v0.5.40 Compiling fastrand v2.3.0 Compiling protobuf v2.28.0 Compiling json_comments v0.2.2 Compiling rustix v0.38.42 Compiling near-config-utils v0.23.0 Compiling tonic v0.11.0 Compiling toml_edit v0.19.15 Compiling primitive-types v0.10.1 Compiling idna v1.0.3 Compiling secp256k1 v0.27.0 Compiling cipher v0.4.4 Compiling actix-rt v2.10.0 Compiling actix_derive v0.6.2 Compiling actix-macros v0.2.4 Compiling hmac v0.12.1 Compiling blake2 v0.10.6 Compiling proc-macro-error-attr v1.0.4 Compiling prometheus v0.13.4 Compiling ryu v1.0.18 Compiling near-stdx v0.23.0 Compiling linux-raw-sys v0.4.14 Compiling adler2 v2.0.0 Compiling itoa v1.0.14 Compiling zstd-safe v7.2.1 Compiling arrayvec v0.7.6 Compiling clap_lex v0.7.4 Compiling clap_builder v4.5.23 Compiling miniz_oxide v0.8.0 Compiling near-crypto v0.23.0 Compiling actix v0.13.5 Compiling url v2.5.4 Compiling proc-macro-crate v1.3.1 Compiling opentelemetry-proto v0.5.0 Compiling http-body v1.0.1 Compiling event-listener v5.3.1 Compiling clap_derive v4.5.18 Compiling zvariant_utils v1.0.1 Compiling sha1 v0.10.6 Compiling proc-macro-error v1.0.4 Compiling crc32fast v1.4.2 Compiling io-lifetimes v1.0.11 Compiling opentelemetry-semantic-conventions v0.14.0 Compiling event-listener v2.5.3 Compiling cpufeatures v0.2.16 Compiling reed-solomon-erasure v4.0.2 Compiling native-tls v0.2.12 Compiling unsafe-libyaml v0.2.11 Compiling unicode-width v0.1.14 Compiling serde_yaml v0.9.34+deprecated Compiling opentelemetry-otlp v0.15.0 Compiling flate2 v1.0.35 Compiling clap v4.5.23 Compiling event-listener-strategy v0.5.3 Compiling aes v0.8.4 Compiling h2 v0.4.7 Compiling serde_with_macros v3.11.0 Compiling tracing-opentelemetry v0.23.0 Compiling futures v0.3.31 Compiling tracing-appender v0.2.3 Compiling near-time v0.23.0 Compiling near-rpc-error-core v0.23.0 Compiling enumflags2_derive v0.7.10 Compiling futures-lite v2.5.0 Compiling dirs-sys-next v0.1.2 Compiling polling v2.8.0 Compiling memoffset v0.7.1 Compiling waker-fn v1.2.0 Compiling keccak v0.1.5 Compiling siphasher v0.3.11 Compiling openssl-probe v0.1.5 Compiling dyn-clone v1.0.17 Compiling rustix v0.37.27 Compiling async-task v4.7.1 Compiling fastrand v1.9.0 Compiling spin v0.9.8 Compiling untrusted v0.9.0 Compiling futures-lite v1.13.0 Compiling chrono v0.4.39 Compiling itertools v0.10.5 Compiling sha3 v0.10.8 Compiling dirs-next v2.0.0 Compiling enumflags2 v0.7.10 Compiling near-rpc-error-macro v0.23.0 Compiling hyper v1.5.1 Compiling near-o11y v0.23.0 Compiling near-performance-metrics v0.23.0 Compiling serde_with v3.11.0 Compiling zstd v0.13.2 Compiling async-channel v2.3.1 Compiling near-parameters v0.23.0 Compiling async-lock v2.8.0 Compiling zvariant_derive v3.15.2 Compiling piper v0.2.4 Compiling near-fmt v0.23.0 Compiling bytesize v1.3.0 Compiling smart-default v0.6.0 Compiling near-async-derive v0.23.0 Compiling filetime v0.2.25 Compiling async-io v1.13.0 Compiling async-fs v1.6.0 Compiling base64ct v1.6.0 Compiling easy-ext v0.2.9 Compiling signal-hook v0.3.17 Compiling linux-raw-sys v0.3.8 Compiling near-primitives v0.23.0 Compiling password-hash v0.4.2 Compiling near-async v0.23.0 Compiling zvariant v3.15.2 Compiling blocking v1.6.1 Compiling interactive-clap-derive v0.2.10 Compiling hyper-util v0.1.10 Compiling rustls-webpki v0.102.8 Compiling Inflector v0.11.4 Compiling http-body-util v0.1.2 Compiling num-bigint v0.4.6 Compiling backtrace v0.3.71 Compiling socket2 v0.4.10 Compiling vte_generate_state_changes v0.1.2 Compiling ahash v0.8.11 Compiling portable-atomic v1.10.0 Compiling bitcoin-internals v0.2.0 Compiling adler v1.0.2 Compiling gimli v0.28.1 Compiling eyre v0.6.12 Compiling zeroize v1.8.1 Compiling miniz_oxide v0.7.4 Compiling addr2line v0.21.0 Compiling vte v0.11.1 Compiling num-rational v0.4.2 Compiling pbkdf2 v0.11.0 Compiling near-chain-configs v0.23.0 Compiling zstd v0.11.2+zstd.1.5.2 Compiling nix v0.26.4 Compiling interactive-clap v0.2.10 Compiling zbus_names v2.6.1 Compiling bzip2 v0.4.4 Compiling xattr v1.3.1 Compiling webpki-roots v0.26.7 Compiling async-executor v1.13.1 Compiling async-broadcast v0.5.1 Compiling zbus_macros v3.15.2 Compiling serde_urlencoded v0.7.1 Compiling rustls-pemfile v2.2.0 Compiling tracing-error v0.2.1 Compiling num-iter v0.1.45 Compiling derivative v2.2.0 Compiling async-recursion v1.1.1 Compiling num-complex v0.4.6 Compiling digest v0.9.0 Compiling mio v0.8.11 Compiling ordered-stream v0.2.0 Compiling sync_wrapper v1.0.2 Compiling xdg-home v1.3.0 Compiling object v0.32.2 Compiling encoding_rs v0.8.35 Compiling indenter v0.3.3 Compiling constant_time_eq v0.1.5 Compiling owo-colors v3.5.0 Compiling tinyvec_macros v0.1.1 Compiling radium v0.7.0 Compiling uuid v0.8.2 Compiling rustc-demangle v0.1.24 Compiling ipnet v2.10.1 Compiling option-ext v0.2.0 Compiling ureq v2.12.1 Compiling dirs-sys v0.4.1 Compiling zip v0.6.6 Compiling tinyvec v1.8.0 Compiling color-spantrace v0.2.1 Compiling zbus v3.15.2 Compiling signal-hook-mio v0.2.4 Compiling num v0.4.3 Compiling tar v0.4.43 Compiling near-jsonrpc-primitives v0.23.0 Compiling vt100 v0.15.2 Compiling near-abi v0.4.3 Compiling uriparse v0.6.4 Compiling phf_shared v0.10.0 Compiling console v0.15.8 Compiling near_schemafy_core v0.7.0 Compiling hkdf v0.12.4 Compiling cbc v0.1.2 Compiling serde_spanned v0.6.8 Compiling scroll_derive v0.11.1 Compiling crypto-mac v0.9.1 Compiling block-buffer v0.9.0 Compiling fs2 v0.4.3 Compiling is-docker v0.2.0 Compiling csv-core v0.1.11 Compiling precomputed-hash v0.1.1 Compiling tap v1.0.1 Compiling unicode-segmentation v1.12.0 Compiling minimal-lexical v0.2.1 Compiling number_prefix v0.4.0 Compiling fallible-iterator v0.2.0 Compiling camino v1.1.9 Compiling rust_decimal v1.36.0 Compiling unicode-width v0.2.0 Compiling is_executable v0.1.2 Compiling near-sandbox-utils v0.8.0 Compiling opaque-debug v0.3.1 Compiling new_debug_unreachable v1.0.6 Compiling same-file v1.0.6 Compiling iana-time-zone v0.1.61 Compiling hex v0.3.2 Compiling pin-project-lite v0.2.15 Compiling hex-conservative v0.1.2 Compiling bitcoin_hashes v0.13.0 Compiling walkdir v2.5.0 Compiling binary-install v0.2.0 Compiling string_cache v0.8.7 Compiling sha2 v0.9.9 Compiling indicatif v0.17.9 Compiling newline-converter v0.3.0 Compiling nom v7.1.3 Compiling csv v1.3.1 Compiling wyz v0.5.1 Compiling is-wsl v0.4.0 Compiling scroll v0.11.0 Compiling hmac v0.9.0 Compiling secret-service v3.1.0 Compiling near_schemafy_lib v0.7.0 Compiling hashbrown v0.14.5 Compiling crossterm v0.25.0 Compiling color-eyre v0.6.3 Compiling unicode-normalization v0.1.22 Compiling dirs v5.0.1 Compiling debugid v0.7.3 Compiling near-token v0.2.1 Compiling term v0.7.0 Compiling tempfile v3.14.0 Compiling brownstone v1.1.0 Compiling fuzzy-matcher v0.3.7 Compiling linux-keyutils v0.2.4 Compiling fxhash v0.2.1 Compiling is-terminal v0.4.13 Compiling memmap2 v0.5.10 Compiling shell-escape v0.1.5 Compiling bs58 v0.5.1 Compiling names v0.14.0 Compiling pathdiff v0.2.3 Compiling smawk v0.3.2 Compiling plain v0.2.3 Compiling scroll v0.10.2 Compiling xml-rs v0.8.24 Compiling encode_unicode v1.0.0 Compiling funty v2.0.0 Compiling indent_write v2.2.0 Compiling unicode-linebreak v0.1.5 Compiling prettyplease v0.1.25 Compiling joinery v2.1.0 Compiling home v0.5.9 Compiling nom-supreme v0.6.0 Compiling textwrap v0.16.1 Compiling bitvec v1.0.1 Compiling elementtree v0.7.0 Compiling prettytable v0.10.0 Compiling pdb v0.7.0 Compiling goblin v0.5.4 Compiling open v5.3.1 Compiling symbolic-common v8.8.0 Compiling inquire v0.7.5 Compiling keyring v2.3.3 Compiling bip39 v2.1.0 Compiling shellexpand v3.1.0 Compiling near-abi-client-impl v0.1.1 Compiling wasmparser v0.211.1 Compiling slipped10 v0.4.6 Compiling tracing-indicatif v0.3.8 Compiling toml v0.8.19 Compiling gimli v0.26.2 Compiling near-gas v0.2.5 Compiling zip v0.5.13 Compiling env_filter v0.1.2 Compiling cargo-platform v0.1.9 Compiling linked-hash-map v0.5.6 Compiling smart-default v0.7.1 Compiling dmsort v1.0.2 Compiling lazycell v1.3.0 Compiling humantime v2.1.0 Compiling near-sandbox-utils v0.9.0 Compiling near-sdk-macros v5.6.0 Compiling shell-words v1.1.0 Compiling wasmparser v0.83.0 Compiling easy-ext v1.0.2 Compiling env_logger v0.11.5 Compiling cargo_metadata v0.18.1 Compiling symbolic-debuginfo v8.8.0 Compiling near-abi-client-macros v0.1.1 Compiling near-workspaces v0.11.1 Compiling strum_macros v0.26.4 Compiling jsonptr v0.4.7 Compiling colored v2.2.0 Compiling atty v0.2.14 Compiling libloading v0.8.6 Compiling convert_case v0.5.0 Compiling strum v0.26.3 Compiling dunce v1.0.5 Compiling near-sandbox-utils v0.12.0 Compiling near-abi-client v0.1.1 Compiling json-patch v2.0.0 Compiling tokio-retry v0.3.0 Compiling near-gas v0.3.0 Compiling near-token v0.3.0 Compiling near-sys v0.2.2 Compiling near-sdk v5.6.0 Compiling crypto-hash v0.3.4 Compiling cargo-util v0.1.2 Compiling tokio-native-tls v0.3.1 Compiling hyper-tls v0.6.0 Compiling reqwest v0.12.9 Compiling near-jsonrpc-client v0.10.1 Compiling near-socialdb-client v0.3.2 Compiling near-cli-rs v0.11.1 Compiling cargo-near v0.6.4 Compiling chat_contract_tests v0.0.1 (/home/runner/work/polyglot/polyglot/apps/chat/contract/tests) Finished `release` profile [optimized] target(s) in 4m 32s Running `/home/runner/work/polyglot/polyglot/workspace/target/release/chat_contract_tests` Installed near-sandbox into /home/runner/work/polyglot/polyglot/workspace/target/release/build/near-sandbox-utils-c39df2faf0b47791/out/.near/near-sandbox-1.40.0_7dd0b5993577f592be15eb102e5a3da37be66271/near-sandbox new: ExecutionFinalResult { total_gas_burnt: NearGas { inner: 1641007093783, }, transaction: ExecutionOutcome { transaction_hash: FGwZu5NprHMKm3DMMTjqsvudr7ekHLXnNmxd48WG42Gy, block_hash: CpK8KHj5tLZ542sDktE2vv9jPTVfHqYwNkDjQZ4fEEfn, logs: [], receipt_ids: [ E6mNDZFbwwyRYTdn8fNCj7vrjjL91AykjoEbvmXMSbEo, ], gas_burnt: NearGas { inner: 308066207802, }, tokens_burnt: NearToken { inner: 30806620780200000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessReceiptId(E6mNDZFbwwyRYTdn8fNCj7vrjjL91AykjoEbvmXMSbEo), }, receipts: [ ExecutionOutcome { transaction_hash: E6mNDZFbwwyRYTdn8fNCj7vrjjL91AykjoEbvmXMSbEo, block_hash: CpK8KHj5tLZ542sDktE2vv9jPTVfHqYwNkDjQZ4fEEfn, logs: [], receipt_ids: [ ArctKgWbgut6wMricu65dDrqEbpTvs9aLrzyikZPK4mh, ], gas_burnt: NearGas { inner: 1332940885981, }, tokens_burnt: NearToken { inner: 133294088598100000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.0010961927386470439 outcome (success: true): outcome_gas_burnt_usd: 0.000205788226811736 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0008904045118353079 outcome_tokens_burnt_usd: 0.0 claim_alias(contract, ''): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 2162588228552, }, transaction: ExecutionOutcome { transaction_hash: 27SZaHQntdqi7rmkLbrGnStNcH6uXhweWEdAJ9k7svkY, block_hash: AMv7CzfTTnHGpp9gbJULPYQkKuKNEquGtwRKvQcJ2Jo, logs: [], receipt_ids: [ Anr42TLviqYj2fYtgQceeKBTMasTrurcQbTedRqeoT9u, ], gas_burnt: NearGas { inner: 308110926482, }, tokens_burnt: NearToken { inner: 30811092648200000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessReceiptId(Anr42TLviqYj2fYtgQceeKBTMasTrurcQbTedRqeoT9u), }, receipts: [ ExecutionOutcome { transaction_hash: Anr42TLviqYj2fYtgQceeKBTMasTrurcQbTedRqeoT9u, block_hash: AMv7CzfTTnHGpp9gbJULPYQkKuKNEquGtwRKvQcJ2Jo, logs: [], receipt_ids: [ G5vhLuJa3eJN96pMejf3yYnHPNiX2c3N3bXJRQFDeEuE, ], gas_burnt: NearGas { inner: 1631294739570, }, tokens_burnt: NearToken { inner: 163129473957000000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: chat_contract.claim_alias / invalid alias")) })), }, ExecutionOutcome { transaction_hash: G5vhLuJa3eJN96pMejf3yYnHPNiX2c3N3bXJRQFDeEuE, block_hash: 5jnJd6bfWVQ5YdAtXw5EvPrsevnM5E6BCmswKpQtuyrn, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ], status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: chat_contract.claim_alias / invalid alias")) })), } total_gas_burnt_usd: 0.001444608936672736 outcome (success: true): outcome_gas_burnt_usd: 0.000205818098889976 outcome_tokens_burnt_usd: 0.0 outcome (success: false): outcome_gas_burnt_usd: 0.00108970488603276 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 dev_create_account(account1): Account { id: AccountId( "dev-20250129174707-43774533378692", ), } generate_cid_borsh(account1): ViewResultDetails { result: [59, 0, 0, 0, 98, 97, 102, 107, 114, 101, 105, 104, 100, 119, 100, 99, 101, 102, 103, 104, 52, 100, 113, 107, 106, 118, 54, 55, 117, 122, 99, 109, 119, 55, 111, 106, 101, 101, 54, 120, 101, 100, 122, 100, 101, 116, 111, 106, 117, 122, 106, 101, 118, 116, 101, 110, 120, 113, 117, 118, 121, 107, 117], logs: [] } claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 3550734607112, }, transaction: ExecutionOutcome { transaction_hash: EpLkRFHWTHcxFbXf7YDjEfHNkHWJrs3AsJ3Nk45645kF, block_hash: 2NtJ6x4kjqbo2tjK5yEgtJmFZXcWBjsnCZmT9mEMh6iu, logs: [], receipt_ids: [ 3BwgAiER4AyNWwqFm1xdzv2ydcC3Y7J4SRcetFpSMGbk, ], gas_burnt: NearGas { inner: 308124342086, }, tokens_burnt: NearToken { inner: 30812434208600000000, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessReceiptId(3BwgAiER4AyNWwqFm1xdzv2ydcC3Y7J4SRcetFpSMGbk), }, receipts: [ ExecutionOutcome { transaction_hash: 3BwgAiER4AyNWwqFm1xdzv2ydcC3Y7J4SRcetFpSMGbk, block_hash: 2WErj1dJgccKMhCVMmDvAkouACVWAKyAsnAoPgz7adeF, logs: [ "17:47:09 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1738172829297609799; signer_account_id = \"dev-20250129174707-43774533378692\"; predecessor_account_id = \"dev-20250129174707-43774533378692\" }\n17:47:09 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }", ], receipt_ids: [ Ei3BgQxsEWsqyZ2hvKW6TF4MM9WHBhkCNYcG37DwR8bD, ], gas_burnt: NearGas { inner: 3019427702526, }, tokens_burnt: NearToken { inner: 301942770252600000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: Ei3BgQxsEWsqyZ2hvKW6TF4MM9WHBhkCNYcG37DwR8bD, block_hash: GeGpSdVCjrJNzaRpoMJqyr7AYBviV4DTybchNWzg9vDz, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.002371890717550816 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002016977705287368 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 3701325414104, }, transaction: ExecutionOutcome { transaction_hash: 8xpmjsqJuaEdep8bwSmAtiZAQe4fRv5UpEkh46pG9hLr, block_hash: BpZCSazwm4FeKRBGLJgsxxCP4kEXRsWcWJ3yqCSvq2rv, logs: [], receipt_ids: [ 9qS3kU6S57hMyYgUk7o3ngJEF1khF9nv3cs6tq3rD8CB, ], gas_burnt: NearGas { inner: 308124342086, }, tokens_burnt: NearToken { inner: 30812434208600000000, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessReceiptId(9qS3kU6S57hMyYgUk7o3ngJEF1khF9nv3cs6tq3rD8CB), }, receipts: [ ExecutionOutcome { transaction_hash: 9qS3kU6S57hMyYgUk7o3ngJEF1khF9nv3cs6tq3rD8CB, block_hash: GhU6Yx42kQ3dqcUFXAnR3LfqpXFxyybQq2VmKdrrwkSo, logs: [ "17:47:10 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1738172830307604968; signer_account_id = \"dev-20250129174707-43774533378692\"; predecessor_account_id = \"dev-20250129174707-43774533378692\" }\n17:47:10 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }", ], receipt_ids: [ 7iB9udkw3qD5h9m27hbhxNBqmBVndHUDca8XNqQmsxai, ], gas_burnt: NearGas { inner: 3170018509518, }, tokens_burnt: NearToken { inner: 317001850951800000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 7iB9udkw3qD5h9m27hbhxNBqmBVndHUDca8XNqQmsxai, block_hash: 6xAXBSNucDjctV8Lq8bP7V17SAJWxnFpWwByVR2cznNc, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.002472485376621472 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0021175723643580236 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias1", 1738172830307604968, 0, ), ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20250129174707-43774533378692", ): ( 1738172830307604968, 0, ), }, ) dev_create_account(account2): Account { id: AccountId( "dev-20250129174710-24008413122590", ), } claim_alias(alias2): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 3798595421762, }, transaction: ExecutionOutcome { transaction_hash: 6FYVvzjq36tDkW1KaYh1oBHzoWMYvAeNNNL2ZvGn4poM, block_hash: DFtvd3bKnoKGhgKddzAFzjhCPgqhkaQuS9ZUFodoyo1w, logs: [], receipt_ids: [ AR1gqBsEYhNDXKjVvzx9b1XvEDjDytitf54yGN7aVJkk, ], gas_burnt: NearGas { inner: 308124342086, }, tokens_burnt: NearToken { inner: 30812434208600000000, }, executor_id: AccountId( "dev-20250129174710-24008413122590", ), status: SuccessReceiptId(AR1gqBsEYhNDXKjVvzx9b1XvEDjDytitf54yGN7aVJkk), }, receipts: [ ExecutionOutcome { transaction_hash: AR1gqBsEYhNDXKjVvzx9b1XvEDjDytitf54yGN7aVJkk, block_hash: FajjBTfYaMLsN952G1BWPuJprDgQnthYnE5T1RHMNCF7, logs: [ "17:47:12 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1738172832330675699; signer_account_id = \"dev-20250129174710-24008413122590\"; predecessor_account_id = \"dev-20250129174710-24008413122590\" }\n17:47:12 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }", ], receipt_ids: [ DmqVpbAHQi88o7VSertADy9zzT5bWChV141MVwSpDt5t, ], gas_burnt: NearGas { inner: 3267288517176, }, tokens_burnt: NearToken { inner: 326728851717600000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: DmqVpbAHQi88o7VSertADy9zzT5bWChV141MVwSpDt5t, block_hash: 8exscF4yMfKvDWuNXUKTwCBLGzz3T7vNvLGH1sNZbVmQ, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20250129174710-24008413122590", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.002537461741737016 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0021825487294735682 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account2): Some( ( "alias2", 1738172832330675699, 0, ), ) get_alias_map_borsh(alias2): Some( { AccountId( "dev-20250129174710-24008413122590", ): ( 1738172832330675699, 0, ), }, ) claim_alias(account2, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 3990879013613, }, transaction: ExecutionOutcome { transaction_hash: G9BBD1cEaGTuijjx8rkG4LtyKhVvhzieTQc3seT6Gduf, block_hash: 8KWfmcWN9QHDgaWq4hUpsJwNK7aZzsRd7Te8Z6LMJmFN, logs: [], receipt_ids: [ AUvKT3KUKn9Vp7whEV2JLBaiRpJq19FEUSTv7eqmWX92, ], gas_burnt: NearGas { inner: 308124342086, }, tokens_burnt: NearToken { inner: 30812434208600000000, }, executor_id: AccountId( "dev-20250129174710-24008413122590", ), status: SuccessReceiptId(AUvKT3KUKn9Vp7whEV2JLBaiRpJq19FEUSTv7eqmWX92), }, receipts: [ ExecutionOutcome { transaction_hash: AUvKT3KUKn9Vp7whEV2JLBaiRpJq19FEUSTv7eqmWX92, block_hash: h2VKepSgKQvCJ5P9mdQDbEm8yLvZTPgtgXb2WQpFeFa, logs: [ "17:47:13 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1738172833340763192; signer_account_id = \"dev-20250129174710-24008413122590\"; predecessor_account_id = \"dev-20250129174710-24008413122590\" }\n17:47:13 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }", ], receipt_ids: [ CedkwhMiMNG9eraXTMx3Lpz9LnQpt6XPEHBx7sQSg2gZ, ], gas_burnt: NearGas { inner: 3459572109027, }, tokens_burnt: NearToken { inner: 345957210902700000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: CedkwhMiMNG9eraXTMx3Lpz9LnQpt6XPEHBx7sQSg2gZ, block_hash: BPbMas2DKfzXPADXGVoVxLgFaHQTrnTpsGGRaneTPKtF, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20250129174710-24008413122590", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.002665907181093484 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002310994168830036 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account2): Some( ( "alias1", 1738172833340763192, 1, ), ) get_alias_map(account2, alias1): Some( { AccountId( "dev-20250129174710-24008413122590", ): ( 1738172833340763192, 1, ), AccountId( "dev-20250129174707-43774533378692", ): ( 1738172830307604968, 0, ), }, ) get_alias_map(account2, alias2): Some( {}, ) claim_alias(account1, alias2): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 3986219746385, }, transaction: ExecutionOutcome { transaction_hash: EapctFyTqyjQFpnGSrJYYkc7sYM31BPsskQafXZ8kA3o, block_hash: DjfUsT6s9farQF8Mt3F8g2mcqjyrB3T6pS1rB4gEEcDY, logs: [], receipt_ids: [ rD2k89P8iDqVKDKCpb8G3NujeF6KArtwhQtkgKBDGXE, ], gas_burnt: NearGas { inner: 308124342086, }, tokens_burnt: NearToken { inner: 30812434208600000000, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessReceiptId(rD2k89P8iDqVKDKCpb8G3NujeF6KArtwhQtkgKBDGXE), }, receipts: [ ExecutionOutcome { transaction_hash: rD2k89P8iDqVKDKCpb8G3NujeF6KArtwhQtkgKBDGXE, block_hash: AY3pavv4kz4Z9Qm8qbRjYYTgwVXarh1QhhhQkyq61n13, logs: [ "17:47:14 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1738172834352924294; signer_account_id = \"dev-20250129174707-43774533378692\"; predecessor_account_id = \"dev-20250129174707-43774533378692\" }\n17:47:14 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }", ], receipt_ids: [ 7tAyFNg5jZDLHLmrQnFRsJTobJyBscfdanGTc4DbdNQW, ], gas_burnt: NearGas { inner: 3454912841799, }, tokens_burnt: NearToken { inner: 345491284179900000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 7tAyFNg5jZDLHLmrQnFRsJTobJyBscfdanGTc4DbdNQW, block_hash: CMBPouxFidcRMEkjXCHgWiFJtY2WRpihSGFuGKbqtDtU, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.00266279479058518 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002307881778321732 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias2", 1738172834352924294, 0, ), ) get_alias_map(account1, alias2): Some( { AccountId( "dev-20250129174707-43774533378692", ): ( 1738172834352924294, 0, ), }, ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20250129174710-24008413122590", ): ( 1738172833340763192, 1, ), }, ) claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { inner: 3990808256597, }, transaction: ExecutionOutcome { transaction_hash: 86Um4mjtG9baAq3jkv97CapSjorETVZmHeMpwj3K26Ey, block_hash: DvNntnc3qjmBCyXdMb642kwaog5cAb7TLH1kH9jggsjy, logs: [], receipt_ids: [ 7bBQRdUFRxjjiBshtDvwbDDkgmFqv28ksG2Gm25w8dhG, ], gas_burnt: NearGas { inner: 308124342086, }, tokens_burnt: NearToken { inner: 30812434208600000000, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessReceiptId(7bBQRdUFRxjjiBshtDvwbDDkgmFqv28ksG2Gm25w8dhG), }, receipts: [ ExecutionOutcome { transaction_hash: 7bBQRdUFRxjjiBshtDvwbDDkgmFqv28ksG2Gm25w8dhG, block_hash: 4r6p33ZMAmqSm3ZooU3kZeK7sN7GKCMw4vbkWPTTFrYe, logs: [ "17:47:15 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1738172835363374009; signer_account_id = \"dev-20250129174707-43774533378692\"; predecessor_account_id = \"dev-20250129174707-43774533378692\" }\n17:47:15 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }", ], receipt_ids: [ 7XpRwqSfr138gjAKmixdAjrWyFCJb3Sg19VqMNdBAxDw, ], gas_burnt: NearGas { inner: 3459501352011, }, tokens_burnt: NearToken { inner: 345950135201100000000, }, executor_id: AccountId( "dev-20250129174706-58324932577381", ), status: SuccessValue(''), }, ExecutionOutcome { transaction_hash: 7XpRwqSfr138gjAKmixdAjrWyFCJb3Sg19VqMNdBAxDw, block_hash: 2TPKYyn3UZ2CcZ1qpnXq9UNNPkXcjG1vUwG6U8bU6vBz, logs: [], receipt_ids: [], gas_burnt: NearGas { inner: 223182562500, }, tokens_burnt: NearToken { inner: 0, }, executor_id: AccountId( "dev-20250129174707-43774533378692", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } total_gas_burnt_usd: 0.002665859915406796 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.0023109469031433482 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.00014908595175 outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias1", 1738172835363374009, 1, ), ) get_alias_map(account1, alias1): Some( { AccountId( "dev-20250129174707-43774533378692", ): ( 1738172835363374009, 1, ), AccountId( "dev-20250129174710-24008413122590", ): ( 1738172833340763192, 0, ), }, ) get_alias_map(account1, alias2): Some( {}, )
In [ ]:
{ pwsh ../apps/spiral/temp/build.ps1 } | Invoke-Block
00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path cube.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral dib --path cube.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "cube.dib"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ # cube 00:00:02 v #13 > > 00:00:02 v #14 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #15 > > │ ## cube 00:00:05 v #16 > > 00:00:05 v #17 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:05 v #18 > > open System 00:00:05 v #19 > > open System.Threading.Tasks 00:00:05 v #20 > > open System.Text 00:00:05 v #21 > > 00:00:05 v #22 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:05 v #23 > > let width = 160 00:00:05 v #24 > > let height = 44 00:00:05 v #25 > > let backgroundChar = '.' 00:00:05 v #26 > > let distanceFromCam = 100.0 00:00:05 v #27 > > let k1 = 40.0 00:00:05 v #28 > > let incrementSpeed = 0.6 00:00:05 v #29 > > 00:00:05 v #30 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:05 v #31 > > │ ### get_width 00:00:06 v #32 > > 00:00:06 v #33 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:06 v #34 > > inl get_width () = 00:00:06 v #35 > > 160i32 00:00:09 v #36 > > 00:00:09 v #37 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:09 v #38 > > │ ### get_height 00:00:09 v #39 > > 00:00:09 v #40 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:09 v #41 > > inl get_height () = 00:00:09 v #42 > > 44i32 00:00:10 v #43 > > 00:00:10 v #44 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:10 v #45 > > │ ### get_background_char 00:00:10 v #46 > > 00:00:10 v #47 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:10 v #48 > > inl get_background_char () = 00:00:10 v #49 > > '.' 00:00:10 v #50 > > 00:00:10 v #51 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:10 v #52 > > │ ### get_distance_from_cam 00:00:10 v #53 > > 00:00:10 v #54 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:10 v #55 > > inl get_distance_from_cam () = 00:00:10 v #56 > > 100f64 00:00:10 v #57 > > 00:00:10 v #58 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:10 v #59 > > │ ### get_k1 00:00:10 v #60 > > 00:00:10 v #61 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:10 v #62 > > inl get_k1 () = 00:00:10 v #63 > > 40f64 00:00:10 v #64 > > 00:00:10 v #65 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:10 v #66 > > │ ### get_increment_speed 00:00:10 v #67 > > 00:00:10 v #68 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:10 v #69 > > inl get_increment_speed () = 00:00:10 v #70 > > 0.6f64 00:00:11 v #71 > > 00:00:11 v #72 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:11 v #73 > > │ ### rotation 00:00:11 v #74 > > 00:00:11 v #75 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:11 v #76 > > type Rotation = { a: float; b: float; c: float } 00:00:11 v #77 > > 00:00:11 v #78 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:11 v #79 > > type rotation = 00:00:11 v #80 > > { 00:00:11 v #81 > > a : f64 00:00:11 v #82 > > b : f64 00:00:11 v #83 > > c : f64 00:00:11 v #84 > > } 00:00:11 v #85 > > 00:00:11 v #86 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:11 v #87 > > │ ### cube 00:00:11 v #88 > > 00:00:11 v #89 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:11 v #90 > > type Cube = { cubeWidth: float; horizontalOffset: float } 00:00:11 v #91 > > 00:00:11 v #92 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:11 v #93 > > type cube = 00:00:11 v #94 > > { 00:00:11 v #95 > > cube_width : f64 00:00:11 v #96 > > horizontal_offset : f64 00:00:11 v #97 > > } 00:00:12 v #98 > > 00:00:12 v #99 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:12 v #100 > > │ ### get_cubes 00:00:12 v #101 > > 00:00:12 v #102 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:12 v #103 > > let cubes = [[ 00:00:12 v #104 > > { cubeWidth = 20.0; horizontalOffset = -40.0 } 00:00:12 v #105 > > { cubeWidth = 10.0; horizontalOffset = 10.0 } 00:00:12 v #106 > > { cubeWidth = 5.0; horizontalOffset = 40.0 } 00:00:12 v #107 > > ]] 00:00:12 v #108 > > 00:00:12 v #109 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:12 v #110 > > inl get_cubes () : list cube = 00:00:12 v #111 > > [[ 00:00:12 v #112 > > { cube_width = 20; horizontal_offset = -40 } 00:00:12 v #113 > > { cube_width = 10; horizontal_offset = 10 } 00:00:12 v #114 > > { cube_width = 5; horizontal_offset = 40 } 00:00:12 v #115 > > ]] 00:00:12 v #116 > > 00:00:12 v #117 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:12 v #118 > > │ ### calculate_x 00:00:12 v #119 > > 00:00:12 v #120 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:12 v #121 > > let calculateX i j k (rot: Rotation) = 00:00:12 v #122 > > let a, b, c = rot.a, rot.b, rot.c 00:00:12 v #123 > > j * sin a * sin b * cos c - k * cos a * sin b * cos c + 00:00:12 v #124 > > j * cos a * sin c + k * sin a * sin c + i * cos b * cos c 00:00:12 v #125 > > 00:00:12 v #126 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:12 v #127 > > inl calculate_x i j k (rot : rotation) = 00:00:12 v #128 > > inl a, b, c = rot.a, rot.b, rot.c 00:00:12 v #129 > > j * sin a * sin b * cos c - k * cos a * sin b * cos c + 00:00:12 v #130 > > j * cos a * sin c + k * sin a * sin c + i * cos b * cos c 00:00:12 v #131 > > 00:00:12 v #132 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:12 v #133 > > │ ### calculate_y 00:00:12 v #134 > > 00:00:12 v #135 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:12 v #136 > > let calculateY i j k (rot: Rotation) = 00:00:12 v #137 > > let a, b, c = rot.a, rot.b, rot.c 00:00:12 v #138 > > j * cos a * cos c + k * sin a * cos c - 00:00:12 v #139 > > j * sin a * sin b * sin c + k * cos a * sin b * sin c - 00:00:12 v #140 > > i * cos b * sin c 00:00:12 v #141 > > 00:00:12 v #142 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:12 v #143 > > inl calculate_y i j k (rot : rotation) = 00:00:12 v #144 > > inl a, b, c = rot.a, rot.b, rot.c 00:00:12 v #145 > > j * cos a * cos c + k * sin a * cos c - 00:00:12 v #146 > > j * sin a * sin b * sin c + k * cos a * sin b * sin c - 00:00:12 v #147 > > i * cos b * sin c 00:00:12 v #148 > > 00:00:12 v #149 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:12 v #150 > > │ ### calculate_z 00:00:12 v #151 > > 00:00:12 v #152 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:12 v #153 > > let calculateZ i j k (rot: Rotation) = 00:00:12 v #154 > > let a, b, c = rot.a, rot.b, rot.c 00:00:12 v #155 > > k * cos a * cos b - j * sin a * cos b + i * sin b 00:00:13 v #156 > > 00:00:13 v #157 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:13 v #158 > > inl calculate_z i j k (rot : rotation) = 00:00:13 v #159 > > inl a, b, c = rot.a, rot.b, rot.c 00:00:13 v #160 > > k * cos a * cos b - j * sin a * cos b + i * sin b 00:00:13 v #161 > > 00:00:13 v #162 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:13 v #163 > > │ ### calculate_for_surface 00:00:13 v #164 > > 00:00:13 v #165 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:13 v #166 > > let calculateForSurface cubeX cubeY cubeZ ch rot horizontalOffset = 00:00:13 v #167 > > let x = calculateX cubeX cubeY cubeZ rot 00:00:13 v #168 > > let y = calculateY cubeX cubeY cubeZ rot 00:00:13 v #169 > > let z = calculateZ cubeX cubeY cubeZ rot + distanceFromCam 00:00:13 v #170 > > let ooz = 1.0 / z 00:00:13 v #171 > > let xp = int (float width / 2.0 + horizontalOffset + k1 * ooz * x * 2.0) 00:00:13 v #172 > > let yp = int (float height / 2.0 + k1 * ooz * y) 00:00:13 v #173 > > let idx = xp + yp * width 00:00:13 v #174 > > if idx >= 0 && idx < width * height 00:00:13 v #175 > > then Some (idx, (ooz, ch)) 00:00:13 v #176 > > else None 00:00:13 v #177 > > 00:00:13 v #178 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:13 v #179 > > let calculate_for_surface cube_x cube_y cube_z ch rot horizontal_offset = 00:00:13 v #180 > > inl x = calculate_x cube_x cube_y cube_z rot 00:00:13 v #181 > > inl y = calculate_y cube_x cube_y cube_z rot 00:00:13 v #182 > > inl z = calculate_z cube_x cube_y cube_z rot + get_distance_from_cam () 00:00:13 v #183 > > inl ooz = 1.0 / z 00:00:13 v #184 > > inl xp = i32 (f64 (get_width ()) / 2.0 + horizontal_offset + get_k1 () * ooz 00:00:13 v #185 > > * x * 2.0) 00:00:13 v #186 > > inl yp = i32 (f64 (get_height ()) / 2.0 + get_k1 () * ooz * y) 00:00:13 v #187 > > inl idx = xp + yp * get_width () 00:00:13 v #188 > > if idx >= 0 && idx < get_width () * get_height () 00:00:13 v #189 > > then Some (idx, (ooz, ch)) 00:00:13 v #190 > > else None 00:00:13 v #191 > > 00:00:13 v #192 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:13 v #193 > > │ ### frange 00:00:13 v #194 > > 00:00:13 v #195 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:13 v #196 > > let frange start stop step = 00:00:13 v #197 > > seq { 00:00:13 v #198 > > let mutable current = start 00:00:13 v #199 > > while (step > 0.0 && current < stop) || (step < 0.0 && current > stop) 00:00:13 v #200 > > do 00:00:13 v #201 > > yield current 00:00:13 v #202 > > current <- current + step 00:00:13 v #203 > > } 00:00:13 v #204 > > 00:00:13 v #205 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:13 v #206 > > inl frange start stop step : _ f64 = 00:00:13 v #207 > > fun () => 00:00:13 v #208 > > inl current = mut start 00:00:13 v #209 > > loopw.while 00:00:13 v #210 > > fun () => (step > 0f64 && *current < stop) || (step < 0 && *current 00:00:13 v #211 > > > stop) 00:00:13 v #212 > > fun () => 00:00:13 v #213 > > *current |> yield 00:00:13 v #214 > > current <- *current + step 00:00:13 v #215 > > |> seq.new_seq 00:00:13 v #216 > > 00:00:13 v #217 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:13 v #218 > > │ ### get_cube_points 00:00:13 v #219 > > 00:00:13 v #220 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:13 v #221 > > let getCubePoints (cube: Cube) rot = 00:00:13 v #222 > > let cw = cube.cubeWidth 00:00:13 v #223 > > let ho = cube.horizontalOffset 00:00:13 v #224 > > let cubeRange = frange (-cw) cw incrementSpeed 00:00:13 v #225 > > seq { 00:00:13 v #226 > > for cubeX in cubeRange do 00:00:13 v #227 > > for cubeY in cubeRange do 00:00:13 v #228 > > let x = 00:00:13 v #229 > > [[ 00:00:13 v #230 > > calculateForSurface cubeX cubeY (-cw) '@' rot ho 00:00:13 v #231 > > calculateForSurface cw cubeY cubeX '$' rot ho 00:00:13 v #232 > > calculateForSurface (-cw) cubeY (-cubeX) '~' rot ho 00:00:13 v #233 > > calculateForSurface (-cubeX) cubeY cw '#' rot ho 00:00:13 v #234 > > calculateForSurface cubeX (-cw) (-cubeY) ';' rot ho 00:00:13 v #235 > > calculateForSurface cubeX cw cubeY '+' rot ho 00:00:13 v #236 > > ]] 00:00:13 v #237 > > |> Seq.choose id 00:00:13 v #238 > > yield! x 00:00:13 v #239 > > } 00:00:13 v #240 > > 00:00:13 v #241 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:13 v #242 > > inl get_cube_points (cube : cube) rot = 00:00:13 v #243 > > inl cw = cube.cube_width 00:00:13 v #244 > > inl ho = cube.horizontal_offset 00:00:13 v #245 > > inl cube_range = frange -cw cw (get_increment_speed ()) 00:00:13 v #246 > > inl cube_range = join cube_range 00:00:13 v #247 > > inl get cube_x cube_y = 00:00:13 v #248 > > [[ 00:00:13 v #249 > > calculate_for_surface cube_x cube_y -cw ';' rot ho 00:00:13 v #250 > > calculate_for_surface cw cube_y cube_x '\\' rot ho 00:00:13 v #251 > > calculate_for_surface -cw cube_y -cube_x '/' rot ho 00:00:13 v #252 > > calculate_for_surface -cube_x cube_y cw '=' rot ho 00:00:13 v #253 > > calculate_for_surface cube_x -cw -cube_y '>' rot ho 00:00:13 v #254 > > calculate_for_surface cube_x cw cube_y '<' rot ho 00:00:13 v #255 > > ]] 00:00:13 v #256 > > |> listm'.box 00:00:13 v #257 > > inl get = join get 00:00:13 v #258 > > inl box x : _ (i32 * f64 * char) = 00:00:13 v #259 > > optionm'.box x 00:00:13 v #260 > > inl box = join box 00:00:13 v #261 > > fun () => 00:00:13 v #262 > > backend_switch { 00:00:13 v #263 > > Fsharp = fun () => 00:00:13 v #264 > > $'for cube_x in !cube_range do' 00:00:13 v #265 > > $'for cube_y in !cube_range do' 00:00:13 v #266 > > $'let x = !get cube_x cube_y |> Seq.choose !box ' 00:00:13 v #267 > > $'yield\! x' : () 00:00:13 v #268 > > Python = fun () => 00:00:13 v #269 > > $'cube_range = !cube_range ' 00:00:13 v #270 > > $'get = !get ' 00:00:13 v #271 > > $'box = !box ' 00:00:13 v #272 > > $'for cube_x in cube_range:' 00:00:13 v #273 > > $' for cube_y in cube_range:' 00:00:13 v #274 > > $' x = get(cube_x)(cube_y)' 00:00:13 v #275 > > $' for i in x:' 00:00:13 v #276 > > $' i_ = box(i)' 00:00:13 v #277 > > $' if i_ is not None: yield i' : () 00:00:13 v #278 > > } 00:00:13 v #279 > > |> seq.new_seq 00:00:14 v #280 > > 00:00:14 v #281 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:14 v #282 > > │ ### generate_frame 00:00:14 v #283 > > 00:00:14 v #284 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #285 > > let generateFrame rot = 00:00:14 v #286 > > let updates = 00:00:14 v #287 > > cubes 00:00:14 v #288 > > |> Seq.collect (fun cube -> getCubePoints cube rot) 00:00:14 v #289 > > let buffer = Array.create (width * height) None 00:00:14 v #290 > > updates 00:00:14 v #291 > > |> Seq.iter (fun (idx, (ooz, ch)) -> 00:00:14 v #292 > > match buffer.[[idx]] with 00:00:14 v #293 > > | Some (prevOoz, _) when prevOoz >= ooz -> () 00:00:14 v #294 > > | _ -> buffer.[[idx]] <- Some (ooz, ch) 00:00:14 v #295 > > ) 00:00:14 v #296 > > let sb = StringBuilder() 00:00:14 v #297 > > for row in 0 .. (height - 1) do 00:00:14 v #298 > > for col in 0 .. (width - 1) do 00:00:14 v #299 > > let idx = col + row * width 00:00:14 v #300 > > let ch = 00:00:14 v #301 > > match buffer.[[idx]] with 00:00:14 v #302 > > | Some (_, ch) -> ch 00:00:14 v #303 > > | None -> backgroundChar 00:00:14 v #304 > > sb.Append(ch) |> ignore 00:00:14 v #305 > > sb.AppendLine() |> ignore 00:00:14 v #306 > > sb.ToString() 00:00:14 v #307 > > 00:00:14 v #308 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:14 v #309 > > //// test 00:00:14 v #310 > > 00:00:14 v #311 > > let rot = { a = 0.0; b = 0.0; c = 0.0 } 00:00:14 v #312 > > let frame = generateFrame rot 00:00:14 v #313 > > Console.Write frame 00:00:14 v #314 > > 00:00:14 v #315 > > ── [ 36.28ms - stdout ] ──────────────────────────────────────────────────────── 00:00:14 v #316 > > │ 00:00:14 v #317 > > ................................................................................ 00:00:14 v #318 > > ................................................................................ 00:00:14 v #319 > > │ 00:00:14 v #320 > > ................................................................................ 00:00:14 v #321 > > ................................................................................ 00:00:14 v #322 > > │ 00:00:14 v #323 > > ................................................................................ 00:00:14 v #324 > > ................................................................................ 00:00:14 v #325 > > │ 00:00:14 v #326 > > ................................................................................ 00:00:14 v #327 > > ................................................................................ 00:00:14 v #328 > > │ 00:00:14 v #329 > > ................................................................................ 00:00:14 v #330 > > ................................................................................ 00:00:14 v #331 > > │ 00:00:14 v #332 > > ................................................................................ 00:00:14 v #333 > > ................................................................................ 00:00:14 v #334 > > │ 00:00:14 v #335 > > ................................................................................ 00:00:14 v #336 > > ................................................................................ 00:00:14 v #337 > > │ 00:00:14 v #338 > > ................................................................................ 00:00:14 v #339 > > ................................................................................ 00:00:14 v #340 > > │ 00:00:14 v #341 > > ................................................................................ 00:00:14 v #342 > > ................................................................................ 00:00:14 v #343 > > │ 00:00:14 v #344 > > ................................................................................ 00:00:14 v #345 > > ................................................................................ 00:00:14 v #346 > > │ 00:00:14 v #347 > > ................................................................................ 00:00:14 v #348 > > ................................................................................ 00:00:14 v #349 > > │ 00:00:14 v #350 > > ................................................................................ 00:00:14 v #351 > > ................................................................................ 00:00:14 v #352 > > │ 00:00:14 v #353 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #354 > > ................................................................................ 00:00:14 v #355 > > │ 00:00:14 v #356 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #357 > > ................................................................................ 00:00:14 v #358 > > │ 00:00:14 v #359 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #360 > > ................................................................................ 00:00:14 v #361 > > │ 00:00:14 v #362 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #363 > > ................................................................................ 00:00:14 v #364 > > │ 00:00:14 v #365 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #366 > > ................................................................................ 00:00:14 v #367 > > │ 00:00:14 v #368 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #369 > > .@@@@@@@@@@@@@@@@@$............................................................. 00:00:14 v #370 > > │ 00:00:14 v #371 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #372 > > .@@@@@@@@@@@@@@@@@$............................................................. 00:00:14 v #373 > > │ 00:00:14 v #374 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #375 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... 00:00:14 v #376 > > │ 00:00:14 v #377 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #378 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... 00:00:14 v #379 > > │ 00:00:14 v #380 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #381 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... 00:00:14 v #382 > > │ 00:00:14 v #383 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #384 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... 00:00:14 v #385 > > │ 00:00:14 v #386 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #387 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... 00:00:14 v #388 > > │ 00:00:14 v #389 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #390 > > .@@@@@@@@@@@@@@@@@$................+++++++++.................................... 00:00:14 v #391 > > │ 00:00:14 v #392 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #393 > > .@@@@@@@@@@@@@@@@@$............................................................. 00:00:14 v #394 > > │ 00:00:14 v #395 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #396 > > .+++++++++++++++++$............................................................. 00:00:14 v #397 > > │ 00:00:14 v #398 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #399 > > ................................................................................ 00:00:14 v #400 > > │ 00:00:14 v #401 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #402 > > ................................................................................ 00:00:14 v #403 > > │ 00:00:14 v #404 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #405 > > ................................................................................ 00:00:14 v #406 > > │ 00:00:14 v #407 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #408 > > ................................................................................ 00:00:14 v #409 > > │ 00:00:14 v #410 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... 00:00:14 v #411 > > ................................................................................ 00:00:14 v #412 > > │ 00:00:14 v #413 > > ....................++++++++++++++++++++++++++++++++++++++++.................... 00:00:14 v #414 > > ................................................................................ 00:00:14 v #415 > > │ 00:00:14 v #416 > > ................................................................................ 00:00:14 v #417 > > ................................................................................ 00:00:14 v #418 > > │ 00:00:14 v #419 > > ................................................................................ 00:00:14 v #420 > > ................................................................................ 00:00:14 v #421 > > │ 00:00:14 v #422 > > ................................................................................ 00:00:14 v #423 > > ................................................................................ 00:00:14 v #424 > > │ 00:00:14 v #425 > > ................................................................................ 00:00:14 v #426 > > ................................................................................ 00:00:14 v #427 > > │ 00:00:14 v #428 > > ................................................................................ 00:00:14 v #429 > > ................................................................................ 00:00:14 v #430 > > │ 00:00:14 v #431 > > ................................................................................ 00:00:14 v #432 > > ................................................................................ 00:00:14 v #433 > > │ 00:00:14 v #434 > > ................................................................................ 00:00:14 v #435 > > ................................................................................ 00:00:14 v #436 > > │ 00:00:14 v #437 > > ................................................................................ 00:00:14 v #438 > > ................................................................................ 00:00:14 v #439 > > │ 00:00:14 v #440 > > ................................................................................ 00:00:14 v #441 > > ................................................................................ 00:00:14 v #442 > > │ 00:00:14 v #443 > > ................................................................................ 00:00:14 v #444 > > ................................................................................ 00:00:14 v #445 > > │ 00:00:14 v #446 > > ................................................................................ 00:00:14 v #447 > > ................................................................................ 00:00:14 v #448 > > │ 00:00:14 v #449 > > 00:00:14 v #450 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:14 v #451 > > inl generate_frame rot = 00:00:14 v #452 > > inl updates : seq.seq' (int * (f64 * char)) = 00:00:14 v #453 > > inl get_cube_points' cube : seq.seq' (int * (f64 * char)) = 00:00:14 v #454 > > get_cube_points cube rot 00:00:14 v #455 > > inl cubes = get_cubes () |> listm'.box 00:00:14 v #456 > > backend_switch { 00:00:14 v #457 > > Fsharp = fun () => 00:00:14 v #458 > > inl get_cube_points' = join get_cube_points' 00:00:14 v #459 > > (cubes |> $'Seq.collect !get_cube_points' ') : seq.seq' (int * 00:00:14 v #460 > > (f64 * char)) 00:00:14 v #461 > > Python = fun () => 00:00:14 v #462 > > $'cubes = !cubes ' 00:00:14 v #463 > > $'get_cube_points = !get_cube_points' ' 00:00:14 v #464 > > $'[[x for cube in cubes for x in get_cube_points(*cube)]]' : 00:00:14 v #465 > > seq.seq' (int * (f64 * char)) 00:00:14 v #466 > > } 00:00:14 v #467 > > inl none : _ (f64 * char) = None 00:00:14 v #468 > > inl width = get_width () 00:00:14 v #469 > > inl height = get_height () 00:00:14 v #470 > > inl buffer = 00:00:14 v #471 > > backend_switch { 00:00:14 v #472 > > Fsharp = fun () => 00:00:14 v #473 > > $'Array.create (!width * !height) !none ' : a int (option (f64 * 00:00:14 v #474 > > char)) 00:00:14 v #475 > > Python = fun () => 00:00:14 v #476 > > $'[[!none for _ in range(!width * !height)]]' : a int (option 00:00:14 v #477 > > (f64 * char)) 00:00:14 v #478 > > } 00:00:14 v #479 > > 00:00:14 v #480 > > inl fn idx ((ooz : f64), (ch : char)) = 00:00:14 v #481 > > match buffer |> am'.index idx with 00:00:14 v #482 > > | Some (prev_ooz, _) when prev_ooz >= ooz => () 00:00:14 v #483 > > | _ => 00:00:14 v #484 > > inl x = (ooz, ch) |> Some 00:00:14 v #485 > > backend_switch { 00:00:14 v #486 > > Fsharp = fun () => 00:00:14 v #487 > > $'!buffer.[[!idx]] <- !x ' : () 00:00:14 v #488 > > Python = fun () => 00:00:14 v #489 > > $'!buffer[[!idx]] = !x ' : () 00:00:14 v #490 > > } 00:00:14 v #491 > > backend_switch { 00:00:14 v #492 > > Fsharp = fun () => 00:00:14 v #493 > > updates 00:00:14 v #494 > > |> $'Seq.iter (fun (struct (idx, ooz, ch)) -> !fn idx (ooz, ch))' : 00:00:14 v #495 > > () 00:00:14 v #496 > > Python = fun () => 00:00:14 v #497 > > $'for (idx, ooz, ch) in !updates: !fn(idx)(ooz, ch)' : () 00:00:14 v #498 > > } 00:00:14 v #499 > > 00:00:14 v #500 > > inl sb = "" |> sm'.string_builder 00:00:14 v #501 > > inl fn1 row = 00:00:14 v #502 > > inl fn2 col = 00:00:14 v #503 > > inl idx = col + row * width 00:00:14 v #504 > > inl ch = 00:00:14 v #505 > > match buffer |> am'.index idx with 00:00:14 v #506 > > | Some (_, ch) => ch 00:00:14 v #507 > > | None => get_background_char () 00:00:14 v #508 > > sb |> sm'.builder_append (ch |> sm'.obj_to_string) |> ignore 00:00:14 v #509 > > 00:00:14 v #510 > > backend_switch { 00:00:14 v #511 > > Fsharp = fun () => 00:00:14 v #512 > > $'for col in 0 .. (!width - 1) do !fn2 col' : () 00:00:14 v #513 > > Python = fun () => 00:00:14 v #514 > > $'for col in range(!width): !fn2(col)' : () 00:00:14 v #515 > > } 00:00:14 v #516 > > sb |> sm'.builder_append_line |> ignore 00:00:14 v #517 > > 00:00:14 v #518 > > backend_switch { 00:00:14 v #519 > > Fsharp = fun () => 00:00:14 v #520 > > $'for row in 0 .. (!height - 1) do !fn1 row' : () 00:00:14 v #521 > > Python = fun () => 00:00:14 v #522 > > $'for row in range(!height): !fn1(row)' : () 00:00:14 v #523 > > } 00:00:14 v #524 > > sb |> sm'.obj_to_string 00:00:14 v #525 > > 00:00:14 v #526 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:14 v #527 > > //// test 00:00:14 v #528 > > ///! fsharp 00:00:14 v #529 > > ///! cuda 00:00:14 v #530 > > ///! rust 00:00:14 v #531 > > ///! typescript 00:00:14 v #532 > > ///! python 00:00:14 v #533 > > 00:00:14 v #534 > > { a = 0.0; b = 0.0; c = 0.0 } 00:00:14 v #535 > > |> generate_frame 00:00:14 v #536 > > |> console.write_line 00:00:25 v #537 > > 00:00:25 v #538 > > ── [ 10.94s - return value ] ─────────────────────────────────────────────────── 00:00:25 v #539 > > │ " 00:00:25 v #540 > > │ .py output (Cuda): 00:00:25 v #541 > > │ 00:00:25 v #542 > > ................................................................................ 00:00:25 v #543 > > ................................................................................ 00:00:25 v #544 > > │ 00:00:25 v #545 > > ................................................................................ 00:00:25 v #546 > > ................................................................................ 00:00:25 v #547 > > │ 00:00:25 v #548 > > ................................................................................ 00:00:25 v #549 > > ................................................................................ 00:00:25 v #550 > > │ 00:00:25 v #551 > > ................................................................................ 00:00:25 v #552 > > ................................................................................ 00:00:25 v #553 > > │ 00:00:25 v #554 > > ................................................................................ 00:00:25 v #555 > > ................................................................................ 00:00:25 v #556 > > │ 00:00:25 v #557 > > ................................................................................ 00:00:25 v #558 > > ................................................................................ 00:00:25 v #559 > > │ 00:00:25 v #560 > > ................................................................................ 00:00:25 v #561 > > ................................................................................ 00:00:25 v #562 > > │ 00:00:25 v #563 > > ................................................................................ 00:00:25 v #564 > > ................................................................................ 00:00:25 v #565 > > │ 00:00:25 v #566 > > ................................................................................ 00:00:25 v #567 > > ................................................................................ 00:00:25 v #568 > > │ 00:00:25 v #569 > > ............................................................................. 00:00:25 v #570 > > │ 00:00:25 v #571 > > ................................................................................ 00:00:25 v #572 > > ................................................................................ 00:00:25 v #573 > > │ 00:00:25 v #574 > > ................................................................................ 00:00:25 v #575 > > ................................................................................ 00:00:25 v #576 > > │ 00:00:25 v #577 > > ................................................................................ 00:00:25 v #578 > > ................................................................................ 00:00:25 v #579 > > │ 00:00:25 v #580 > > ................................................................................ 00:00:25 v #581 > > ................................................................................ 00:00:25 v #582 > > │ 00:00:25 v #583 > > ................................................................................ 00:00:25 v #584 > > ................................................................................ 00:00:25 v #585 > > │ 00:00:25 v #586 > > ................................................................................ 00:00:25 v #587 > > ................................................................................ 00:00:25 v #588 > > │ 00:00:25 v #589 > > ................................................................................ 00:00:25 v #590 > > ................................................................................ 00:00:25 v #591 > > │ 00:00:25 v #592 > > ................................................................................ 00:00:25 v #593 > > ................................................................................ 00:00:25 v #594 > > │ 00:00:25 v #595 > > ................................................................................ 00:00:25 v #596 > > ................................................................................ 00:00:25 v #597 > > │ 00:00:25 v #598 > > │ 00:00:25 v #599 > > │ 00:00:25 v #600 > > │ " 00:00:25 v #601 > > │ 00:00:25 v #602 > > 00:00:25 v #603 > > ── [ 10.94s - stdout ] ───────────────────────────────────────────────────────── 00:00:25 v #604 > > │ .fsx output: 00:00:25 v #605 > > │ 00:00:25 v #606 > > ................................................................................ 00:00:25 v #607 > > ................................................................................ 00:00:25 v #608 > > │ 00:00:25 v #609 > > ................................................................................ 00:00:25 v #610 > > ................................................................................ 00:00:25 v #611 > > │ 00:00:25 v #612 > > ................................................................................ 00:00:25 v #613 > > ................................................................................ 00:00:25 v #614 > > │ 00:00:25 v #615 > > ................................................................................ 00:00:25 v #616 > > ................................................................................ 00:00:25 v #617 > > │ 00:00:25 v #618 > > ................................................................................ 00:00:25 v #619 > > ................................................................................ 00:00:25 v #620 > > │ 00:00:25 v #621 > > ................................................................................ 00:00:25 v #622 > > ................................................................................ 00:00:25 v #623 > > │ 00:00:25 v #624 > > ................................................................................ 00:00:25 v #625 > > ................................................................................ 00:00:25 v #626 > > │ 00:00:25 v #627 > > ................................................................................ 00:00:25 v #628 > > ................................................................................ 00:00:25 v #629 > > │ 00:00:25 v #630 > > ................................................................................ 00:00:25 v #631 > > ................................................................................ 00:00:25 v #632 > > │ 00:00:25 v #633 > > ................................................................................ 00:00:25 v #634 > > ................................................................................ 00:00:25 v #635 > > │ 00:00:25 v #636 > > ................................................................................ 00:00:25 v #637 > > ................................................................................ 00:00:25 v #638 > > │ 00:00:25 v #639 > > ................................................................................ 00:00:25 v #640 > > ................................................................................ 00:00:25 v #641 > > │ 00:00:25 v #642 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #643 > > ................................................................................ 00:00:25 v #644 > > │ 00:00:25 v #645 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #646 > > ................................................................................ 00:00:25 v #647 > > │ 00:00:25 v #648 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #649 > > ................................................................................ 00:00:25 v #650 > > │ 00:00:25 v #651 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #652 > > ................................................................................ 00:00:25 v #653 > > │ 00:00:25 v #654 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #655 > > ................................................................................ 00:00:25 v #656 > > │ 00:00:25 v #657 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #658 > > .;;;;;;;;;;;;;;;;;\............................................................. 00:00:25 v #659 > > │ 00:00:25 v #660 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #661 > > .;;;;;;;;;;;;;;;;;\............................................................. 00:00:25 v #662 > > │ 00:00:25 v #663 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #664 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:25 v #665 > > │ 00:00:25 v #666 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #667 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:25 v #668 > > │ 00:00:25 v #669 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #670 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:25 v #671 > > │ 00:00:25 v #672 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #673 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:25 v #674 > > │ 00:00:25 v #675 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #676 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:25 v #677 > > │ 00:00:25 v #678 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #679 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<.................................... 00:00:25 v #680 > > │ 00:00:25 v #681 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #682 > > .;;;;;;;;;;;;;;;;;\............................................................. 00:00:25 v #683 > > │ 00:00:25 v #684 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #685 > > .<<<<<<<<<<<<<<<<<\............................................................. 00:00:25 v #686 > > │ 00:00:25 v #687 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #688 > > ................................................................................ 00:00:25 v #689 > > │ 00:00:25 v #690 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #691 > > ................................................................................ 00:00:25 v #692 > > │ 00:00:25 v #693 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #694 > > ................................................................................ 00:00:25 v #695 > > │ 00:00:25 v #696 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #697 > > ................................................................................ 00:00:25 v #698 > > │ 00:00:25 v #699 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:25 v #700 > > ................................................................................ 00:00:25 v #701 > > │ 00:00:25 v #702 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... 00:00:25 v #703 > > ................................................................................ 00:00:25 v #704 > > │ 00:00:25 v #705 > > ................................................................................ 00:00:25 v #706 > > ................................................................................ 00:00:25 v #707 > > │ 00:00:25 v #708 > > ................................................................................ 00:00:25 v #709 > > ................................................................................ 00:00:25 v #710 > > │ 00:00:25 v #711 > > ................................................................................ 00:00:25 v #712 > > ................................................................................ 00:00:25 v #713 > > │ 00:00:25 v #714 > > ................................................................................ 00:00:25 v #715 > > ................................................................................ 00:00:25 v #716 > > │ 00:00:25 v #717 > > ................................................................................ 00:00:25 v #718 > > ................................................................................ 00:00:25 v #719 > > │ 00:00:25 v #720 > > ................................................................................ 00:00:25 v #721 > > ................................................................................ 00:00:25 v #722 > > │ 00:00:25 v #723 > > ................................................................................ 00:00:25 v #724 > > ................................................................................ 00:00:25 v #725 > > │ 00:00:25 v #726 > > ................................................................................ 00:00:25 v #727 > > ................................................................................ 00:00:25 v #728 > > │ 00:00:25 v #729 > > ................................................................................ 00:00:25 v #730 > > ................................................................................ 00:00:25 v #731 > > │ 00:00:25 v #732 > > ................................................................................ 00:00:25 v #733 > > ................................................................................ 00:00:25 v #734 > > │ 00:00:25 v #735 > > ................................................................................ 00:00:25 v #736 > > ................................................................................ 00:00:25 v #737 > > │ 00:00:25 v #738 > > │ 00:00:25 v #739 > > 00:00:25 v #740 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #741 > > │ ### main_loop 00:00:25 v #742 > > 00:00:25 v #743 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:25 v #744 > > let rec mainLoop rot = async { 00:00:25 v #745 > > let frame = generateFrame rot 00:00:25 v #746 > > // Console.SetCursorPosition(0, 0) 00:00:25 v #747 > > Console.Write(frame) 00:00:25 v #748 > > let rot' = { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 } 00:00:25 v #749 > > do! Async.Sleep 16 00:00:25 v #750 > > return! mainLoop rot' 00:00:25 v #751 > > } 00:00:25 v #752 > > 00:00:25 v #753 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #754 > > let rec main_loop max i rot = 00:00:25 v #755 > > fun () => 00:00:25 v #756 > > inl rot = join rot 00:00:25 v #757 > > inl frame = rot |> generate_frame 00:00:25 v #758 > > if max < 0 then 00:00:25 v #759 > > run_target function 00:00:25 v #760 > > | Fsharp (Native) => fun () => 00:00:25 v #761 > > $'System.Console.SetCursorPosition (0, 0)' 00:00:25 v #762 > > | Rust _ => fun () => 00:00:25 v #763 > > open rust.rust_operators 00:00:25 v #764 > > !\($'$"print\!(\\\"\\\\x1B[[1;1H\\\")"') 00:00:25 v #765 > > | TypeScript _ => fun () => 00:00:25 v #766 > > open typescript_operators 00:00:25 v #767 > > !\($'$"process.stdout.write(\'\\\\u001B[[1;1H\')"') 00:00:25 v #768 > > | Python _ => fun () => 00:00:25 v #769 > > open python_operators 00:00:25 v #770 > > // global "import sys" 00:00:25 v #771 > > !\($'$"sys.stdout.write(\\\"\\\\033[[1;1H\\\")"') 00:00:25 v #772 > > | Cuda _ => fun () => 00:00:25 v #773 > > global "import sys" 00:00:25 v #774 > > $'sys.stdout.write("\\033[[1;1H")' 00:00:25 v #775 > > | _ => fun () => () 00:00:25 v #776 > > frame |> console.write_line 00:00:25 v #777 > > async.sleep 1 |> async.do 00:00:25 v #778 > > if max > 0 && i >= max 00:00:25 v #779 > > then () 00:00:25 v #780 > > else 00:00:25 v #781 > > { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 } 00:00:25 v #782 > > |> main_loop max (i + 1) 00:00:25 v #783 > > |> async.return_await' 00:00:25 v #784 > > |> async.new_async_unit 00:00:25 v #785 > > 00:00:25 v #786 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:25 v #787 > > │ ### main 00:00:25 v #788 > > 00:00:25 v #789 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:25 v #790 > > // [[<EntryPoint>]] 00:00:25 v #791 > > let main argv = 00:00:25 v #792 > > // Console.CursorVisible <- false 00:00:25 v #793 > > Async.StartImmediate (mainLoop { a = 0.0; b = 0.0; c = 0.0 }) 00:00:25 v #794 > > System.Threading.Thread.Sleep(1000) 00:00:25 v #795 > > 00:00:25 v #796 > > ── fsharp ────────────────────────────────────────────────────────────────────── 00:00:25 v #797 > > // main [[||]] 00:00:25 v #798 > > 00:00:25 v #799 > > ── spiral ────────────────────────────────────────────────────────────────────── 00:00:25 v #800 > > inl main (_args : array_base string) = 00:00:25 v #801 > > inl console = 00:00:25 v #802 > > run_target function 00:00:25 v #803 > > | Fsharp (Wasm) => fun () => false 00:00:25 v #804 > > | _ => fun () => 00:00:25 v #805 > > ((join "VSCODE_PID") |> env.get_environment_variable |> sm'.length 00:00:25 v #806 > > |> (=) 0i32) 00:00:25 v #807 > > && ("AUTOMATION" |> env.get_environment_variable |> sm'.length 00:00:25 v #808 > > |> (=) 0i32) 00:00:25 v #809 > > if console then 00:00:25 v #810 > > run_target function 00:00:25 v #811 > > | Fsharp (Native) => fun () => $'System.Console.CursorVisible <- 00:00:25 v #812 > > false' 00:00:25 v #813 > > | Rust _ => fun () => 00:00:25 v #814 > > open rust.rust_operators 00:00:25 v #815 > > !\($'$"print\!(\\\"\\\\x1B[[?25l\\\")"') 00:00:25 v #816 > > | TypeScript _ => fun () => 00:00:25 v #817 > > open typescript_operators 00:00:25 v #818 > > !\($'$"process.stdout.write(\'\\\\u001B[[?25l\')"') 00:00:25 v #819 > > | Python _ => fun () => 00:00:25 v #820 > > open python_operators 00:00:25 v #821 > > python.import_all "sys" 00:00:25 v #822 > > !\($'$"sys.stdout.write(\\\"\\\\033[[?25l\\\")"') 00:00:25 v #823 > > | _ => fun () => () 00:00:25 v #824 > > main_loop (if console then -1i32 else 50) 1i32 { a = 0.0; b = 0.0; c = 0.0 } 00:00:25 v #825 > > |> fun x => 00:00:25 v #826 > > run_target_args' x function 00:00:25 v #827 > > | Fsharp (Wasm) 00:00:25 v #828 > > | TypeScript _ => fun x => 00:00:25 v #829 > > x 00:00:25 v #830 > > |> async.start_child 00:00:25 v #831 > > |> ignore 00:00:25 v #832 > > | Python _ => fun x => 00:00:25 v #833 > > x 00:00:25 v #834 > > |> async.start_immediate 00:00:25 v #835 > > threading.sleep' 2000 00:00:25 v #836 > > | _ => fun x => 00:00:25 v #837 > > x 00:00:25 v #838 > > |> async.run_synchronously 00:00:25 v #839 > > 00:00:25 v #840 > > inl main () = 00:00:25 v #841 > > backend_switch { 00:00:25 v #842 > > Fsharp = fun () => 00:00:25 v #843 > > $'let main_ = !main ' 00:00:25 v #844 > > $'#if \!FABLE_COMPILER_RUST' 00:00:25 v #845 > > $'main_ [[||]]' : () 00:00:25 v #846 > > $'#else' 00:00:25 v #847 > > $'let main args = main_ [[||]]; 0' : () 00:00:25 v #848 > > $'#endif' : () 00:00:25 v #849 > > Python = fun () => 00:00:25 v #850 > > main ;[[]] 00:00:25 v #851 > > } 00:00:25 v #852 > > : () 00:00:27 v #853 > > 00:00:27 v #854 > > ── [ 1.74s - stdout ] ────────────────────────────────────────────────────────── 00:00:27 v #855 > > │ 00:00:27 v #856 > > ................................................................................ 00:00:27 v #857 > > ................................................................................ 00:00:27 v #858 > > │ 00:00:27 v #859 > > ................................................................................ 00:00:27 v #860 > > ................................................................................ 00:00:27 v #861 > > │ 00:00:27 v #862 > > ................................................................................ 00:00:27 v #863 > > ................................................................................ 00:00:27 v #864 > > │ 00:00:27 v #865 > > ................................................................................ 00:00:27 v #866 > > ................................................................................ 00:00:27 v #867 > > │ 00:00:27 v #868 > > ................................................................................ 00:00:27 v #869 > > ................................................................................ 00:00:27 v #870 > > │ 00:00:27 v #871 > > ................................................................................ 00:00:27 v #872 > > ................................................................................ 00:00:27 v #873 > > │ 00:00:27 v #874 > > ................................................................................ 00:00:27 v #875 > > ................................................................................ 00:00:27 v #876 > > │ 00:00:27 v #877 > > ................................................................................ 00:00:27 v #878 > > ................................................................................ 00:00:27 v #879 > > │ 00:00:27 v #880 > > ................................................................................ 00:00:27 v #881 > > ................................................................................ 00:00:27 v #882 > > │ 00:00:27 v #883 > > ................................................................................ 00:00:27 v #884 > > ................................................................................ 00:00:27 v #885 > > │ 00:00:27 v #886 > > ................................................................................ 00:00:27 v #887 > > ................................................................................ 00:00:27 v #888 > > │ 00:00:27 v #889 > > ................................................................................ 00:00:27 v #890 > > ................................................................................ 00:00:27 v #891 > > │ 00:00:27 v #892 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #893 > > ................................................................................ 00:00:27 v #894 > > │ 00:00:27 v #895 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #896 > > ................................................................................ 00:00:27 v #897 > > │ 00:00:27 v #898 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #899 > > ................................................................................ 00:00:27 v #900 > > │ 00:00:27 v #901 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #902 > > ................................................................................ 00:00:27 v #903 > > │ 00:00:27 v #904 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #905 > > ................................................................................ 00:00:27 v #906 > > │ 00:00:27 v #907 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #908 > > .;;;;;;;;;;;;;;;;;\............................................................. 00:00:27 v #909 > > │ 00:00:27 v #910 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #911 > > .;;;;;;;;;;;;;;;;;\............................................................. 00:00:27 v #912 > > │ 00:00:27 v #913 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #914 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:27 v #915 > > │ 00:00:27 v #916 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #917 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:27 v #918 > > │ 00:00:27 v #919 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #920 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:27 v #921 > > │ 00:00:27 v #922 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #923 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:27 v #924 > > │ 00:00:27 v #925 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #926 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... 00:00:27 v #927 > > │ 00:00:27 v #928 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #929 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<.................................... 00:00:27 v #930 > > │ 00:00:27 v #931 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #932 > > .;;;;;;;;;;;;;;;;;\............................................................. 00:00:27 v #933 > > │ 00:00:27 v #934 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #935 > > .<<<<<<<<<<<<<<<<<\............................................................. 00:00:27 v #936 > > │ 00:00:27 v #937 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #938 > > ................................................................................ 00:00:27 v #939 > > │ 00:00:27 v #940 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #941 > > ................................................................................ 00:00:27 v #942 > > │ 00:00:27 v #943 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #944 > > ................................................................................ 00:00:27 v #945 > > │ 00:00:27 v #946 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #947 > > ................................................................................ 00:00:27 v #948 > > │ 00:00:27 v #949 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #950 > > ................................................................................ 00:00:27 v #951 > > │ 00:00:27 v #952 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... 00:00:27 v #953 > > ................................................................................ 00:00:27 v #954 > > │ 00:00:27 v #955 > > ................................................................................ 00:00:27 v #956 > > ................................................................................ 00:00:27 v #957 > > │ 00:00:27 v #958 > > ................................................................................ 00:00:27 v #959 > > ................................................................................ 00:00:27 v #960 > > │ 00:00:27 v #961 > > ................................................................................ 00:00:27 v #962 > > ................................................................................ 00:00:27 v #963 > > │ 00:00:27 v #964 > > ................................................................................ 00:00:27 v #965 > > ................................................................................ 00:00:27 v #966 > > │ 00:00:27 v #967 > > ................................................................................ 00:00:27 v #968 > > ................................................................................ 00:00:27 v #969 > > │ 00:00:27 v #970 > > ................................................................................ 00:00:27 v #971 > > ................................................................................ 00:00:27 v #972 > > │ 00:00:27 v #973 > > ................................................................................ 00:00:27 v #974 > > ................................................................................ 00:00:27 v #975 > > │ 00:00:27 v #976 > > ................................................................................ 00:00:27 v #977 > > ................................................................................ 00:00:27 v #978 > > │ 00:00:27 v #979 > > ................................................................................ 00:00:27 v #980 > > ................................................................................ 00:00:27 v #981 > > │ 00:00:27 v #982 > > ................................................................................ 00:00:27 v #983 > > ................................................................................ 00:00:27 v #984 > > │ 00:00:27 v #985 > > ................................................................................ 00:00:27 v #986 > > ................................................................................ 00:00:27 v #987 > > │ 00:00:27 v #988 > > │ 00:00:27 v #989 > > ................................................................................ 00:00:27 v #990 > > ................................................................................ 00:00:27 v #991 > > │ 00:00:27 v #992 > > ................................................................................ 00:00:27 v #993 > > ................................................................................ 00:00:27 v #994 > > │ 00:00:27 v #995 > > ................................................................................ 00:00:27 v #996 > > ................................................................................ 00:00:27 v #997 > > │ 00:00:27 v #998 > > ................................................................................ 00:00:27 v #999 > > ................................................................................ 00:00:27 v #1000 > > │ 00:00:27 v #1001 > > ................................................................................ 00:00:27 v #1002 > > ................................................................................ 00:00:27 v #1003 > > │ 00:00:27 v #1004 > > ................................................................................ 00:00:27 v #1005 > > ................................................................................ 00:00:27 v #1006 > > │ 00:00:27 v #1007 > > ................................................................................ 00:00:27 v #1008 > > ................................................................................ 00:00:27 v #1009 > > │ 00:00:27 v #1010 > > ................................................................................ 00:00:27 v #1011 > > ................................................................................ 00:00:27 v #1012 > > │ 00:00:27 v #1013 > > ................................................................................ 00:00:27 v #1014 > > ................................................................................ 00:00:27 v #1015 > > │ 00:00:27 v #1016 > > ................................................................................ 00:00:27 v #1017 > > ................................................................................ 00:00:27 v #1018 > > │ 00:00:27 v #1019 > > ................................................................................ 00:00:27 v #1020 > > ................................................................................ 00:00:27 v #1021 > > │ 00:00:27 v #1022 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1023 > > ................................................................................ 00:00:27 v #1024 > > │ 00:00:27 v #1025 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1026 > > ................................................................................ 00:00:27 v #1027 > > │ 00:00:27 v #1028 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1029 > > ................................................................................ 00:00:27 v #1030 > > │ 00:00:27 v #1031 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1032 > > ................................................................................ 00:00:27 v #1033 > > │ 00:00:27 v #1034 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1035 > > ................................................................................ 00:00:27 v #1036 > > │ 00:00:27 v #1037 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1038 > > ................................................................................ 00:00:27 v #1039 > > │ 00:00:27 v #1040 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1041 > > .;;;;;;;;;;;;;;;;;;\............................................................ 00:00:27 v #1042 > > │ 00:00:27 v #1043 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1044 > > .;;;;;;;;;;;;;;;;;;\............................................................ 00:00:27 v #1045 > > │ 00:00:27 v #1046 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1047 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... 00:00:27 v #1048 > > │ 00:00:27 v #1049 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1050 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... 00:00:27 v #1051 > > │ 00:00:27 v #1052 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1053 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... 00:00:27 v #1054 > > │ 00:00:27 v #1055 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1056 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... 00:00:27 v #1057 > > │ 00:00:27 v #1058 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1059 > > .;;;;;;;;;;;;;;;;;;;................;;;;;<<<<................................... 00:00:27 v #1060 > > │ 00:00:27 v #1061 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1062 > > .;;;;;;;;;;;;;;;;;;;................<<<<<....................................... 00:00:27 v #1063 > > │ 00:00:27 v #1064 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1065 > > .;;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1066 > > │ 00:00:27 v #1067 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1068 > > .<<<<<<<<<<<<<<<<<<<............................................................ 00:00:27 v #1069 > > │ 00:00:27 v #1070 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1071 > > ................................................................................ 00:00:27 v #1072 > > │ 00:00:27 v #1073 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1074 > > ................................................................................ 00:00:27 v #1075 > > │ 00:00:27 v #1076 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1077 > > ................................................................................ 00:00:27 v #1078 > > │ 00:00:27 v #1079 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1080 > > ................................................................................ 00:00:27 v #1081 > > │ 00:00:27 v #1082 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\.................. 00:00:27 v #1083 > > ................................................................................ 00:00:27 v #1084 > > │ 00:00:27 v #1085 > > ................................................................................ 00:00:27 v #1086 > > ................................................................................ 00:00:27 v #1087 > > │ 00:00:27 v #1088 > > ................................................................................ 00:00:27 v #1089 > > ................................................................................ 00:00:27 v #1090 > > │ 00:00:27 v #1091 > > ................................................................................ 00:00:27 v #1092 > > ................................................................................ 00:00:27 v #1093 > > │ 00:00:27 v #1094 > > ................................................................................ 00:00:27 v #1095 > > ................................................................................ 00:00:27 v #1096 > > │ 00:00:27 v #1097 > > ................................................................................ 00:00:27 v #1098 > > ................................................................................ 00:00:27 v #1099 > > │ 00:00:27 v #1100 > > ................................................................................ 00:00:27 v #1101 > > ................................................................................ 00:00:27 v #1102 > > │ 00:00:27 v #1103 > > ................................................................................ 00:00:27 v #1104 > > ................................................................................ 00:00:27 v #1105 > > │ 00:00:27 v #1106 > > ................................................................................ 00:00:27 v #1107 > > ................................................................................ 00:00:27 v #1108 > > │ 00:00:27 v #1109 > > ................................................................................ 00:00:27 v #1110 > > ................................................................................ 00:00:27 v #1111 > > │ 00:00:27 v #1112 > > ................................................................................ 00:00:27 v #1113 > > ................................................................................ 00:00:27 v #1114 > > │ 00:00:27 v #1115 > > ................................................................................ 00:00:27 v #1116 > > ................................................................................ 00:00:27 v #1117 > > │ 00:00:27 v #1118 > > ................................................................................ 00:00:27 v #1119 > > ................................................................................ 00:00:27 v #1120 > > │ 00:00:27 v #1121 > > │ 00:00:27 v #1122 > > ................................................................................ 00:00:27 v #1123 > > ................................................................................ 00:00:27 v #1124 > > │ 00:00:27 v #1125 > > ................................................................................ 00:00:27 v #1126 > > ................................................................................ 00:00:27 v #1127 > > │ 00:00:27 v #1128 > > ................................................................................ 00:00:27 v #1129 > > ................................................................................ 00:00:27 v #1130 > > │ 00:00:27 v #1131 > > ................................................................................ 00:00:27 v #1132 > > ................................................................................ 00:00:27 v #1133 > > │ 00:00:27 v #1134 > > ................................................................................ 00:00:27 v #1135 > > ................................................................................ 00:00:27 v #1136 > > │ 00:00:27 v #1137 > > ................................................................................ 00:00:27 v #1138 > > ................................................................................ 00:00:27 v #1139 > > │ 00:00:27 v #1140 > > ................................................................................ 00:00:27 v #1141 > > ................................................................................ 00:00:27 v #1142 > > │ 00:00:27 v #1143 > > ................................................................................ 00:00:27 v #1144 > > ................................................................................ 00:00:27 v #1145 > > │ 00:00:27 v #1146 > > ................................................................................ 00:00:27 v #1147 > > ................................................................................ 00:00:27 v #1148 > > │ 00:00:27 v #1149 > > ................................................................................ 00:00:27 v #1150 > > ................................................................................ 00:00:27 v #1151 > > │ 00:00:27 v #1152 > > ................................................................................ 00:00:27 v #1153 > > ................................................................................ 00:00:27 v #1154 > > │ 00:00:27 v #1155 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1156 > > ................................................................................ 00:00:27 v #1157 > > │ 00:00:27 v #1158 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1159 > > ................................................................................ 00:00:27 v #1160 > > │ 00:00:27 v #1161 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1162 > > ................................................................................ 00:00:27 v #1163 > > │ 00:00:27 v #1164 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1165 > > ................................................................................ 00:00:27 v #1166 > > │ 00:00:27 v #1167 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1168 > > ................................................................................ 00:00:27 v #1169 > > │ 00:00:27 v #1170 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1171 > > ................................................................................ 00:00:27 v #1172 > > │ 00:00:27 v #1173 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1174 > > .;;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1175 > > │ 00:00:27 v #1176 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1177 > > .;;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1178 > > │ 00:00:27 v #1179 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1180 > > .;;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... 00:00:27 v #1181 > > │ 00:00:27 v #1182 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1183 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... 00:00:27 v #1184 > > │ 00:00:27 v #1185 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1186 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... 00:00:27 v #1187 > > │ 00:00:27 v #1188 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1189 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... 00:00:27 v #1190 > > │ 00:00:27 v #1191 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1192 > > .;;;;;;;;;;;;;;;;;;;.............../<<<<<<<<<................................... 00:00:27 v #1193 > > │ 00:00:27 v #1194 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1195 > > ..;;;;;;;;;;;;;;;;;;...............<<<<<<<<<.................................... 00:00:27 v #1196 > > │ 00:00:27 v #1197 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1198 > > ..;;;;;;;;;;<<<<<<<<............................................................ 00:00:27 v #1199 > > │ 00:00:27 v #1200 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1201 > > ..<<<<<<<<<<.................................................................... 00:00:27 v #1202 > > │ 00:00:27 v #1203 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1204 > > ................................................................................ 00:00:27 v #1205 > > │ 00:00:27 v #1206 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1207 > > ................................................................................ 00:00:27 v #1208 > > │ 00:00:27 v #1209 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1210 > > ................................................................................ 00:00:27 v #1211 > > │ 00:00:27 v #1212 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<\................. 00:00:27 v #1213 > > ................................................................................ 00:00:27 v #1214 > > │ 00:00:27 v #1215 > > .....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<............................... 00:00:27 v #1216 > > ................................................................................ 00:00:27 v #1217 > > │ 00:00:27 v #1218 > > ................................................................................ 00:00:27 v #1219 > > ................................................................................ 00:00:27 v #1220 > > │ 00:00:27 v #1221 > > ................................................................................ 00:00:27 v #1222 > > ................................................................................ 00:00:27 v #1223 > > │ 00:00:27 v #1224 > > ................................................................................ 00:00:27 v #1225 > > ................................................................................ 00:00:27 v #1226 > > │ 00:00:27 v #1227 > > ................................................................................ 00:00:27 v #1228 > > ................................................................................ 00:00:27 v #1229 > > │ 00:00:27 v #1230 > > ................................................................................ 00:00:27 v #1231 > > ................................................................................ 00:00:27 v #1232 > > │ 00:00:27 v #1233 > > ................................................................................ 00:00:27 v #1234 > > ................................................................................ 00:00:27 v #1235 > > │ 00:00:27 v #1236 > > ................................................................................ 00:00:27 v #1237 > > ................................................................................ 00:00:27 v #1238 > > │ 00:00:27 v #1239 > > ................................................................................ 00:00:27 v #1240 > > ................................................................................ 00:00:27 v #1241 > > │ 00:00:27 v #1242 > > ................................................................................ 00:00:27 v #1243 > > ................................................................................ 00:00:27 v #1244 > > │ 00:00:27 v #1245 > > ................................................................................ 00:00:27 v #1246 > > ................................................................................ 00:00:27 v #1247 > > │ 00:00:27 v #1248 > > ................................................................................ 00:00:27 v #1249 > > ................................................................................ 00:00:27 v #1250 > > │ 00:00:27 v #1251 > > ................................................................................ 00:00:27 v #1252 > > ................................................................................ 00:00:27 v #1253 > > │ 00:00:27 v #1254 > > │ 00:00:27 v #1255 > > ................................................................................ 00:00:27 v #1256 > > ................................................................................ 00:00:27 v #1257 > > │ 00:00:27 v #1258 > > ................................................................................ 00:00:27 v #1259 > > ................................................................................ 00:00:27 v #1260 > > │ 00:00:27 v #1261 > > ................................................................................ 00:00:27 v #1262 > > ................................................................................ 00:00:27 v #1263 > > │ 00:00:27 v #1264 > > ................................................................................ 00:00:27 v #1265 > > ................................................................................ 00:00:27 v #1266 > > │ 00:00:27 v #1267 > > ................................................................................ 00:00:27 v #1268 > > ................................................................................ 00:00:27 v #1269 > > │ 00:00:27 v #1270 > > ................................................................................ 00:00:27 v #1271 > > ................................................................................ 00:00:27 v #1272 > > │ 00:00:27 v #1273 > > ................................................................................ 00:00:27 v #1274 > > ................................................................................ 00:00:27 v #1275 > > │ 00:00:27 v #1276 > > ................................................................................ 00:00:27 v #1277 > > ................................................................................ 00:00:27 v #1278 > > │ 00:00:27 v #1279 > > ................................................................................ 00:00:27 v #1280 > > ................................................................................ 00:00:27 v #1281 > > │ 00:00:27 v #1282 > > ................................................................................ 00:00:27 v #1283 > > ................................................................................ 00:00:27 v #1284 > > │ 00:00:27 v #1285 > > ......................;;;;;;;;;;;............................................... 00:00:27 v #1286 > > ................................................................................ 00:00:27 v #1287 > > │ 00:00:27 v #1288 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1289 > > ................................................................................ 00:00:27 v #1290 > > │ 00:00:27 v #1291 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1292 > > ................................................................................ 00:00:27 v #1293 > > │ 00:00:27 v #1294 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1295 > > ................................................................................ 00:00:27 v #1296 > > │ 00:00:27 v #1297 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1298 > > ................................................................................ 00:00:27 v #1299 > > │ 00:00:27 v #1300 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1301 > > ................................................................................ 00:00:27 v #1302 > > │ 00:00:27 v #1303 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1304 > > ..............;;;;;;............................................................ 00:00:27 v #1305 > > │ 00:00:27 v #1306 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1307 > > .>;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1308 > > │ 00:00:27 v #1309 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1310 > > ./;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1311 > > │ 00:00:27 v #1312 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1313 > > ./;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... 00:00:27 v #1314 > > │ 00:00:27 v #1315 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1316 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... 00:00:27 v #1317 > > │ 00:00:27 v #1318 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1319 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... 00:00:27 v #1320 > > │ 00:00:27 v #1321 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1322 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;................................... 00:00:27 v #1323 > > │ 00:00:27 v #1324 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1325 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<<................................... 00:00:27 v #1326 > > │ 00:00:27 v #1327 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1328 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<.................................... 00:00:27 v #1329 > > │ 00:00:27 v #1330 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1331 > > ./<<<<<<<<<<<<<<<<<<<........................................................... 00:00:27 v #1332 > > │ 00:00:27 v #1333 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1334 > > ./<<<<<<<<<<<<<<<............................................................... 00:00:27 v #1335 > > │ 00:00:27 v #1336 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ 00:00:27 v #1337 > > ................................................................................ 00:00:27 v #1338 > > │ 00:00:27 v #1339 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ 00:00:27 v #1340 > > ................................................................................ 00:00:27 v #1341 > > │ 00:00:27 v #1342 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #1343 > > ................................................................................ 00:00:27 v #1344 > > │ 00:00:27 v #1345 > > ......................;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................ 00:00:27 v #1346 > > ................................................................................ 00:00:27 v #1347 > > │ 00:00:27 v #1348 > > ......................<<<<<<<<<<................................................ 00:00:27 v #1349 > > ................................................................................ 00:00:27 v #1350 > > │ 00:00:27 v #1351 > > ................................................................................ 00:00:27 v #1352 > > ................................................................................ 00:00:27 v #1353 > > │ 00:00:27 v #1354 > > ................................................................................ 00:00:27 v #1355 > > ................................................................................ 00:00:27 v #1356 > > │ 00:00:27 v #1357 > > ................................................................................ 00:00:27 v #1358 > > ................................................................................ 00:00:27 v #1359 > > │ 00:00:27 v #1360 > > ................................................................................ 00:00:27 v #1361 > > ................................................................................ 00:00:27 v #1362 > > │ 00:00:27 v #1363 > > ................................................................................ 00:00:27 v #1364 > > ................................................................................ 00:00:27 v #1365 > > │ 00:00:27 v #1366 > > ................................................................................ 00:00:27 v #1367 > > ................................................................................ 00:00:27 v #1368 > > │ 00:00:27 v #1369 > > ................................................................................ 00:00:27 v #1370 > > ................................................................................ 00:00:27 v #1371 > > │ 00:00:27 v #1372 > > ................................................................................ 00:00:27 v #1373 > > ................................................................................ 00:00:27 v #1374 > > │ 00:00:27 v #1375 > > ................................................................................ 00:00:27 v #1376 > > ................................................................................ 00:00:27 v #1377 > > │ 00:00:27 v #1378 > > ................................................................................ 00:00:27 v #1379 > > ................................................................................ 00:00:27 v #1380 > > │ 00:00:27 v #1381 > > ................................................................................ 00:00:27 v #1382 > > ................................................................................ 00:00:27 v #1383 > > │ 00:00:27 v #1384 > > ................................................................................ 00:00:27 v #1385 > > ................................................................................ 00:00:27 v #1386 > > │ 00:00:27 v #1387 > > │ 00:00:27 v #1388 > > ................................................................................ 00:00:27 v #1389 > > ................................................................................ 00:00:27 v #1390 > > │ 00:00:27 v #1391 > > ................................................................................ 00:00:27 v #1392 > > ................................................................................ 00:00:27 v #1393 > > │ 00:00:27 v #1394 > > ................................................................................ 00:00:27 v #1395 > > ................................................................................ 00:00:27 v #1396 > > │ 00:00:27 v #1397 > > ................................................................................ 00:00:27 v #1398 > > ................................................................................ 00:00:27 v #1399 > > │ 00:00:27 v #1400 > > ................................................................................ 00:00:27 v #1401 > > ................................................................................ 00:00:27 v #1402 > > │ 00:00:27 v #1403 > > ................................................................................ 00:00:27 v #1404 > > ................................................................................ 00:00:27 v #1405 > > │ 00:00:27 v #1406 > > ................................................................................ 00:00:27 v #1407 > > ................................................................................ 00:00:27 v #1408 > > │ 00:00:27 v #1409 > > ................................................................................ 00:00:27 v #1410 > > ................................................................................ 00:00:27 v #1411 > > │ 00:00:27 v #1412 > > ................................................................................ 00:00:27 v #1413 > > ................................................................................ 00:00:27 v #1414 > > │ 00:00:27 v #1415 > > ................................................................................ 00:00:27 v #1416 > > ................................................................................ 00:00:27 v #1417 > > │ 00:00:27 v #1418 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1419 > > ................................................................................ 00:00:27 v #1420 > > │ 00:00:27 v #1421 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1422 > > ................................................................................ 00:00:27 v #1423 > > │ 00:00:27 v #1424 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1425 > > ................................................................................ 00:00:27 v #1426 > > │ 00:00:27 v #1427 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1428 > > ................................................................................ 00:00:27 v #1429 > > │ 00:00:27 v #1430 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1431 > > ................................................................................ 00:00:27 v #1432 > > │ 00:00:27 v #1433 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1434 > > ................................................................................ 00:00:27 v #1435 > > │ 00:00:27 v #1436 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #1437 > > ..;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1438 > > │ 00:00:27 v #1439 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1440 > > .>;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1441 > > │ 00:00:27 v #1442 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1443 > > ./;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1444 > > │ 00:00:27 v #1445 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1446 > > >/;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... 00:00:27 v #1447 > > │ 00:00:27 v #1448 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1449 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;................................... 00:00:27 v #1450 > > │ 00:00:27 v #1451 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1452 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;................................... 00:00:27 v #1453 > > │ 00:00:27 v #1454 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1455 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\.................................. 00:00:27 v #1456 > > │ 00:00:27 v #1457 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ 00:00:27 v #1458 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<<\.................................. 00:00:27 v #1459 > > │ 00:00:27 v #1460 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #1461 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<.................................... 00:00:27 v #1462 > > │ 00:00:27 v #1463 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #1464 > > .//<<<<<<<<<<<<<<<<<<........................................................... 00:00:27 v #1465 > > │ 00:00:27 v #1466 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #1467 > > ./<<<<<<<<<<<<<<<<.............................................................. 00:00:27 v #1468 > > │ 00:00:27 v #1469 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... 00:00:27 v #1470 > > ................................................................................ 00:00:27 v #1471 > > │ 00:00:27 v #1472 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... 00:00:27 v #1473 > > ................................................................................ 00:00:27 v #1474 > > │ 00:00:27 v #1475 > > ........................;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<............... 00:00:27 v #1476 > > ................................................................................ 00:00:27 v #1477 > > │ 00:00:27 v #1478 > > ........................<<<<<<<<<<<<<<<<<<<<<<.................................. 00:00:27 v #1479 > > ................................................................................ 00:00:27 v #1480 > > │ 00:00:27 v #1481 > > ................................................................................ 00:00:27 v #1482 > > ................................................................................ 00:00:27 v #1483 > > │ 00:00:27 v #1484 > > ................................................................................ 00:00:27 v #1485 > > ................................................................................ 00:00:27 v #1486 > > │ 00:00:27 v #1487 > > ................................................................................ 00:00:27 v #1488 > > ................................................................................ 00:00:27 v #1489 > > │ 00:00:27 v #1490 > > ................................................................................ 00:00:27 v #1491 > > ................................................................................ 00:00:27 v #1492 > > │ 00:00:27 v #1493 > > ................................................................................ 00:00:27 v #1494 > > ................................................................................ 00:00:27 v #1495 > > │ 00:00:27 v #1496 > > ................................................................................ 00:00:27 v #1497 > > ................................................................................ 00:00:27 v #1498 > > │ 00:00:27 v #1499 > > ................................................................................ 00:00:27 v #1500 > > ................................................................................ 00:00:27 v #1501 > > │ 00:00:27 v #1502 > > ................................................................................ 00:00:27 v #1503 > > ................................................................................ 00:00:27 v #1504 > > │ 00:00:27 v #1505 > > ................................................................................ 00:00:27 v #1506 > > ................................................................................ 00:00:27 v #1507 > > │ 00:00:27 v #1508 > > ................................................................................ 00:00:27 v #1509 > > ................................................................................ 00:00:27 v #1510 > > │ 00:00:27 v #1511 > > ................................................................................ 00:00:27 v #1512 > > ................................................................................ 00:00:27 v #1513 > > │ 00:00:27 v #1514 > > ................................................................................ 00:00:27 v #1515 > > ................................................................................ 00:00:27 v #1516 > > │ 00:00:27 v #1517 > > ................................................................................ 00:00:27 v #1518 > > ................................................................................ 00:00:27 v #1519 > > │ 00:00:27 v #1520 > > │ 00:00:27 v #1521 > > ................................................................................ 00:00:27 v #1522 > > ................................................................................ 00:00:27 v #1523 > > │ 00:00:27 v #1524 > > ................................................................................ 00:00:27 v #1525 > > ................................................................................ 00:00:27 v #1526 > > │ 00:00:27 v #1527 > > ................................................................................ 00:00:27 v #1528 > > ................................................................................ 00:00:27 v #1529 > > │ 00:00:27 v #1530 > > ................................................................................ 00:00:27 v #1531 > > ................................................................................ 00:00:27 v #1532 > > │ 00:00:27 v #1533 > > ................................................................................ 00:00:27 v #1534 > > ................................................................................ 00:00:27 v #1535 > > │ 00:00:27 v #1536 > > ................................................................................ 00:00:27 v #1537 > > ................................................................................ 00:00:27 v #1538 > > │ 00:00:27 v #1539 > > ................................................................................ 00:00:27 v #1540 > > ................................................................................ 00:00:27 v #1541 > > │ 00:00:27 v #1542 > > ................................................................................ 00:00:27 v #1543 > > ................................................................................ 00:00:27 v #1544 > > │ 00:00:27 v #1545 > > ................................................................................ 00:00:27 v #1546 > > ................................................................................ 00:00:27 v #1547 > > │ 00:00:27 v #1548 > > ................................................................................ 00:00:27 v #1549 > > ................................................................................ 00:00:27 v #1550 > > │ 00:00:27 v #1551 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... 00:00:27 v #1552 > > ................................................................................ 00:00:27 v #1553 > > │ 00:00:27 v #1554 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1555 > > ................................................................................ 00:00:27 v #1556 > > │ 00:00:27 v #1557 > > ......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1558 > > ................................................................................ 00:00:27 v #1559 > > │ 00:00:27 v #1560 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1561 > > ................................................................................ 00:00:27 v #1562 > > │ 00:00:27 v #1563 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1564 > > ................................................................................ 00:00:27 v #1565 > > │ 00:00:27 v #1566 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1567 > > ................................................................................ 00:00:27 v #1568 > > │ 00:00:27 v #1569 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1570 > > ..;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1571 > > │ 00:00:27 v #1572 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1573 > > .>;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1574 > > │ 00:00:27 v #1575 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1576 > > >/;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1577 > > │ 00:00:27 v #1578 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1579 > > //;;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;................................... 00:00:27 v #1580 > > │ 00:00:27 v #1581 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1582 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;................................... 00:00:27 v #1583 > > │ 00:00:27 v #1584 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ 00:00:27 v #1585 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\.................................. 00:00:27 v #1586 > > │ 00:00:27 v #1587 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #1588 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;;.................................. 00:00:27 v #1589 > > │ 00:00:27 v #1590 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #1591 > > .//;;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<.................................. 00:00:27 v #1592 > > │ 00:00:27 v #1593 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... 00:00:27 v #1594 > > .//;;;;;;;;;;;;;;;;<<<............./<<<<<<<<.................................... 00:00:27 v #1595 > > │ 00:00:27 v #1596 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... 00:00:27 v #1597 > > .///<<<<<<<<<<<<<<<<<........................................................... 00:00:27 v #1598 > > │ 00:00:27 v #1599 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. 00:00:27 v #1600 > > ./<<<<<<<<<<<<<<<<.............................................................. 00:00:27 v #1601 > > │ 00:00:27 v #1602 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. 00:00:27 v #1603 > > ................................................................................ 00:00:27 v #1604 > > │ 00:00:27 v #1605 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<.............. 00:00:27 v #1606 > > ................................................................................ 00:00:27 v #1607 > > │ 00:00:27 v #1608 > > .......................//;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<................... 00:00:27 v #1609 > > ................................................................................ 00:00:27 v #1610 > > │ 00:00:27 v #1611 > > .......................//<<<<<<<<<<<<<<<<<<<<<<<<<.............................. 00:00:27 v #1612 > > ................................................................................ 00:00:27 v #1613 > > │ 00:00:27 v #1614 > > ........................<<<<<<<................................................. 00:00:27 v #1615 > > ................................................................................ 00:00:27 v #1616 > > │ 00:00:27 v #1617 > > ................................................................................ 00:00:27 v #1618 > > ................................................................................ 00:00:27 v #1619 > > │ 00:00:27 v #1620 > > ................................................................................ 00:00:27 v #1621 > > ................................................................................ 00:00:27 v #1622 > > │ 00:00:27 v #1623 > > ................................................................................ 00:00:27 v #1624 > > ................................................................................ 00:00:27 v #1625 > > │ 00:00:27 v #1626 > > ................................................................................ 00:00:27 v #1627 > > ................................................................................ 00:00:27 v #1628 > > │ 00:00:27 v #1629 > > ................................................................................ 00:00:27 v #1630 > > ................................................................................ 00:00:27 v #1631 > > │ 00:00:27 v #1632 > > ................................................................................ 00:00:27 v #1633 > > ................................................................................ 00:00:27 v #1634 > > │ 00:00:27 v #1635 > > ................................................................................ 00:00:27 v #1636 > > ................................................................................ 00:00:27 v #1637 > > │ 00:00:27 v #1638 > > ................................................................................ 00:00:27 v #1639 > > ................................................................................ 00:00:27 v #1640 > > │ 00:00:27 v #1641 > > ................................................................................ 00:00:27 v #1642 > > ................................................................................ 00:00:27 v #1643 > > │ 00:00:27 v #1644 > > ................................................................................ 00:00:27 v #1645 > > ................................................................................ 00:00:27 v #1646 > > │ 00:00:27 v #1647 > > ................................................................................ 00:00:27 v #1648 > > ................................................................................ 00:00:27 v #1649 > > │ 00:00:27 v #1650 > > ................................................................................ 00:00:27 v #1651 > > ................................................................................ 00:00:27 v #1652 > > │ 00:00:27 v #1653 > > │ 00:00:27 v #1654 > > ................................................................................ 00:00:27 v #1655 > > ................................................................................ 00:00:27 v #1656 > > │ 00:00:27 v #1657 > > ................................................................................ 00:00:27 v #1658 > > ................................................................................ 00:00:27 v #1659 > > │ 00:00:27 v #1660 > > ................................................................................ 00:00:27 v #1661 > > ................................................................................ 00:00:27 v #1662 > > │ 00:00:27 v #1663 > > ................................................................................ 00:00:27 v #1664 > > ................................................................................ 00:00:27 v #1665 > > │ 00:00:27 v #1666 > > ................................................................................ 00:00:27 v #1667 > > ................................................................................ 00:00:27 v #1668 > > │ 00:00:27 v #1669 > > ................................................................................ 00:00:27 v #1670 > > ................................................................................ 00:00:27 v #1671 > > │ 00:00:27 v #1672 > > ................................................................................ 00:00:27 v #1673 > > ................................................................................ 00:00:27 v #1674 > > │ 00:00:27 v #1675 > > ................................................................................ 00:00:27 v #1676 > > ................................................................................ 00:00:27 v #1677 > > │ 00:00:27 v #1678 > > ................................................................................ 00:00:27 v #1679 > > ................................................................................ 00:00:27 v #1680 > > │ 00:00:27 v #1681 > > ................................................................................ 00:00:27 v #1682 > > ................................................................................ 00:00:27 v #1683 > > │ 00:00:27 v #1684 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #1685 > > ................................................................................ 00:00:27 v #1686 > > │ 00:00:27 v #1687 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #1688 > > ................................................................................ 00:00:27 v #1689 > > │ 00:00:27 v #1690 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1691 > > ................................................................................ 00:00:27 v #1692 > > │ 00:00:27 v #1693 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1694 > > ................................................................................ 00:00:27 v #1695 > > │ 00:00:27 v #1696 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1697 > > ................................................................................ 00:00:27 v #1698 > > │ 00:00:27 v #1699 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1700 > > ................................................................................ 00:00:27 v #1701 > > │ 00:00:27 v #1702 > > .....................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1703 > > ..;;;;;;;;;;;;;;;;;............................................................. 00:00:27 v #1704 > > │ 00:00:27 v #1705 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1706 > > .>;;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1707 > > │ 00:00:27 v #1708 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1709 > > >//;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1710 > > │ 00:00:27 v #1711 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1712 > > ///;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;................................... 00:00:27 v #1713 > > │ 00:00:27 v #1714 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ 00:00:27 v #1715 > > ///;;;;;;;;;;;;;;;;;;.............>/;;;;;;;;;................................... 00:00:27 v #1716 > > │ 00:00:27 v #1717 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #1718 > > ///;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;\.................................. 00:00:27 v #1719 > > │ 00:00:27 v #1720 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... 00:00:27 v #1721 > > ////;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;.................................. 00:00:27 v #1722 > > │ 00:00:27 v #1723 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... 00:00:27 v #1724 > > ////;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<.................................. 00:00:27 v #1725 > > │ 00:00:27 v #1726 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. 00:00:27 v #1727 > > ////;;;;;;;<<<<<<<<<<<............./<<<<<<<<.................................... 00:00:27 v #1728 > > │ 00:00:27 v #1729 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. 00:00:27 v #1730 > > .///<<<<<<<<<<<<<<<<<........................................................... 00:00:27 v #1731 > > │ 00:00:27 v #1732 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. 00:00:27 v #1733 > > .//<<<<<<<<<<<<<<<.............................................................. 00:00:27 v #1734 > > │ 00:00:27 v #1735 > > .......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<............. 00:00:27 v #1736 > > .<<<............................................................................ 00:00:27 v #1737 > > │ 00:00:27 v #1738 > > .......................////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<............... 00:00:27 v #1739 > > ................................................................................ 00:00:27 v #1740 > > │ 00:00:27 v #1741 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...................... 00:00:27 v #1742 > > ................................................................................ 00:00:27 v #1743 > > │ 00:00:27 v #1744 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<............................ 00:00:27 v #1745 > > ................................................................................ 00:00:27 v #1746 > > │ 00:00:27 v #1747 > > .......................//<<<<<<<<<<<<<.......................................... 00:00:27 v #1748 > > ................................................................................ 00:00:27 v #1749 > > │ 00:00:27 v #1750 > > ................................................................................ 00:00:27 v #1751 > > ................................................................................ 00:00:27 v #1752 > > │ 00:00:27 v #1753 > > ................................................................................ 00:00:27 v #1754 > > ................................................................................ 00:00:27 v #1755 > > │ 00:00:27 v #1756 > > ................................................................................ 00:00:27 v #1757 > > ................................................................................ 00:00:27 v #1758 > > │ 00:00:27 v #1759 > > ................................................................................ 00:00:27 v #1760 > > ................................................................................ 00:00:27 v #1761 > > │ 00:00:27 v #1762 > > ................................................................................ 00:00:27 v #1763 > > ................................................................................ 00:00:27 v #1764 > > │ 00:00:27 v #1765 > > ................................................................................ 00:00:27 v #1766 > > ................................................................................ 00:00:27 v #1767 > > │ 00:00:27 v #1768 > > ................................................................................ 00:00:27 v #1769 > > ................................................................................ 00:00:27 v #1770 > > │ 00:00:27 v #1771 > > ................................................................................ 00:00:27 v #1772 > > ................................................................................ 00:00:27 v #1773 > > │ 00:00:27 v #1774 > > ................................................................................ 00:00:27 v #1775 > > ................................................................................ 00:00:27 v #1776 > > │ 00:00:27 v #1777 > > ................................................................................ 00:00:27 v #1778 > > ................................................................................ 00:00:27 v #1779 > > │ 00:00:27 v #1780 > > ................................................................................ 00:00:27 v #1781 > > ................................................................................ 00:00:27 v #1782 > > │ 00:00:27 v #1783 > > ................................................................................ 00:00:27 v #1784 > > ................................................................................ 00:00:27 v #1785 > > │ 00:00:27 v #1786 > > │ 00:00:27 v #1787 > > ................................................................................ 00:00:27 v #1788 > > ................................................................................ 00:00:27 v #1789 > > │ 00:00:27 v #1790 > > ................................................................................ 00:00:27 v #1791 > > ................................................................................ 00:00:27 v #1792 > > │ 00:00:27 v #1793 > > ................................................................................ 00:00:27 v #1794 > > ................................................................................ 00:00:27 v #1795 > > │ 00:00:27 v #1796 > > ................................................................................ 00:00:27 v #1797 > > ................................................................................ 00:00:27 v #1798 > > │ 00:00:27 v #1799 > > ................................................................................ 00:00:27 v #1800 > > ................................................................................ 00:00:27 v #1801 > > │ 00:00:27 v #1802 > > ................................................................................ 00:00:27 v #1803 > > ................................................................................ 00:00:27 v #1804 > > │ 00:00:27 v #1805 > > ................................................................................ 00:00:27 v #1806 > > ................................................................................ 00:00:27 v #1807 > > │ 00:00:27 v #1808 > > ................................................................................ 00:00:27 v #1809 > > ................................................................................ 00:00:27 v #1810 > > │ 00:00:27 v #1811 > > ................................................................................ 00:00:27 v #1812 > > ................................................................................ 00:00:27 v #1813 > > │ 00:00:27 v #1814 > > ................................................................................ 00:00:27 v #1815 > > ................................................................................ 00:00:27 v #1816 > > │ 00:00:27 v #1817 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... 00:00:27 v #1818 > > ................................................................................ 00:00:27 v #1819 > > │ 00:00:27 v #1820 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #1821 > > ................................................................................ 00:00:27 v #1822 > > │ 00:00:27 v #1823 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... 00:00:27 v #1824 > > ................................................................................ 00:00:27 v #1825 > > │ 00:00:27 v #1826 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1827 > > ................................................................................ 00:00:27 v #1828 > > │ 00:00:27 v #1829 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #1830 > > ................................................................................ 00:00:27 v #1831 > > │ 00:00:27 v #1832 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1833 > > ................................................................................ 00:00:27 v #1834 > > │ 00:00:27 v #1835 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1836 > > ..;;;;;;;;;;;;;;;;;............................................................. 00:00:27 v #1837 > > │ 00:00:27 v #1838 > > ....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1839 > > .>/;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1840 > > │ 00:00:27 v #1841 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1842 > > >//;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1843 > > │ 00:00:27 v #1844 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............> 00:00:27 v #1845 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... 00:00:27 v #1846 > > │ 00:00:27 v #1847 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... 00:00:27 v #1848 > > ////;;;;;;;;;;;;;;;;;.............//;;;;;;;;;................................... 00:00:27 v #1849 > > │ 00:00:27 v #1850 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. 00:00:27 v #1851 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. 00:00:27 v #1852 > > │ 00:00:27 v #1853 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... 00:00:27 v #1854 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. 00:00:27 v #1855 > > │ 00:00:27 v #1856 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. 00:00:27 v #1857 > > ////;;;;;;;;;;;;;;;;;;;............//;<<<<<<<<.................................. 00:00:27 v #1858 > > │ 00:00:27 v #1859 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. 00:00:27 v #1860 > > /////<<<<<<<<<<<<<<<<<<............/<<<<<<<<.................................... 00:00:27 v #1861 > > │ 00:00:27 v #1862 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. 00:00:27 v #1863 > > .///<<<<<<<<<<<<<<<<............................................................ 00:00:27 v #1864 > > │ 00:00:27 v #1865 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<............ 00:00:27 v #1866 > > .//<<<<<<<<<<<<<<<.............................................................. 00:00:27 v #1867 > > │ 00:00:27 v #1868 > > ......................//////;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<............. 00:00:27 v #1869 > > .<<<<<<......................................................................... 00:00:27 v #1870 > > │ 00:00:27 v #1871 > > ......................///////;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................. 00:00:27 v #1872 > > ................................................................................ 00:00:27 v #1873 > > │ 00:00:27 v #1874 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................... 00:00:27 v #1875 > > ................................................................................ 00:00:27 v #1876 > > │ 00:00:27 v #1877 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<........................... 00:00:27 v #1878 > > ................................................................................ 00:00:27 v #1879 > > │ 00:00:27 v #1880 > > .......................///<<<<<<<<<<<<<<<<...................................... 00:00:27 v #1881 > > ................................................................................ 00:00:27 v #1882 > > │ 00:00:27 v #1883 > > ......................./<<<<<................................................... 00:00:27 v #1884 > > ................................................................................ 00:00:27 v #1885 > > │ 00:00:27 v #1886 > > ................................................................................ 00:00:27 v #1887 > > ................................................................................ 00:00:27 v #1888 > > │ 00:00:27 v #1889 > > ................................................................................ 00:00:27 v #1890 > > ................................................................................ 00:00:27 v #1891 > > │ 00:00:27 v #1892 > > ................................................................................ 00:00:27 v #1893 > > ................................................................................ 00:00:27 v #1894 > > │ 00:00:27 v #1895 > > ................................................................................ 00:00:27 v #1896 > > ................................................................................ 00:00:27 v #1897 > > │ 00:00:27 v #1898 > > ................................................................................ 00:00:27 v #1899 > > ................................................................................ 00:00:27 v #1900 > > │ 00:00:27 v #1901 > > ................................................................................ 00:00:27 v #1902 > > ................................................................................ 00:00:27 v #1903 > > │ 00:00:27 v #1904 > > ................................................................................ 00:00:27 v #1905 > > ................................................................................ 00:00:27 v #1906 > > │ 00:00:27 v #1907 > > ................................................................................ 00:00:27 v #1908 > > ................................................................................ 00:00:27 v #1909 > > │ 00:00:27 v #1910 > > ................................................................................ 00:00:27 v #1911 > > ................................................................................ 00:00:27 v #1912 > > │ 00:00:27 v #1913 > > ................................................................................ 00:00:27 v #1914 > > ................................................................................ 00:00:27 v #1915 > > │ 00:00:27 v #1916 > > ................................................................................ 00:00:27 v #1917 > > ................................................................................ 00:00:27 v #1918 > > │ 00:00:27 v #1919 > > │ 00:00:27 v #1920 > > ................................................................................ 00:00:27 v #1921 > > ................................................................................ 00:00:27 v #1922 > > │ 00:00:27 v #1923 > > ................................................................................ 00:00:27 v #1924 > > ................................................................................ 00:00:27 v #1925 > > │ 00:00:27 v #1926 > > ................................................................................ 00:00:27 v #1927 > > ................................................................................ 00:00:27 v #1928 > > │ 00:00:27 v #1929 > > ................................................................................ 00:00:27 v #1930 > > ................................................................................ 00:00:27 v #1931 > > │ 00:00:27 v #1932 > > ................................................................................ 00:00:27 v #1933 > > ................................................................................ 00:00:27 v #1934 > > │ 00:00:27 v #1935 > > ................................................................................ 00:00:27 v #1936 > > ................................................................................ 00:00:27 v #1937 > > │ 00:00:27 v #1938 > > ................................................................................ 00:00:27 v #1939 > > ................................................................................ 00:00:27 v #1940 > > │ 00:00:27 v #1941 > > ................................................................................ 00:00:27 v #1942 > > ................................................................................ 00:00:27 v #1943 > > │ 00:00:27 v #1944 > > ................................................................................ 00:00:27 v #1945 > > ................................................................................ 00:00:27 v #1946 > > │ 00:00:27 v #1947 > > ........................;;;;;;.................................................. 00:00:27 v #1948 > > ................................................................................ 00:00:27 v #1949 > > │ 00:00:27 v #1950 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... 00:00:27 v #1951 > > ................................................................................ 00:00:27 v #1952 > > │ 00:00:27 v #1953 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... 00:00:27 v #1954 > > ................................................................................ 00:00:27 v #1955 > > │ 00:00:27 v #1956 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #1957 > > ................................................................................ 00:00:27 v #1958 > > │ 00:00:27 v #1959 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... 00:00:27 v #1960 > > ................................................................................ 00:00:27 v #1961 > > │ 00:00:27 v #1962 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #1963 > > ................................................................................ 00:00:27 v #1964 > > │ 00:00:27 v #1965 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #1966 > > ................................................................................ 00:00:27 v #1967 > > │ 00:00:27 v #1968 > > ....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #1969 > > ..;;;;;;;;;;;;;;;;;............................................................. 00:00:27 v #1970 > > │ 00:00:27 v #1971 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #1972 > > .>/;;;;;;;;;;;;;;;;\............................................................ 00:00:27 v #1973 > > │ 00:00:27 v #1974 > > ...................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #1975 > > >//;;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #1976 > > │ 00:00:27 v #1977 > > ...................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... 00:00:27 v #1978 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... 00:00:27 v #1979 > > │ 00:00:27 v #1980 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. 00:00:27 v #1981 > > ////;;;;;;;;;;;;;;;;;\............>/;;;;;;;;;\.................................. 00:00:27 v #1982 > > │ 00:00:27 v #1983 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. 00:00:27 v #1984 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. 00:00:27 v #1985 > > │ 00:00:27 v #1986 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. 00:00:27 v #1987 > > /////;;;;;;;;;;;;;;;;;;...........///;;;;;;;<<\................................. 00:00:27 v #1988 > > │ 00:00:27 v #1989 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. 00:00:27 v #1990 > > /////;;;;;;;;;;;;;;<<<<............///<<<<<<<<.................................. 00:00:27 v #1991 > > │ 00:00:27 v #1992 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............ 00:00:27 v #1993 > > //////<<<<<<<<<<<<<<<<<............//<<<<<<<.................................... 00:00:27 v #1994 > > │ 00:00:27 v #1995 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ 00:00:27 v #1996 > > /////<<<<<<<<<<<<<<<............................................................ 00:00:27 v #1997 > > │ 00:00:27 v #1998 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<............ 00:00:27 v #1999 > > .//<<<<<<<<<<<<<<<.............................................................. 00:00:27 v #2000 > > │ 00:00:27 v #2001 > > ......................////////;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<................ 00:00:27 v #2002 > > ./<<<<<<<<...................................................................... 00:00:27 v #2003 > > │ 00:00:27 v #2004 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................... 00:00:27 v #2005 > > ................................................................................ 00:00:27 v #2006 > > │ 00:00:27 v #2007 > > ......................////////<<<<<<<<<<<<<<<<<<<<<<<<<<<....................... 00:00:27 v #2008 > > ................................................................................ 00:00:27 v #2009 > > │ 00:00:27 v #2010 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<<<<........................... 00:00:27 v #2011 > > ................................................................................ 00:00:27 v #2012 > > │ 00:00:27 v #2013 > > .......................///<<<<<<<<<<<<<<<<<<<<.................................. 00:00:27 v #2014 > > ................................................................................ 00:00:27 v #2015 > > │ 00:00:27 v #2016 > > .......................//<<<<<<<<<.............................................. 00:00:27 v #2017 > > ................................................................................ 00:00:27 v #2018 > > │ 00:00:27 v #2019 > > ................................................................................ 00:00:27 v #2020 > > ................................................................................ 00:00:27 v #2021 > > │ 00:00:27 v #2022 > > ................................................................................ 00:00:27 v #2023 > > ................................................................................ 00:00:27 v #2024 > > │ 00:00:27 v #2025 > > ................................................................................ 00:00:27 v #2026 > > ................................................................................ 00:00:27 v #2027 > > │ 00:00:27 v #2028 > > ................................................................................ 00:00:27 v #2029 > > ................................................................................ 00:00:27 v #2030 > > │ 00:00:27 v #2031 > > ................................................................................ 00:00:27 v #2032 > > ................................................................................ 00:00:27 v #2033 > > │ 00:00:27 v #2034 > > ................................................................................ 00:00:27 v #2035 > > ................................................................................ 00:00:27 v #2036 > > │ 00:00:27 v #2037 > > ................................................................................ 00:00:27 v #2038 > > ................................................................................ 00:00:27 v #2039 > > │ 00:00:27 v #2040 > > ................................................................................ 00:00:27 v #2041 > > ................................................................................ 00:00:27 v #2042 > > │ 00:00:27 v #2043 > > ................................................................................ 00:00:27 v #2044 > > ................................................................................ 00:00:27 v #2045 > > │ 00:00:27 v #2046 > > ................................................................................ 00:00:27 v #2047 > > ................................................................................ 00:00:27 v #2048 > > │ 00:00:27 v #2049 > > ................................................................................ 00:00:27 v #2050 > > ................................................................................ 00:00:27 v #2051 > > │ 00:00:27 v #2052 > > │ 00:00:27 v #2053 > > ................................................................................ 00:00:27 v #2054 > > ................................................................................ 00:00:27 v #2055 > > │ 00:00:27 v #2056 > > ................................................................................ 00:00:27 v #2057 > > ................................................................................ 00:00:27 v #2058 > > │ 00:00:27 v #2059 > > ................................................................................ 00:00:27 v #2060 > > ................................................................................ 00:00:27 v #2061 > > │ 00:00:27 v #2062 > > ................................................................................ 00:00:27 v #2063 > > ................................................................................ 00:00:27 v #2064 > > │ 00:00:27 v #2065 > > ................................................................................ 00:00:27 v #2066 > > ................................................................................ 00:00:27 v #2067 > > │ 00:00:27 v #2068 > > ................................................................................ 00:00:27 v #2069 > > ................................................................................ 00:00:27 v #2070 > > │ 00:00:27 v #2071 > > ................................................................................ 00:00:27 v #2072 > > ................................................................................ 00:00:27 v #2073 > > │ 00:00:27 v #2074 > > ................................................................................ 00:00:27 v #2075 > > ................................................................................ 00:00:27 v #2076 > > │ 00:00:27 v #2077 > > ................................................................................ 00:00:27 v #2078 > > ................................................................................ 00:00:27 v #2079 > > │ 00:00:27 v #2080 > > ........................;;;;;;;;;............................................... 00:00:27 v #2081 > > ................................................................................ 00:00:27 v #2082 > > │ 00:00:27 v #2083 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ 00:00:27 v #2084 > > ................................................................................ 00:00:27 v #2085 > > │ 00:00:27 v #2086 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... 00:00:27 v #2087 > > ................................................................................ 00:00:27 v #2088 > > │ 00:00:27 v #2089 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... 00:00:27 v #2090 > > ................................................................................ 00:00:27 v #2091 > > │ 00:00:27 v #2092 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #2093 > > ................................................................................ 00:00:27 v #2094 > > │ 00:00:27 v #2095 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #2096 > > ................................................................................ 00:00:27 v #2097 > > │ 00:00:27 v #2098 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #2099 > > ................................................................................ 00:00:27 v #2100 > > │ 00:00:27 v #2101 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #2102 > > ..;;;;;;;;;;;;;;;;;............................................................. 00:00:27 v #2103 > > │ 00:00:27 v #2104 > > ...................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #2105 > > .>/;;;;;;;;;;;;;;;;\............................................................ 00:00:27 v #2106 > > │ 00:00:27 v #2107 > > .................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ 00:00:27 v #2108 > > >///;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #2109 > > │ 00:00:27 v #2110 > > ..................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............> 00:00:27 v #2111 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... 00:00:27 v #2112 > > │ 00:00:27 v #2113 > > ...................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............> 00:00:27 v #2114 > > ////;;;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. 00:00:27 v #2115 > > │ 00:00:27 v #2116 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ 00:00:27 v #2117 > > /////;;;;;;;;;;;;;;;;;\...........///;;;;;;;;;.................................. 00:00:27 v #2118 > > │ 00:00:27 v #2119 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ 00:00:27 v #2120 > > //////;;;;;;;;;;;;;;;;;...........////;;;<<<<<<................................. 00:00:27 v #2121 > > │ 00:00:27 v #2122 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... 00:00:27 v #2123 > > ///////;;;;;;;<<<<<<<<<<...........///<<<<<<<<.................................. 00:00:27 v #2124 > > │ 00:00:27 v #2125 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... 00:00:27 v #2126 > > ///////<<<<<<<<<<<<<<<.............//<<<<<<<.................................... 00:00:27 v #2127 > > │ 00:00:27 v #2128 > > .....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<........... 00:00:27 v #2129 > > /////<<<<<<<<<<<<<<<............................................................ 00:00:27 v #2130 > > │ 00:00:27 v #2131 > > .....................///////////;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<.............. 00:00:27 v #2132 > > .///<<<<<<<<<<<<<<.............................................................. 00:00:27 v #2133 > > │ 00:00:27 v #2134 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................. 00:00:27 v #2135 > > .//<<<<<<<<<.................................................................... 00:00:27 v #2136 > > │ 00:00:27 v #2137 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... 00:00:27 v #2138 > > ................................................................................ 00:00:27 v #2139 > > │ 00:00:27 v #2140 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<....................... 00:00:27 v #2141 > > ................................................................................ 00:00:27 v #2142 > > │ 00:00:27 v #2143 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<.......................... 00:00:27 v #2144 > > ................................................................................ 00:00:27 v #2145 > > │ 00:00:27 v #2146 > > ......................./////<<<<<<<<<<<<<<<<<<<<................................ 00:00:27 v #2147 > > ................................................................................ 00:00:27 v #2148 > > │ 00:00:27 v #2149 > > .......................///<<<<<<<<<<<<.......................................... 00:00:27 v #2150 > > ................................................................................ 00:00:27 v #2151 > > │ 00:00:27 v #2152 > > ........................<<<<<................................................... 00:00:27 v #2153 > > ................................................................................ 00:00:27 v #2154 > > │ 00:00:27 v #2155 > > ................................................................................ 00:00:27 v #2156 > > ................................................................................ 00:00:27 v #2157 > > │ 00:00:27 v #2158 > > ................................................................................ 00:00:27 v #2159 > > ................................................................................ 00:00:27 v #2160 > > │ 00:00:27 v #2161 > > ................................................................................ 00:00:27 v #2162 > > ................................................................................ 00:00:27 v #2163 > > │ 00:00:27 v #2164 > > ................................................................................ 00:00:27 v #2165 > > ................................................................................ 00:00:27 v #2166 > > │ 00:00:27 v #2167 > > ................................................................................ 00:00:27 v #2168 > > ................................................................................ 00:00:27 v #2169 > > │ 00:00:27 v #2170 > > ................................................................................ 00:00:27 v #2171 > > ................................................................................ 00:00:27 v #2172 > > │ 00:00:27 v #2173 > > ................................................................................ 00:00:27 v #2174 > > ................................................................................ 00:00:27 v #2175 > > │ 00:00:27 v #2176 > > ................................................................................ 00:00:27 v #2177 > > ................................................................................ 00:00:27 v #2178 > > │ 00:00:27 v #2179 > > ................................................................................ 00:00:27 v #2180 > > ................................................................................ 00:00:27 v #2181 > > │ 00:00:27 v #2182 > > ................................................................................ 00:00:27 v #2183 > > ................................................................................ 00:00:27 v #2184 > > │ 00:00:27 v #2185 > > │ 00:00:27 v #2186 > > ................................................................................ 00:00:27 v #2187 > > ................................................................................ 00:00:27 v #2188 > > │ 00:00:27 v #2189 > > ................................................................................ 00:00:27 v #2190 > > ................................................................................ 00:00:27 v #2191 > > │ 00:00:27 v #2192 > > ................................................................................ 00:00:27 v #2193 > > ................................................................................ 00:00:27 v #2194 > > │ 00:00:27 v #2195 > > ................................................................................ 00:00:27 v #2196 > > ................................................................................ 00:00:27 v #2197 > > │ 00:00:27 v #2198 > > ................................................................................ 00:00:27 v #2199 > > ................................................................................ 00:00:27 v #2200 > > │ 00:00:27 v #2201 > > ................................................................................ 00:00:27 v #2202 > > ................................................................................ 00:00:27 v #2203 > > │ 00:00:27 v #2204 > > ................................................................................ 00:00:27 v #2205 > > ................................................................................ 00:00:27 v #2206 > > │ 00:00:27 v #2207 > > ................................................................................ 00:00:27 v #2208 > > ................................................................................ 00:00:27 v #2209 > > │ 00:00:27 v #2210 > > ................................................................................ 00:00:27 v #2211 > > ................................................................................ 00:00:27 v #2212 > > │ 00:00:27 v #2213 > > ........................;;;;;;;;;;.............................................. 00:00:27 v #2214 > > ................................................................................ 00:00:27 v #2215 > > │ 00:00:27 v #2216 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................... 00:00:27 v #2217 > > ................................................................................ 00:00:27 v #2218 > > │ 00:00:27 v #2219 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ 00:00:27 v #2220 > > ................................................................................ 00:00:27 v #2221 > > │ 00:00:27 v #2222 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... 00:00:27 v #2223 > > ................................................................................ 00:00:27 v #2224 > > │ 00:00:27 v #2225 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... 00:00:27 v #2226 > > ................................................................................ 00:00:27 v #2227 > > │ 00:00:27 v #2228 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #2229 > > ................................................................................ 00:00:27 v #2230 > > │ 00:00:27 v #2231 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... 00:00:27 v #2232 > > ................................................................................ 00:00:27 v #2233 > > │ 00:00:27 v #2234 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #2235 > > ../;;;;;;;;;;;;;;;.............................................................. 00:00:27 v #2236 > > │ 00:00:27 v #2237 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. 00:00:27 v #2238 > > .>/;;;;;;;;;;;;;;;;............................................................. 00:00:27 v #2239 > > │ 00:00:27 v #2240 > > ..................>//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #2241 > > >///;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #2242 > > │ 00:00:27 v #2243 > > ..................////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............> 00:00:27 v #2244 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... 00:00:27 v #2245 > > │ 00:00:27 v #2246 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............> 00:00:27 v #2247 > > /////;;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. 00:00:27 v #2248 > > │ 00:00:27 v #2249 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... 00:00:27 v #2250 > > //////;;;;;;;;;;;;;;;;;..........////;;;;;;;;;\................................. 00:00:27 v #2251 > > │ 00:00:27 v #2252 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......... 00:00:27 v #2253 > > //////;;;;;;;;;;;;;;;;;;..........////;<<<<<<<<................................. 00:00:27 v #2254 > > │ 00:00:27 v #2255 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......... 00:00:27 v #2256 > > ///////;;<<<<<<<<<<<<<<<...........///<<<<<<<<.................................. 00:00:27 v #2257 > > │ 00:00:27 v #2258 > > ..................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<........... 00:00:27 v #2259 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<.................................... 00:00:27 v #2260 > > │ 00:00:27 v #2261 > > ....................//////////////;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<............. 00:00:27 v #2262 > > //////<<<<<<<<<<<<<<............................................................ 00:00:27 v #2263 > > │ 00:00:27 v #2264 > > ....................//////////////;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<............... 00:00:27 v #2265 > > .////<<<<<<<<<<<<<.............................................................. 00:00:27 v #2266 > > │ 00:00:27 v #2267 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................. 00:00:27 v #2268 > > ..<<<<<<<<<<<................................................................... 00:00:27 v #2269 > > │ 00:00:27 v #2270 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<..................... 00:00:27 v #2271 > > ................................................................................ 00:00:27 v #2272 > > │ 00:00:27 v #2273 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<........................ 00:00:27 v #2274 > > ................................................................................ 00:00:27 v #2275 > > │ 00:00:27 v #2276 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<.......................... 00:00:27 v #2277 > > ................................................................................ 00:00:27 v #2278 > > │ 00:00:27 v #2279 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<.............................. 00:00:27 v #2280 > > ................................................................................ 00:00:27 v #2281 > > │ 00:00:27 v #2282 > > .......................////<<<<<<<<<<<<<<....................................... 00:00:27 v #2283 > > ................................................................................ 00:00:27 v #2284 > > │ 00:00:27 v #2285 > > ......................../<<<<<<<<............................................... 00:00:27 v #2286 > > ................................................................................ 00:00:27 v #2287 > > │ 00:00:27 v #2288 > > ................................................................................ 00:00:27 v #2289 > > ................................................................................ 00:00:27 v #2290 > > │ 00:00:27 v #2291 > > ................................................................................ 00:00:27 v #2292 > > ................................................................................ 00:00:27 v #2293 > > │ 00:00:27 v #2294 > > ................................................................................ 00:00:27 v #2295 > > ................................................................................ 00:00:27 v #2296 > > │ 00:00:27 v #2297 > > ................................................................................ 00:00:27 v #2298 > > ................................................................................ 00:00:27 v #2299 > > │ 00:00:27 v #2300 > > ................................................................................ 00:00:27 v #2301 > > ................................................................................ 00:00:27 v #2302 > > │ 00:00:27 v #2303 > > ................................................................................ 00:00:27 v #2304 > > ................................................................................ 00:00:27 v #2305 > > │ 00:00:27 v #2306 > > ................................................................................ 00:00:27 v #2307 > > ................................................................................ 00:00:27 v #2308 > > │ 00:00:27 v #2309 > > ................................................................................ 00:00:27 v #2310 > > ................................................................................ 00:00:27 v #2311 > > │ 00:00:27 v #2312 > > ................................................................................ 00:00:27 v #2313 > > ................................................................................ 00:00:27 v #2314 > > │ 00:00:27 v #2315 > > ................................................................................ 00:00:27 v #2316 > > ................................................................................ 00:00:27 v #2317 > > │ 00:00:27 v #2318 > > │ 00:00:27 v #2319 > > ................................................................................ 00:00:27 v #2320 > > ................................................................................ 00:00:27 v #2321 > > │ 00:00:27 v #2322 > > ................................................................................ 00:00:27 v #2323 > > ................................................................................ 00:00:27 v #2324 > > │ 00:00:27 v #2325 > > ................................................................................ 00:00:27 v #2326 > > ................................................................................ 00:00:27 v #2327 > > │ 00:00:27 v #2328 > > ................................................................................ 00:00:27 v #2329 > > ................................................................................ 00:00:27 v #2330 > > │ 00:00:27 v #2331 > > ................................................................................ 00:00:27 v #2332 > > ................................................................................ 00:00:27 v #2333 > > │ 00:00:27 v #2334 > > ................................................................................ 00:00:27 v #2335 > > ................................................................................ 00:00:27 v #2336 > > │ 00:00:27 v #2337 > > ................................................................................ 00:00:27 v #2338 > > ................................................................................ 00:00:27 v #2339 > > │ 00:00:27 v #2340 > > ................................................................................ 00:00:27 v #2341 > > ................................................................................ 00:00:27 v #2342 > > │ 00:00:27 v #2343 > > ................................................................................ 00:00:27 v #2344 > > ................................................................................ 00:00:27 v #2345 > > │ 00:00:27 v #2346 > > ........................;;;;;;;;;............................................... 00:00:27 v #2347 > > ................................................................................ 00:00:27 v #2348 > > │ 00:00:27 v #2349 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... 00:00:27 v #2350 > > ................................................................................ 00:00:27 v #2351 > > │ 00:00:27 v #2352 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................... 00:00:27 v #2353 > > ................................................................................ 00:00:27 v #2354 > > │ 00:00:27 v #2355 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ 00:00:27 v #2356 > > ................................................................................ 00:00:27 v #2357 > > │ 00:00:27 v #2358 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... 00:00:27 v #2359 > > ................................................................................ 00:00:27 v #2360 > > │ 00:00:27 v #2361 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #2362 > > ................................................................................ 00:00:27 v #2363 > > │ 00:00:27 v #2364 > > ....................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #2365 > > ................................................................................ 00:00:27 v #2366 > > │ 00:00:27 v #2367 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #2368 > > ..;;;;;;;;;;;;;;;;.............................................................. 00:00:27 v #2369 > > │ 00:00:27 v #2370 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #2371 > > .>//;;;;;;;;;;;;;;;............................................................. 00:00:27 v #2372 > > │ 00:00:27 v #2373 > > ..................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #2374 > > >///;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #2375 > > │ 00:00:27 v #2376 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............> 00:00:27 v #2377 > > /////;;;;;;;;;;;;;;;;..............>;;;;;;;;\................................... 00:00:27 v #2378 > > │ 00:00:27 v #2379 > > .................>//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........> 00:00:27 v #2380 > > //////;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. 00:00:27 v #2381 > > │ 00:00:27 v #2382 > > .................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......... 00:00:27 v #2383 > > //////;;;;;;;;;;;;;;;;;..........>////;;;;;;;;;................................. 00:00:27 v #2384 > > │ 00:00:27 v #2385 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......... 00:00:27 v #2386 > > ///////;;;;;;;;;;;;<<<<<........../////<<<<<<<<................................. 00:00:27 v #2387 > > │ 00:00:27 v #2388 > > ................../////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<......... 00:00:27 v #2389 > > ////////;<<<<<<<<<<<<<<...........////<<<<<<<<.................................. 00:00:27 v #2390 > > │ 00:00:27 v #2391 > > ...................////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<........... 00:00:27 v #2392 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<.................................... 00:00:27 v #2393 > > │ 00:00:27 v #2394 > > .................../////////////////;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<.............. 00:00:27 v #2395 > > //////<<<<<<<<<<<<<<............................................................ 00:00:27 v #2396 > > │ 00:00:27 v #2397 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<................. 00:00:27 v #2398 > > .///<<<<<<<<<<<<<<.............................................................. 00:00:27 v #2399 > > │ 00:00:27 v #2400 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<<<<................... 00:00:27 v #2401 > > ..//<<<<<<<<<<.................................................................. 00:00:27 v #2402 > > │ 00:00:27 v #2403 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<..................... 00:00:27 v #2404 > > ..<............................................................................. 00:00:27 v #2405 > > │ 00:00:27 v #2406 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<........................ 00:00:27 v #2407 > > ................................................................................ 00:00:27 v #2408 > > │ 00:00:27 v #2409 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<.......................... 00:00:27 v #2410 > > ................................................................................ 00:00:27 v #2411 > > │ 00:00:27 v #2412 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<............................. 00:00:27 v #2413 > > ................................................................................ 00:00:27 v #2414 > > │ 00:00:27 v #2415 > > ........................////<<<<<<<<<<<<<<<..................................... 00:00:27 v #2416 > > ................................................................................ 00:00:27 v #2417 > > │ 00:00:27 v #2418 > > ........................//<<<<<<<<<<............................................ 00:00:27 v #2419 > > ................................................................................ 00:00:27 v #2420 > > │ 00:00:27 v #2421 > > .........................<<<.................................................... 00:00:27 v #2422 > > ................................................................................ 00:00:27 v #2423 > > │ 00:00:27 v #2424 > > ................................................................................ 00:00:27 v #2425 > > ................................................................................ 00:00:27 v #2426 > > │ 00:00:27 v #2427 > > ................................................................................ 00:00:27 v #2428 > > ................................................................................ 00:00:27 v #2429 > > │ 00:00:27 v #2430 > > ................................................................................ 00:00:27 v #2431 > > ................................................................................ 00:00:27 v #2432 > > │ 00:00:27 v #2433 > > ................................................................................ 00:00:27 v #2434 > > ................................................................................ 00:00:27 v #2435 > > │ 00:00:27 v #2436 > > ................................................................................ 00:00:27 v #2437 > > ................................................................................ 00:00:27 v #2438 > > │ 00:00:27 v #2439 > > ................................................................................ 00:00:27 v #2440 > > ................................................................................ 00:00:27 v #2441 > > │ 00:00:27 v #2442 > > ................................................................................ 00:00:27 v #2443 > > ................................................................................ 00:00:27 v #2444 > > │ 00:00:27 v #2445 > > ................................................................................ 00:00:27 v #2446 > > ................................................................................ 00:00:27 v #2447 > > │ 00:00:27 v #2448 > > ................................................................................ 00:00:27 v #2449 > > ................................................................................ 00:00:27 v #2450 > > │ 00:00:27 v #2451 > > │ 00:00:27 v #2452 > > ................................................................................ 00:00:27 v #2453 > > ................................................................................ 00:00:27 v #2454 > > │ 00:00:27 v #2455 > > ................................................................................ 00:00:27 v #2456 > > ................................................................................ 00:00:27 v #2457 > > │ 00:00:27 v #2458 > > ................................................................................ 00:00:27 v #2459 > > ................................................................................ 00:00:27 v #2460 > > │ 00:00:27 v #2461 > > ................................................................................ 00:00:27 v #2462 > > ................................................................................ 00:00:27 v #2463 > > │ 00:00:27 v #2464 > > ................................................................................ 00:00:27 v #2465 > > ................................................................................ 00:00:27 v #2466 > > │ 00:00:27 v #2467 > > ................................................................................ 00:00:27 v #2468 > > ................................................................................ 00:00:27 v #2469 > > │ 00:00:27 v #2470 > > ................................................................................ 00:00:27 v #2471 > > ................................................................................ 00:00:27 v #2472 > > │ 00:00:27 v #2473 > > ................................................................................ 00:00:27 v #2474 > > ................................................................................ 00:00:27 v #2475 > > │ 00:00:27 v #2476 > > ................................................................................ 00:00:27 v #2477 > > ................................................................................ 00:00:27 v #2478 > > │ 00:00:27 v #2479 > > .......................>;;;;;;;;................................................ 00:00:27 v #2480 > > ................................................................................ 00:00:27 v #2481 > > │ 00:00:27 v #2482 > > .......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................... 00:00:27 v #2483 > > ................................................................................ 00:00:27 v #2484 > > │ 00:00:27 v #2485 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... 00:00:27 v #2486 > > ................................................................................ 00:00:27 v #2487 > > │ 00:00:27 v #2488 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................ 00:00:27 v #2489 > > ................................................................................ 00:00:27 v #2490 > > │ 00:00:27 v #2491 > > .....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... 00:00:27 v #2492 > > ................................................................................ 00:00:27 v #2493 > > │ 00:00:27 v #2494 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................... 00:00:27 v #2495 > > ................................................................................ 00:00:27 v #2496 > > │ 00:00:27 v #2497 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #2498 > > ................................................................................ 00:00:27 v #2499 > > │ 00:00:27 v #2500 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #2501 > > ..;;;;;;;;;;;;;;;\.............................................................. 00:00:27 v #2502 > > │ 00:00:27 v #2503 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #2504 > > .>/;;;;;;;;;;;;;;;;............................................................. 00:00:27 v #2505 > > │ 00:00:27 v #2506 > > ..................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #2507 > > >///;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #2508 > > │ 00:00:27 v #2509 > > .................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............> 00:00:27 v #2510 > > /////;;;;;;;;;;;;;;;;..............>/;;;;;;;\................................... 00:00:27 v #2511 > > │ 00:00:27 v #2512 > > ................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..........> 00:00:27 v #2513 > > //////;;;;;;;;;;;;;;;;\...........>///;;;;;;;\.................................. 00:00:27 v #2514 > > │ 00:00:27 v #2515 > > ................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........> 00:00:27 v #2516 > > ///////;;;;;;;;;;;;;;;;;.........>////;;;;;;;;;................................. 00:00:27 v #2517 > > │ 00:00:27 v #2518 > > .................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<....... 00:00:27 v #2519 > > ////////;;;;;;<<<<<<<<<<.........//////<<<<<<<<................................. 00:00:27 v #2520 > > │ 00:00:27 v #2521 > > ................./////////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<......... 00:00:27 v #2522 > > /////////<<<<<<<<<<<<<<...........////<<<<<<<<.................................. 00:00:27 v #2523 > > │ 00:00:27 v #2524 > > ..................////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<<<............ 00:00:27 v #2525 > > ////////<<<<<<<<<<<<<..............//<<<<<<<.................................... 00:00:27 v #2526 > > │ 00:00:27 v #2527 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<............... 00:00:27 v #2528 > > ///////<<<<<<<<<<<<<............................................................ 00:00:27 v #2529 > > │ 00:00:27 v #2530 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<<<<.................. 00:00:27 v #2531 > > .////<<<<<<<<<<<<<.............................................................. 00:00:27 v #2532 > > │ 00:00:27 v #2533 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<.................... 00:00:27 v #2534 > > ..//<<<<<<<<<<<................................................................. 00:00:27 v #2535 > > │ 00:00:27 v #2536 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<...................... 00:00:27 v #2537 > > ...<<........................................................................... 00:00:27 v #2538 > > │ 00:00:27 v #2539 > > ......................////////////<<<<<<<<<<<<<<<<<<<<<<........................ 00:00:27 v #2540 > > ................................................................................ 00:00:27 v #2541 > > │ 00:00:27 v #2542 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<.......................... 00:00:27 v #2543 > > ................................................................................ 00:00:27 v #2544 > > │ 00:00:27 v #2545 > > .......................///////<<<<<<<<<<<<<<<<<<<<<<............................ 00:00:27 v #2546 > > ................................................................................ 00:00:27 v #2547 > > │ 00:00:27 v #2548 > > ......................../////<<<<<<<<<<<<<<<<................................... 00:00:27 v #2549 > > ................................................................................ 00:00:27 v #2550 > > │ 00:00:27 v #2551 > > ........................////<<<<<<<<<<.......................................... 00:00:27 v #2552 > > ................................................................................ 00:00:27 v #2553 > > │ 00:00:27 v #2554 > > ........................./<<<<<<................................................ 00:00:27 v #2555 > > ................................................................................ 00:00:27 v #2556 > > │ 00:00:27 v #2557 > > ................................................................................ 00:00:27 v #2558 > > ................................................................................ 00:00:27 v #2559 > > │ 00:00:27 v #2560 > > ................................................................................ 00:00:27 v #2561 > > ................................................................................ 00:00:27 v #2562 > > │ 00:00:27 v #2563 > > ................................................................................ 00:00:27 v #2564 > > ................................................................................ 00:00:27 v #2565 > > │ 00:00:27 v #2566 > > ................................................................................ 00:00:27 v #2567 > > ................................................................................ 00:00:27 v #2568 > > │ 00:00:27 v #2569 > > ................................................................................ 00:00:27 v #2570 > > ................................................................................ 00:00:27 v #2571 > > │ 00:00:27 v #2572 > > ................................................................................ 00:00:27 v #2573 > > ................................................................................ 00:00:27 v #2574 > > │ 00:00:27 v #2575 > > ................................................................................ 00:00:27 v #2576 > > ................................................................................ 00:00:27 v #2577 > > │ 00:00:27 v #2578 > > ................................................................................ 00:00:27 v #2579 > > ................................................................................ 00:00:27 v #2580 > > │ 00:00:27 v #2581 > > ................................................................................ 00:00:27 v #2582 > > ................................................................................ 00:00:27 v #2583 > > │ 00:00:27 v #2584 > > │ 00:00:27 v #2585 > > ................................................................................ 00:00:27 v #2586 > > ................................................................................ 00:00:27 v #2587 > > │ 00:00:27 v #2588 > > ................................................................................ 00:00:27 v #2589 > > ................................................................................ 00:00:27 v #2590 > > │ 00:00:27 v #2591 > > ................................................................................ 00:00:27 v #2592 > > ................................................................................ 00:00:27 v #2593 > > │ 00:00:27 v #2594 > > ................................................................................ 00:00:27 v #2595 > > ................................................................................ 00:00:27 v #2596 > > │ 00:00:27 v #2597 > > ................................................................................ 00:00:27 v #2598 > > ................................................................................ 00:00:27 v #2599 > > │ 00:00:27 v #2600 > > ................................................................................ 00:00:27 v #2601 > > ................................................................................ 00:00:27 v #2602 > > │ 00:00:27 v #2603 > > ................................................................................ 00:00:27 v #2604 > > ................................................................................ 00:00:27 v #2605 > > │ 00:00:27 v #2606 > > ................................................................................ 00:00:27 v #2607 > > ................................................................................ 00:00:27 v #2608 > > │ 00:00:27 v #2609 > > ................................................................................ 00:00:27 v #2610 > > ................................................................................ 00:00:27 v #2611 > > │ 00:00:27 v #2612 > > .......................;;;;;;;.................................................. 00:00:27 v #2613 > > ................................................................................ 00:00:27 v #2614 > > │ 00:00:27 v #2615 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;............................. 00:00:27 v #2616 > > ................................................................................ 00:00:27 v #2617 > > │ 00:00:27 v #2618 > > ......................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;........................... 00:00:27 v #2619 > > ................................................................................ 00:00:27 v #2620 > > │ 00:00:27 v #2621 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... 00:00:27 v #2622 > > ................................................................................ 00:00:27 v #2623 > > │ 00:00:27 v #2624 > > .....................///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ 00:00:27 v #2625 > > ................................................................................ 00:00:27 v #2626 > > │ 00:00:27 v #2627 > > ....................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... 00:00:27 v #2628 > > ................................................................................ 00:00:27 v #2629 > > │ 00:00:27 v #2630 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... 00:00:27 v #2631 > > ................................................................................ 00:00:27 v #2632 > > │ 00:00:27 v #2633 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #2634 > > ../;;;;;;;;;;;;;;............................................................... 00:00:27 v #2635 > > │ 00:00:27 v #2636 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #2637 > > .>/;;;;;;;;;;;;;;;;............................................................. 00:00:27 v #2638 > > │ 00:00:27 v #2639 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... 00:00:27 v #2640 > > >///;;;;;;;;;;;;;;;;............................................................ 00:00:27 v #2641 > > │ 00:00:27 v #2642 > > .................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............> 00:00:27 v #2643 > > ///////;;;;;;;;;;;;;;..............>/;;;;;;;.................................... 00:00:27 v #2644 > > │ 00:00:27 v #2645 > > ................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........> 00:00:27 v #2646 > > ////////;;;;;;;;;;;;;;;...........>///;;;;;;;;.................................. 00:00:27 v #2647 > > │ 00:00:27 v #2648 > > ................/////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<.......> 00:00:27 v #2649 > > /////////;;;;;;;;;;;;;;<.........>////;;;;;;;;<................................. 00:00:27 v #2650 > > │ 00:00:27 v #2651 > > ...............////////////////////////;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<........ 00:00:27 v #2652 > > /////////;<<<<<<<<<<<<<<.........//////;<<<<<<<................................. 00:00:27 v #2653 > > │ 00:00:27 v #2654 > > ................////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<........... 00:00:27 v #2655 > > //////////<<<<<<<<<<<<<.........../////<<<<<<<.................................. 00:00:27 v #2656 > > │ 00:00:27 v #2657 > > .................////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<............. 00:00:27 v #2658 > > /////////<<<<<<<<<<<<..............//<<<<<<<.................................... 00:00:27 v #2659 > > │ 00:00:27 v #2660 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<<<<................ 00:00:27 v #2661 > > ////////<<<<<<<<<<<<............................................................ 00:00:27 v #2662 > > │ 00:00:27 v #2663 > > ...................///////////////////<<<<<<<<<<<<<<<<<<<<<<<<.................. 00:00:27 v #2664 > > ./////<<<<<<<<<<<<.............................................................. 00:00:27 v #2665 > > │ 00:00:27 v #2666 > > ..................../////////////////<<<<<<<<<<<<<<<<<<<<<<<.................... 00:00:27 v #2667 > > ..///<<<<<<<<<<................................................................. 00:00:27 v #2668 > > │ 00:00:27 v #2669 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<<<...................... 00:00:27 v #2670 > > .../<<<......................................................................... 00:00:27 v #2671 > > │ 00:00:27 v #2672 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<........................ 00:00:27 v #2673 > > ................................................................................ 00:00:27 v #2674 > > │ 00:00:27 v #2675 > > ......................///////////<<<<<<<<<<<<<<<<<<<<<.......................... 00:00:27 v #2676 > > ................................................................................ 00:00:27 v #2677 > > │ 00:00:27 v #2678 > > ......................./////////<<<<<<<<<<<<<<<<<<<<............................ 00:00:27 v #2679 > > ................................................................................ 00:00:27 v #2680 > > │ 00:00:27 v #2681 > > ........................///////<<<<<<<<<<<<<<<.................................. 00:00:27 v #2682 > > ................................................................................ 00:00:27 v #2683 > > │ 00:00:27 v #2684 > > .........................////<<<<<<<<<<<........................................ 00:00:27 v #2685 > > ................................................................................ 00:00:27 v #2686 > > │ 00:00:27 v #2687 > > ..........................//<<<<<<<............................................. 00:00:27 v #2688 > > ................................................................................ 00:00:27 v #2689 > > │ 00:00:27 v #2690 > > ...........................<<................................................... 00:00:27 v #2691 > > ................................................................................ 00:00:27 v #2692 > > │ 00:00:27 v #2693 > > ................................................................................ 00:00:27 v #2694 > > ................................................................................ 00:00:27 v #2695 > > │ 00:00:27 v #2696 > > ................................................................................ 00:00:27 v #2697 > > ................................................................................ 00:00:27 v #2698 > > │ 00:00:27 v #2699 > > ................................................................................ 00:00:27 v #2700 > > ................................................................................ 00:00:27 v #2701 > > │ 00:00:27 v #2702 > > ................................................................................ 00:00:27 v #2703 > > ................................................................................ 00:00:27 v #2704 > > │ 00:00:27 v #2705 > > ................................................................................ 00:00:27 v #2706 > > ................................................................................ 00:00:27 v #2707 > > │ 00:00:27 v #2708 > > ................................................................................ 00:00:27 v #2709 > > ................................................................................ 00:00:27 v #2710 > > │ 00:00:27 v #2711 > > ................................................................................ 00:00:27 v #2712 > > ................................................................................ 00:00:27 v #2713 > > │ 00:00:27 v #2714 > > ................................................................................ 00:00:27 v #2715 > > ................................................................................ 00:00:27 v #2716 > > │ 00:00:27 v #2717 > > │ 00:00:27 v #2718 > > ................................................................................ 00:00:27 v #2719 > > ................................................................................ 00:00:27 v #2720 > > │ 00:00:27 v #2721 > > ................................................................................ 00:00:27 v #2722 > > ................................................................................ 00:00:27 v #2723 > > │ 00:00:27 v #2724 > > ................................................................................ 00:00:27 v #2725 > > ................................................................................ 00:00:27 v #2726 > > │ 00:00:27 v #2727 > > ................................................................................ 00:00:27 v #2728 > > ................................................................................ 00:00:27 v #2729 > > │ 00:00:27 v #2730 > > ................................................................................ 00:00:27 v #2731 > > ................................................................................ 00:00:27 v #2732 > > │ 00:00:27 v #2733 > > ................................................................................ 00:00:27 v #2734 > > ................................................................................ 00:00:27 v #2735 > > │ 00:00:27 v #2736 > > ................................................................................ 00:00:27 v #2737 > > ................................................................................ 00:00:27 v #2738 > > │ 00:00:27 v #2739 > > ................................................................................ 00:00:27 v #2740 > > ................................................................................ 00:00:27 v #2741 > > │ 00:00:27 v #2742 > > ................................................................................ 00:00:27 v #2743 > > ................................................................................ 00:00:27 v #2744 > > │ 00:00:27 v #2745 > > .......................;;;;..................................................... 00:00:27 v #2746 > > ................................................................................ 00:00:27 v #2747 > > │ 00:00:27 v #2748 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;................................ 00:00:27 v #2749 > > ................................................................................ 00:00:27 v #2750 > > │ 00:00:27 v #2751 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;............................. 00:00:27 v #2752 > > ................................................................................ 00:00:27 v #2753 > > │ 00:00:27 v #2754 > > .....................>////;/;;;;;;;;;;;;;;;;;;;;;;;;;........................... 00:00:27 v #2755 > > ................................................................................ 00:00:27 v #2756 > > │ 00:00:27 v #2757 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;......................... 00:00:27 v #2758 > > ................................................................................ 00:00:27 v #2759 > > │ 00:00:27 v #2760 > > ....................>////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;....................... 00:00:27 v #2761 > > ................................................................................ 00:00:27 v #2762 > > │ 00:00:27 v #2763 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... 00:00:27 v #2764 > > ................................................................................ 00:00:27 v #2765 > > │ 00:00:27 v #2766 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................... 00:00:27 v #2767 > > ..;;;;;;;;;;;;;;\............................................................... 00:00:27 v #2768 > > │ 00:00:27 v #2769 > > ..................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ 00:00:27 v #2770 > > .>/;;;;;;;;;;;;;;;.............................................................. 00:00:27 v #2771 > > │ 00:00:27 v #2772 > > .................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. 00:00:27 v #2773 > > >///;/;;;;;;;;;;;;;;............................................................ 00:00:27 v #2774 > > │ 00:00:27 v #2775 > > ................./////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........> 00:00:27 v #2776 > > //////;;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... 00:00:27 v #2777 > > │ 00:00:27 v #2778 > > ................>//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........> 00:00:27 v #2779 > > ///////;/;;;;;;;;;;;;;;...........>///;;;;;;;;.................................. 00:00:27 v #2780 > > │ 00:00:27 v #2781 > > ...............>////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<.......> 00:00:27 v #2782 > > /////////;;;;;;;;;<<<<<<.........>////;;;;;;<<<................................. 00:00:27 v #2783 > > │ 00:00:27 v #2784 > > ...............>//////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<......... 00:00:27 v #2785 > > //////////;<<<<<<<<<<<<<.........///////<<<<<<<................................. 00:00:27 v #2786 > > │ 00:00:27 v #2787 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<........... 00:00:27 v #2788 > > //////////<<<<<<<<<<<<............/////<<<<<<................................... 00:00:27 v #2789 > > │ 00:00:27 v #2790 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<<<<<............... 00:00:27 v #2791 > > /////////<<<<<<<<<<<<..............///<<<<<<.................................... 00:00:27 v #2792 > > │ 00:00:27 v #2793 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<<<................. 00:00:27 v #2794 > > ///////<<<<<<<<<<<<..................<.......................................... 00:00:27 v #2795 > > │ 00:00:27 v #2796 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<................... 00:00:27 v #2797 > > .//////<<<<<<<<<<<.............................................................. 00:00:27 v #2798 > > │ 00:00:27 v #2799 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<..................... 00:00:27 v #2800 > > ...//<<<<<<<<<<................................................................. 00:00:27 v #2801 > > │ 00:00:27 v #2802 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<...................... 00:00:27 v #2803 > > ..../<<<........................................................................ 00:00:27 v #2804 > > │ 00:00:27 v #2805 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<........................ 00:00:27 v #2806 > > ................................................................................ 00:00:27 v #2807 > > │ 00:00:27 v #2808 > > ....................../////////////<<<<<<<<<<<<<<<<<<<.......................... 00:00:27 v #2809 > > ................................................................................ 00:00:27 v #2810 > > │ 00:00:27 v #2811 > > .......................//////////<<<<<<<<<<<<<<<<<<<<........................... 00:00:27 v #2812 > > ................................................................................ 00:00:27 v #2813 > > │ 00:00:27 v #2814 > > ........................////////<<<<<<<<<<<<<<<................................. 00:00:27 v #2815 > > ................................................................................ 00:00:27 v #2816 > > │ 00:00:27 v #2817 > > ..........................////<<<<<<<<<<<<...................................... 00:00:27 v #2818 > > ................................................................................ 00:00:27 v #2819 > > │ 00:00:27 v #2820 > > ..........................////<<<<<<<........................................... 00:00:27 v #2821 > > ................................................................................ 00:00:27 v #2822 > > │ 00:00:27 v #2823 > > ............................<<<<................................................ 00:00:27 v #2824 > > ................................................................................ 00:00:27 v #2825 > > │ 00:00:27 v #2826 > > ................................................................................ 00:00:27 v #2827 > > ................................................................................ 00:00:27 v #2828 > > │ 00:00:27 v #2829 > > ................................................................................ 00:00:27 v #2830 > > ................................................................................ 00:00:27 v #2831 > > │ 00:00:27 v #2832 > > ................................................................................ 00:00:27 v #2833 > > ................................................................................ 00:00:27 v #2834 > > │ 00:00:27 v #2835 > > ................................................................................ 00:00:27 v #2836 > > ................................................................................ 00:00:27 v #2837 > > │ 00:00:27 v #2838 > > ................................................................................ 00:00:27 v #2839 > > ................................................................................ 00:00:27 v #2840 > > │ 00:00:27 v #2841 > > ................................................................................ 00:00:27 v #2842 > > ................................................................................ 00:00:27 v #2843 > > │ 00:00:27 v #2844 > > ................................................................................ 00:00:27 v #2845 > > ................................................................................ 00:00:27 v #2846 > > │ 00:00:27 v #2847 > > ................................................................................ 00:00:27 v #2848 > > ................................................................................ 00:00:27 v #2849 > > │ 00:00:27 v #2850 > > │ 00:00:27 v #2851 > > ................................................................................ 00:00:27 v #2852 > > ................................................................................ 00:00:27 v #2853 > > │ 00:00:27 v #2854 > > ................................................................................ 00:00:27 v #2855 > > ................................................................................ 00:00:27 v #2856 > > │ 00:00:27 v #2857 > > ................................................................................ 00:00:27 v #2858 > > ................................................................................ 00:00:27 v #2859 > > │ 00:00:27 v #2860 > > ................................................................................ 00:00:27 v #2861 > > ................................................................................ 00:00:27 v #2862 > > │ 00:00:27 v #2863 > > ................................................................................ 00:00:27 v #2864 > > ................................................................................ 00:00:27 v #2865 > > │ 00:00:27 v #2866 > > ................................................................................ 00:00:27 v #2867 > > ................................................................................ 00:00:27 v #2868 > > │ 00:00:27 v #2869 > > ................................................................................ 00:00:27 v #2870 > > ................................................................................ 00:00:27 v #2871 > > │ 00:00:27 v #2872 > > ................................................................................ 00:00:27 v #2873 > > ................................................................................ 00:00:27 v #2874 > > │ 00:00:27 v #2875 > > ................................................................................ 00:00:27 v #2876 > > ................................................................................ 00:00:27 v #2877 > > │ 00:00:27 v #2878 > > .......................;;....................................................... 00:00:27 v #2879 > > ................................................................................ 00:00:27 v #2880 > > │ 00:00:27 v #2881 > > ......................>;;;;;;;;;;;;;;;;;;;;..................................... 00:00:27 v #2882 > > ................................................................................ 00:00:27 v #2883 > > │ 00:00:27 v #2884 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;.............................. 00:00:27 v #2885 > > ................................................................................ 00:00:27 v #2886 > > │ 00:00:27 v #2887 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;............................ 00:00:27 v #2888 > > ................................................................................ 00:00:27 v #2889 > > │ 00:00:27 v #2890 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;\......................... 00:00:27 v #2891 > > ................................................................................ 00:00:27 v #2892 > > │ 00:00:27 v #2893 > > ....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... 00:00:27 v #2894 > > ................................................................................ 00:00:27 v #2895 > > │ 00:00:27 v #2896 > > ...................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #2897 > > ................................................................................ 00:00:27 v #2898 > > │ 00:00:27 v #2899 > > ..................>///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. 00:00:27 v #2900 > > .>/;;;;;;;;;;;;;................................................................ 00:00:27 v #2901 > > │ 00:00:27 v #2902 > > ..................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #2903 > > >//;;;;;;;;;;;;;;;.............................................................. 00:00:27 v #2904 > > │ 00:00:27 v #2905 > > .................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. 00:00:27 v #2906 > > >////;;;;;;;;;;;;;;;............................................................ 00:00:27 v #2907 > > │ 00:00:27 v #2908 > > .................///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........> 00:00:27 v #2909 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... 00:00:27 v #2910 > > │ 00:00:27 v #2911 > > ................>/////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<.........> 00:00:27 v #2912 > > ////////;;;;;;;;;;;;;;;;..........>//;;;;;;;;;.................................. 00:00:27 v #2913 > > │ 00:00:27 v #2914 > > ...............>/////////////////////////////;;;<<<<<<<<<<<<<<<<<<<<.........> 00:00:27 v #2915 > > //////////;;;<<<<<<<<<<<.........>/////;;;<<<<<................................. 00:00:27 v #2916 > > │ 00:00:27 v #2917 > > ...............//////////////////////////////<<<<<<<<<<<<<<<<<<<<<<......... 00:00:27 v #2918 > > ////////////<<<<<<<<<<<..........///////<<<<<<<................................. 00:00:27 v #2919 > > │ 00:00:27 v #2920 > > ..............>////////////////////////////<<<<<<<<<<<<<<<<<<<<<<............ 00:00:27 v #2921 > > ///////////<<<<<<<<<<<............/////<<<<<<................................... 00:00:27 v #2922 > > │ 00:00:27 v #2923 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<<<<............... 00:00:27 v #2924 > > //////////<<<<<<<<<<<..............///<<<<<<.................................... 00:00:27 v #2925 > > │ 00:00:27 v #2926 > > ................/////////////////////////<<<<<<<<<<<<<<<<<<<<<.................. 00:00:27 v #2927 > > ////////<<<<<<<<<<<..................<.......................................... 00:00:27 v #2928 > > │ 00:00:27 v #2929 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<................... 00:00:27 v #2930 > > .//////<<<<<<<<<<<.............................................................. 00:00:27 v #2931 > > │ 00:00:27 v #2932 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<..................... 00:00:27 v #2933 > > ...///<<<<<<<<<<................................................................ 00:00:27 v #2934 > > │ 00:00:27 v #2935 > > ....................//////////////////<<<<<<<<<<<<<<<<<<<<...................... 00:00:27 v #2936 > > ..../<<<<....................................................................... 00:00:27 v #2937 > > │ 00:00:27 v #2938 > > .....................////////////////<<<<<<<<<<<<<<<<<<<........................ 00:00:27 v #2939 > > ................................................................................ 00:00:27 v #2940 > > │ 00:00:27 v #2941 > > ......................//////////////<<<<<<<<<<<<<<<<<<.......................... 00:00:27 v #2942 > > ................................................................................ 00:00:27 v #2943 > > │ 00:00:27 v #2944 > > ........................///////////<<<<<<<<<<<<<<<<<<........................... 00:00:27 v #2945 > > ................................................................................ 00:00:27 v #2946 > > │ 00:00:27 v #2947 > > .........................////////<<<<<<<<<<<<<<<................................ 00:00:27 v #2948 > > ................................................................................ 00:00:27 v #2949 > > │ 00:00:27 v #2950 > > ..........................//////<<<<<<<<<<<..................................... 00:00:27 v #2951 > > ................................................................................ 00:00:27 v #2952 > > │ 00:00:27 v #2953 > > ...........................////<<<<<<<<......................................... 00:00:27 v #2954 > > ................................................................................ 00:00:27 v #2955 > > │ 00:00:27 v #2956 > > ............................//<<<<.............................................. 00:00:27 v #2957 > > ................................................................................ 00:00:27 v #2958 > > │ 00:00:27 v #2959 > > ................................................................................ 00:00:27 v #2960 > > ................................................................................ 00:00:27 v #2961 > > │ 00:00:27 v #2962 > > ................................................................................ 00:00:27 v #2963 > > ................................................................................ 00:00:27 v #2964 > > │ 00:00:27 v #2965 > > ................................................................................ 00:00:27 v #2966 > > ................................................................................ 00:00:27 v #2967 > > │ 00:00:27 v #2968 > > ................................................................................ 00:00:27 v #2969 > > ................................................................................ 00:00:27 v #2970 > > │ 00:00:27 v #2971 > > ................................................................................ 00:00:27 v #2972 > > ................................................................................ 00:00:27 v #2973 > > │ 00:00:27 v #2974 > > ................................................................................ 00:00:27 v #2975 > > ................................................................................ 00:00:27 v #2976 > > │ 00:00:27 v #2977 > > ................................................................................ 00:00:27 v #2978 > > ................................................................................ 00:00:27 v #2979 > > │ 00:00:27 v #2980 > > ................................................................................ 00:00:27 v #2981 > > ................................................................................ 00:00:27 v #2982 > > │ 00:00:27 v #2983 > > │ 00:00:27 v #2984 > > ................................................................................ 00:00:27 v #2985 > > ................................................................................ 00:00:27 v #2986 > > │ 00:00:27 v #2987 > > ................................................................................ 00:00:27 v #2988 > > ................................................................................ 00:00:27 v #2989 > > │ 00:00:27 v #2990 > > ................................................................................ 00:00:27 v #2991 > > ................................................................................ 00:00:27 v #2992 > > │ 00:00:27 v #2993 > > ................................................................................ 00:00:27 v #2994 > > ................................................................................ 00:00:27 v #2995 > > │ 00:00:27 v #2996 > > ................................................................................ 00:00:27 v #2997 > > ................................................................................ 00:00:27 v #2998 > > │ 00:00:27 v #2999 > > ................................................................................ 00:00:27 v #3000 > > ................................................................................ 00:00:27 v #3001 > > │ 00:00:27 v #3002 > > ................................................................................ 00:00:27 v #3003 > > ................................................................................ 00:00:27 v #3004 > > │ 00:00:27 v #3005 > > ................................................................................ 00:00:27 v #3006 > > ................................................................................ 00:00:27 v #3007 > > │ 00:00:27 v #3008 > > ................................................................................ 00:00:27 v #3009 > > ................................................................................ 00:00:27 v #3010 > > │ 00:00:27 v #3011 > > ................................................................................ 00:00:27 v #3012 > > ................................................................................ 00:00:27 v #3013 > > │ 00:00:27 v #3014 > > ....................../;;;;;;;;;;;;;;;;......................................... 00:00:27 v #3015 > > ................................................................................ 00:00:27 v #3016 > > │ 00:00:27 v #3017 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;................................ 00:00:27 v #3018 > > ................................................................................ 00:00:27 v #3019 > > │ 00:00:27 v #3020 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;............................. 00:00:27 v #3021 > > ................................................................................ 00:00:27 v #3022 > > │ 00:00:27 v #3023 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;........................... 00:00:27 v #3024 > > ................................................................................ 00:00:27 v #3025 > > │ 00:00:27 v #3026 > > ...................>///////////;/;;;;;;;;;;;;;;;;;;;;;;;........................ 00:00:27 v #3027 > > ................................................................................ 00:00:27 v #3028 > > │ 00:00:27 v #3029 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #3030 > > ................................................................................ 00:00:27 v #3031 > > │ 00:00:27 v #3032 > > ..................>/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #3033 > > .>;;;;;;;;;;;;;................................................................. 00:00:27 v #3034 > > │ 00:00:27 v #3035 > > ..................////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #3036 > > >//;/;;;;;;;;;;;;............................................................... 00:00:27 v #3037 > > │ 00:00:27 v #3038 > > .................>//////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;\............ 00:00:27 v #3039 > > //////;;;;;;;;;;;;;;............................................................ 00:00:27 v #3040 > > │ 00:00:27 v #3041 > > ................>//////////////////////////;;;;;;;;;;;;;;;;;;;<<<<<<<..........> 00:00:27 v #3042 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... 00:00:27 v #3043 > > │ 00:00:27 v #3044 > > ................/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<<..........> 00:00:27 v #3045 > > ///////////;;;;;;;;;;;<<..........>//;;;;;;;;;.................................. 00:00:27 v #3046 > > │ 00:00:27 v #3047 > > ...............>//////////////////////////////<<<<<<<<<<<<<<<<<<<<<..........> 00:00:27 v #3048 > > ///////////;<<<<<<<<<<<<.........>/////;;<<<<<<................................. 00:00:27 v #3049 > > │ 00:00:27 v #3050 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<<............ 00:00:27 v #3051 > > ////////////<<<<<<<<<<<..........///////<<<<<<.................................. 00:00:27 v #3052 > > │ 00:00:27 v #3053 > > ..............>//////////////////////////////<<<<<<<<<<<<<<<<<<<............ 00:00:27 v #3054 > > ///////////<<<<<<<<<<<............/////<<<<<<................................... 00:00:27 v #3055 > > │ 00:00:27 v #3056 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<<............... 00:00:27 v #3057 > > //////////<<<<<<<<<<<...............///<<<<<.................................... 00:00:27 v #3058 > > │ 00:00:27 v #3059 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<................... 00:00:27 v #3060 > > /////////<<<<<<<<<<................../.......................................... 00:00:27 v #3061 > > │ 00:00:27 v #3062 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<.................... 00:00:27 v #3063 > > .///////<<<<<<<<<<.............................................................. 00:00:27 v #3064 > > │ 00:00:27 v #3065 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<..................... 00:00:27 v #3066 > > ...////<<<<<<<<<................................................................ 00:00:27 v #3067 > > │ 00:00:27 v #3068 > > ....................///////////////////<<<<<<<<<<<<<<<<<<....................... 00:00:27 v #3069 > > ...../<<<....................................................................... 00:00:27 v #3070 > > │ 00:00:27 v #3071 > > ...................../////////////////<<<<<<<<<<<<<<<<<<........................ 00:00:27 v #3072 > > ................................................................................ 00:00:27 v #3073 > > │ 00:00:27 v #3074 > > ......................///////////////<<<<<<<<<<<<<<<<<<......................... 00:00:27 v #3075 > > ................................................................................ 00:00:27 v #3076 > > │ 00:00:27 v #3077 > > ........................////////////<<<<<<<<<<<<<<<<<........................... 00:00:27 v #3078 > > ................................................................................ 00:00:27 v #3079 > > │ 00:00:27 v #3080 > > .........................//////////<<<<<<<<<<<<<<............................... 00:00:27 v #3081 > > ................................................................................ 00:00:27 v #3082 > > │ 00:00:27 v #3083 > > ...........................///////<<<<<<<<<<<................................... 00:00:27 v #3084 > > ................................................................................ 00:00:27 v #3085 > > │ 00:00:27 v #3086 > > ............................/////<<<<<<<........................................ 00:00:27 v #3087 > > ................................................................................ 00:00:27 v #3088 > > │ 00:00:27 v #3089 > > ..............................//<<<<............................................ 00:00:27 v #3090 > > ................................................................................ 00:00:27 v #3091 > > │ 00:00:27 v #3092 > > ................................................................................ 00:00:27 v #3093 > > ................................................................................ 00:00:27 v #3094 > > │ 00:00:27 v #3095 > > ................................................................................ 00:00:27 v #3096 > > ................................................................................ 00:00:27 v #3097 > > │ 00:00:27 v #3098 > > ................................................................................ 00:00:27 v #3099 > > ................................................................................ 00:00:27 v #3100 > > │ 00:00:27 v #3101 > > ................................................................................ 00:00:27 v #3102 > > ................................................................................ 00:00:27 v #3103 > > │ 00:00:27 v #3104 > > ................................................................................ 00:00:27 v #3105 > > ................................................................................ 00:00:27 v #3106 > > │ 00:00:27 v #3107 > > ................................................................................ 00:00:27 v #3108 > > ................................................................................ 00:00:27 v #3109 > > │ 00:00:27 v #3110 > > ................................................................................ 00:00:27 v #3111 > > ................................................................................ 00:00:27 v #3112 > > │ 00:00:27 v #3113 > > ................................................................................ 00:00:27 v #3114 > > ................................................................................ 00:00:27 v #3115 > > │ 00:00:27 v #3116 > > │ 00:00:27 v #3117 > > ................................................................................ 00:00:27 v #3118 > > ................................................................................ 00:00:27 v #3119 > > │ 00:00:27 v #3120 > > ................................................................................ 00:00:27 v #3121 > > ................................................................................ 00:00:27 v #3122 > > │ 00:00:27 v #3123 > > ................................................................................ 00:00:27 v #3124 > > ................................................................................ 00:00:27 v #3125 > > │ 00:00:27 v #3126 > > ................................................................................ 00:00:27 v #3127 > > ................................................................................ 00:00:27 v #3128 > > │ 00:00:27 v #3129 > > ................................................................................ 00:00:27 v #3130 > > ................................................................................ 00:00:27 v #3131 > > │ 00:00:27 v #3132 > > ................................................................................ 00:00:27 v #3133 > > ................................................................................ 00:00:27 v #3134 > > │ 00:00:27 v #3135 > > ................................................................................ 00:00:27 v #3136 > > ................................................................................ 00:00:27 v #3137 > > │ 00:00:27 v #3138 > > ................................................................................ 00:00:27 v #3139 > > ................................................................................ 00:00:27 v #3140 > > │ 00:00:27 v #3141 > > ................................................................................ 00:00:27 v #3142 > > ................................................................................ 00:00:27 v #3143 > > │ 00:00:27 v #3144 > > ................................................................................ 00:00:27 v #3145 > > ................................................................................ 00:00:27 v #3146 > > │ 00:00:27 v #3147 > > .....................>;;;;;;;;;;;;.............................................. 00:00:27 v #3148 > > ................................................................................ 00:00:27 v #3149 > > │ 00:00:27 v #3150 > > .....................///;;;;;;;;;;;;;;;;;;;;;;.................................. 00:00:27 v #3151 > > ................................................................................ 00:00:27 v #3152 > > │ 00:00:27 v #3153 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;............................... 00:00:27 v #3154 > > ................................................................................ 00:00:27 v #3155 > > │ 00:00:27 v #3156 > > ..................../////////;/;;;;;;;;;;;;;;;;;;;;;\........................... 00:00:27 v #3157 > > ................................................................................ 00:00:27 v #3158 > > │ 00:00:27 v #3159 > > ...................>/////////////;;;;;;;;;;;;;;;;;;;;;;\........................ 00:00:27 v #3160 > > ................................................................................ 00:00:27 v #3161 > > │ 00:00:27 v #3162 > > ...................////////////////;/;;;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #3163 > > ................................................................................ 00:00:27 v #3164 > > │ 00:00:27 v #3165 > > ..................>///////////////////;/;;;;;;;;;;;;;;;;;;;;;;.................. 00:00:27 v #3166 > > .;;;;;;;;;;;;;.................................................................. 00:00:27 v #3167 > > │ 00:00:27 v #3168 > > .................>///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;\.............. 00:00:27 v #3169 > > >///;;;;;;;;;;;;;............................................................... 00:00:27 v #3170 > > │ 00:00:27 v #3171 > > .................//////////////////////////;;;;;;;;;;;;;;;;;;;;;;<<<............ 00:00:27 v #3172 > > /////;;;;;;;;;;;;;;;............................................................ 00:00:27 v #3173 > > │ 00:00:27 v #3174 > > ................>/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<...........> 00:00:27 v #3175 > > ////////;/;;;;;;;;;;;;;............>/;;;;;;;.................................... 00:00:27 v #3176 > > │ 00:00:27 v #3177 > > ................////////////////////////////////<<<<<<<<<<<<<<<<<<<...........> 00:00:27 v #3178 > > //////////;;;;;;;<<<<<<<..........>//;;;;;;;;;.................................. 00:00:27 v #3179 > > │ 00:00:27 v #3180 > > ...............>///////////////////////////////<<<<<<<<<<<<<<<<<<<...........> 00:00:27 v #3181 > > /////////////<<<<<<<<<<..........>///////<<<<<<................................. 00:00:27 v #3182 > > │ 00:00:27 v #3183 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<............. 00:00:27 v #3184 > > ////////////<<<<<<<<<<...........////////<<<<<.................................. 00:00:27 v #3185 > > │ 00:00:27 v #3186 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<<.............> 00:00:27 v #3187 > > ///////////<<<<<<<<<<............///////<<<<<................................... 00:00:27 v #3188 > > │ 00:00:27 v #3189 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<............... 00:00:27 v #3190 > > ///////////<<<<<<<<<................///<<<<<.................................... 00:00:27 v #3191 > > │ 00:00:27 v #3192 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<.................. 00:00:27 v #3193 > > //////////<<<<<<<<<.................../......................................... 00:00:27 v #3194 > > │ 00:00:27 v #3195 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<.................... 00:00:27 v #3196 > > ..///////<<<<<<<<<.............................................................. 00:00:27 v #3197 > > │ 00:00:27 v #3198 > > ................./////////////////////////<<<<<<<<<<<<<<<<...................... 00:00:27 v #3199 > > ....////<<<<<<<<................................................................ 00:00:27 v #3200 > > │ 00:00:27 v #3201 > > ...................//////////////////////<<<<<<<<<<<<<<<<....................... 00:00:27 v #3202 > > ....../<<<...................................................................... 00:00:27 v #3203 > > │ 00:00:27 v #3204 > > .....................//////////////////<<<<<<<<<<<<<<<<<........................ 00:00:27 v #3205 > > ................................................................................ 00:00:27 v #3206 > > │ 00:00:27 v #3207 > > ....................../////////////////<<<<<<<<<<<<<<<<......................... 00:00:27 v #3208 > > ................................................................................ 00:00:27 v #3209 > > │ 00:00:27 v #3210 > > ........................//////////////<<<<<<<<<<<<<<<........................... 00:00:27 v #3211 > > ................................................................................ 00:00:27 v #3212 > > │ 00:00:27 v #3213 > > ..........................///////////<<<<<<<<<<<<............................... 00:00:27 v #3214 > > ................................................................................ 00:00:27 v #3215 > > │ 00:00:27 v #3216 > > ............................////////<<<<<<<<<<.................................. 00:00:27 v #3217 > > ................................................................................ 00:00:27 v #3218 > > │ 00:00:27 v #3219 > > .............................//////<<<<<<<...................................... 00:00:27 v #3220 > > ................................................................................ 00:00:27 v #3221 > > │ 00:00:27 v #3222 > > ...............................///<<<<.......................................... 00:00:27 v #3223 > > ................................................................................ 00:00:27 v #3224 > > │ 00:00:27 v #3225 > > .................................<.............................................. 00:00:27 v #3226 > > ................................................................................ 00:00:27 v #3227 > > │ 00:00:27 v #3228 > > ................................................................................ 00:00:27 v #3229 > > ................................................................................ 00:00:27 v #3230 > > │ 00:00:27 v #3231 > > ................................................................................ 00:00:27 v #3232 > > ................................................................................ 00:00:27 v #3233 > > │ 00:00:27 v #3234 > > ................................................................................ 00:00:27 v #3235 > > ................................................................................ 00:00:27 v #3236 > > │ 00:00:27 v #3237 > > ................................................................................ 00:00:27 v #3238 > > ................................................................................ 00:00:27 v #3239 > > │ 00:00:27 v #3240 > > ................................................................................ 00:00:27 v #3241 > > ................................................................................ 00:00:27 v #3242 > > │ 00:00:27 v #3243 > > ................................................................................ 00:00:27 v #3244 > > ................................................................................ 00:00:27 v #3245 > > │ 00:00:27 v #3246 > > ................................................................................ 00:00:27 v #3247 > > ................................................................................ 00:00:27 v #3248 > > │ 00:00:27 v #3249 > > │ 00:00:27 v #3250 > > ................................................................................ 00:00:27 v #3251 > > ................................................................................ 00:00:27 v #3252 > > │ 00:00:27 v #3253 > > ................................................................................ 00:00:27 v #3254 > > ................................................................................ 00:00:27 v #3255 > > │ 00:00:27 v #3256 > > ................................................................................ 00:00:27 v #3257 > > ................................................................................ 00:00:27 v #3258 > > │ 00:00:27 v #3259 > > ................................................................................ 00:00:27 v #3260 > > ................................................................................ 00:00:27 v #3261 > > │ 00:00:27 v #3262 > > ................................................................................ 00:00:27 v #3263 > > ................................................................................ 00:00:27 v #3264 > > │ 00:00:27 v #3265 > > ................................................................................ 00:00:27 v #3266 > > ................................................................................ 00:00:27 v #3267 > > │ 00:00:27 v #3268 > > ................................................................................ 00:00:27 v #3269 > > ................................................................................ 00:00:27 v #3270 > > │ 00:00:27 v #3271 > > ................................................................................ 00:00:27 v #3272 > > ................................................................................ 00:00:27 v #3273 > > │ 00:00:27 v #3274 > > ................................................................................ 00:00:27 v #3275 > > ................................................................................ 00:00:27 v #3276 > > │ 00:00:27 v #3277 > > ................................................................................ 00:00:27 v #3278 > > ................................................................................ 00:00:27 v #3279 > > │ 00:00:27 v #3280 > > ...................../;;;;;;;;.................................................. 00:00:27 v #3281 > > ................................................................................ 00:00:27 v #3282 > > │ 00:00:27 v #3283 > > ....................>//;;;;;;;;;;;;;;;;;;;;;.................................... 00:00:27 v #3284 > > ................................................................................ 00:00:27 v #3285 > > │ 00:00:27 v #3286 > > ....................//////;;;;;;;;;;;;;;;;;;;;;................................. 00:00:27 v #3287 > > ................................................................................ 00:00:27 v #3288 > > │ 00:00:27 v #3289 > > ...................>//////////;/;;;;;;;;;;;;;;;;;;;............................. 00:00:27 v #3290 > > ................................................................................ 00:00:27 v #3291 > > │ 00:00:27 v #3292 > > ...................//////////////;/;;;;;;;;;;;;;;;;;;;;......................... 00:00:27 v #3293 > > ................................................................................ 00:00:27 v #3294 > > │ 00:00:27 v #3295 > > ..................>////////////////////;;;;;;;;;;;;;;;;;;;;..................... 00:00:27 v #3296 > > ................................................................................ 00:00:27 v #3297 > > │ 00:00:27 v #3298 > > ..................//////////////////////;;;;;;;;;;;;;;;;;;;;;;;................. 00:00:27 v #3299 > > .;;;;;;;;;;;;\.................................................................. 00:00:27 v #3300 > > │ 00:00:27 v #3301 > > .................>/////////////////////////;;;;;;;;;;;;;;;;;;;;;;;.............. 00:00:27 v #3302 > > >/;;/;;;;;;;;;;;;............................................................... 00:00:27 v #3303 > > │ 00:00:27 v #3304 > > .................////////////////////////////////;;;<<<<<<<<<<<<<<<<............ 00:00:27 v #3305 > > /////;;/;;;;;;;;;;;;............................................................ 00:00:27 v #3306 > > │ 00:00:27 v #3307 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<<<............> 00:00:27 v #3308 > > ////////;;;;;;;;;;;;;;;............;;;;;;;;;.................................... 00:00:27 v #3309 > > │ 00:00:27 v #3310 > > ................/////////////////////////////////<<<<<<<<<<<<<<<<.............> 00:00:27 v #3311 > > ////////////;;<<<<<<<<<<..........>////;;;;;;;;................................. 00:00:27 v #3312 > > │ 00:00:27 v #3313 > > ...............>////////////////////////////////<<<<<<<<<<<<<<<<.............. 00:00:27 v #3314 > > //////////////<<<<<<<<<...........//////;<<<<<<................................. 00:00:27 v #3315 > > │ 00:00:27 v #3316 > > ...............////////////////////////////////<<<<<<<<<<<<<<<<..............> 00:00:27 v #3317 > > /////////////<<<<<<<<<...........>///////<<<<<.................................. 00:00:27 v #3318 > > │ 00:00:27 v #3319 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<..............> 00:00:27 v #3320 > > ////////////<<<<<<<<<............///////<<<<<................................... 00:00:27 v #3321 > > │ 00:00:27 v #3322 > > ..............///////////////////////////////<<<<<<<<<<<<<<<<................ 00:00:27 v #3323 > > ///////////<<<<<<<<<................///<<<<<.................................... 00:00:27 v #3324 > > │ 00:00:27 v #3325 > > .............>///////////////////////////////<<<<<<<<<<<<<<<................... 00:00:27 v #3326 > > //////////<<<<<<<<<............................................................. 00:00:27 v #3327 > > │ 00:00:27 v #3328 > > ..............//////////////////////////////<<<<<<<<<<<<<<<..................... 00:00:27 v #3329 > > ..///////<<<<<<<<<.............................................................. 00:00:27 v #3330 > > │ 00:00:27 v #3331 > > ................///////////////////////////<<<<<<<<<<<<<<<...................... 00:00:27 v #3332 > > ..../////<<<<<<<................................................................ 00:00:27 v #3333 > > │ 00:00:27 v #3334 > > ..................////////////////////////<<<<<<<<<<<<<<<....................... 00:00:27 v #3335 > > ......./<<...................................................................... 00:00:27 v #3336 > > │ 00:00:27 v #3337 > > ..................../////////////////////<<<<<<<<<<<<<<<........................ 00:00:27 v #3338 > > ................................................................................ 00:00:27 v #3339 > > │ 00:00:27 v #3340 > > ......................//////////////////<<<<<<<<<<<<<<<......................... 00:00:27 v #3341 > > ................................................................................ 00:00:27 v #3342 > > │ 00:00:27 v #3343 > > ........................///////////////<<<<<<<<<<<<<<........................... 00:00:27 v #3344 > > ................................................................................ 00:00:27 v #3345 > > │ 00:00:27 v #3346 > > ...........................///////////<<<<<<<<<<<<.............................. 00:00:27 v #3347 > > ................................................................................ 00:00:27 v #3348 > > │ 00:00:27 v #3349 > > ............................//////////<<<<<<<<<................................. 00:00:27 v #3350 > > ................................................................................ 00:00:27 v #3351 > > │ 00:00:27 v #3352 > > ..............................///////<<<<<<..................................... 00:00:27 v #3353 > > ................................................................................ 00:00:27 v #3354 > > │ 00:00:27 v #3355 > > ................................////<<<<........................................ 00:00:27 v #3356 > > ................................................................................ 00:00:27 v #3357 > > │ 00:00:27 v #3358 > > ...................................<............................................ 00:00:27 v #3359 > > ................................................................................ 00:00:27 v #3360 > > │ 00:00:27 v #3361 > > ................................................................................ 00:00:27 v #3362 > > ................................................................................ 00:00:27 v #3363 > > │ 00:00:27 v #3364 > > ................................................................................ 00:00:27 v #3365 > > ................................................................................ 00:00:27 v #3366 > > │ 00:00:27 v #3367 > > ................................................................................ 00:00:27 v #3368 > > ................................................................................ 00:00:27 v #3369 > > │ 00:00:27 v #3370 > > ................................................................................ 00:00:27 v #3371 > > ................................................................................ 00:00:27 v #3372 > > │ 00:00:27 v #3373 > > ................................................................................ 00:00:27 v #3374 > > ................................................................................ 00:00:27 v #3375 > > │ 00:00:27 v #3376 > > ................................................................................ 00:00:27 v #3377 > > ................................................................................ 00:00:27 v #3378 > > │ 00:00:27 v #3379 > > ................................................................................ 00:00:27 v #3380 > > ................................................................................ 00:00:27 v #3381 > > │ 00:00:27 v #3382 > > │ 00:00:27 v #3383 > > ................................................................................ 00:00:27 v #3384 > > ................................................................................ 00:00:27 v #3385 > > │ 00:00:27 v #3386 > > ................................................................................ 00:00:27 v #3387 > > ................................................................................ 00:00:27 v #3388 > > │ 00:00:27 v #3389 > > ................................................................................ 00:00:27 v #3390 > > ................................................................................ 00:00:27 v #3391 > > │ 00:00:27 v #3392 > > ................................................................................ 00:00:27 v #3393 > > ................................................................................ 00:00:27 v #3394 > > │ 00:00:27 v #3395 > > ................................................................................ 00:00:27 v #3396 > > ................................................................................ 00:00:27 v #3397 > > │ 00:00:27 v #3398 > > ................................................................................ 00:00:27 v #3399 > > ................................................................................ 00:00:27 v #3400 > > │ 00:00:27 v #3401 > > ................................................................................ 00:00:27 v #3402 > > ................................................................................ 00:00:27 v #3403 > > │ 00:00:27 v #3404 > > ................................................................................ 00:00:27 v #3405 > > ................................................................................ 00:00:27 v #3406 > > │ 00:00:27 v #3407 > > ................................................................................ 00:00:27 v #3408 > > ................................................................................ 00:00:27 v #3409 > > │ 00:00:27 v #3410 > > ................................................................................ 00:00:27 v #3411 > > ................................................................................ 00:00:27 v #3412 > > │ 00:00:27 v #3413 > > .....................;;;;;...................................................... 00:00:27 v #3414 > > ................................................................................ 00:00:27 v #3415 > > │ 00:00:27 v #3416 > > ....................>/;/;;;;;;;;;;;;;;.......................................... 00:00:27 v #3417 > > ................................................................................ 00:00:27 v #3418 > > │ 00:00:27 v #3419 > > ....................//////;/;;;;;;;;;;;;;;;;;................................... 00:00:27 v #3420 > > ................................................................................ 00:00:27 v #3421 > > │ 00:00:27 v #3422 > > ...................>//////////;;/;;;;;;;;;;;;;;;;;.............................. 00:00:27 v #3423 > > ................................................................................ 00:00:27 v #3424 > > │ 00:00:27 v #3425 > > ...................////////////////;;;;;;;;;;;;;;;;;;;;......................... 00:00:27 v #3426 > > ................................................................................ 00:00:27 v #3427 > > │ 00:00:27 v #3428 > > ..................>///////////////////////;;;;;;;;;;;;;;;;;..................... 00:00:27 v #3429 > > ................................................................................ 00:00:27 v #3430 > > │ 00:00:27 v #3431 > > ................../////////////////////////;;;;;;;;;;;;;;;;;;;;;................ 00:00:27 v #3432 > > .;;;;;;;;;;;.................................................................... 00:00:27 v #3433 > > │ 00:00:27 v #3434 > > .................>///////////////////////////////;;;;;<<<<<<<<<<<<<............. 00:00:27 v #3435 > > >//;/;;;;;;;;;;;................................................................ 00:00:27 v #3436 > > │ 00:00:27 v #3437 > > .................//////////////////////////////////<<<<<<<<<<<<<<<.............> 00:00:27 v #3438 > > //////;//;;;;;;;;;;;............................................................ 00:00:27 v #3439 > > │ 00:00:27 v #3440 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<..............> 00:00:27 v #3441 > > /////////;/;;;;;;;;;<<<<...........;;;;;;;;..................................... 00:00:27 v #3442 > > │ 00:00:27 v #3443 > > ................//////////////////////////////////<<<<<<<<<<<<<<..............> 00:00:27 v #3444 > > //////////////<<<<<<<<<...........>///;;;;;;;<<................................. 00:00:27 v #3445 > > │ 00:00:27 v #3446 > > ...............>/////////////////////////////////<<<<<<<<<<<<<<<.............. 00:00:27 v #3447 > > //////////////<<<<<<<<<...........///////;<<<<<................................. 00:00:27 v #3448 > > │ 00:00:27 v #3449 > > .............../////////////////////////////////<<<<<<<<<<<<<<<..............> 00:00:27 v #3450 > > /////////////<<<<<<<<<...........>///////<<<<<.................................. 00:00:27 v #3451 > > │ 00:00:27 v #3452 > > ..............>////////////////////////////////<<<<<<<<<<<<<<<..............> 00:00:27 v #3453 > > ////////////<<<<<<<<<............///////<<<<<................................... 00:00:27 v #3454 > > │ 00:00:27 v #3455 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<............... 00:00:27 v #3456 > > ////////////<<<<<<<<................////<<<<<................................... 00:00:27 v #3457 > > │ 00:00:27 v #3458 > > ..............////////////////////////////////<<<<<<<<<<<<<<................... 00:00:27 v #3459 > > ///////////<<<<<<<<............................................................. 00:00:27 v #3460 > > │ 00:00:27 v #3461 > > .............>///////////////////////////////<<<<<<<<<<<<<<..................... 00:00:27 v #3462 > > ..////////<<<<<<<<.............................................................. 00:00:27 v #3463 > > │ 00:00:27 v #3464 > > .............../////////////////////////////<<<<<<<<<<<<<<...................... 00:00:27 v #3465 > > .....////<<<<<<<................................................................ 00:00:27 v #3466 > > │ 00:00:27 v #3467 > > .................//////////////////////////<<<<<<<<<<<<<<....................... 00:00:27 v #3468 > > .......//<<..................................................................... 00:00:27 v #3469 > > │ 00:00:27 v #3470 > > ....................///////////////////////<<<<<<<<<<<<<........................ 00:00:27 v #3471 > > ................................................................................ 00:00:27 v #3472 > > │ 00:00:27 v #3473 > > ......................////////////////////<<<<<<<<<<<<<......................... 00:00:27 v #3474 > > ................................................................................ 00:00:27 v #3475 > > │ 00:00:27 v #3476 > > ......................../////////////////<<<<<<<<<<<<........................... 00:00:27 v #3477 > > ................................................................................ 00:00:27 v #3478 > > │ 00:00:27 v #3479 > > .........................../////////////<<<<<<<<<<.............................. 00:00:27 v #3480 > > ................................................................................ 00:00:27 v #3481 > > │ 00:00:27 v #3482 > > .............................//////////<<<<<<<<................................. 00:00:27 v #3483 > > ................................................................................ 00:00:27 v #3484 > > │ 00:00:27 v #3485 > > ................................///////<<<<<.................................... 00:00:27 v #3486 > > ................................................................................ 00:00:27 v #3487 > > │ 00:00:27 v #3488 > > ..................................////<<<....................................... 00:00:27 v #3489 > > ................................................................................ 00:00:27 v #3490 > > │ 00:00:27 v #3491 > > .....................................<.......................................... 00:00:27 v #3492 > > ................................................................................ 00:00:27 v #3493 > > │ 00:00:27 v #3494 > > ................................................................................ 00:00:27 v #3495 > > ................................................................................ 00:00:27 v #3496 > > │ 00:00:27 v #3497 > > ................................................................................ 00:00:27 v #3498 > > ................................................................................ 00:00:27 v #3499 > > │ 00:00:27 v #3500 > > ................................................................................ 00:00:27 v #3501 > > ................................................................................ 00:00:27 v #3502 > > │ 00:00:27 v #3503 > > ................................................................................ 00:00:27 v #3504 > > ................................................................................ 00:00:27 v #3505 > > │ 00:00:27 v #3506 > > ................................................................................ 00:00:27 v #3507 > > ................................................................................ 00:00:27 v #3508 > > │ 00:00:27 v #3509 > > ................................................................................ 00:00:27 v #3510 > > ................................................................................ 00:00:27 v #3511 > > │ 00:00:27 v #3512 > > ................................................................................ 00:00:27 v #3513 > > ................................................................................ 00:00:27 v #3514 > > │ 00:00:27 v #3515 > > │ 00:00:27 v #3516 > > ................................................................................ 00:00:27 v #3517 > > ................................................................................ 00:00:27 v #3518 > > │ 00:00:27 v #3519 > > ................................................................................ 00:00:27 v #3520 > > ................................................................................ 00:00:27 v #3521 > > │ 00:00:27 v #3522 > > ................................................................................ 00:00:27 v #3523 > > ................................................................................ 00:00:27 v #3524 > > │ 00:00:27 v #3525 > > ................................................................................ 00:00:27 v #3526 > > ................................................................................ 00:00:27 v #3527 > > │ 00:00:27 v #3528 > > ................................................................................ 00:00:27 v #3529 > > ................................................................................ 00:00:27 v #3530 > > │ 00:00:27 v #3531 > > ................................................................................ 00:00:27 v #3532 > > ................................................................................ 00:00:27 v #3533 > > │ 00:00:27 v #3534 > > ................................................................................ 00:00:27 v #3535 > > ................................................................................ 00:00:27 v #3536 > > │ 00:00:27 v #3537 > > ................................................................................ 00:00:27 v #3538 > > ................................................................................ 00:00:27 v #3539 > > │ 00:00:27 v #3540 > > ................................................................................ 00:00:27 v #3541 > > ................................................................................ 00:00:27 v #3542 > > │ 00:00:27 v #3543 > > ................................................................................ 00:00:27 v #3544 > > ................................................................................ 00:00:27 v #3545 > > │ 00:00:27 v #3546 > > ....................;;.......................................................... 00:00:27 v #3547 > > ................................................................................ 00:00:27 v #3548 > > │ 00:00:27 v #3549 > > ....................//;/;;;;;;;;;............................................... 00:00:27 v #3550 > > ................................................................................ 00:00:27 v #3551 > > │ 00:00:27 v #3552 > > ...................>//////;;;/;;;;;;;;;;;;;..................................... 00:00:27 v #3553 > > ................................................................................ 00:00:27 v #3554 > > │ 00:00:27 v #3555 > > ...................////////////;;;;;;;;;;;;;;;;;................................ 00:00:27 v #3556 > > ................................................................................ 00:00:27 v #3557 > > │ 00:00:27 v #3558 > > ..................>/////////////////////;;;;;;;;;;;;;;.......................... 00:00:27 v #3559 > > ................................................................................ 00:00:27 v #3560 > > │ 00:00:27 v #3561 > > ..................>///////////////////////;;;/;;;;;;;;;;;;;;.................... 00:00:27 v #3562 > > ................................................................................ 00:00:27 v #3563 > > │ 00:00:27 v #3564 > > ................../////////////////////////////;;/;;;;;;;;;;;;;;;............... 00:00:27 v #3565 > > ;;;;;;;;;;;..................................................................... 00:00:27 v #3566 > > │ 00:00:27 v #3567 > > .................>//////////////////////////////////<<<<<<<<<<<<<<.............. 00:00:27 v #3568 > > >/;/;;;;;;;;;;;;................................................................ 00:00:27 v #3569 > > │ 00:00:27 v #3570 > > .................//////////////////////////////////<<<<<<<<<<<<<<..............> 00:00:27 v #3571 > > ///////;;/;;;;;;;;;;;........................................................... 00:00:27 v #3572 > > │ 00:00:27 v #3573 > > ................>//////////////////////////////////<<<<<<<<<<<<<...............> 00:00:27 v #3574 > > //////////;;/;;;<<<<<<<............/;;;;;;;\.................................... 00:00:27 v #3575 > > │ 00:00:27 v #3576 > > ................//////////////////////////////////<<<<<<<<<<<<<...............> 00:00:27 v #3577 > > ///////////////<<<<<<<<...........>//;;/;;;;<<<................................. 00:00:27 v #3578 > > │ 00:00:27 v #3579 > > ...............>//////////////////////////////////<<<<<<<<<<<<................ 00:00:27 v #3580 > > //////////////<<<<<<<<............>///////<<<<.................................. 00:00:27 v #3581 > > │ 00:00:27 v #3582 > > ...............>/////////////////////////////////<<<<<<<<<<<<<...............> 00:00:27 v #3583 > > /////////////<<<<<<<<............>///////<<<<<.................................. 00:00:27 v #3584 > > │ 00:00:27 v #3585 > > .............../////////////////////////////////<<<<<<<<<<<<<................> 00:00:27 v #3586 > > /////////////<<<<<<<<............////////<<<<................................... 00:00:27 v #3587 > > │ 00:00:27 v #3588 > > ..............>////////////////////////////////<<<<<<<<<<<<<................. 00:00:27 v #3589 > > ////////////<<<<<<<<................////<<<<<................................... 00:00:27 v #3590 > > │ 00:00:27 v #3591 > > ............../////////////////////////////////<<<<<<<<<<<<................... 00:00:27 v #3592 > > ///////////<<<<<<<<............................................................. 00:00:27 v #3593 > > │ 00:00:27 v #3594 > > .............>////////////////////////////////<<<<<<<<<<<<<..................... 00:00:27 v #3595 > > ../////////<<<<<<<<............................................................. 00:00:27 v #3596 > > │ 00:00:27 v #3597 > > .............////////////////////////////////<<<<<<<<<<<<<...................... 00:00:27 v #3598 > > ...../////<<<<<<................................................................ 00:00:27 v #3599 > > │ 00:00:27 v #3600 > > ................/////////////////////////////<<<<<<<<<<<<....................... 00:00:27 v #3601 > > ........./<..................................................................... 00:00:27 v #3602 > > │ 00:00:27 v #3603 > > .................../////////////////////////<<<<<<<<<<<<........................ 00:00:27 v #3604 > > ................................................................................ 00:00:27 v #3605 > > │ 00:00:27 v #3606 > > ....................../////////////////////<<<<<<<<<<<<......................... 00:00:27 v #3607 > > ................................................................................ 00:00:27 v #3608 > > │ 00:00:27 v #3609 > > ........................///////////////////<<<<<<<<<<........................... 00:00:27 v #3610 > > ................................................................................ 00:00:27 v #3611 > > │ 00:00:27 v #3612 > > ............................//////////////<<<<<<<<<............................. 00:00:27 v #3613 > > ................................................................................ 00:00:27 v #3614 > > │ 00:00:27 v #3615 > > ...............................//////////<<<<<<<................................ 00:00:27 v #3616 > > ................................................................................ 00:00:27 v #3617 > > │ 00:00:27 v #3618 > > ..................................///////<<<<<.................................. 00:00:27 v #3619 > > ................................................................................ 00:00:27 v #3620 > > │ 00:00:27 v #3621 > > ....................................////<<<..................................... 00:00:27 v #3622 > > ................................................................................ 00:00:27 v #3623 > > │ 00:00:27 v #3624 > > ......................................./........................................ 00:00:27 v #3625 > > ................................................................................ 00:00:27 v #3626 > > │ 00:00:27 v #3627 > > ................................................................................ 00:00:27 v #3628 > > ................................................................................ 00:00:27 v #3629 > > │ 00:00:27 v #3630 > > ................................................................................ 00:00:27 v #3631 > > ................................................................................ 00:00:27 v #3632 > > │ 00:00:27 v #3633 > > ................................................................................ 00:00:27 v #3634 > > ................................................................................ 00:00:27 v #3635 > > │ 00:00:27 v #3636 > > ................................................................................ 00:00:27 v #3637 > > ................................................................................ 00:00:27 v #3638 > > │ 00:00:27 v #3639 > > ................................................................................ 00:00:27 v #3640 > > ................................................................................ 00:00:27 v #3641 > > │ 00:00:27 v #3642 > > ................................................................................ 00:00:27 v #3643 > > ................................................................................ 00:00:27 v #3644 > > │ 00:00:27 v #3645 > > ................................................................................ 00:00:27 v #3646 > > ................................................................................ 00:00:27 v #3647 > > │ 00:00:27 v #3648 > > │ 00:00:27 v #3649 > > ................................................................................ 00:00:27 v #3650 > > ................................................................................ 00:00:27 v #3651 > > │ 00:00:27 v #3652 > > ................................................................................ 00:00:27 v #3653 > > ................................................................................ 00:00:27 v #3654 > > │ 00:00:27 v #3655 > > ................................................................................ 00:00:27 v #3656 > > ................................................................................ 00:00:27 v #3657 > > │ 00:00:27 v #3658 > > ................................................................................ 00:00:27 v #3659 > > ................................................................................ 00:00:27 v #3660 > > │ 00:00:27 v #3661 > > ................................................................................ 00:00:27 v #3662 > > ................................................................................ 00:00:27 v #3663 > > │ 00:00:27 v #3664 > > ................................................................................ 00:00:27 v #3665 > > ................................................................................ 00:00:27 v #3666 > > │ 00:00:27 v #3667 > > ................................................................................ 00:00:27 v #3668 > > ................................................................................ 00:00:27 v #3669 > > │ 00:00:27 v #3670 > > ................................................................................ 00:00:27 v #3671 > > ................................................................................ 00:00:27 v #3672 > > │ 00:00:27 v #3673 > > ................................................................................ 00:00:27 v #3674 > > ................................................................................ 00:00:27 v #3675 > > │ 00:00:27 v #3676 > > ................................................................................ 00:00:27 v #3677 > > ................................................................................ 00:00:27 v #3678 > > │ 00:00:27 v #3679 > > ................................................................................ 00:00:27 v #3680 > > ................................................................................ 00:00:27 v #3681 > > │ 00:00:27 v #3682 > > ...................;/;;;;;;;;................................................... 00:00:27 v #3683 > > ................................................................................ 00:00:27 v #3684 > > │ 00:00:27 v #3685 > > ...................//////;///;;;;;;;;;;......................................... 00:00:27 v #3686 > > ................................................................................ 00:00:27 v #3687 > > │ 00:00:27 v #3688 > > ..................>/////////////;;;;;;;;;;;;;;;................................. 00:00:27 v #3689 > > ................................................................................ 00:00:27 v #3690 > > │ 00:00:27 v #3691 > > ..................>////////////////////;//;;;;;;;;;;;;.......................... 00:00:27 v #3692 > > ................................................................................ 00:00:27 v #3693 > > │ 00:00:27 v #3694 > > ................../////////////////////////////;/;;;;;;;;;;;;................... 00:00:27 v #3695 > > ................................................................................ 00:00:27 v #3696 > > │ 00:00:27 v #3697 > > .................>///////////////////////////////////<<<<<<<<<<<<............... 00:00:27 v #3698 > > ................................................................................ 00:00:27 v #3699 > > │ 00:00:27 v #3700 > > .................>//////////////////////////////////<<<<<<<<<<<<................ 00:00:27 v #3701 > > /;;/;;;;;;;;;;;................................................................. 00:00:27 v #3702 > > │ 00:00:27 v #3703 > > .................///////////////////////////////////<<<<<<<<<<<<...............> 00:00:27 v #3704 > > ///////;;;;;;;;;;;;;;........................................................... 00:00:27 v #3705 > > │ 00:00:27 v #3706 > > ................>//////////////////////////////////<<<<<<<<<<<<................> 00:00:27 v #3707 > > /////////////;;<<<<<<<<............;;;;;;;;..................................... 00:00:27 v #3708 > > │ 00:00:27 v #3709 > > ................>//////////////////////////////////<<<<<<<<<<<................> 00:00:27 v #3710 > > ///////////////<<<<<<<............>//;;/;;<<<<<................................. 00:00:27 v #3711 > > │ 00:00:27 v #3712 > > ................//////////////////////////////////<<<<<<<<<<<<................> 00:00:27 v #3713 > > ///////////////<<<<<<<............>///////<<<<.................................. 00:00:27 v #3714 > > │ 00:00:27 v #3715 > > ...............>//////////////////////////////////<<<<<<<<<<<................. 00:00:27 v #3716 > > //////////////<<<<<<<............>///////<<<<<.................................. 00:00:27 v #3717 > > │ 00:00:27 v #3718 > > ...............//////////////////////////////////<<<<<<<<<<<.................> 00:00:27 v #3719 > > /////////////<<<<<<<.............>///////<<<<................................... 00:00:27 v #3720 > > │ 00:00:27 v #3721 > > ...............//////////////////////////////////<<<<<<<<<<<................. 00:00:27 v #3722 > > /////////////<<<<<<<................////<<<<<................................... 00:00:27 v #3723 > > │ 00:00:27 v #3724 > > ..............>/////////////////////////////////<<<<<<<<<<<.................. 00:00:27 v #3725 > > ////////////<<<<<<<............................................................. 00:00:27 v #3726 > > │ 00:00:27 v #3727 > > ............../////////////////////////////////<<<<<<<<<<<...................... 00:00:27 v #3728 > > ..//////////<<<<<<<............................................................. 00:00:27 v #3729 > > │ 00:00:27 v #3730 > > .............//////////////////////////////////<<<<<<<<<<<...................... 00:00:27 v #3731 > > ....../////<<<<<................................................................ 00:00:27 v #3732 > > │ 00:00:27 v #3733 > > ..............////////////////////////////////<<<<<<<<<<<....................... 00:00:27 v #3734 > > ........../<.................................................................... 00:00:27 v #3735 > > │ 00:00:27 v #3736 > > ................./////////////////////////////<<<<<<<<<<........................ 00:00:27 v #3737 > > ................................................................................ 00:00:27 v #3738 > > │ 00:00:27 v #3739 > > .....................////////////////////////<<<<<<<<<<<........................ 00:00:27 v #3740 > > ................................................................................ 00:00:27 v #3741 > > │ 00:00:27 v #3742 > > ........................////////////////////<<<<<<<<<<.......................... 00:00:27 v #3743 > > ................................................................................ 00:00:27 v #3744 > > │ 00:00:27 v #3745 > > ............................////////////////<<<<<<<............................. 00:00:27 v #3746 > > ................................................................................ 00:00:27 v #3747 > > │ 00:00:27 v #3748 > > ................................///////////<<<<<<............................... 00:00:27 v #3749 > > ................................................................................ 00:00:27 v #3750 > > │ 00:00:27 v #3751 > > ...................................////////<<<<................................. 00:00:27 v #3752 > > ................................................................................ 00:00:27 v #3753 > > │ 00:00:27 v #3754 > > .......................................///<<.................................... 00:00:27 v #3755 > > ................................................................................ 00:00:27 v #3756 > > │ 00:00:27 v #3757 > > ................................................................................ 00:00:27 v #3758 > > ................................................................................ 00:00:27 v #3759 > > │ 00:00:27 v #3760 > > ................................................................................ 00:00:27 v #3761 > > ................................................................................ 00:00:27 v #3762 > > │ 00:00:27 v #3763 > > ................................................................................ 00:00:27 v #3764 > > ................................................................................ 00:00:27 v #3765 > > │ 00:00:27 v #3766 > > ................................................................................ 00:00:27 v #3767 > > ................................................................................ 00:00:27 v #3768 > > │ 00:00:27 v #3769 > > ................................................................................ 00:00:27 v #3770 > > ................................................................................ 00:00:27 v #3771 > > │ 00:00:27 v #3772 > > ................................................................................ 00:00:27 v #3773 > > ................................................................................ 00:00:27 v #3774 > > │ 00:00:27 v #3775 > > ................................................................................ 00:00:27 v #3776 > > ................................................................................ 00:00:27 v #3777 > > │ 00:00:27 v #3778 > > ................................................................................ 00:00:27 v #3779 > > ................................................................................ 00:00:27 v #3780 > > │ 00:00:27 v #3781 > > │ 00:00:27 v #3782 > > ................................................................................ 00:00:27 v #3783 > > ................................................................................ 00:00:27 v #3784 > > │ 00:00:27 v #3785 > > ................................................................................ 00:00:27 v #3786 > > ................................................................................ 00:00:27 v #3787 > > │ 00:00:27 v #3788 > > ................................................................................ 00:00:27 v #3789 > > ................................................................................ 00:00:27 v #3790 > > │ 00:00:27 v #3791 > > ................................................................................ 00:00:27 v #3792 > > ................................................................................ 00:00:27 v #3793 > > │ 00:00:27 v #3794 > > ................................................................................ 00:00:27 v #3795 > > ................................................................................ 00:00:27 v #3796 > > │ 00:00:27 v #3797 > > ................................................................................ 00:00:27 v #3798 > > ................................................................................ 00:00:27 v #3799 > > │ 00:00:27 v #3800 > > ................................................................................ 00:00:27 v #3801 > > ................................................................................ 00:00:27 v #3802 > > │ 00:00:27 v #3803 > > ................................................................................ 00:00:27 v #3804 > > ................................................................................ 00:00:27 v #3805 > > │ 00:00:27 v #3806 > > ................................................................................ 00:00:27 v #3807 > > ................................................................................ 00:00:27 v #3808 > > │ 00:00:27 v #3809 > > ................................................................................ 00:00:27 v #3810 > > ................................................................................ 00:00:27 v #3811 > > │ 00:00:27 v #3812 > > ................................................................................ 00:00:27 v #3813 > > ................................................................................ 00:00:27 v #3814 > > │ 00:00:27 v #3815 > > ...................;;;;;........................................................ 00:00:27 v #3816 > > ................................................................................ 00:00:27 v #3817 > > │ 00:00:27 v #3818 > > ..................>//////;;;;;;;;;;............................................. 00:00:27 v #3819 > > ................................................................................ 00:00:27 v #3820 > > │ 00:00:27 v #3821 > > ..................>//////////////;;;;/;;;;;;.................................... 00:00:27 v #3822 > > ................................................................................ 00:00:27 v #3823 > > │ 00:00:27 v #3824 > > ..................//////////////////////////;;;;;;;;;;.......................... 00:00:27 v #3825 > > ................................................................................ 00:00:27 v #3826 > > │ 00:00:27 v #3827 > > ..................//////////////////////////////////;/<<<<<<<<<................. 00:00:27 v #3828 > > ................................................................................ 00:00:27 v #3829 > > │ 00:00:27 v #3830 > > .................>///////////////////////////////////<<<<<<<<<<................. 00:00:27 v #3831 > > ................................................................................ 00:00:27 v #3832 > > │ 00:00:27 v #3833 > > .................////////////////////////////////////<<<<<<<<<<................. 00:00:27 v #3834 > > ;/;;;;;;;;;;;;;................................................................. 00:00:27 v #3835 > > │ 00:00:27 v #3836 > > .................///////////////////////////////////<<<<<<<<<<.................> 00:00:27 v #3837 > > ///////;;;;;;;;;;;;;;<.......................................................... 00:00:27 v #3838 > > │ 00:00:27 v #3839 > > ................>///////////////////////////////////<<<<<<<<<<................. 00:00:27 v #3840 > > //////////////;<<<<<<<.............;;;;;;;;..................................... 00:00:27 v #3841 > > │ 00:00:27 v #3842 > > ................>///////////////////////////////////<<<<<<<<<.................. 00:00:27 v #3843 > > ///////////////<<<<<<<............>//;;//;<<<<.................................. 00:00:27 v #3844 > > │ 00:00:27 v #3845 > > ................///////////////////////////////////<<<<<<<<<<.................> 00:00:27 v #3846 > > ///////////////<<<<<<.............>///////<<<<.................................. 00:00:27 v #3847 > > │ 00:00:27 v #3848 > > ...............>//////////////////////////////////<<<<<<<<<<.................. 00:00:27 v #3849 > > //////////////<<<<<<<.............////////<<<<.................................. 00:00:27 v #3850 > > │ 00:00:27 v #3851 > > ...............>//////////////////////////////////<<<<<<<<<<.................. 00:00:27 v #3852 > > ///////////////<<<<<.............>///////<<<<................................... 00:00:27 v #3853 > > │ 00:00:27 v #3854 > > ...............///////////////////////////////////<<<<<<<<<..................> 00:00:27 v #3855 > > /////////////<<<<<<<................/////<<<<................................... 00:00:27 v #3856 > > │ 00:00:27 v #3857 > > ...............//////////////////////////////////<<<<<<<<<<.................. 00:00:27 v #3858 > > /////////////<<<<<<............................................................. 00:00:27 v #3859 > > │ 00:00:27 v #3860 > > ..............>//////////////////////////////////<<<<<<<<<...................... 00:00:27 v #3861 > > .///////////<<<<<<<............................................................. 00:00:27 v #3862 > > │ 00:00:27 v #3863 > > ..............>/////////////////////////////////<<<<<<<<<<...................... 00:00:27 v #3864 > > ......./////<<<<................................................................ 00:00:27 v #3865 > > │ 00:00:27 v #3866 > > ..............//////////////////////////////////<<<<<<<<<....................... 00:00:27 v #3867 > > ................................................................................ 00:00:27 v #3868 > > │ 00:00:27 v #3869 > > ...............////////////////////////////////<<<<<<<<<<....................... 00:00:27 v #3870 > > ................................................................................ 00:00:27 v #3871 > > │ 00:00:27 v #3872 > > ....................///////////////////////////<<<<<<<<<........................ 00:00:27 v #3873 > > ................................................................................ 00:00:27 v #3874 > > │ 00:00:27 v #3875 > > ........................//////////////////////<<<<<<<<.......................... 00:00:27 v #3876 > > ................................................................................ 00:00:27 v #3877 > > │ 00:00:27 v #3878 > > ............................./////////////////<<<<<<............................ 00:00:27 v #3879 > > ................................................................................ 00:00:27 v #3880 > > │ 00:00:27 v #3881 > > .................................////////////<<<<<.............................. 00:00:27 v #3882 > > ................................................................................ 00:00:27 v #3883 > > │ 00:00:27 v #3884 > > ......................................///////<<<................................ 00:00:27 v #3885 > > ................................................................................ 00:00:27 v #3886 > > │ 00:00:27 v #3887 > > ..........................................//<<.................................. 00:00:27 v #3888 > > ................................................................................ 00:00:27 v #3889 > > │ 00:00:27 v #3890 > > ................................................................................ 00:00:27 v #3891 > > ................................................................................ 00:00:27 v #3892 > > │ 00:00:27 v #3893 > > ................................................................................ 00:00:27 v #3894 > > ................................................................................ 00:00:27 v #3895 > > │ 00:00:27 v #3896 > > ................................................................................ 00:00:27 v #3897 > > ................................................................................ 00:00:27 v #3898 > > │ 00:00:27 v #3899 > > ................................................................................ 00:00:27 v #3900 > > ................................................................................ 00:00:27 v #3901 > > │ 00:00:27 v #3902 > > ................................................................................ 00:00:27 v #3903 > > ................................................................................ 00:00:27 v #3904 > > │ 00:00:27 v #3905 > > ................................................................................ 00:00:27 v #3906 > > ................................................................................ 00:00:27 v #3907 > > │ 00:00:27 v #3908 > > ................................................................................ 00:00:27 v #3909 > > ................................................................................ 00:00:27 v #3910 > > │ 00:00:27 v #3911 > > ................................................................................ 00:00:27 v #3912 > > ................................................................................ 00:00:27 v #3913 > > │ 00:00:27 v #3914 > > │ 00:00:27 v #3915 > > ................................................................................ 00:00:27 v #3916 > > ................................................................................ 00:00:27 v #3917 > > │ 00:00:27 v #3918 > > ................................................................................ 00:00:27 v #3919 > > ................................................................................ 00:00:27 v #3920 > > │ 00:00:27 v #3921 > > ................................................................................ 00:00:27 v #3922 > > ................................................................................ 00:00:27 v #3923 > > │ 00:00:27 v #3924 > > ................................................................................ 00:00:27 v #3925 > > ................................................................................ 00:00:27 v #3926 > > │ 00:00:27 v #3927 > > ................................................................................ 00:00:27 v #3928 > > ................................................................................ 00:00:27 v #3929 > > │ 00:00:27 v #3930 > > ................................................................................ 00:00:27 v #3931 > > ................................................................................ 00:00:27 v #3932 > > │ 00:00:27 v #3933 > > ................................................................................ 00:00:27 v #3934 > > ................................................................................ 00:00:27 v #3935 > > │ 00:00:27 v #3936 > > ................................................................................ 00:00:27 v #3937 > > ................................................................................ 00:00:27 v #3938 > > │ 00:00:27 v #3939 > > ................................................................................ 00:00:27 v #3940 > > ................................................................................ 00:00:27 v #3941 > > │ 00:00:27 v #3942 > > ................................................................................ 00:00:27 v #3943 > > ................................................................................ 00:00:27 v #3944 > > │ 00:00:27 v #3945 > > ................................................................................ 00:00:27 v #3946 > > ................................................................................ 00:00:27 v #3947 > > │ 00:00:27 v #3948 > > ..................;;;........................................................... 00:00:27 v #3949 > > ................................................................................ 00:00:27 v #3950 > > │ 00:00:27 v #3951 > > ..................//;;;;;;/;;;;;;;;............................................. 00:00:27 v #3952 > > ................................................................................ 00:00:27 v #3953 > > │ 00:00:27 v #3954 > > ..................////////////////;;//;;;;;;;;;;;............................... 00:00:27 v #3955 > > ................................................................................ 00:00:27 v #3956 > > │ 00:00:27 v #3957 > > .................>///////////////////////////////;;;/;<<<<<..................... 00:00:27 v #3958 > > ................................................................................ 00:00:27 v #3959 > > │ 00:00:27 v #3960 > > .................>////////////////////////////////////<<<<<<<<.................. 00:00:27 v #3961 > > ................................................................................ 00:00:27 v #3962 > > │ 00:00:27 v #3963 > > ................./////////////////////////////////////<<<<<<<<.................. 00:00:27 v #3964 > > ................................................................................ 00:00:27 v #3965 > > │ 00:00:27 v #3966 > > .................////////////////////////////////////<<<<<<<<<.................> 00:00:27 v #3967 > > /;;;;;;;;;;;;;.................................................................. 00:00:27 v #3968 > > │ 00:00:27 v #3969 > > .................////////////////////////////////////<<<<<<<<..................> 00:00:27 v #3970 > > ///////;;;;;;;;/<<<<<<.......................................................... 00:00:27 v #3971 > > │ 00:00:27 v #3972 > > ................>///////////////////////////////////<<<<<<<<<.................. 00:00:27 v #3973 > > ////////////////<<<<<<.............;;;;;;;;..................................... 00:00:27 v #3974 > > │ 00:00:27 v #3975 > > ................>///////////////////////////////////<<<<<<<<................... 00:00:27 v #3976 > > ///////////////<<<<<<.............>//;;;//<<<<.................................. 00:00:27 v #3977 > > │ 00:00:27 v #3978 > > ................////////////////////////////////////<<<<<<<<..................> 00:00:27 v #3979 > > ///////////////<<<<<<.............>///////<<<<.................................. 00:00:27 v #3980 > > │ 00:00:27 v #3981 > > ................///////////////////////////////////<<<<<<<<<..................> 00:00:27 v #3982 > > //////////////<<<<<<..............////////<<<................................... 00:00:27 v #3983 > > │ 00:00:27 v #3984 > > ................///////////////////////////////////<<<<<<<<................... 00:00:27 v #3985 > > //////////////<<<<<<..............///////<<<<................................... 00:00:27 v #3986 > > │ 00:00:27 v #3987 > > ...............>///////////////////////////////////<<<<<<<<................... 00:00:27 v #3988 > > //////////////<<<<<<................/////<<<<................................... 00:00:27 v #3989 > > │ 00:00:27 v #3990 > > ...............>//////////////////////////////////<<<<<<<<...................> 00:00:27 v #3991 > > /////////////<<<<<<............................................................. 00:00:27 v #3992 > > │ 00:00:27 v #3993 > > ...............///////////////////////////////////<<<<<<<<...................... 00:00:27 v #3994 > > .////////////<<<<<<............................................................. 00:00:27 v #3995 > > │ 00:00:27 v #3996 > > ...............///////////////////////////////////<<<<<<<<...................... 00:00:27 v #3997 > > ......../////<<<................................................................ 00:00:27 v #3998 > > │ 00:00:27 v #3999 > > ..............>//////////////////////////////////<<<<<<<<....................... 00:00:27 v #4000 > > ................................................................................ 00:00:27 v #4001 > > │ 00:00:27 v #4002 > > ..............>//////////////////////////////////<<<<<<<<....................... 00:00:27 v #4003 > > ................................................................................ 00:00:27 v #4004 > > │ 00:00:27 v #4005 > > ..................//////////////////////////////<<<<<<<<........................ 00:00:27 v #4006 > > ................................................................................ 00:00:27 v #4007 > > │ 00:00:27 v #4008 > > ......................./////////////////////////<<<<<<.......................... 00:00:27 v #4009 > > ................................................................................ 00:00:27 v #4010 > > │ 00:00:27 v #4011 > > .............................///////////////////<<<<............................ 00:00:27 v #4012 > > ................................................................................ 00:00:27 v #4013 > > │ 00:00:27 v #4014 > > ...................................////////////<<<<............................. 00:00:27 v #4015 > > ................................................................................ 00:00:27 v #4016 > > │ 00:00:27 v #4017 > > .........................................//////<<............................... 00:00:27 v #4018 > > ................................................................................ 00:00:27 v #4019 > > │ 00:00:27 v #4020 > > ............................................../................................. 00:00:27 v #4021 > > ................................................................................ 00:00:27 v #4022 > > │ 00:00:27 v #4023 > > ................................................................................ 00:00:27 v #4024 > > ................................................................................ 00:00:27 v #4025 > > │ 00:00:27 v #4026 > > ................................................................................ 00:00:27 v #4027 > > ................................................................................ 00:00:27 v #4028 > > │ 00:00:27 v #4029 > > ................................................................................ 00:00:27 v #4030 > > ................................................................................ 00:00:27 v #4031 > > │ 00:00:27 v #4032 > > ................................................................................ 00:00:27 v #4033 > > ................................................................................ 00:00:27 v #4034 > > │ 00:00:27 v #4035 > > ................................................................................ 00:00:27 v #4036 > > ................................................................................ 00:00:27 v #4037 > > │ 00:00:27 v #4038 > > ................................................................................ 00:00:27 v #4039 > > ................................................................................ 00:00:27 v #4040 > > │ 00:00:27 v #4041 > > ................................................................................ 00:00:27 v #4042 > > ................................................................................ 00:00:27 v #4043 > > │ 00:00:27 v #4044 > > ................................................................................ 00:00:27 v #4045 > > ................................................................................ 00:00:27 v #4046 > > │ 00:00:27 v #4047 > > │ 00:00:27 v #4048 > > ................................................................................ 00:00:27 v #4049 > > ................................................................................ 00:00:27 v #4050 > > │ 00:00:27 v #4051 > > ................................................................................ 00:00:27 v #4052 > > ................................................................................ 00:00:27 v #4053 > > │ 00:00:27 v #4054 > > ................................................................................ 00:00:27 v #4055 > > ................................................................................ 00:00:27 v #4056 > > │ 00:00:27 v #4057 > > ................................................................................ 00:00:27 v #4058 > > ................................................................................ 00:00:27 v #4059 > > │ 00:00:27 v #4060 > > ................................................................................ 00:00:27 v #4061 > > ................................................................................ 00:00:27 v #4062 > > │ 00:00:27 v #4063 > > ................................................................................ 00:00:27 v #4064 > > ................................................................................ 00:00:27 v #4065 > > │ 00:00:27 v #4066 > > ................................................................................ 00:00:27 v #4067 > > ................................................................................ 00:00:27 v #4068 > > │ 00:00:27 v #4069 > > ................................................................................ 00:00:27 v #4070 > > ................................................................................ 00:00:27 v #4071 > > │ 00:00:27 v #4072 > > ................................................................................ 00:00:27 v #4073 > > ................................................................................ 00:00:27 v #4074 > > │ 00:00:27 v #4075 > > ................................................................................ 00:00:27 v #4076 > > ................................................................................ 00:00:27 v #4077 > > │ 00:00:27 v #4078 > > ................................................................................ 00:00:27 v #4079 > > ................................................................................ 00:00:27 v #4080 > > │ 00:00:27 v #4081 > > ................................................................................ 00:00:27 v #4082 > > ................................................................................ 00:00:27 v #4083 > > │ 00:00:27 v #4084 > > .................>;;;;;;;;;;;;/;;;;;;;;......................................... 00:00:27 v #4085 > > ................................................................................ 00:00:27 v #4086 > > │ 00:00:27 v #4087 > > .................>////////////////////;;/;;/;;/;;;;;;;;<<....................... 00:00:27 v #4088 > > ................................................................................ 00:00:27 v #4089 > > │ 00:00:27 v #4090 > > .................>////////////////////////////////////<<<<<<.................... 00:00:27 v #4091 > > ................................................................................ 00:00:27 v #4092 > > │ 00:00:27 v #4093 > > ................./////////////////////////////////////<<<<<<<................... 00:00:27 v #4094 > > ................................................................................ 00:00:27 v #4095 > > │ 00:00:27 v #4096 > > ................./////////////////////////////////////<<<<<<<................... 00:00:27 v #4097 > > ................................................................................ 00:00:27 v #4098 > > │ 00:00:27 v #4099 > > ................./////////////////////////////////////<<<<<<...................; 00:00:27 v #4100 > > ;;;;;/;;;;;;;................................................................... 00:00:27 v #4101 > > │ 00:00:27 v #4102 > > .................////////////////////////////////////<<<<<<<...................> 00:00:27 v #4103 > > ////////;;;///;;<<<<<........................................................... 00:00:27 v #4104 > > │ 00:00:27 v #4105 > > ................>////////////////////////////////////<<<<<<<................... 00:00:27 v #4106 > > ////////////////<<<<<..............;;;;;;;;..................................... 00:00:27 v #4107 > > │ 00:00:27 v #4108 > > ................>////////////////////////////////////<<<<<<.................... 00:00:27 v #4109 > > ///////////////<<<<<<.............>//;;;;;<<<<.................................. 00:00:27 v #4110 > > │ 00:00:27 v #4111 > > ................>////////////////////////////////////<<<<<<.................... 00:00:27 v #4112 > > ///////////////<<<<<..............>///////<<<<.................................. 00:00:27 v #4113 > > │ 00:00:27 v #4114 > > ................>///////////////////////////////////<<<<<<<...................> 00:00:27 v #4115 > > ///////////////<<<<<..............>///////<<<................................... 00:00:27 v #4116 > > │ 00:00:27 v #4117 > > ................////////////////////////////////////<<<<<<<...................> 00:00:27 v #4118 > > ///////////////<<<<<..............////////<<<................................... 00:00:27 v #4119 > > │ 00:00:27 v #4120 > > ................////////////////////////////////////<<<<<<....................> 00:00:27 v #4121 > > ///////////////<<<<<...............///////<<=................................... 00:00:27 v #4122 > > │ 00:00:27 v #4123 > > ................////////////////////////////////////<<<<<<.................... 00:00:27 v #4124 > > //////////////<<<<<............................................................. 00:00:27 v #4125 > > │ 00:00:27 v #4126 > > ...............>///////////////////////////////////<<<<<<<..................... 00:00:27 v #4127 > > //////////////<<<<<............................................................. 00:00:27 v #4128 > > │ 00:00:27 v #4129 > > ...............>///////////////////////////////////<<<<<<....................... 00:00:27 v #4130 > > ........./////<<................................................................ 00:00:27 v #4131 > > │ 00:00:27 v #4132 > > ...............>///////////////////////////////////<<<<<<....................... 00:00:27 v #4133 > > ................................................................................ 00:00:27 v #4134 > > │ 00:00:27 v #4135 > > ...............>///////////////////////////////////<<<<<<....................... 00:00:27 v #4136 > > ................................................................................ 00:00:27 v #4137 > > │ 00:00:27 v #4138 > > ...............///////////////////////////////////<<<<<<........................ 00:00:27 v #4139 > > ................................................................................ 00:00:27 v #4140 > > │ 00:00:27 v #4141 > > ......................////////////////////////////<<<<<......................... 00:00:27 v #4142 > > ................................................................................ 00:00:27 v #4143 > > │ 00:00:27 v #4144 > > ..............................////////////////////<<<........................... 00:00:27 v #4145 > > ................................................................................ 00:00:27 v #4146 > > │ 00:00:27 v #4147 > > ...................................../////////////<<............................ 00:00:27 v #4148 > > ................................................................................ 00:00:27 v #4149 > > │ 00:00:27 v #4150 > > .............................................////<<............................. 00:00:27 v #4151 > > ................................................................................ 00:00:27 v #4152 > > │ 00:00:27 v #4153 > > ................................................................................ 00:00:27 v #4154 > > ................................................................................ 00:00:27 v #4155 > > │ 00:00:27 v #4156 > > ................................................................................ 00:00:27 v #4157 > > ................................................................................ 00:00:27 v #4158 > > │ 00:00:27 v #4159 > > ................................................................................ 00:00:27 v #4160 > > ................................................................................ 00:00:27 v #4161 > > │ 00:00:27 v #4162 > > ................................................................................ 00:00:27 v #4163 > > ................................................................................ 00:00:27 v #4164 > > │ 00:00:27 v #4165 > > ................................................................................ 00:00:27 v #4166 > > ................................................................................ 00:00:27 v #4167 > > │ 00:00:27 v #4168 > > ................................................................................ 00:00:27 v #4169 > > ................................................................................ 00:00:27 v #4170 > > │ 00:00:27 v #4171 > > ................................................................................ 00:00:27 v #4172 > > ................................................................................ 00:00:27 v #4173 > > │ 00:00:27 v #4174 > > ................................................................................ 00:00:27 v #4175 > > ................................................................................ 00:00:27 v #4176 > > │ 00:00:27 v #4177 > > ................................................................................ 00:00:27 v #4178 > > ................................................................................ 00:00:27 v #4179 > > │ 00:00:27 v #4180 > > │ 00:00:27 v #4181 > > ................................................................................ 00:00:27 v #4182 > > ................................................................................ 00:00:27 v #4183 > > │ 00:00:27 v #4184 > > ................................................................................ 00:00:27 v #4185 > > ................................................................................ 00:00:27 v #4186 > > │ 00:00:27 v #4187 > > ................................................................................ 00:00:27 v #4188 > > ................................................................................ 00:00:27 v #4189 > > │ 00:00:27 v #4190 > > ................................................................................ 00:00:27 v #4191 > > ................................................................................ 00:00:27 v #4192 > > │ 00:00:27 v #4193 > > ................................................................................ 00:00:27 v #4194 > > ................................................................................ 00:00:27 v #4195 > > │ 00:00:27 v #4196 > > ................................................................................ 00:00:27 v #4197 > > ................................................................................ 00:00:27 v #4198 > > │ 00:00:27 v #4199 > > ................................................................................ 00:00:27 v #4200 > > ................................................................................ 00:00:27 v #4201 > > │ 00:00:27 v #4202 > > ................................................................................ 00:00:27 v #4203 > > ................................................................................ 00:00:27 v #4204 > > │ 00:00:27 v #4205 > > ................................................................................ 00:00:27 v #4206 > > ................................................................................ 00:00:27 v #4207 > > │ 00:00:27 v #4208 > > ................................................................................ 00:00:27 v #4209 > > ................................................................................ 00:00:27 v #4210 > > │ 00:00:27 v #4211 > > ................................................................................ 00:00:27 v #4212 > > ................................................................................ 00:00:27 v #4213 > > │ 00:00:27 v #4214 > > ................................................................................ 00:00:27 v #4215 > > ................................................................................ 00:00:27 v #4216 > > │ 00:00:27 v #4217 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................ 00:00:27 v #4218 > > ................................................................................ 00:00:27 v #4219 > > │ 00:00:27 v #4220 > > .................//////////////////////////////////////<<<...................... 00:00:27 v #4221 > > ................................................................................ 00:00:27 v #4222 > > │ 00:00:27 v #4223 > > .................//////////////////////////////////////<<<<..................... 00:00:27 v #4224 > > ................................................................................ 00:00:27 v #4225 > > │ 00:00:27 v #4226 > > ................./////////////////////////////////////<<<<<..................... 00:00:27 v #4227 > > ................................................................................ 00:00:27 v #4228 > > │ 00:00:27 v #4229 > > ................./////////////////////////////////////<<<<<..................... 00:00:27 v #4230 > > ................................................................................ 00:00:27 v #4231 > > │ 00:00:27 v #4232 > > ................./////////////////////////////////////<<<<<....................; 00:00:27 v #4233 > > ;/;;;;;;;;;;.................................................................... 00:00:27 v #4234 > > │ 00:00:27 v #4235 > > ................./////////////////////////////////////<<<<<.................... 00:00:27 v #4236 > > ////////////;;;;<<<<............................................................ 00:00:27 v #4237 > > │ 00:00:27 v #4238 > > ................./////////////////////////////////////<<<<<.................... 00:00:27 v #4239 > > ////////////////<<<<...............;;;;;;;;..................................... 00:00:27 v #4240 > > │ 00:00:27 v #4241 > > ................>/////////////////////////////////////<<<<<.................... 00:00:27 v #4242 > > ////////////////<<<<..............>//;;;;;<<<<.................................. 00:00:27 v #4243 > > │ 00:00:27 v #4244 > > ................>/////////////////////////////////////<<<<..................... 00:00:27 v #4245 > > ////////////////<<<<..............>///////<<<................................... 00:00:27 v #4246 > > │ 00:00:27 v #4247 > > ................>////////////////////////////////////<<<<<..................... 00:00:27 v #4248 > > ///////////////<<<<<..............>///////<<<................................... 00:00:27 v #4249 > > │ 00:00:27 v #4250 > > ................>////////////////////////////////////<<<<<..................... 00:00:27 v #4251 > > ///////////////<<<<<..............>///////<<<................................... 00:00:27 v #4252 > > │ 00:00:27 v #4253 > > ................>////////////////////////////////////<<<<<..................... 00:00:27 v #4254 > > ///////////////<<<<<..............////////<<.................................... 00:00:27 v #4255 > > │ 00:00:27 v #4256 > > ................>////////////////////////////////////<<<<<....................> 00:00:27 v #4257 > > ///////////////<<<<............................................................. 00:00:27 v #4258 > > │ 00:00:27 v #4259 > > ................>////////////////////////////////////<<<<<.................... 00:00:27 v #4260 > > ///////////////<<<<............................................................. 00:00:27 v #4261 > > │ 00:00:27 v #4262 > > ................>////////////////////////////////////<<<<....................... 00:00:27 v #4263 > > ............///<................................................................ 00:00:27 v #4264 > > │ 00:00:27 v #4265 > > ................>////////////////////////////////////<<<<....................... 00:00:27 v #4266 > > ................................................................................ 00:00:27 v #4267 > > │ 00:00:27 v #4268 > > ................////////////////////////////////////<<<<<....................... 00:00:27 v #4269 > > ................................................................................ 00:00:27 v #4270 > > │ 00:00:27 v #4271 > > ................////////////////////////////////////<<<<........................ 00:00:27 v #4272 > > ................................................................................ 00:00:27 v #4273 > > │ 00:00:27 v #4274 > > .................///////////////////////////////////<<<......................... 00:00:27 v #4275 > > ................................................................................ 00:00:27 v #4276 > > │ 00:00:27 v #4277 > > .............................///////////////////////<<.......................... 00:00:27 v #4278 > > ................................................................................ 00:00:27 v #4279 > > │ 00:00:27 v #4280 > > .........................................///////////<........................... 00:00:27 v #4281 > > ................................................................................ 00:00:27 v #4282 > > │ 00:00:27 v #4283 > > ................................................................................ 00:00:27 v #4284 > > ................................................................................ 00:00:27 v #4285 > > │ 00:00:27 v #4286 > > ................................................................................ 00:00:27 v #4287 > > ................................................................................ 00:00:27 v #4288 > > │ 00:00:27 v #4289 > > ................................................................................ 00:00:27 v #4290 > > ................................................................................ 00:00:27 v #4291 > > │ 00:00:27 v #4292 > > ................................................................................ 00:00:27 v #4293 > > ................................................................................ 00:00:27 v #4294 > > │ 00:00:27 v #4295 > > ................................................................................ 00:00:27 v #4296 > > ................................................................................ 00:00:27 v #4297 > > │ 00:00:27 v #4298 > > ................................................................................ 00:00:27 v #4299 > > ................................................................................ 00:00:27 v #4300 > > │ 00:00:27 v #4301 > > ................................................................................ 00:00:27 v #4302 > > ................................................................................ 00:00:27 v #4303 > > │ 00:00:27 v #4304 > > ................................................................................ 00:00:27 v #4305 > > ................................................................................ 00:00:27 v #4306 > > │ 00:00:27 v #4307 > > ................................................................................ 00:00:27 v #4308 > > ................................................................................ 00:00:27 v #4309 > > │ 00:00:27 v #4310 > > ................................................................................ 00:00:27 v #4311 > > ................................................................................ 00:00:27 v #4312 > > │ 00:00:27 v #4313 > > │ 00:00:27 v #4314 > > ................................................................................ 00:00:27 v #4315 > > ................................................................................ 00:00:27 v #4316 > > │ 00:00:27 v #4317 > > ................................................................................ 00:00:27 v #4318 > > ................................................................................ 00:00:27 v #4319 > > │ 00:00:27 v #4320 > > ................................................................................ 00:00:27 v #4321 > > ................................................................................ 00:00:27 v #4322 > > │ 00:00:27 v #4323 > > ................................................................................ 00:00:27 v #4324 > > ................................................................................ 00:00:27 v #4325 > > │ 00:00:27 v #4326 > > ................................................................................ 00:00:27 v #4327 > > ................................................................................ 00:00:27 v #4328 > > │ 00:00:27 v #4329 > > ................................................................................ 00:00:27 v #4330 > > ................................................................................ 00:00:27 v #4331 > > │ 00:00:27 v #4332 > > ................................................................................ 00:00:27 v #4333 > > ................................................................................ 00:00:27 v #4334 > > │ 00:00:27 v #4335 > > ................................................................................ 00:00:27 v #4336 > > ................................................................................ 00:00:27 v #4337 > > │ 00:00:27 v #4338 > > ................................................................................ 00:00:27 v #4339 > > ................................................................................ 00:00:27 v #4340 > > │ 00:00:27 v #4341 > > ................................................................................ 00:00:27 v #4342 > > ................................................................................ 00:00:27 v #4343 > > │ 00:00:27 v #4344 > > ................................................................................ 00:00:27 v #4345 > > ................................................................................ 00:00:27 v #4346 > > │ 00:00:27 v #4347 > > ................................................................................ 00:00:27 v #4348 > > ................................................................................ 00:00:27 v #4349 > > │ 00:00:27 v #4350 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................ 00:00:27 v #4351 > > ................................................................................ 00:00:27 v #4352 > > │ 00:00:27 v #4353 > > ................;//////////////////////////////////////<<....................... 00:00:27 v #4354 > > ................................................................................ 00:00:27 v #4355 > > │ 00:00:27 v #4356 > > ................>//////////////////////////////////////<<<...................... 00:00:27 v #4357 > > ................................................................................ 00:00:27 v #4358 > > │ 00:00:27 v #4359 > > ................>//////////////////////////////////////<<<...................... 00:00:27 v #4360 > > ................................................................................ 00:00:27 v #4361 > > │ 00:00:27 v #4362 > > ................>//////////////////////////////////////<<<...................... 00:00:27 v #4363 > > ................................................................................ 00:00:27 v #4364 > > │ 00:00:27 v #4365 > > ................>//////////////////////////////////////<<<.....................; 00:00:27 v #4366 > > ;;;;;;;;;;;;;;;;<<<............................................................. 00:00:27 v #4367 > > │ 00:00:27 v #4368 > > .................//////////////////////////////////////<<<..................... 00:00:27 v #4369 > > ////////////////<<<<............................................................ 00:00:27 v #4370 > > │ 00:00:27 v #4371 > > .................//////////////////////////////////////<<<..................... 00:00:27 v #4372 > > ////////////////<<<<...............;;;;;;;;;<................................... 00:00:27 v #4373 > > │ 00:00:27 v #4374 > > .................//////////////////////////////////////<<<..................... 00:00:27 v #4375 > > ////////////////<<<<..............;;;;;;;;;<<................................... 00:00:27 v #4376 > > │ 00:00:27 v #4377 > > .................//////////////////////////////////////<<<..................... 00:00:27 v #4378 > > ////////////////<<<<..............>////////<<................................... 00:00:27 v #4379 > > │ 00:00:27 v #4380 > > ................./////////////////////////////////////<<<<..................... 00:00:27 v #4381 > > ////////////////<<<<..............>////////<<................................... 00:00:27 v #4382 > > │ 00:00:27 v #4383 > > ................./////////////////////////////////////<<<<..................... 00:00:27 v #4384 > > ////////////////<<<<..............>////////<<................................... 00:00:27 v #4385 > > │ 00:00:27 v #4386 > > ................./////////////////////////////////////<<<<..................... 00:00:27 v #4387 > > ////////////////<<<<..............////////<<.................................... 00:00:27 v #4388 > > │ 00:00:27 v #4389 > > ................./////////////////////////////////////<<<<..................... 00:00:27 v #4390 > > ////////////////<<<<............................................................ 00:00:27 v #4391 > > │ 00:00:27 v #4392 > > ................./////////////////////////////////////<<<<.....................> 00:00:27 v #4393 > > ////////////////<<.............................................................. 00:00:27 v #4394 > > │ 00:00:27 v #4395 > > ................./////////////////////////////////////<<<....................... 00:00:27 v #4396 > > ................................................................................ 00:00:27 v #4397 > > │ 00:00:27 v #4398 > > ................./////////////////////////////////////<<<....................... 00:00:27 v #4399 > > ................................................................................ 00:00:27 v #4400 > > │ 00:00:27 v #4401 > > ................./////////////////////////////////////<<<....................... 00:00:27 v #4402 > > ................................................................................ 00:00:27 v #4403 > > │ 00:00:27 v #4404 > > ................./////////////////////////////////////<<<....................... 00:00:27 v #4405 > > ................................................................................ 00:00:27 v #4406 > > │ 00:00:27 v #4407 > > .................>////////////////////////////////////<<........................ 00:00:27 v #4408 > > ................................................................................ 00:00:27 v #4409 > > │ 00:00:27 v #4410 > > ..........................////////////////////////////<<........................ 00:00:27 v #4411 > > ................................................................................ 00:00:27 v #4412 > > │ 00:00:27 v #4413 > > ................................................//////<......................... 00:00:27 v #4414 > > ................................................................................ 00:00:27 v #4415 > > │ 00:00:27 v #4416 > > ................................................................................ 00:00:27 v #4417 > > ................................................................................ 00:00:27 v #4418 > > │ 00:00:27 v #4419 > > ................................................................................ 00:00:27 v #4420 > > ................................................................................ 00:00:27 v #4421 > > │ 00:00:27 v #4422 > > ................................................................................ 00:00:27 v #4423 > > ................................................................................ 00:00:27 v #4424 > > │ 00:00:27 v #4425 > > ................................................................................ 00:00:27 v #4426 > > ................................................................................ 00:00:27 v #4427 > > │ 00:00:27 v #4428 > > ................................................................................ 00:00:27 v #4429 > > ................................................................................ 00:00:27 v #4430 > > │ 00:00:27 v #4431 > > ................................................................................ 00:00:27 v #4432 > > ................................................................................ 00:00:27 v #4433 > > │ 00:00:27 v #4434 > > ................................................................................ 00:00:27 v #4435 > > ................................................................................ 00:00:27 v #4436 > > │ 00:00:27 v #4437 > > ................................................................................ 00:00:27 v #4438 > > ................................................................................ 00:00:27 v #4439 > > │ 00:00:27 v #4440 > > ................................................................................ 00:00:27 v #4441 > > ................................................................................ 00:00:27 v #4442 > > │ 00:00:27 v #4443 > > ................................................................................ 00:00:27 v #4444 > > ................................................................................ 00:00:27 v #4445 > > │ 00:00:27 v #4446 > > │ 00:00:27 v #4447 > > ................................................................................ 00:00:27 v #4448 > > ................................................................................ 00:00:27 v #4449 > > │ 00:00:27 v #4450 > > ................................................................................ 00:00:27 v #4451 > > ................................................................................ 00:00:27 v #4452 > > │ 00:00:27 v #4453 > > ................................................................................ 00:00:27 v #4454 > > ................................................................................ 00:00:27 v #4455 > > │ 00:00:27 v #4456 > > ................................................................................ 00:00:27 v #4457 > > ................................................................................ 00:00:27 v #4458 > > │ 00:00:27 v #4459 > > ................................................................................ 00:00:27 v #4460 > > ................................................................................ 00:00:27 v #4461 > > │ 00:00:27 v #4462 > > ................................................................................ 00:00:27 v #4463 > > ................................................................................ 00:00:27 v #4464 > > │ 00:00:27 v #4465 > > ................................................................................ 00:00:27 v #4466 > > ................................................................................ 00:00:27 v #4467 > > │ 00:00:27 v #4468 > > ................................................................................ 00:00:27 v #4469 > > ................................................................................ 00:00:27 v #4470 > > │ 00:00:27 v #4471 > > ................................................................................ 00:00:27 v #4472 > > ................................................................................ 00:00:27 v #4473 > > │ 00:00:27 v #4474 > > ................................................................................ 00:00:27 v #4475 > > ................................................................................ 00:00:27 v #4476 > > │ 00:00:27 v #4477 > > ................................................................................ 00:00:27 v #4478 > > ................................................................................ 00:00:27 v #4479 > > │ 00:00:27 v #4480 > > ..............................................;;;;;;;;;<........................ 00:00:27 v #4481 > > ................................................................................ 00:00:27 v #4482 > > │ 00:00:27 v #4483 > > .........................;;;;;;;;;;;;;;;;;;;;;/////////<........................ 00:00:27 v #4484 > > ................................................................................ 00:00:27 v #4485 > > │ 00:00:27 v #4486 > > ................;;;;;;;;;//////////////////////////////<........................ 00:00:27 v #4487 > > ................................................................................ 00:00:27 v #4488 > > │ 00:00:27 v #4489 > > ................///////////////////////////////////////<........................ 00:00:27 v #4490 > > ................................................................................ 00:00:27 v #4491 > > │ 00:00:27 v #4492 > > ................>//////////////////////////////////////<<....................... 00:00:27 v #4493 > > ................................................................................ 00:00:27 v #4494 > > │ 00:00:27 v #4495 > > ................>//////////////////////////////////////<<....................... 00:00:27 v #4496 > > ................................................................................ 00:00:27 v #4497 > > │ 00:00:27 v #4498 > > ................>//////////////////////////////////////<<....................... 00:00:27 v #4499 > > ..;;;;;;;;;;;;;;<<<............................................................. 00:00:27 v #4500 > > │ 00:00:27 v #4501 > > ................>//////////////////////////////////////<<......................; 00:00:27 v #4502 > > ;;//////////////<<<............................................................. 00:00:27 v #4503 > > │ 00:00:27 v #4504 > > .................//////////////////////////////////////<<...................... 00:00:27 v #4505 > > ////////////////<<<....................;;;;<<................................... 00:00:27 v #4506 > > │ 00:00:27 v #4507 > > .................//////////////////////////////////////<<...................... 00:00:27 v #4508 > > ////////////////<<<...............;;;;;////<<................................... 00:00:27 v #4509 > > │ 00:00:27 v #4510 > > .................//////////////////////////////////////<<......................> 00:00:27 v #4511 > > ////////////////<<<...............>////////<<................................... 00:00:27 v #4512 > > │ 00:00:27 v #4513 > > .................>//////////////////////////////////////<......................> 00:00:27 v #4514 > > ////////////////<<<................////////<<................................... 00:00:27 v #4515 > > │ 00:00:27 v #4516 > > .................>//////////////////////////////////////<......................> 00:00:27 v #4517 > > /////////////////<<<...............////////<<................................... 00:00:27 v #4518 > > │ 00:00:27 v #4519 > > .................>//////////////////////////////////////<......................> 00:00:27 v #4520 > > /////////////////<<<.............../////////.................................... 00:00:27 v #4521 > > │ 00:00:27 v #4522 > > .................>//////////////////////////////////////<....................... 00:00:27 v #4523 > > /////////////////<<<............................................................ 00:00:27 v #4524 > > │ 00:00:27 v #4525 > > ..................//////////////////////////////////////<....................... 00:00:27 v #4526 > > /////////////////<<............................................................. 00:00:27 v #4527 > > │ 00:00:27 v #4528 > > ..................//////////////////////////////////////<<...................... 00:00:27 v #4529 > > ................................................................................ 00:00:27 v #4530 > > │ 00:00:27 v #4531 > > ..................//////////////////////////////////////<<...................... 00:00:27 v #4532 > > ................................................................................ 00:00:27 v #4533 > > │ 00:00:27 v #4534 > > ..................//////////////////////////////////////<<...................... 00:00:27 v #4535 > > ................................................................................ 00:00:27 v #4536 > > │ 00:00:27 v #4537 > > ..................>/////////////////////////////////////<<...................... 00:00:27 v #4538 > > ................................................................................ 00:00:27 v #4539 > > │ 00:00:27 v #4540 > > ..................>/////////////////////////////////////<....................... 00:00:27 v #4541 > > ................................................................................ 00:00:27 v #4542 > > │ 00:00:27 v #4543 > > ..................//////////////////////////////////////<....................... 00:00:27 v #4544 > > ................................................................................ 00:00:27 v #4545 > > │ 00:00:27 v #4546 > > ................................................................................ 00:00:27 v #4547 > > ................................................................................ 00:00:27 v #4548 > > │ 00:00:27 v #4549 > > ................................................................................ 00:00:27 v #4550 > > ................................................................................ 00:00:27 v #4551 > > │ 00:00:27 v #4552 > > ................................................................................ 00:00:27 v #4553 > > ................................................................................ 00:00:27 v #4554 > > │ 00:00:27 v #4555 > > ................................................................................ 00:00:27 v #4556 > > ................................................................................ 00:00:27 v #4557 > > │ 00:00:27 v #4558 > > ................................................................................ 00:00:27 v #4559 > > ................................................................................ 00:00:27 v #4560 > > │ 00:00:27 v #4561 > > ................................................................................ 00:00:27 v #4562 > > ................................................................................ 00:00:27 v #4563 > > │ 00:00:27 v #4564 > > ................................................................................ 00:00:27 v #4565 > > ................................................................................ 00:00:27 v #4566 > > │ 00:00:27 v #4567 > > ................................................................................ 00:00:27 v #4568 > > ................................................................................ 00:00:27 v #4569 > > │ 00:00:27 v #4570 > > ................................................................................ 00:00:27 v #4571 > > ................................................................................ 00:00:27 v #4572 > > │ 00:00:27 v #4573 > > ................................................................................ 00:00:27 v #4574 > > ................................................................................ 00:00:27 v #4575 > > │ 00:00:27 v #4576 > > ................................................................................ 00:00:27 v #4577 > > ................................................................................ 00:00:27 v #4578 > > │ 00:00:27 v #4579 > > │ 00:00:27 v #4580 > > ................................................................................ 00:00:27 v #4581 > > ................................................................................ 00:00:27 v #4582 > > │ 00:00:27 v #4583 > > ................................................................................ 00:00:27 v #4584 > > ................................................................................ 00:00:27 v #4585 > > │ 00:00:27 v #4586 > > ................................................................................ 00:00:27 v #4587 > > ................................................................................ 00:00:27 v #4588 > > │ 00:00:27 v #4589 > > ................................................................................ 00:00:27 v #4590 > > ................................................................................ 00:00:27 v #4591 > > │ 00:00:27 v #4592 > > ................................................................................ 00:00:27 v #4593 > > ................................................................................ 00:00:27 v #4594 > > │ 00:00:27 v #4595 > > ................................................................................ 00:00:27 v #4596 > > ................................................................................ 00:00:27 v #4597 > > │ 00:00:27 v #4598 > > ................................................................................ 00:00:27 v #4599 > > ................................................................................ 00:00:27 v #4600 > > │ 00:00:27 v #4601 > > ................................................................................ 00:00:27 v #4602 > > ................................................................................ 00:00:27 v #4603 > > │ 00:00:27 v #4604 > > ................................................................................ 00:00:27 v #4605 > > ................................................................................ 00:00:27 v #4606 > > │ 00:00:27 v #4607 > > ................................................................................ 00:00:27 v #4608 > > ................................................................................ 00:00:27 v #4609 > > │ 00:00:27 v #4610 > > ......................................................<......................... 00:00:27 v #4611 > > ................................................................................ 00:00:27 v #4612 > > │ 00:00:27 v #4613 > > .........................................;;;;;;;;;;;;;<......................... 00:00:27 v #4614 > > ................................................................................ 00:00:27 v #4615 > > │ 00:00:27 v #4616 > > ...........................;;;;;;;;;;;;;;//////////////<........................ 00:00:27 v #4617 > > ................................................................................ 00:00:27 v #4618 > > │ 00:00:27 v #4619 > > ...............;;;;;;;;;;;;;///////////////////////////<........................ 00:00:27 v #4620 > > ................................................................................ 00:00:27 v #4621 > > │ 00:00:27 v #4622 > > ...............>///////////////////////////////////////<........................ 00:00:27 v #4623 > > ................................................................................ 00:00:27 v #4624 > > │ 00:00:27 v #4625 > > ................///////////////////////////////////////<........................ 00:00:27 v #4626 > > ................................................................................ 00:00:27 v #4627 > > │ 00:00:27 v #4628 > > ................///////////////////////////////////////<<....................... 00:00:27 v #4629 > > ................................................................................ 00:00:27 v #4630 > > │ 00:00:27 v #4631 > > ................>///////////////////////////////////////<....................... 00:00:27 v #4632 > > ....;;;;;;;;;;;;<<.............................................................. 00:00:27 v #4633 > > │ 00:00:27 v #4634 > > ................>///////////////////////////////////////<......................; 00:00:27 v #4635 > > ;;;;////////////<<.............................................................. 00:00:27 v #4636 > > │ 00:00:27 v #4637 > > .................///////////////////////////////////////<...................... 00:00:27 v #4638 > > ////////////////<<<....................;;;<<.................................... 00:00:27 v #4639 > > │ 00:00:27 v #4640 > > .................///////////////////////////////////////<...................... 00:00:27 v #4641 > > /////////////////<<...............;;;;;////<<................................... 00:00:27 v #4642 > > │ 00:00:27 v #4643 > > .................>//////////////////////////////////////<<.....................> 00:00:27 v #4644 > > /////////////////<<...............>////////<<................................... 00:00:27 v #4645 > > │ 00:00:27 v #4646 > > .................>///////////////////////////////////////<.....................> 00:00:27 v #4647 > > /////////////////<<................////////<<................................... 00:00:27 v #4648 > > │ 00:00:27 v #4649 > > ..................///////////////////////////////////////<...................... 00:00:27 v #4650 > > /////////////////<<................////////<<................................... 00:00:27 v #4651 > > │ 00:00:27 v #4652 > > ..................///////////////////////////////////////<...................... 00:00:27 v #4653 > > /////////////////<<<...............>////////.................................... 00:00:27 v #4654 > > │ 00:00:27 v #4655 > > ..................>//////////////////////////////////////<...................... 00:00:27 v #4656 > > >/////////////////<<............................................................ 00:00:27 v #4657 > > │ 00:00:27 v #4658 > > ..................>///////////////////////////////////////<..................... 00:00:27 v #4659 > > >/////////////////<............................................................. 00:00:27 v #4660 > > │ 00:00:27 v #4661 > > ...................///////////////////////////////////////<..................... 00:00:27 v #4662 > > ................................................................................ 00:00:27 v #4663 > > │ 00:00:27 v #4664 > > ...................///////////////////////////////////////<..................... 00:00:27 v #4665 > > ................................................................................ 00:00:27 v #4666 > > │ 00:00:27 v #4667 > > ...................>//////////////////////////////////////<..................... 00:00:27 v #4668 > > ................................................................................ 00:00:27 v #4669 > > │ 00:00:27 v #4670 > > ...................>//////////////////////////////////////<..................... 00:00:27 v #4671 > > ................................................................................ 00:00:27 v #4672 > > │ 00:00:27 v #4673 > > ...................>///////////////////////////////////////<.................... 00:00:27 v #4674 > > ................................................................................ 00:00:27 v #4675 > > │ 00:00:27 v #4676 > > ....................////////////////////////////................................ 00:00:27 v #4677 > > ................................................................................ 00:00:27 v #4678 > > │ 00:00:27 v #4679 > > ................................................................................ 00:00:27 v #4680 > > ................................................................................ 00:00:27 v #4681 > > │ 00:00:27 v #4682 > > ................................................................................ 00:00:27 v #4683 > > ................................................................................ 00:00:27 v #4684 > > │ 00:00:27 v #4685 > > ................................................................................ 00:00:27 v #4686 > > ................................................................................ 00:00:27 v #4687 > > │ 00:00:27 v #4688 > > ................................................................................ 00:00:27 v #4689 > > ................................................................................ 00:00:27 v #4690 > > │ 00:00:27 v #4691 > > ................................................................................ 00:00:27 v #4692 > > ................................................................................ 00:00:27 v #4693 > > │ 00:00:27 v #4694 > > ................................................................................ 00:00:27 v #4695 > > ................................................................................ 00:00:27 v #4696 > > │ 00:00:27 v #4697 > > ................................................................................ 00:00:27 v #4698 > > ................................................................................ 00:00:27 v #4699 > > │ 00:00:27 v #4700 > > ................................................................................ 00:00:27 v #4701 > > ................................................................................ 00:00:27 v #4702 > > │ 00:00:27 v #4703 > > ................................................................................ 00:00:27 v #4704 > > ................................................................................ 00:00:27 v #4705 > > │ 00:00:27 v #4706 > > ................................................................................ 00:00:27 v #4707 > > ................................................................................ 00:00:27 v #4708 > > │ 00:00:27 v #4709 > > ................................................................................ 00:00:27 v #4710 > > ................................................................................ 00:00:27 v #4711 > > │ 00:00:27 v #4712 > > │ 00:00:27 v #4713 > > ................................................................................ 00:00:27 v #4714 > > ................................................................................ 00:00:27 v #4715 > > │ 00:00:27 v #4716 > > ................................................................................ 00:00:27 v #4717 > > ................................................................................ 00:00:27 v #4718 > > │ 00:00:27 v #4719 > > ................................................................................ 00:00:27 v #4720 > > ................................................................................ 00:00:27 v #4721 > > │ 00:00:27 v #4722 > > ................................................................................ 00:00:27 v #4723 > > ................................................................................ 00:00:27 v #4724 > > │ 00:00:27 v #4725 > > ................................................................................ 00:00:27 v #4726 > > ................................................................................ 00:00:27 v #4727 > > │ 00:00:27 v #4728 > > ................................................................................ 00:00:27 v #4729 > > ................................................................................ 00:00:27 v #4730 > > │ 00:00:27 v #4731 > > ................................................................................ 00:00:27 v #4732 > > ................................................................................ 00:00:27 v #4733 > > │ 00:00:27 v #4734 > > ................................................................................ 00:00:27 v #4735 > > ................................................................................ 00:00:27 v #4736 > > │ 00:00:27 v #4737 > > ................................................................................ 00:00:27 v #4738 > > ................................................................................ 00:00:27 v #4739 > > │ 00:00:27 v #4740 > > ................................................................................ 00:00:27 v #4741 > > ................................................................................ 00:00:27 v #4742 > > │ 00:00:27 v #4743 > > .................................................;;;;;<......................... 00:00:27 v #4744 > > ................................................................................ 00:00:27 v #4745 > > │ 00:00:27 v #4746 > > .......................................;;;;;;;;;;/////<......................... 00:00:27 v #4747 > > ................................................................................ 00:00:27 v #4748 > > │ 00:00:27 v #4749 > > .............................;;;;;;;;;;///////////////<<........................ 00:00:27 v #4750 > > ................................................................................ 00:00:27 v #4751 > > │ 00:00:27 v #4752 > > ...................;;;;;;;;;;//////////////////////////<........................ 00:00:27 v #4753 > > ................................................................................ 00:00:27 v #4754 > > │ 00:00:27 v #4755 > > ...............;;;;////////////////////////////////////<........................ 00:00:27 v #4756 > > ................................................................................ 00:00:27 v #4757 > > │ 00:00:27 v #4758 > > ...............>///////////////////////////////////////<<....................... 00:00:27 v #4759 > > ................................................................................ 00:00:27 v #4760 > > │ 00:00:27 v #4761 > > ...............>////////////////////////////////////////<....................... 00:00:27 v #4762 > > ................<............................................................... 00:00:27 v #4763 > > │ 00:00:27 v #4764 > > ................////////////////////////////////////////<....................... 00:00:27 v #4765 > > .....;;;;;;;;;;;<............................................................... 00:00:27 v #4766 > > │ 00:00:27 v #4767 > > ................>///////////////////////////////////////<<....................;; 00:00:27 v #4768 > > ;;;;;///////////<<.............................................................. 00:00:27 v #4769 > > │ 00:00:27 v #4770 > > .................////////////////////////////////////////<..................... 00:00:27 v #4771 > > ////////////////<<.....................;;;<<.................................... 00:00:27 v #4772 > > │ 00:00:27 v #4773 > > .................>///////////////////////////////////////<..................... 00:00:27 v #4774 > > /////////////////<................;;;;;////<.................................... 00:00:27 v #4775 > > │ 00:00:27 v #4776 > > .................>///////////////////////////////////////<<....................> 00:00:27 v #4777 > > /////////////////<<...............>////////<<................................... 00:00:27 v #4778 > > │ 00:00:27 v #4779 > > ..................////////////////////////////////////////<..................... 00:00:27 v #4780 > > /////////////////<<................////////<<................................... 00:00:27 v #4781 > > │ 00:00:27 v #4782 > > ..................>///////////////////////////////////////<..................... 00:00:27 v #4783 > > //////////////////<................>////////<................................... 00:00:27 v #4784 > > │ 00:00:27 v #4785 > > ..................>///////////////////////////////////////<<.................... 00:00:27 v #4786 > > >/////////////////<<................//////...................................... 00:00:27 v #4787 > > │ 00:00:27 v #4788 > > ...................////////////////////////////////////////<.................... 00:00:27 v #4789 > > .//////////////////<............................................................ 00:00:27 v #4790 > > │ 00:00:27 v #4791 > > ...................>///////////////////////////////////////<.................... 00:00:27 v #4792 > > .>///////////////............................................................... 00:00:27 v #4793 > > │ 00:00:27 v #4794 > > ...................>///////////////////////////////////////<<................... 00:00:27 v #4795 > > .///............................................................................ 00:00:27 v #4796 > > │ 00:00:27 v #4797 > > ....................////////////////////////////////////////<................... 00:00:27 v #4798 > > ................................................................................ 00:00:27 v #4799 > > │ 00:00:27 v #4800 > > ....................>///////////////////////////////////////<................... 00:00:27 v #4801 > > ................................................................................ 00:00:27 v #4802 > > │ 00:00:27 v #4803 > > ....................>///////////////////////////////////////<<.................. 00:00:27 v #4804 > > ................................................................................ 00:00:27 v #4805 > > │ 00:00:27 v #4806 > > ...................../////////////////////////////////////...................... 00:00:27 v #4807 > > ................................................................................ 00:00:27 v #4808 > > │ 00:00:27 v #4809 > > .....................>/////////////////////..................................... 00:00:27 v #4810 > > ................................................................................ 00:00:27 v #4811 > > │ 00:00:27 v #4812 > > ......................///////................................................... 00:00:27 v #4813 > > ................................................................................ 00:00:27 v #4814 > > │ 00:00:27 v #4815 > > ................................................................................ 00:00:27 v #4816 > > ................................................................................ 00:00:27 v #4817 > > │ 00:00:27 v #4818 > > ................................................................................ 00:00:27 v #4819 > > ................................................................................ 00:00:27 v #4820 > > │ 00:00:27 v #4821 > > ................................................................................ 00:00:27 v #4822 > > ................................................................................ 00:00:27 v #4823 > > │ 00:00:27 v #4824 > > ................................................................................ 00:00:27 v #4825 > > ................................................................................ 00:00:27 v #4826 > > │ 00:00:27 v #4827 > > ................................................................................ 00:00:27 v #4828 > > ................................................................................ 00:00:27 v #4829 > > │ 00:00:27 v #4830 > > ................................................................................ 00:00:27 v #4831 > > ................................................................................ 00:00:27 v #4832 > > │ 00:00:27 v #4833 > > ................................................................................ 00:00:27 v #4834 > > ................................................................................ 00:00:27 v #4835 > > │ 00:00:27 v #4836 > > ................................................................................ 00:00:27 v #4837 > > ................................................................................ 00:00:27 v #4838 > > │ 00:00:27 v #4839 > > ................................................................................ 00:00:27 v #4840 > > ................................................................................ 00:00:27 v #4841 > > │ 00:00:27 v #4842 > > ................................................................................ 00:00:27 v #4843 > > ................................................................................ 00:00:27 v #4844 > > │ 00:00:27 v #4845 > > │ 00:00:27 v #4846 > > ................................................................................ 00:00:27 v #4847 > > ................................................................................ 00:00:27 v #4848 > > │ 00:00:27 v #4849 > > ................................................................................ 00:00:27 v #4850 > > ................................................................................ 00:00:27 v #4851 > > │ 00:00:27 v #4852 > > ................................................................................ 00:00:27 v #4853 > > ................................................................................ 00:00:27 v #4854 > > │ 00:00:27 v #4855 > > ................................................................................ 00:00:27 v #4856 > > ................................................................................ 00:00:27 v #4857 > > │ 00:00:27 v #4858 > > ................................................................................ 00:00:27 v #4859 > > ................................................................................ 00:00:27 v #4860 > > │ 00:00:27 v #4861 > > ................................................................................ 00:00:27 v #4862 > > ................................................................................ 00:00:27 v #4863 > > │ 00:00:27 v #4864 > > ................................................................................ 00:00:27 v #4865 > > ................................................................................ 00:00:27 v #4866 > > │ 00:00:27 v #4867 > > ................................................................................ 00:00:27 v #4868 > > ................................................................................ 00:00:27 v #4869 > > │ 00:00:27 v #4870 > > ................................................................................ 00:00:27 v #4871 > > ................................................................................ 00:00:27 v #4872 > > │ 00:00:27 v #4873 > > .....................................................<.......................... 00:00:27 v #4874 > > ................................................................................ 00:00:27 v #4875 > > │ 00:00:27 v #4876 > > ..............................................;;;;;;;<<......................... 00:00:27 v #4877 > > ................................................................................ 00:00:27 v #4878 > > │ 00:00:27 v #4879 > > .....................................;;;;;;;;;////////<......................... 00:00:27 v #4880 > > ................................................................................ 00:00:27 v #4881 > > │ 00:00:27 v #4882 > > .............................;;;;;;;;;////////////////<<........................ 00:00:27 v #4883 > > ................................................................................ 00:00:27 v #4884 > > │ 00:00:27 v #4885 > > ......................;;;;;;;//////////////////////////<........................ 00:00:27 v #4886 > > ................................................................................ 00:00:27 v #4887 > > │ 00:00:27 v #4888 > > ...............;;;;;;;/////////////////////////////////<........................ 00:00:27 v #4889 > > ................................................................................ 00:00:27 v #4890 > > │ 00:00:27 v #4891 > > .............../////////////////////////////////////////<....................... 00:00:27 v #4892 > > ................................................................................ 00:00:27 v #4893 > > │ 00:00:27 v #4894 > > ...............>////////////////////////////////////////<....................... 00:00:27 v #4895 > > .............;;;<............................................................... 00:00:27 v #4896 > > │ 00:00:27 v #4897 > > ................/////////////////////////////////////////<...................... 00:00:27 v #4898 > > .....;;;;;;;;///<............................................................... 00:00:27 v #4899 > > │ 00:00:27 v #4900 > > ................>////////////////////////////////////////<....................;; 00:00:27 v #4901 > > ;;;;;///////////<<.............................................................. 00:00:27 v #4902 > > │ 00:00:27 v #4903 > > ................./////////////////////////////////////////<...................> 00:00:27 v #4904 > > /////////////////<.....................;;;<<.................................... 00:00:27 v #4905 > > │ 00:00:27 v #4906 > > .................>////////////////////////////////////////<.................... 00:00:27 v #4907 > > /////////////////<<...............;;;;;////<.................................... 00:00:27 v #4908 > > │ 00:00:27 v #4909 > > ................../////////////////////////////////////////<...................> 00:00:27 v #4910 > > //////////////////<...............>////////<<................................... 00:00:27 v #4911 > > │ 00:00:27 v #4912 > > ..................>////////////////////////////////////////<.................... 00:00:27 v #4913 > > //////////////////<................/////////<................................... 00:00:27 v #4914 > > │ 00:00:27 v #4915 > > ..................>////////////////////////////////////////<<................... 00:00:27 v #4916 > > >//////////////////<...............>////////<................................... 00:00:27 v #4917 > > │ 00:00:27 v #4918 > > ...................>////////////////////////////////////////<................... 00:00:27 v #4919 > > .//////////////////<................/////=...................................... 00:00:27 v #4920 > > │ 00:00:27 v #4921 > > ...................>////////////////////////////////////////<<.................. 00:00:27 v #4922 > > .>/////////////////<<........................................................... 00:00:27 v #4923 > > │ 00:00:27 v #4924 > > ....................>////////////////////////////////////////<.................. 00:00:27 v #4925 > > ../////////////................................................................. 00:00:27 v #4926 > > │ 00:00:27 v #4927 > > ....................>////////////////////////////////////////<<................. 00:00:27 v #4928 > > ..>///.......................................................................... 00:00:27 v #4929 > > │ 00:00:27 v #4930 > > ...................../////////////////////////////////////////<................. 00:00:27 v #4931 > > ................................................................................ 00:00:27 v #4932 > > │ 00:00:27 v #4933 > > .....................>////////////////////////////////////////<................. 00:00:27 v #4934 > > ................................................................................ 00:00:27 v #4935 > > │ 00:00:27 v #4936 > > ......................///////////////////////////////////////................... 00:00:27 v #4937 > > ................................................................................ 00:00:27 v #4938 > > │ 00:00:27 v #4939 > > ......................>/////////////////////////////............................ 00:00:27 v #4940 > > ................................................................................ 00:00:27 v #4941 > > │ 00:00:27 v #4942 > > .......................////////////////////..................................... 00:00:27 v #4943 > > ................................................................................ 00:00:27 v #4944 > > │ 00:00:27 v #4945 > > .......................>//////////.............................................. 00:00:27 v #4946 > > ................................................................................ 00:00:27 v #4947 > > │ 00:00:27 v #4948 > > ................................................................................ 00:00:27 v #4949 > > ................................................................................ 00:00:27 v #4950 > > │ 00:00:27 v #4951 > > ................................................................................ 00:00:27 v #4952 > > ................................................................................ 00:00:27 v #4953 > > │ 00:00:27 v #4954 > > ................................................................................ 00:00:27 v #4955 > > ................................................................................ 00:00:27 v #4956 > > │ 00:00:27 v #4957 > > ................................................................................ 00:00:27 v #4958 > > ................................................................................ 00:00:27 v #4959 > > │ 00:00:27 v #4960 > > ................................................................................ 00:00:27 v #4961 > > ................................................................................ 00:00:27 v #4962 > > │ 00:00:27 v #4963 > > ................................................................................ 00:00:27 v #4964 > > ................................................................................ 00:00:27 v #4965 > > │ 00:00:27 v #4966 > > ................................................................................ 00:00:27 v #4967 > > ................................................................................ 00:00:27 v #4968 > > │ 00:00:27 v #4969 > > ................................................................................ 00:00:27 v #4970 > > ................................................................................ 00:00:27 v #4971 > > │ 00:00:27 v #4972 > > ................................................................................ 00:00:27 v #4973 > > ................................................................................ 00:00:27 v #4974 > > │ 00:00:27 v #4975 > > ................................................................................ 00:00:27 v #4976 > > ................................................................................ 00:00:27 v #4977 > > │ 00:00:27 v #4978 > > │ 00:00:27 v #4979 > > ................................................................................ 00:00:27 v #4980 > > ................................................................................ 00:00:27 v #4981 > > │ 00:00:27 v #4982 > > ................................................................................ 00:00:27 v #4983 > > ................................................................................ 00:00:27 v #4984 > > │ 00:00:27 v #4985 > > ................................................................................ 00:00:27 v #4986 > > ................................................................................ 00:00:27 v #4987 > > │ 00:00:27 v #4988 > > ................................................................................ 00:00:27 v #4989 > > ................................................................................ 00:00:27 v #4990 > > │ 00:00:27 v #4991 > > ................................................................................ 00:00:27 v #4992 > > ................................................................................ 00:00:27 v #4993 > > │ 00:00:27 v #4994 > > ................................................................................ 00:00:27 v #4995 > > ................................................................................ 00:00:27 v #4996 > > │ 00:00:27 v #4997 > > ................................................................................ 00:00:27 v #4998 > > ................................................................................ 00:00:27 v #4999 > > │ 00:00:27 v #5000 > > ................................................................................ 00:00:27 v #5001 > > ................................................................................ 00:00:27 v #5002 > > │ 00:00:27 v #5003 > > ................................................................................ 00:00:27 v #5004 > > ................................................................................ 00:00:27 v #5005 > > │ 00:00:27 v #5006 > > ..................................................;;;<.......................... 00:00:27 v #5007 > > ................................................................................ 00:00:27 v #5008 > > │ 00:00:27 v #5009 > > ............................................;;;;;;///<.......................... 00:00:27 v #5010 > > ................................................................................ 00:00:27 v #5011 > > │ 00:00:27 v #5012 > > .....................................;;;;;;;/////////<<......................... 00:00:27 v #5013 > > ................................................................................ 00:00:27 v #5014 > > │ 00:00:27 v #5015 > > ..............................;;;;;;;/////////////////<<........................ 00:00:27 v #5016 > > ................................................................................ 00:00:27 v #5017 > > │ 00:00:27 v #5018 > > .......................;;;;;;;/////////////////////////<........................ 00:00:27 v #5019 > > ................................................................................ 00:00:27 v #5020 > > │ 00:00:27 v #5021 > > .................;;;;;;;///////////////////////////////<<....................... 00:00:27 v #5022 > > ................................................................................ 00:00:27 v #5023 > > │ 00:00:27 v #5024 > > ..............;;;///////////////////////////////////////<....................... 00:00:27 v #5025 > > ................................................................................ 00:00:27 v #5026 > > │ 00:00:27 v #5027 > > ...............//////////////////////////////////////////<...................... 00:00:27 v #5028 > > ............;;;<................................................................ 00:00:27 v #5029 > > │ 00:00:27 v #5030 > > ...............>/////////////////////////////////////////<<..................... 00:00:27 v #5031 > > .....;;;;;;;////<............................................................... 00:00:27 v #5032 > > │ 00:00:27 v #5033 > > ................>/////////////////////////////////////////<....................; 00:00:27 v #5034 > > ;;;;;///////////<<.............................................................. 00:00:27 v #5035 > > │ 00:00:27 v #5036 > > ................./////////////////////////////////////////<<..................; 00:00:27 v #5037 > > /////////////////<.....................;;;<<.................................... 00:00:27 v #5038 > > │ 00:00:27 v #5039 > > .................>/////////////////////////////////////////<................... 00:00:27 v #5040 > > /////////////////<<...............;;;;;////<.................................... 00:00:27 v #5041 > > │ 00:00:27 v #5042 > > ..................//////////////////////////////////////////<................... 00:00:27 v #5043 > > //////////////////<<..............>////////<<................................... 00:00:27 v #5044 > > │ 00:00:27 v #5045 > > ..................>/////////////////////////////////////////<<.................. 00:00:27 v #5046 > > >//////////////////<...............>////////<................................... 00:00:27 v #5047 > > │ 00:00:27 v #5048 > > ...................>/////////////////////////////////////////<.................. 00:00:27 v #5049 > > .//////////////////<<...............////////<<.................................. 00:00:27 v #5050 > > │ 00:00:27 v #5051 > > ..................../////////////////////////////////////////<<................. 00:00:27 v #5052 > > .>//////////////////<...............>////....................................... 00:00:27 v #5053 > > │ 00:00:27 v #5054 > > ....................>/////////////////////////////////////////<................. 00:00:27 v #5055 > > ..///////////////////........................................................... 00:00:27 v #5056 > > │ 00:00:27 v #5057 > > ...................../////////////////////////////////////////<<................ 00:00:27 v #5058 > > ..>////////////................................................................. 00:00:27 v #5059 > > │ 00:00:27 v #5060 > > .....................>/////////////////////////////////////////<................ 00:00:27 v #5061 > > ...>////........................................................................ 00:00:27 v #5062 > > │ 00:00:27 v #5063 > > ......................>/////////////////////////////////////////<............... 00:00:27 v #5064 > > ................................................................................ 00:00:27 v #5065 > > │ 00:00:27 v #5066 > > ......................./////////////////////////////////////////................ 00:00:27 v #5067 > > ................................................................................ 00:00:27 v #5068 > > │ 00:00:27 v #5069 > > .......................>/////////////////////////////////....................... 00:00:27 v #5070 > > ................................................................................ 00:00:27 v #5071 > > │ 00:00:27 v #5072 > > ........................//////////////////////////.............................. 00:00:27 v #5073 > > ................................................................................ 00:00:27 v #5074 > > │ 00:00:27 v #5075 > > ........................>//////////////////..................................... 00:00:27 v #5076 > > ................................................................................ 00:00:27 v #5077 > > │ 00:00:27 v #5078 > > .........................>//////////............................................ 00:00:27 v #5079 > > ................................................................................ 00:00:27 v #5080 > > │ 00:00:27 v #5081 > > ..........................////.................................................. 00:00:27 v #5082 > > ................................................................................ 00:00:27 v #5083 > > │ 00:00:27 v #5084 > > ................................................................................ 00:00:27 v #5085 > > ................................................................................ 00:00:27 v #5086 > > │ 00:00:27 v #5087 > > ................................................................................ 00:00:27 v #5088 > > ................................................................................ 00:00:27 v #5089 > > │ 00:00:27 v #5090 > > ................................................................................ 00:00:27 v #5091 > > ................................................................................ 00:00:27 v #5092 > > │ 00:00:27 v #5093 > > ................................................................................ 00:00:27 v #5094 > > ................................................................................ 00:00:27 v #5095 > > │ 00:00:27 v #5096 > > ................................................................................ 00:00:27 v #5097 > > ................................................................................ 00:00:27 v #5098 > > │ 00:00:27 v #5099 > > ................................................................................ 00:00:27 v #5100 > > ................................................................................ 00:00:27 v #5101 > > │ 00:00:27 v #5102 > > ................................................................................ 00:00:27 v #5103 > > ................................................................................ 00:00:27 v #5104 > > │ 00:00:27 v #5105 > > ................................................................................ 00:00:27 v #5106 > > ................................................................................ 00:00:27 v #5107 > > │ 00:00:27 v #5108 > > ................................................................................ 00:00:27 v #5109 > > ................................................................................ 00:00:27 v #5110 > > │ 00:00:27 v #5111 > > │ 00:00:27 v #5112 > > ................................................................................ 00:00:27 v #5113 > > ................................................................................ 00:00:27 v #5114 > > │ 00:00:27 v #5115 > > ................................................................................ 00:00:27 v #5116 > > ................................................................................ 00:00:27 v #5117 > > │ 00:00:27 v #5118 > > ................................................................................ 00:00:27 v #5119 > > ................................................................................ 00:00:27 v #5120 > > │ 00:00:27 v #5121 > > ................................................................................ 00:00:27 v #5122 > > ................................................................................ 00:00:27 v #5123 > > │ 00:00:27 v #5124 > > ................................................................................ 00:00:27 v #5125 > > ................................................................................ 00:00:27 v #5126 > > │ 00:00:27 v #5127 > > ................................................................................ 00:00:27 v #5128 > > ................................................................................ 00:00:27 v #5129 > > │ 00:00:27 v #5130 > > ................................................................................ 00:00:27 v #5131 > > ................................................................................ 00:00:27 v #5132 > > │ 00:00:27 v #5133 > > ................................................................................ 00:00:27 v #5134 > > ................................................................................ 00:00:27 v #5135 > > │ 00:00:27 v #5136 > > ................................................................................ 00:00:27 v #5137 > > ................................................................................ 00:00:27 v #5138 > > │ 00:00:27 v #5139 > > ................................................;;;/;........................... 00:00:27 v #5140 > > ................................................................................ 00:00:27 v #5141 > > │ 00:00:27 v #5142 > > ..........................................;;;;/;//////.......................... 00:00:27 v #5143 > > ................................................................................ 00:00:27 v #5144 > > │ 00:00:27 v #5145 > > ....................................;;;;///////////////......................... 00:00:27 v #5146 > > ................................................................................ 00:00:27 v #5147 > > │ 00:00:27 v #5148 > > ...............................;;/;;///////////////////<........................ 00:00:27 v #5149 > > ................................................................................ 00:00:27 v #5150 > > │ 00:00:27 v #5151 > > .........................;;;;/;/////////////////////////........................ 00:00:27 v #5152 > > ................................................................................ 00:00:27 v #5153 > > │ 00:00:27 v #5154 > > ...................;;;;//;///////////////////////////////....................... 00:00:27 v #5155 > > ................................................................................ 00:00:27 v #5156 > > │ 00:00:27 v #5157 > > ..............;;/;;//////////////////////////////////////<...................... 00:00:27 v #5158 > > ................................................................................ 00:00:27 v #5159 > > │ 00:00:27 v #5160 > > ..............>>//////////////////////////////////////////...................... 00:00:27 v #5161 > > ...........;;;//................................................................ 00:00:27 v #5162 > > │ 00:00:27 v #5163 > > ...............>>//////////////////////////////////////////..................... 00:00:27 v #5164 > > ......;;/////////............................................................... 00:00:27 v #5165 > > │ 00:00:27 v #5166 > > ................>///////////////////////////////////////////.................... 00:00:27 v #5167 > > ;;;///////////////.............................................................. 00:00:27 v #5168 > > │ 00:00:27 v #5169 > > .................>//////////////////////////////////////////<.................;> 00:00:27 v #5170 > > //////////////////<...................;;///<.................................... 00:00:27 v #5171 > > │ 00:00:27 v #5172 > > .................>>//////////////////////////////////////////..................> 00:00:27 v #5173 > > ///////////////////...............;;;;//////.................................... 00:00:27 v #5174 > > │ 00:00:27 v #5175 > > ..................>>//////////////////////////////////////////.................. 00:00:27 v #5176 > > >///////////////////...............>/////////................................... 00:00:27 v #5177 > > │ 00:00:27 v #5178 > > ...................>//////////////////////////////////////////<................. 00:00:27 v #5179 > > >>///////////////////..............>>////////<.................................. 00:00:27 v #5180 > > │ 00:00:27 v #5181 > > ....................>//////////////////////////////////////////................. 00:00:27 v #5182 > > .>>//////////////////...............>>////////.................................. 00:00:27 v #5183 > > │ 00:00:27 v #5184 > > ....................>>//////////////////////////////////////////................ 00:00:27 v #5185 > > ..>///////////////////...............>///....................................... 00:00:27 v #5186 > > │ 00:00:27 v #5187 > > .....................>///////////////////////////////////////////............... 00:00:27 v #5188 > > ...>////////////////............................................................ 00:00:27 v #5189 > > │ 00:00:27 v #5190 > > ......................>//////////////////////////////////////////<.............. 00:00:27 v #5191 > > ...>>/////////.................................................................. 00:00:27 v #5192 > > │ 00:00:27 v #5193 > > ......................>>//////////////////////////////////////////.............. 00:00:27 v #5194 > > ....>////....................................................................... 00:00:27 v #5195 > > │ 00:00:27 v #5196 > > .......................>>/////////////////////////////////////////.............. 00:00:27 v #5197 > > ................................................................................ 00:00:27 v #5198 > > │ 00:00:27 v #5199 > > ........................>>//////////////////////////////////.................... 00:00:27 v #5200 > > ................................................................................ 00:00:27 v #5201 > > │ 00:00:27 v #5202 > > .........................>////////////////////////////.......................... 00:00:27 v #5203 > > ................................................................................ 00:00:27 v #5204 > > │ 00:00:27 v #5205 > > .........................>>//////////////////////............................... 00:00:27 v #5206 > > ................................................................................ 00:00:27 v #5207 > > │ 00:00:27 v #5208 > > ..........................>>////////////////.................................... 00:00:27 v #5209 > > ................................................................................ 00:00:27 v #5210 > > │ 00:00:27 v #5211 > > ...........................>///////////......................................... 00:00:27 v #5212 > > ................................................................................ 00:00:27 v #5213 > > │ 00:00:27 v #5214 > > ............................>////............................................... 00:00:27 v #5215 > > ................................................................................ 00:00:27 v #5216 > > │ 00:00:27 v #5217 > > ................................................................................ 00:00:27 v #5218 > > ................................................................................ 00:00:27 v #5219 > > │ 00:00:27 v #5220 > > ................................................................................ 00:00:27 v #5221 > > ................................................................................ 00:00:27 v #5222 > > │ 00:00:27 v #5223 > > ................................................................................ 00:00:27 v #5224 > > ................................................................................ 00:00:27 v #5225 > > │ 00:00:27 v #5226 > > ................................................................................ 00:00:27 v #5227 > > ................................................................................ 00:00:27 v #5228 > > │ 00:00:27 v #5229 > > ................................................................................ 00:00:27 v #5230 > > ................................................................................ 00:00:27 v #5231 > > │ 00:00:27 v #5232 > > ................................................................................ 00:00:27 v #5233 > > ................................................................................ 00:00:27 v #5234 > > │ 00:00:27 v #5235 > > ................................................................................ 00:00:27 v #5236 > > ................................................................................ 00:00:27 v #5237 > > │ 00:00:27 v #5238 > > ................................................................................ 00:00:27 v #5239 > > ................................................................................ 00:00:27 v #5240 > > │ 00:00:27 v #5241 > > ................................................................................ 00:00:27 v #5242 > > ................................................................................ 00:00:27 v #5243 > > │ 00:00:27 v #5244 > > │ 00:00:27 v #5245 > > ................................................................................ 00:00:27 v #5246 > > ................................................................................ 00:00:27 v #5247 > > │ 00:00:27 v #5248 > > ................................................................................ 00:00:27 v #5249 > > ................................................................................ 00:00:27 v #5250 > > │ 00:00:27 v #5251 > > ................................................................................ 00:00:27 v #5252 > > ................................................................................ 00:00:27 v #5253 > > │ 00:00:27 v #5254 > > ................................................................................ 00:00:27 v #5255 > > ................................................................................ 00:00:27 v #5256 > > │ 00:00:27 v #5257 > > ................................................................................ 00:00:27 v #5258 > > ................................................................................ 00:00:27 v #5259 > > │ 00:00:27 v #5260 > > ................................................................................ 00:00:27 v #5261 > > ................................................................................ 00:00:27 v #5262 > > │ 00:00:27 v #5263 > > ................................................................................ 00:00:27 v #5264 > > ................................................................................ 00:00:27 v #5265 > > │ 00:00:27 v #5266 > > ................................................................................ 00:00:27 v #5267 > > ................................................................................ 00:00:27 v #5268 > > │ 00:00:27 v #5269 > > ...................................................;............................ 00:00:27 v #5270 > > ................................................................................ 00:00:27 v #5271 > > │ 00:00:27 v #5272 > > ..............................................;/;;///........................... 00:00:27 v #5273 > > ................................................................................ 00:00:27 v #5274 > > │ 00:00:27 v #5275 > > .........................................;;;//////////.......................... 00:00:27 v #5276 > > ................................................................................ 00:00:27 v #5277 > > │ 00:00:27 v #5278 > > ....................................;;;///////////////<......................... 00:00:27 v #5279 > > ................................................................................ 00:00:27 v #5280 > > │ 00:00:27 v #5281 > > ...............................;;;/;///////////////////<........................ 00:00:27 v #5282 > > ................................................................................ 00:00:27 v #5283 > > │ 00:00:27 v #5284 > > ..........................;;;/;/////////////////////////<....................... 00:00:27 v #5285 > > ................................................................................ 00:00:27 v #5286 > > │ 00:00:27 v #5287 > > ......................;;/////////////////////////////////....................... 00:00:27 v #5288 > > ................................................................................ 00:00:27 v #5289 > > │ 00:00:27 v #5290 > > .................;;;//////////////////////////////////////...................... 00:00:27 v #5291 > > ................................................................................ 00:00:27 v #5292 > > │ 00:00:27 v #5293 > > ..............;>///////////////////////////////////////////..................... 00:00:27 v #5294 > > ...........;;;;/................................................................ 00:00:27 v #5295 > > │ 00:00:27 v #5296 > > ...............>///////////////////////////////////////////<.................... 00:00:27 v #5297 > > ......;;/////////............................................................... 00:00:27 v #5298 > > │ 00:00:27 v #5299 > > ................>///////////////////////////////////////////<................... 00:00:27 v #5300 > > .;;;//////////////.............................................................. 00:00:27 v #5301 > > │ 00:00:27 v #5302 > > .................>///////////////////////////////////////////<................;> 00:00:27 v #5303 > > ///////////////////...................;;///<.................................... 00:00:27 v #5304 > > │ 00:00:27 v #5305 > > .................>>///////////////////////////////////////////.................> 00:00:27 v #5306 > > >///////////////////..............;;;;//////.................................... 00:00:27 v #5307 > > │ 00:00:27 v #5308 > > ..................>>///////////////////////////////////////////................. 00:00:27 v #5309 > > >///////////////////<.............>>/////////................................... 00:00:27 v #5310 > > │ 00:00:27 v #5311 > > ...................>>///////////////////////////////////////////................ 00:00:27 v #5312 > > .>///////////////////<.............>>/////////.................................. 00:00:27 v #5313 > > │ 00:00:27 v #5314 > > ....................>>///////////////////////////////////////////............... 00:00:27 v #5315 > > .>>///////////////////..............>>////////.................................. 00:00:27 v #5316 > > │ 00:00:27 v #5317 > > .....................>///////////////////////////////////////////<.............. 00:00:27 v #5318 > > ..>>///////////////////..............>////...................................... 00:00:27 v #5319 > > │ 00:00:27 v #5320 > > ......................>///////////////////////////////////////////<............. 00:00:27 v #5321 > > ...>>//////////////............................................................. 00:00:27 v #5322 > > │ 00:00:27 v #5323 > > .......................>///////////////////////////////////////////............. 00:00:27 v #5324 > > ....>>////////.................................................................. 00:00:27 v #5325 > > │ 00:00:27 v #5326 > > ........................>//////////////////////////////////////////............. 00:00:27 v #5327 > > .....>////...................................................................... 00:00:27 v #5328 > > │ 00:00:27 v #5329 > > ........................>>/////////////////////////////////////................. 00:00:27 v #5330 > > ................................................................................ 00:00:27 v #5331 > > │ 00:00:27 v #5332 > > .........................>>///////////////////////////////...................... 00:00:27 v #5333 > > ................................................................................ 00:00:27 v #5334 > > │ 00:00:27 v #5335 > > ..........................>>//////////////////////////.......................... 00:00:27 v #5336 > > ................................................................................ 00:00:27 v #5337 > > │ 00:00:27 v #5338 > > ...........................>>////////////////////............................... 00:00:27 v #5339 > > ................................................................................ 00:00:27 v #5340 > > │ 00:00:27 v #5341 > > ............................>>///////////////................................... 00:00:27 v #5342 > > ................................................................................ 00:00:27 v #5343 > > │ 00:00:27 v #5344 > > .............................>>/////////........................................ 00:00:27 v #5345 > > ................................................................................ 00:00:27 v #5346 > > │ 00:00:27 v #5347 > > ..............................>/////............................................ 00:00:27 v #5348 > > ................................................................................ 00:00:27 v #5349 > > │ 00:00:27 v #5350 > > .............................../................................................ 00:00:27 v #5351 > > ................................................................................ 00:00:27 v #5352 > > │ 00:00:27 v #5353 > > ................................................................................ 00:00:27 v #5354 > > ................................................................................ 00:00:27 v #5355 > > │ 00:00:27 v #5356 > > ................................................................................ 00:00:27 v #5357 > > ................................................................................ 00:00:27 v #5358 > > │ 00:00:27 v #5359 > > ................................................................................ 00:00:27 v #5360 > > ................................................................................ 00:00:27 v #5361 > > │ 00:00:27 v #5362 > > ................................................................................ 00:00:27 v #5363 > > ................................................................................ 00:00:27 v #5364 > > │ 00:00:27 v #5365 > > ................................................................................ 00:00:27 v #5366 > > ................................................................................ 00:00:27 v #5367 > > │ 00:00:27 v #5368 > > ................................................................................ 00:00:27 v #5369 > > ................................................................................ 00:00:27 v #5370 > > │ 00:00:27 v #5371 > > ................................................................................ 00:00:27 v #5372 > > ................................................................................ 00:00:27 v #5373 > > │ 00:00:27 v #5374 > > ................................................................................ 00:00:27 v #5375 > > ................................................................................ 00:00:27 v #5376 > > │ 00:00:27 v #5377 > > │ 00:00:27 v #5378 > > ................................................................................ 00:00:27 v #5379 > > ................................................................................ 00:00:27 v #5380 > > │ 00:00:27 v #5381 > > ................................................................................ 00:00:27 v #5382 > > ................................................................................ 00:00:27 v #5383 > > │ 00:00:27 v #5384 > > ................................................................................ 00:00:27 v #5385 > > ................................................................................ 00:00:27 v #5386 > > │ 00:00:27 v #5387 > > ................................................................................ 00:00:27 v #5388 > > ................................................................................ 00:00:27 v #5389 > > │ 00:00:27 v #5390 > > ................................................................................ 00:00:27 v #5391 > > ................................................................................ 00:00:27 v #5392 > > │ 00:00:27 v #5393 > > ................................................................................ 00:00:27 v #5394 > > ................................................................................ 00:00:27 v #5395 > > │ 00:00:27 v #5396 > > ................................................................................ 00:00:27 v #5397 > > ................................................................................ 00:00:27 v #5398 > > │ 00:00:27 v #5399 > > ................................................................................ 00:00:27 v #5400 > > ................................................................................ 00:00:27 v #5401 > > │ 00:00:27 v #5402 > > ................................................;;/<............................ 00:00:27 v #5403 > > ................................................................................ 00:00:27 v #5404 > > │ 00:00:27 v #5405 > > ............................................;;//////<........................... 00:00:27 v #5406 > > ................................................................................ 00:00:27 v #5407 > > │ 00:00:27 v #5408 > > ........................................;;;//////////<.......................... 00:00:27 v #5409 > > ................................................................................ 00:00:27 v #5410 > > │ 00:00:27 v #5411 > > ....................................;/;;//////////////<......................... 00:00:27 v #5412 > > ................................................................................ 00:00:27 v #5413 > > │ 00:00:27 v #5414 > > ................................;;/////////////////////<........................ 00:00:27 v #5415 > > ................................................................................ 00:00:27 v #5416 > > │ 00:00:27 v #5417 > > ...........................;;//;////////////////////////........................ 00:00:27 v #5418 > > ................................................................................ 00:00:27 v #5419 > > │ 00:00:27 v #5420 > > .......................;;;///////////////////////////////<...................... 00:00:27 v #5421 > > ................................................................................ 00:00:27 v #5422 > > │ 00:00:27 v #5423 > > ...................;/;////////////////////////////////////<..................... 00:00:27 v #5424 > > ..............;................................................................. 00:00:27 v #5425 > > │ 00:00:27 v #5426 > > ..............;;;;/////////////////////////////////////////<.................... 00:00:27 v #5427 > > ..........;/////................................................................ 00:00:27 v #5428 > > │ 00:00:27 v #5429 > > ..............;>////////////////////////////////////////////<................... 00:00:27 v #5430 > > ......;;;;///////............................................................... 00:00:27 v #5431 > > │ 00:00:27 v #5432 > > ................>////////////////////////////////////////////<.................. 00:00:27 v #5433 > > ..;///////////////.............................................................. 00:00:27 v #5434 > > │ 00:00:27 v #5435 > > .................>////////////////////////////////////////////.................; 00:00:27 v #5436 > > ;//////////////////...................;;;//<.................................... 00:00:27 v #5437 > > │ 00:00:27 v #5438 > > ..................>////////////////////////////////////////////................> 00:00:27 v #5439 > > >///////////////////..............;;;///////<................................... 00:00:27 v #5440 > > │ 00:00:27 v #5441 > > ...................>////////////////////////////////////////////<..............> 00:00:27 v #5442 > > >>///////////////////.............>>/////////<.................................. 00:00:27 v #5443 > > │ 00:00:27 v #5444 > > ....................>////////////////////////////////////////////<.............. 00:00:27 v #5445 > > >>>///////////////////.............>>/////////.................................. 00:00:27 v #5446 > > │ 00:00:27 v #5447 > > .....................>////////////////////////////////////////////<............. 00:00:27 v #5448 > > .>>>///////////////////.............>>////////.................................. 00:00:27 v #5449 > > │ 00:00:27 v #5450 > > ......................>////////////////////////////////////////////<............ 00:00:27 v #5451 > > ..>>>/////////////////...............>>///...................................... 00:00:27 v #5452 > > │ 00:00:27 v #5453 > > .......................>////////////////////////////////////////////............ 00:00:27 v #5454 > > ...>>>////////////.............................................................. 00:00:27 v #5455 > > │ 00:00:27 v #5456 > > ........................>///////////////////////////////////////////............ 00:00:27 v #5457 > > ....>>>///////.................................................................. 00:00:27 v #5458 > > │ 00:00:27 v #5459 > > .........................>>/////////////////////////////////////................ 00:00:27 v #5460 > > .....>>////..................................................................... 00:00:27 v #5461 > > │ 00:00:27 v #5462 > > ..........................>/////////////////////////////////.................... 00:00:27 v #5463 > > ................................................................................ 00:00:27 v #5464 > > │ 00:00:27 v #5465 > > ...........................>>////////////////////////////....................... 00:00:27 v #5466 > > ................................................................................ 00:00:27 v #5467 > > │ 00:00:27 v #5468 > > ............................>>///////////////////////........................... 00:00:27 v #5469 > > ................................................................................ 00:00:27 v #5470 > > │ 00:00:27 v #5471 > > .............................>////////////////////.............................. 00:00:27 v #5472 > > ................................................................................ 00:00:27 v #5473 > > │ 00:00:27 v #5474 > > ..............................>>//////////////.................................. 00:00:27 v #5475 > > ................................................................................ 00:00:27 v #5476 > > │ 00:00:27 v #5477 > > ...............................>>/////////...................................... 00:00:27 v #5478 > > ................................................................................ 00:00:27 v #5479 > > │ 00:00:27 v #5480 > > ................................>>////.......................................... 00:00:27 v #5481 > > ................................................................................ 00:00:27 v #5482 > > │ 00:00:27 v #5483 > > .................................>/............................................. 00:00:27 v #5484 > > ................................................................................ 00:00:27 v #5485 > > │ 00:00:27 v #5486 > > ................................................................................ 00:00:27 v #5487 > > ................................................................................ 00:00:27 v #5488 > > │ 00:00:27 v #5489 > > ................................................................................ 00:00:27 v #5490 > > ................................................................................ 00:00:27 v #5491 > > │ 00:00:27 v #5492 > > ................................................................................ 00:00:27 v #5493 > > ................................................................................ 00:00:27 v #5494 > > │ 00:00:27 v #5495 > > ................................................................................ 00:00:27 v #5496 > > ................................................................................ 00:00:27 v #5497 > > │ 00:00:27 v #5498 > > ................................................................................ 00:00:27 v #5499 > > ................................................................................ 00:00:27 v #5500 > > │ 00:00:27 v #5501 > > ................................................................................ 00:00:27 v #5502 > > ................................................................................ 00:00:27 v #5503 > > │ 00:00:27 v #5504 > > ................................................................................ 00:00:27 v #5505 > > ................................................................................ 00:00:27 v #5506 > > │ 00:00:27 v #5507 > > ................................................................................ 00:00:27 v #5508 > > ................................................................................ 00:00:27 v #5509 > > │ 00:00:27 v #5510 > > │ 00:00:27 v #5511 > > ................................................................................ 00:00:27 v #5512 > > ................................................................................ 00:00:27 v #5513 > > │ 00:00:27 v #5514 > > ................................................................................ 00:00:27 v #5515 > > ................................................................................ 00:00:27 v #5516 > > │ 00:00:27 v #5517 > > ................................................................................ 00:00:27 v #5518 > > ................................................................................ 00:00:27 v #5519 > > │ 00:00:27 v #5520 > > ................................................................................ 00:00:27 v #5521 > > ................................................................................ 00:00:27 v #5522 > > │ 00:00:27 v #5523 > > ................................................................................ 00:00:27 v #5524 > > ................................................................................ 00:00:27 v #5525 > > │ 00:00:27 v #5526 > > ................................................................................ 00:00:27 v #5527 > > ................................................................................ 00:00:27 v #5528 > > │ 00:00:27 v #5529 > > ................................................................................ 00:00:27 v #5530 > > ................................................................................ 00:00:27 v #5531 > > │ 00:00:27 v #5532 > > ................................................................................ 00:00:27 v #5533 > > ................................................................................ 00:00:27 v #5534 > > │ 00:00:27 v #5535 > > ...............................................;;;/............................. 00:00:27 v #5536 > > ................................................................................ 00:00:27 v #5537 > > │ 00:00:27 v #5538 > > ...........................................;;;//////............................ 00:00:27 v #5539 > > ................................................................................ 00:00:27 v #5540 > > │ 00:00:27 v #5541 > > .......................................;;;///////////........................... 00:00:27 v #5542 > > ................................................................................ 00:00:27 v #5543 > > │ 00:00:27 v #5544 > > ....................................;;////////////////.......................... 00:00:27 v #5545 > > ................................................................................ 00:00:27 v #5546 > > │ 00:00:27 v #5547 > > ................................;;;////////////////////<........................ 00:00:27 v #5548 > > ................................................................................ 00:00:27 v #5549 > > │ 00:00:27 v #5550 > > ............................;;/;////////////////////////<....................... 00:00:27 v #5551 > > ................................................................................ 00:00:27 v #5552 > > │ 00:00:27 v #5553 > > .........................;;//////////////////////////////<...................... 00:00:27 v #5554 > > ................................................................................ 00:00:27 v #5555 > > │ 00:00:27 v #5556 > > .....................;/////////////////////////////////////..................... 00:00:27 v #5557 > > .............;;................................................................. 00:00:27 v #5558 > > │ 00:00:27 v #5559 > > .................;/;////////////////////////////////////////.................... 00:00:27 v #5560 > > ..........;;////................................................................ 00:00:27 v #5561 > > │ 00:00:27 v #5562 > > ...............;/////////////////////////////////////////////................... 00:00:27 v #5563 > > ......;;;////////............................................................... 00:00:27 v #5564 > > │ 00:00:27 v #5565 > > ...............>>/////////////////////////////////////////////.................. 00:00:27 v #5566 > > ...;//////////////<............................................................. 00:00:27 v #5567 > > │ 00:00:27 v #5568 > > ................>>/////////////////////////////////////////////................; 00:00:27 v #5569 > > ;///////////////////..................;;;//<.................................... 00:00:27 v #5570 > > │ 00:00:27 v #5571 > > ..................>>////////////////////////////////////////////<.............;; 00:00:27 v #5572 > > >////////////////////..............;/////////................................... 00:00:27 v #5573 > > │ 00:00:27 v #5574 > > ...................>>////////////////////////////////////////////<............\> 00:00:27 v #5575 > > >>////////////////////............;>//////////.................................. 00:00:27 v #5576 > > │ 00:00:27 v #5577 > > ....................>>////////////////////////////////////////////<............. 00:00:27 v #5578 > > >>>////////////////////...........\>>//////////................................. 00:00:27 v #5579 > > │ 00:00:27 v #5580 > > .....................>>/////////////////////////////////////////////............ 00:00:27 v #5581 > > .>>>////////////////////............>>>//////................................... 00:00:27 v #5582 > > │ 00:00:27 v #5583 > > .......................>/////////////////////////////////////////////........... 00:00:27 v #5584 > > ..>>>////////////////................>>///...................................... 00:00:27 v #5585 > > │ 00:00:27 v #5586 > > ........................>////////////////////////////////////////////........... 00:00:27 v #5587 > > ...>>>////////////.............................................................. 00:00:27 v #5588 > > │ 00:00:27 v #5589 > > .........................>>///////////////////////////////////////.............. 00:00:27 v #5590 > > ....>>>>///////................................................................. 00:00:27 v #5591 > > │ 00:00:27 v #5592 > > ..........................>>///////////////////////////////////................. 00:00:27 v #5593 > > .....\>>>///.................................................................... 00:00:27 v #5594 > > │ 00:00:27 v #5595 > > ...........................>>//////////////////////////////..................... 00:00:27 v #5596 > > ................................................................................ 00:00:27 v #5597 > > │ 00:00:27 v #5598 > > ............................>>//////////////////////////........................ 00:00:27 v #5599 > > ................................................................................ 00:00:27 v #5600 > > │ 00:00:27 v #5601 > > .............................>>//////////////////////........................... 00:00:27 v #5602 > > ................................................................................ 00:00:27 v #5603 > > │ 00:00:27 v #5604 > > ...............................>//////////////////.............................. 00:00:27 v #5605 > > ................................................................................ 00:00:27 v #5606 > > │ 00:00:27 v #5607 > > ................................>>/////////////................................. 00:00:27 v #5608 > > ................................................................................ 00:00:27 v #5609 > > │ 00:00:27 v #5610 > > .................................>>/////////.................................... 00:00:27 v #5611 > > ................................................................................ 00:00:27 v #5612 > > │ 00:00:27 v #5613 > > ..................................>>/////....................................... 00:00:27 v #5614 > > ................................................................................ 00:00:27 v #5615 > > │ 00:00:27 v #5616 > > ...................................>//.......................................... 00:00:27 v #5617 > > ................................................................................ 00:00:27 v #5618 > > │ 00:00:27 v #5619 > > ................................................................................ 00:00:27 v #5620 > > ................................................................................ 00:00:27 v #5621 > > │ 00:00:27 v #5622 > > ................................................................................ 00:00:27 v #5623 > > ................................................................................ 00:00:27 v #5624 > > │ 00:00:27 v #5625 > > ................................................................................ 00:00:27 v #5626 > > ................................................................................ 00:00:27 v #5627 > > │ 00:00:27 v #5628 > > ................................................................................ 00:00:27 v #5629 > > ................................................................................ 00:00:27 v #5630 > > │ 00:00:27 v #5631 > > ................................................................................ 00:00:27 v #5632 > > ................................................................................ 00:00:27 v #5633 > > │ 00:00:27 v #5634 > > ................................................................................ 00:00:27 v #5635 > > ................................................................................ 00:00:27 v #5636 > > │ 00:00:27 v #5637 > > ................................................................................ 00:00:27 v #5638 > > ................................................................................ 00:00:27 v #5639 > > │ 00:00:27 v #5640 > > ................................................................................ 00:00:27 v #5641 > > ................................................................................ 00:00:27 v #5642 > > │ 00:00:27 v #5643 > > │ 00:00:27 v #5644 > > ................................................................................ 00:00:27 v #5645 > > ................................................................................ 00:00:27 v #5646 > > │ 00:00:27 v #5647 > > ................................................................................ 00:00:27 v #5648 > > ................................................................................ 00:00:27 v #5649 > > │ 00:00:27 v #5650 > > ................................................................................ 00:00:27 v #5651 > > ................................................................................ 00:00:27 v #5652 > > │ 00:00:27 v #5653 > > ................................................................................ 00:00:27 v #5654 > > ................................................................................ 00:00:27 v #5655 > > │ 00:00:27 v #5656 > > ................................................................................ 00:00:27 v #5657 > > ................................................................................ 00:00:27 v #5658 > > │ 00:00:27 v #5659 > > ................................................................................ 00:00:27 v #5660 > > ................................................................................ 00:00:27 v #5661 > > │ 00:00:27 v #5662 > > ................................................................................ 00:00:27 v #5663 > > ................................................................................ 00:00:27 v #5664 > > │ 00:00:27 v #5665 > > ................................................................................ 00:00:27 v #5666 > > ................................................................................ 00:00:27 v #5667 > > │ 00:00:27 v #5668 > > .............................................;;///.............................. 00:00:27 v #5669 > > ................................................................................ 00:00:27 v #5670 > > │ 00:00:27 v #5671 > > ..........................................;;;//////<............................ 00:00:27 v #5672 > > ................................................................................ 00:00:27 v #5673 > > │ 00:00:27 v #5674 > > .......................................;////////////<........................... 00:00:27 v #5675 > > ................................................................................ 00:00:27 v #5676 > > │ 00:00:27 v #5677 > > ....................................;/////////////////.......................... 00:00:27 v #5678 > > ................................................................................ 00:00:27 v #5679 > > │ 00:00:27 v #5680 > > ................................;;;////////////////////<........................ 00:00:27 v #5681 > > ................................................................................ 00:00:27 v #5682 > > │ 00:00:27 v #5683 > > .............................;;;////////////////////////<....................... 00:00:27 v #5684 > > ................................................................................ 00:00:27 v #5685 > > │ 00:00:27 v #5686 > > ..........................;///////////////////////////////...................... 00:00:27 v #5687 > > ................................................................................ 00:00:27 v #5688 > > │ 00:00:27 v #5689 > > ......................;;///////////////////////////////////..................... 00:00:27 v #5690 > > .............;/................................................................. 00:00:27 v #5691 > > │ 00:00:27 v #5692 > > ...................;;;//////////////////////////////////////<................... 00:00:27 v #5693 > > ..........;;////................................................................ 00:00:27 v #5694 > > │ 00:00:27 v #5695 > > ................;;////////////////////////////////////////////.................. 00:00:27 v #5696 > > ......;;;////////............................................................... 00:00:27 v #5697 > > │ 00:00:27 v #5698 > > ...............;>//////////////////////////////////////////////................. 00:00:27 v #5699 > > ...;;//////////////......................<...................................... 00:00:27 v #5700 > > │ 00:00:27 v #5701 > > ................>>//////////////////////////////////////////////................ 00:00:27 v #5702 > > ;///////////////////..................;;;//<.................................... 00:00:27 v #5703 > > │ 00:00:27 v #5704 > > .................>>>//////////////////////////////////////////////............;; 00:00:27 v #5705 > > >////////////////////..............;;;///////................................... 00:00:27 v #5706 > > │ 00:00:27 v #5707 > > ..................>>>//////////////////////////////////////////////...........>> 00:00:27 v #5708 > > >>////////////////////<..........;;;>/////////.................................. 00:00:27 v #5709 > > │ 00:00:27 v #5710 > > ...................>>>//////////////////////////////////////////////...........> 00:00:27 v #5711 > > >>>/////////////////////..........>>>>/////////................................. 00:00:27 v #5712 > > │ 00:00:27 v #5713 > > .....................>>>/////////////////////////////////////////////<.......... 00:00:27 v #5714 > > >>>>>//////////////////............>>>>//////................................... 00:00:27 v #5715 > > │ 00:00:27 v #5716 > > ......................>>>////////////////////////////////////////////........... 00:00:27 v #5717 > > .\>>>>///////////////................>>>//...................................... 00:00:27 v #5718 > > │ 00:00:27 v #5719 > > ........................>>>////////////////////////////////////////............. 00:00:27 v #5720 > > ...>>>>///////////.............................................................. 00:00:27 v #5721 > > │ 00:00:27 v #5722 > > .........................>>>////////////////////////////////////................ 00:00:27 v #5723 > > ....>>>>>//////................................................................. 00:00:27 v #5724 > > │ 00:00:27 v #5725 > > ..........................>>>////////////////////////////////................... 00:00:27 v #5726 > > ......>>>>//.................................................................... 00:00:27 v #5727 > > │ 00:00:27 v #5728 > > ............................>>>////////////////////////////..................... 00:00:27 v #5729 > > ................................................................................ 00:00:27 v #5730 > > │ 00:00:27 v #5731 > > .............................>>>////////////////////////........................ 00:00:27 v #5732 > > ................................................................................ 00:00:27 v #5733 > > │ 00:00:27 v #5734 > > ..............................>>>////////////////////........................... 00:00:27 v #5735 > > ................................................................................ 00:00:27 v #5736 > > │ 00:00:27 v #5737 > > ................................>>>////////////////............................. 00:00:27 v #5738 > > ................................................................................ 00:00:27 v #5739 > > │ 00:00:27 v #5740 > > .................................>>>////////////................................ 00:00:27 v #5741 > > ................................................................................ 00:00:27 v #5742 > > │ 00:00:27 v #5743 > > ...................................>>>////////.................................. 00:00:27 v #5744 > > ................................................................................ 00:00:27 v #5745 > > │ 00:00:27 v #5746 > > ....................................>>>////..................................... 00:00:27 v #5747 > > ................................................................................ 00:00:27 v #5748 > > │ 00:00:27 v #5749 > > ......................................>//....................................... 00:00:27 v #5750 > > ................................................................................ 00:00:27 v #5751 > > │ 00:00:27 v #5752 > > ................................................................................ 00:00:27 v #5753 > > ................................................................................ 00:00:27 v #5754 > > │ 00:00:27 v #5755 > > ................................................................................ 00:00:27 v #5756 > > ................................................................................ 00:00:27 v #5757 > > │ 00:00:27 v #5758 > > ................................................................................ 00:00:27 v #5759 > > ................................................................................ 00:00:27 v #5760 > > │ 00:00:27 v #5761 > > ................................................................................ 00:00:27 v #5762 > > ................................................................................ 00:00:27 v #5763 > > │ 00:00:27 v #5764 > > ................................................................................ 00:00:27 v #5765 > > ................................................................................ 00:00:27 v #5766 > > │ 00:00:27 v #5767 > > ................................................................................ 00:00:27 v #5768 > > ................................................................................ 00:00:27 v #5769 > > │ 00:00:27 v #5770 > > ................................................................................ 00:00:27 v #5771 > > ................................................................................ 00:00:27 v #5772 > > │ 00:00:27 v #5773 > > ................................................................................ 00:00:27 v #5774 > > ................................................................................ 00:00:27 v #5775 > > │ 00:00:27 v #5776 > > │ 00:00:27 v #5777 > > ................................................................................ 00:00:27 v #5778 > > ................................................................................ 00:00:27 v #5779 > > │ 00:00:27 v #5780 > > ................................................................................ 00:00:27 v #5781 > > ................................................................................ 00:00:27 v #5782 > > │ 00:00:27 v #5783 > > ................................................................................ 00:00:27 v #5784 > > ................................................................................ 00:00:27 v #5785 > > │ 00:00:27 v #5786 > > ................................................................................ 00:00:27 v #5787 > > ................................................................................ 00:00:27 v #5788 > > │ 00:00:27 v #5789 > > ................................................................................ 00:00:27 v #5790 > > ................................................................................ 00:00:27 v #5791 > > │ 00:00:27 v #5792 > > ................................................................................ 00:00:27 v #5793 > > ................................................................................ 00:00:27 v #5794 > > │ 00:00:27 v #5795 > > ................................................................................ 00:00:27 v #5796 > > ................................................................................ 00:00:27 v #5797 > > │ 00:00:27 v #5798 > > ...............................................;<............................... 00:00:27 v #5799 > > ................................................................................ 00:00:27 v #5800 > > │ 00:00:27 v #5801 > > ............................................;;;//<.............................. 00:00:27 v #5802 > > ................................................................................ 00:00:27 v #5803 > > │ 00:00:27 v #5804 > > ..........................................;;///////<............................ 00:00:27 v #5805 > > ................................................................................ 00:00:27 v #5806 > > │ 00:00:27 v #5807 > > .......................................;////////////<........................... 00:00:27 v #5808 > > ................................................................................ 00:00:27 v #5809 > > │ 00:00:27 v #5810 > > ....................................;/////////////////.......................... 00:00:27 v #5811 > > ................................................................................ 00:00:27 v #5812 > > │ 00:00:27 v #5813 > > .................................;/////////////////////<........................ 00:00:27 v #5814 > > ................................................................................ 00:00:27 v #5815 > > │ 00:00:27 v #5816 > > ..............................;;/////////////////////////....................... 00:00:27 v #5817 > > ................................................................................ 00:00:27 v #5818 > > │ 00:00:27 v #5819 > > ...........................;;/////////////////////////////...................... 00:00:27 v #5820 > > ................................................................................ 00:00:27 v #5821 > > │ 00:00:27 v #5822 > > ........................;;//////////////////////////////////.................... 00:00:27 v #5823 > > ............;;<................................................................. 00:00:27 v #5824 > > │ 00:00:27 v #5825 > > .....................;;//////////////////////////////////////................... 00:00:27 v #5826 > > .........;//////................................................................ 00:00:27 v #5827 > > │ 00:00:27 v #5828 > > ..................;///////////////////////////////////////////<................. 00:00:27 v #5829 > > .......;//////////.............................................................. 00:00:27 v #5830 > > │ 00:00:27 v #5831 > > ................;///////////////////////////////////////////////................ 00:00:27 v #5832 > > ....;;/////////////......................;...................................... 00:00:27 v #5833 > > │ 00:00:27 v #5834 > > ................>>>//////////////////////////////////////////////<.............. 00:00:27 v #5835 > > .;;/////////////////<.................;;///<.................................... 00:00:27 v #5836 > > │ 00:00:27 v #5837 > > ................>>>>///////////////////////////////////////////////............; 00:00:27 v #5838 > > >/////////////////////.............;;////////................................... 00:00:27 v #5839 > > │ 00:00:27 v #5840 > > ................;>>>>>//////////////////////////////////////////////<........;;> 00:00:27 v #5841 > > >>/////////////////////<.........;;;>/////////<................................. 00:00:27 v #5842 > > │ 00:00:27 v #5843 > > ..................>>>>>//////////////////////////////////////////////<........>> 00:00:27 v #5844 > > >>>>////////////////////..........>>>>/////////................................. 00:00:27 v #5845 > > │ 00:00:27 v #5846 > > ...................>>>>>//////////////////////////////////////////////.......... 00:00:27 v #5847 > > >>>>>//////////////////............>>>>>/////................................... 00:00:27 v #5848 > > │ 00:00:27 v #5849 > > .....................>>>>>//////////////////////////////////////////............ 00:00:27 v #5850 > > .>>>>>>/////////////.................>>>>/...................................... 00:00:27 v #5851 > > │ 00:00:27 v #5852 > > ......................>>>>>>/////////////////////////////////////............... 00:00:27 v #5853 > > ...>>>>>//////////.............................................................. 00:00:27 v #5854 > > │ 00:00:27 v #5855 > > ........................>>>>>//////////////////////////////////................. 00:00:27 v #5856 > > ....>>>>>>/////................................................................. 00:00:27 v #5857 > > │ 00:00:27 v #5858 > > ..........................>>>>>//////////////////////////////................... 00:00:27 v #5859 > > ......>>>>>//................................................................... 00:00:27 v #5860 > > │ 00:00:27 v #5861 > > ...........................>>>>>///////////////////////////..................... 00:00:27 v #5862 > > ................................................................................ 00:00:27 v #5863 > > │ 00:00:27 v #5864 > > .............................>>>>>///////////////////////....................... 00:00:27 v #5865 > > ................................................................................ 00:00:27 v #5866 > > │ 00:00:27 v #5867 > > ..............................>>>>>///////////////////.......................... 00:00:27 v #5868 > > ................................................................................ 00:00:27 v #5869 > > │ 00:00:27 v #5870 > > ................................>>>>>///////////////............................ 00:00:27 v #5871 > > ................................................................................ 00:00:27 v #5872 > > │ 00:00:27 v #5873 > > .................................>>>>>>///////////.............................. 00:00:27 v #5874 > > ................................................................................ 00:00:27 v #5875 > > │ 00:00:27 v #5876 > > ...................................=>>>>///////................................. 00:00:27 v #5877 > > ................................................................................ 00:00:27 v #5878 > > │ 00:00:27 v #5879 > > ......................................>>>>///................................... 00:00:27 v #5880 > > ................................................................................ 00:00:27 v #5881 > > │ 00:00:27 v #5882 > > ........................................=>/..................................... 00:00:27 v #5883 > > ................................................................................ 00:00:27 v #5884 > > │ 00:00:27 v #5885 > > ................................................................................ 00:00:27 v #5886 > > ................................................................................ 00:00:27 v #5887 > > │ 00:00:27 v #5888 > > ................................................................................ 00:00:27 v #5889 > > ................................................................................ 00:00:27 v #5890 > > │ 00:00:27 v #5891 > > ................................................................................ 00:00:27 v #5892 > > ................................................................................ 00:00:27 v #5893 > > │ 00:00:27 v #5894 > > ................................................................................ 00:00:27 v #5895 > > ................................................................................ 00:00:27 v #5896 > > │ 00:00:27 v #5897 > > ................................................................................ 00:00:27 v #5898 > > ................................................................................ 00:00:27 v #5899 > > │ 00:00:27 v #5900 > > ................................................................................ 00:00:27 v #5901 > > ................................................................................ 00:00:27 v #5902 > > │ 00:00:27 v #5903 > > ................................................................................ 00:00:27 v #5904 > > ................................................................................ 00:00:27 v #5905 > > │ 00:00:27 v #5906 > > ................................................................................ 00:00:27 v #5907 > > ................................................................................ 00:00:27 v #5908 > > │ 00:00:27 v #5909 > > │ 00:00:27 v #5910 > > ................................................................................ 00:00:27 v #5911 > > ................................................................................ 00:00:27 v #5912 > > │ 00:00:27 v #5913 > > ................................................................................ 00:00:27 v #5914 > > ................................................................................ 00:00:27 v #5915 > > │ 00:00:27 v #5916 > > ................................................................................ 00:00:27 v #5917 > > ................................................................................ 00:00:27 v #5918 > > │ 00:00:27 v #5919 > > ................................................................................ 00:00:27 v #5920 > > ................................................................................ 00:00:27 v #5921 > > │ 00:00:27 v #5922 > > ................................................................................ 00:00:27 v #5923 > > ................................................................................ 00:00:27 v #5924 > > │ 00:00:27 v #5925 > > ................................................................................ 00:00:27 v #5926 > > ................................................................................ 00:00:27 v #5927 > > │ 00:00:27 v #5928 > > ................................................................................ 00:00:27 v #5929 > > ................................................................................ 00:00:27 v #5930 > > │ 00:00:27 v #5931 > > ..............................................;/................................ 00:00:27 v #5932 > > ................................................................................ 00:00:27 v #5933 > > │ 00:00:27 v #5934 > > ............................................;////............................... 00:00:27 v #5935 > > ................................................................................ 00:00:27 v #5936 > > │ 00:00:27 v #5937 > > .........................................;;///////<............................. 00:00:27 v #5938 > > ................................................................................ 00:00:27 v #5939 > > │ 00:00:27 v #5940 > > ......................................;;////////////............................ 00:00:27 v #5941 > > ................................................................................ 00:00:27 v #5942 > > │ 00:00:27 v #5943 > > ....................................;;///////////////<.......................... 00:00:27 v #5944 > > ................................................................................ 00:00:27 v #5945 > > │ 00:00:27 v #5946 > > .................................;/////////////////////<........................ 00:00:27 v #5947 > > ................................................................................ 00:00:27 v #5948 > > │ 00:00:27 v #5949 > > ..............................;;;////////////////////////....................... 00:00:27 v #5950 > > ................................................................................ 00:00:27 v #5951 > > │ 00:00:27 v #5952 > > ............................;/////////////////////////////<..................... 00:00:27 v #5953 > > ................................................................................ 00:00:27 v #5954 > > │ 00:00:27 v #5955 > > .........................;;/////////////////////////////////.................... 00:00:27 v #5956 > > ...........;;/.................................................................. 00:00:27 v #5957 > > │ 00:00:27 v #5958 > > .......................;;/////////////////////////////////////.................. 00:00:27 v #5959 > > .........;;/////................................................................ 00:00:27 v #5960 > > │ 00:00:27 v #5961 > > ....................;;/////////////////////////////////////////................. 00:00:27 v #5962 > > .......;//////////.............................................................. 00:00:27 v #5963 > > │ 00:00:27 v #5964 > > ..................;;/////////////////////////////////////////////............... 00:00:27 v #5965 > > ....;;/////////////......................;...................................... 00:00:27 v #5966 > > │ 00:00:27 v #5967 > > ................;;>///////////////////////////////////////////////<............. 00:00:27 v #5968 > > ..;;/////////////////.................;;///<.................................... 00:00:27 v #5969 > > │ 00:00:27 v #5970 > > ................;>>>////////////////////////////////////////////////...........; 00:00:27 v #5971 > > ;/////////////////////.............\;////////<.................................. 00:00:27 v #5972 > > │ 00:00:27 v #5973 > > ................>>>>>>///////////////////////////////////////////////<.......;;; 00:00:27 v #5974 > > >>>/////////////////////.........;;;>//////////................................. 00:00:27 v #5975 > > │ 00:00:27 v #5976 > > ................>>>>>>>>//////////////////////////////////////////////.......>>> 00:00:27 v #5977 > > >>>>////////////////////.........>>>>>>////////................................. 00:00:27 v #5978 > > │ 00:00:27 v #5979 > > ..................>>>>>>>>//////////////////////////////////////////...........> 00:00:27 v #5980 > > >>>>>>////////////////.............>>>>>/////................................... 00:00:27 v #5981 > > │ 00:00:27 v #5982 > > ...................\>>>>>>>///////////////////////////////////////.............. 00:00:27 v #5983 > > .>>>>>>>////////////.................>>>>//..................................... 00:00:27 v #5984 > > │ 00:00:27 v #5985 > > .....................>>>>>>>>///////////////////////////////////................ 00:00:27 v #5986 > > ..>>>>>>>/////////.............................................................. 00:00:27 v #5987 > > │ 00:00:27 v #5988 > > .......................>>>>>>>>///////////////////////////////.................. 00:00:27 v #5989 > > ....>>>>>>>/////................................................................ 00:00:27 v #5990 > > │ 00:00:27 v #5991 > > .........................>>>>>>>/////////////////////////////................... 00:00:27 v #5992 > > ......>>>>>>//.................................................................. 00:00:27 v #5993 > > │ 00:00:27 v #5994 > > ..........................>>>>>>>>/////////////////////////..................... 00:00:27 v #5995 > > ................................................................................ 00:00:27 v #5996 > > │ 00:00:27 v #5997 > > ............................>>>>>>>>/////////////////////....................... 00:00:27 v #5998 > > ................................................................................ 00:00:27 v #5999 > > │ 00:00:27 v #6000 > > ..............................>>>>>>>>/////////////////......................... 00:00:27 v #6001 > > ................................................................................ 00:00:27 v #6002 > > │ 00:00:27 v #6003 > > ................................>>>>>>>//////////////........................... 00:00:27 v #6004 > > ................................................................................ 00:00:27 v #6005 > > │ 00:00:27 v #6006 > > .................................>>>>>>>>//////////............................. 00:00:27 v #6007 > > ................................................................................ 00:00:27 v #6008 > > │ 00:00:27 v #6009 > > ....................................>>>>>>>//////............................... 00:00:27 v #6010 > > ................................................................................ 00:00:27 v #6011 > > │ 00:00:27 v #6012 > > ........................................>>>>///................................. 00:00:27 v #6013 > > ................................................................................ 00:00:27 v #6014 > > │ 00:00:27 v #6015 > > ...........................................>>/.................................. 00:00:27 v #6016 > > ................................................................................ 00:00:27 v #6017 > > │ 00:00:27 v #6018 > > ................................................................................ 00:00:27 v #6019 > > ................................................................................ 00:00:27 v #6020 > > │ 00:00:27 v #6021 > > ................................................................................ 00:00:27 v #6022 > > ................................................................................ 00:00:27 v #6023 > > │ 00:00:27 v #6024 > > ................................................................................ 00:00:27 v #6025 > > ................................................................................ 00:00:27 v #6026 > > │ 00:00:27 v #6027 > > ................................................................................ 00:00:27 v #6028 > > ................................................................................ 00:00:27 v #6029 > > │ 00:00:27 v #6030 > > ................................................................................ 00:00:27 v #6031 > > ................................................................................ 00:00:27 v #6032 > > │ 00:00:27 v #6033 > > ................................................................................ 00:00:27 v #6034 > > ................................................................................ 00:00:27 v #6035 > > │ 00:00:27 v #6036 > > ................................................................................ 00:00:27 v #6037 > > ................................................................................ 00:00:27 v #6038 > > │ 00:00:27 v #6039 > > ................................................................................ 00:00:27 v #6040 > > ................................................................................ 00:00:27 v #6041 > > │ 00:00:27 v #6042 > > │ 00:00:27 v #6043 > > ................................................................................ 00:00:27 v #6044 > > ................................................................................ 00:00:27 v #6045 > > │ 00:00:27 v #6046 > > ................................................................................ 00:00:27 v #6047 > > ................................................................................ 00:00:27 v #6048 > > │ 00:00:27 v #6049 > > ................................................................................ 00:00:27 v #6050 > > ................................................................................ 00:00:27 v #6051 > > │ 00:00:27 v #6052 > > ................................................................................ 00:00:27 v #6053 > > ................................................................................ 00:00:27 v #6054 > > │ 00:00:27 v #6055 > > ................................................................................ 00:00:27 v #6056 > > ................................................................................ 00:00:27 v #6057 > > │ 00:00:27 v #6058 > > ................................................................................ 00:00:27 v #6059 > > ................................................................................ 00:00:27 v #6060 > > │ 00:00:27 v #6061 > > ................................................................................ 00:00:27 v #6062 > > ................................................................................ 00:00:27 v #6063 > > │ 00:00:27 v #6064 > > .............................................;/................................. 00:00:27 v #6065 > > ................................................................................ 00:00:27 v #6066 > > │ 00:00:27 v #6067 > > ...........................................;;////............................... 00:00:27 v #6068 > > ................................................................................ 00:00:27 v #6069 > > │ 00:00:27 v #6070 > > ........................................;;////////<............................. 00:00:27 v #6071 > > ................................................................................ 00:00:27 v #6072 > > │ 00:00:27 v #6073 > > ......................................;/////////////............................ 00:00:27 v #6074 > > ................................................................................ 00:00:27 v #6075 > > │ 00:00:27 v #6076 > > ....................................;/////////////////.......................... 00:00:27 v #6077 > > ................................................................................ 00:00:27 v #6078 > > │ 00:00:27 v #6079 > > .................................;;////////////////////<........................ 00:00:27 v #6080 > > ................................................................................ 00:00:27 v #6081 > > │ 00:00:27 v #6082 > > ...............................;/////////////////////////....................... 00:00:27 v #6083 > > ................................................................................ 00:00:27 v #6084 > > │ 00:00:27 v #6085 > > .............................;/////////////////////////////..................... 00:00:27 v #6086 > > ................................................................................ 00:00:27 v #6087 > > │ 00:00:27 v #6088 > > ..........................;;////////////////////////////////<................... 00:00:27 v #6089 > > ...........;;/.................................................................. 00:00:27 v #6090 > > │ 00:00:27 v #6091 > > ........................;;////////////////////////////////////.................. 00:00:27 v #6092 > > ........;;//////................................................................ 00:00:27 v #6093 > > │ 00:00:27 v #6094 > > ......................;/////////////////////////////////////////................ 00:00:27 v #6095 > > ......;;//////////.............................................................. 00:00:27 v #6096 > > │ 00:00:27 v #6097 > > ...................;;////////////////////////////////////////////<.............. 00:00:27 v #6098 > > ....;;;////////////<....................;;...................................... 00:00:27 v #6099 > > │ 00:00:27 v #6100 > > .................;;////////////////////////////////////////////////<............ 00:00:27 v #6101 > > ..;;/////////////////................;;;////.................................... 00:00:27 v #6102 > > │ 00:00:27 v #6103 > > ................;;>>>////////////////////////////////////////////////........... 00:00:27 v #6104 > > ;;/////////////////////............\;;///////<.................................. 00:00:27 v #6105 > > │ 00:00:27 v #6106 > > ................;>>>>>>///////////////////////////////////////////////.......;;; 00:00:27 v #6107 > > ;>>/////////////////////.........;;;>//////////................................. 00:00:27 v #6108 > > │ 00:00:27 v #6109 > > ...............;>>>>>>>>/////////////////////////////////////////////........;>> 00:00:27 v #6110 > > >>>>>///////////////////.........;>>>>>////////................................. 00:00:27 v #6111 > > │ 00:00:27 v #6112 > > ................>>>>>>>>>>/////////////////////////////////////////...........>> 00:00:27 v #6113 > > >>>>>>>///////////////.............>>>>>>////................................... 00:00:27 v #6114 > > │ 00:00:27 v #6115 > > ..................>>>>>>>>>>>////////////////////////////////////............... 00:00:27 v #6116 > > >>>>>>>>>///////////................\>>>>>/..................................... 00:00:27 v #6117 > > │ 00:00:27 v #6118 > > ....................>>>>>>>>>>//////////////////////////////////................ 00:00:27 v #6119 > > ..>>>>>>>>////////.............................................................. 00:00:27 v #6120 > > │ 00:00:27 v #6121 > > ......................>>>>>>>>>>//////////////////////////////.................. 00:00:27 v #6122 > > ....>>>>>>>>////................................................................ 00:00:27 v #6123 > > │ 00:00:27 v #6124 > > ........................>>>>>>>>>>///////////////////////////................... 00:00:27 v #6125 > > ......>>>>>>>//................................................................. 00:00:27 v #6126 > > │ 00:00:27 v #6127 > > ..........................>>>>>>>>>>///////////////////////..................... 00:00:27 v #6128 > > ................................................................................ 00:00:27 v #6129 > > │ 00:00:27 v #6130 > > ............................>>>>>>>>>>///////////////////....................... 00:00:27 v #6131 > > ................................................................................ 00:00:27 v #6132 > > │ 00:00:27 v #6133 > > ..............................>>>>>>>>>>////////////////........................ 00:00:27 v #6134 > > ................................................................................ 00:00:27 v #6135 > > │ 00:00:27 v #6136 > > ................................>>>>>>>>>>////////////.......................... 00:00:27 v #6137 > > ................................................................................ 00:00:27 v #6138 > > │ 00:00:27 v #6139 > > ..................................>>>>>>>>>>////////............................ 00:00:27 v #6140 > > ................................................................................ 00:00:27 v #6141 > > │ 00:00:27 v #6142 > > ....................................=>>>>>>>>>/////............................. 00:00:27 v #6143 > > ................................................................................ 00:00:27 v #6144 > > │ 00:00:27 v #6145 > > ..........................................>>>>>//............................... 00:00:27 v #6146 > > ................................................................................ 00:00:27 v #6147 > > │ 00:00:27 v #6148 > > .............................................../................................ 00:00:27 v #6149 > > ................................................................................ 00:00:27 v #6150 > > │ 00:00:27 v #6151 > > ................................................................................ 00:00:27 v #6152 > > ................................................................................ 00:00:27 v #6153 > > │ 00:00:27 v #6154 > > ................................................................................ 00:00:27 v #6155 > > ................................................................................ 00:00:27 v #6156 > > │ 00:00:27 v #6157 > > ................................................................................ 00:00:27 v #6158 > > ................................................................................ 00:00:27 v #6159 > > │ 00:00:27 v #6160 > > ................................................................................ 00:00:27 v #6161 > > ................................................................................ 00:00:27 v #6162 > > │ 00:00:27 v #6163 > > ................................................................................ 00:00:27 v #6164 > > ................................................................................ 00:00:27 v #6165 > > │ 00:00:27 v #6166 > > ................................................................................ 00:00:27 v #6167 > > ................................................................................ 00:00:27 v #6168 > > │ 00:00:27 v #6169 > > ................................................................................ 00:00:27 v #6170 > > ................................................................................ 00:00:27 v #6171 > > │ 00:00:27 v #6172 > > ................................................................................ 00:00:27 v #6173 > > ................................................................................ 00:00:27 v #6174 > > │ 00:00:27 v #6175 > > │ 00:00:27 v #6176 > > ................................................................................ 00:00:27 v #6177 > > ................................................................................ 00:00:27 v #6178 > > │ 00:00:27 v #6179 > > ................................................................................ 00:00:27 v #6180 > > ................................................................................ 00:00:27 v #6181 > > │ 00:00:27 v #6182 > > ................................................................................ 00:00:27 v #6183 > > ................................................................................ 00:00:27 v #6184 > > │ 00:00:27 v #6185 > > ................................................................................ 00:00:27 v #6186 > > ................................................................................ 00:00:27 v #6187 > > │ 00:00:27 v #6188 > > ................................................................................ 00:00:27 v #6189 > > ................................................................................ 00:00:27 v #6190 > > │ 00:00:27 v #6191 > > ................................................................................ 00:00:27 v #6192 > > ................................................................................ 00:00:27 v #6193 > > │ 00:00:27 v #6194 > > ................................................................................ 00:00:27 v #6195 > > ................................................................................ 00:00:27 v #6196 > > │ 00:00:27 v #6197 > > ............................................;;.................................. 00:00:27 v #6198 > > ................................................................................ 00:00:27 v #6199 > > │ 00:00:27 v #6200 > > ..........................................;;////................................ 00:00:27 v #6201 > > ................................................................................ 00:00:27 v #6202 > > │ 00:00:27 v #6203 > > ........................................;;////////.............................. 00:00:27 v #6204 > > ................................................................................ 00:00:27 v #6205 > > │ 00:00:27 v #6206 > > ......................................;////////////<............................ 00:00:27 v #6207 > > ................................................................................ 00:00:27 v #6208 > > │ 00:00:27 v #6209 > > ....................................;////////////////<.......................... 00:00:27 v #6210 > > ................................................................................ 00:00:27 v #6211 > > │ 00:00:27 v #6212 > > ..................................;////////////////////<........................ 00:00:27 v #6213 > > ................................................................................ 00:00:27 v #6214 > > │ 00:00:27 v #6215 > > ................................;////////////////////////<...................... 00:00:27 v #6216 > > ................................................................................ 00:00:27 v #6217 > > │ 00:00:27 v #6218 > > ..............................;////////////////////////////..................... 00:00:27 v #6219 > > ................................................................................ 00:00:27 v #6220 > > │ 00:00:27 v #6221 > > ............................;////////////////////////////////................... 00:00:27 v #6222 > > ..........;;//.................................................................. 00:00:27 v #6223 > > │ 00:00:27 v #6224 > > ..........................;////////////////////////////////////................. 00:00:27 v #6225 > > ........;;//////................................................................ 00:00:27 v #6226 > > │ 00:00:27 v #6227 > > ........................;///////////////////////////////////////<............... 00:00:27 v #6228 > > .....;;;//////////.............................................................. 00:00:27 v #6229 > > │ 00:00:27 v #6230 > > ......................;///////////////////////////////////////////<............. 00:00:27 v #6231 > > ...\;;//////////////....................;<...................................... 00:00:27 v #6232 > > │ 00:00:27 v #6233 > > ....................;;//////////////////////////////////////////////<........... 00:00:27 v #6234 > > ..;;;/////////////////...............;;;///<.................................... 00:00:27 v #6235 > > │ 00:00:27 v #6236 > > ..................;;>////////////////////////////////////////////////........... 00:00:27 v #6237 > > ;;;/////////////////////...........;;;///////<.................................. 00:00:27 v #6238 > > │ 00:00:27 v #6239 > > ................;;>>>>>//////////////////////////////////////////////.........;; 00:00:27 v #6240 > > ;;>/////////////////////..........;;;//////////................................. 00:00:27 v #6241 > > │ 00:00:27 v #6242 > > ...............;;>>>>>>>>//////////////////////////////////////////.........\;;> 00:00:27 v #6243 > > >>>>>//////////////////..........;;>>>>////////................................. 00:00:27 v #6244 > > │ 00:00:27 v #6245 > > ..............;>>>>>>>>>>>>///////////////////////////////////////...........>>> 00:00:27 v #6246 > > >>>>>>>///////////////.............>>>>>>////................................... 00:00:27 v #6247 > > │ 00:00:27 v #6248 > > ................>>>>>>>>>>>>>////////////////////////////////////............... 00:00:27 v #6249 > > >>>>>>>>>>//////////.................>>>>>/..................................... 00:00:27 v #6250 > > │ 00:00:27 v #6251 > > ..................>>>>>>>>>>>>>>///////////////////////////////................. 00:00:27 v #6252 > > .\>>>>>>>>>////////...................=......................................... 00:00:27 v #6253 > > │ 00:00:27 v #6254 > > ....................\>>>>>>>>>>>>>////////////////////////////.................. 00:00:27 v #6255 > > ....>>>>>>>>>////............................................................... 00:00:27 v #6256 > > │ 00:00:27 v #6257 > > .......................>>>>>>>>>>>>>/////////////////////////................... 00:00:27 v #6258 > > ......>>>>>>>>>/................................................................ 00:00:27 v #6259 > > │ 00:00:27 v #6260 > > .........................>>>>>>>>>>>>>/////////////////////..................... 00:00:27 v #6261 > > ................................................................................ 00:00:27 v #6262 > > │ 00:00:27 v #6263 > > ...........................>>>>>>>>>>>>>//////////////////...................... 00:00:27 v #6264 > > ................................................................................ 00:00:27 v #6265 > > │ 00:00:27 v #6266 > > .............................>>>>>>>>>>>>>///////////////....................... 00:00:27 v #6267 > > ................................................................................ 00:00:27 v #6268 > > │ 00:00:27 v #6269 > > ...............................>>>>>>>>>>>>>>//////////......................... 00:00:27 v #6270 > > ................................................................................ 00:00:27 v #6271 > > │ 00:00:27 v #6272 > > ..................................>>>>>>>>>>>>>///////.......................... 00:00:27 v #6273 > > ................................................................................ 00:00:27 v #6274 > > │ 00:00:27 v #6275 > > ....................................=>>>>>>>>>>>>////........................... 00:00:27 v #6276 > > ................................................................................ 00:00:27 v #6277 > > │ 00:00:27 v #6278 > > ............................................=>>>>>/............................. 00:00:27 v #6279 > > ................................................................................ 00:00:27 v #6280 > > │ 00:00:27 v #6281 > > ................................................................................ 00:00:27 v #6282 > > ................................................................................ 00:00:27 v #6283 > > │ 00:00:27 v #6284 > > ................................................................................ 00:00:27 v #6285 > > ................................................................................ 00:00:27 v #6286 > > │ 00:00:27 v #6287 > > ................................................................................ 00:00:27 v #6288 > > ................................................................................ 00:00:27 v #6289 > > │ 00:00:27 v #6290 > > ................................................................................ 00:00:27 v #6291 > > ................................................................................ 00:00:27 v #6292 > > │ 00:00:27 v #6293 > > ................................................................................ 00:00:27 v #6294 > > ................................................................................ 00:00:27 v #6295 > > │ 00:00:27 v #6296 > > ................................................................................ 00:00:27 v #6297 > > ................................................................................ 00:00:27 v #6298 > > │ 00:00:27 v #6299 > > ................................................................................ 00:00:27 v #6300 > > ................................................................................ 00:00:27 v #6301 > > │ 00:00:27 v #6302 > > ................................................................................ 00:00:27 v #6303 > > ................................................................................ 00:00:27 v #6304 > > │ 00:00:27 v #6305 > > ................................................................................ 00:00:27 v #6306 > > ................................................................................ 00:00:27 v #6307 > > │ 00:00:27 v #6308 > > │ 00:00:27 v #6309 > > ................................................................................ 00:00:27 v #6310 > > ................................................................................ 00:00:27 v #6311 > > │ 00:00:27 v #6312 > > ................................................................................ 00:00:27 v #6313 > > ................................................................................ 00:00:27 v #6314 > > │ 00:00:27 v #6315 > > ................................................................................ 00:00:27 v #6316 > > ................................................................................ 00:00:27 v #6317 > > │ 00:00:27 v #6318 > > ................................................................................ 00:00:27 v #6319 > > ................................................................................ 00:00:27 v #6320 > > │ 00:00:27 v #6321 > > ................................................................................ 00:00:27 v #6322 > > ................................................................................ 00:00:27 v #6323 > > │ 00:00:27 v #6324 > > ................................................................................ 00:00:27 v #6325 > > ................................................................................ 00:00:27 v #6326 > > │ 00:00:27 v #6327 > > ................................................................................ 00:00:27 v #6328 > > ................................................................................ 00:00:27 v #6329 > > │ 00:00:27 v #6330 > > ...........................................;/<.................................. 00:00:27 v #6331 > > ................................................................................ 00:00:27 v #6332 > > │ 00:00:27 v #6333 > > .........................................;;////<................................ 00:00:27 v #6334 > > ................................................................................ 00:00:27 v #6335 > > │ 00:00:27 v #6336 > > .......................................;;////////<.............................. 00:00:27 v #6337 > > ................................................................................ 00:00:27 v #6338 > > │ 00:00:27 v #6339 > > .....................................;;////////////<............................ 00:00:27 v #6340 > > ................................................................................ 00:00:27 v #6341 > > │ 00:00:27 v #6342 > > ...................................;;;///////////////<.......................... 00:00:27 v #6343 > > ................................................................................ 00:00:27 v #6344 > > │ 00:00:27 v #6345 > > .................................;;////////////////////<........................ 00:00:27 v #6346 > > ................................................................................ 00:00:27 v #6347 > > │ 00:00:27 v #6348 > > ................................;;///////////////////////<...................... 00:00:27 v #6349 > > ................................................................................ 00:00:27 v #6350 > > │ 00:00:27 v #6351 > > ..............................;;///////////////////////////<.................... 00:00:27 v #6352 > > ................................................................................ 00:00:27 v #6353 > > │ 00:00:27 v #6354 > > ............................;;///////////////////////////////<.................. 00:00:27 v #6355 > > ..........;;//.................................................................. 00:00:27 v #6356 > > │ 00:00:27 v #6357 > > ..........................;;;//////////////////////////////////................. 00:00:27 v #6358 > > .......;;;//////................................................................ 00:00:27 v #6359 > > │ 00:00:27 v #6360 > > .........................;;//////////////////////////////////////............... 00:00:27 v #6361 > > .....;;;//////////.............................................................. 00:00:27 v #6362 > > │ 00:00:27 v #6363 > > .......................;;//////////////////////////////////////////<............ 00:00:27 v #6364 > > ...;;;;/////////////....................;/...................................... 00:00:27 v #6365 > > │ 00:00:27 v #6366 > > .....................;;//////////////////////////////////////////////........... 00:00:27 v #6367 > > .;;;;/////////////////...............;;;////.................................... 00:00:27 v #6368 > > │ 00:00:27 v #6369 > > ...................;;;///////////////////////////////////////////////........... 00:00:27 v #6370 > > ;;;;////////////////////...........;;;////////.................................. 00:00:27 v #6371 > > │ 00:00:27 v #6372 > > ..................;;>>>>////////////////////////////////////////////..........;; 00:00:27 v #6373 > > ;;;>////////////////////..........;;;//////////................................. 00:00:27 v #6374 > > │ 00:00:27 v #6375 > > ................;;>>>>>>>>////////////////////////////////////////...........;;; 00:00:27 v #6376 > > >>>>>>/////////////////..........;;>>>>///////.................................. 00:00:27 v #6377 > > │ 00:00:27 v #6378 > > ..............;;>>>>>>>>>>>>/////////////////////////////////////...........;>>> 00:00:27 v #6379 > > >>>>>>>>/////////////.............>>>>>>>>///................................... 00:00:27 v #6380 > > │ 00:00:27 v #6381 > > ..............>>>>>>>>>>>>>>>>>/////////////////////////////////...............> 00:00:27 v #6382 > > >>>>>>>>>>//////////................\>>>>>>/.................................... 00:00:27 v #6383 > > │ 00:00:27 v #6384 > > ................\>>>>>>>>>>>>>>>>//////////////////////////////................. 00:00:27 v #6385 > > .>>>>>>>>>>>///////....................=........................................ 00:00:27 v #6386 > > │ 00:00:27 v #6387 > > ...................>>>>>>>>>>>>>>>>///////////////////////////.................. 00:00:27 v #6388 > > ...>>>>>>>>>>>>///.............................................................. 00:00:27 v #6389 > > │ 00:00:27 v #6390 > > .....................\>>>>>>>>>>>>>>>>///////////////////////................... 00:00:27 v #6391 > > ......>>>>>>>>>>................................................................ 00:00:27 v #6392 > > │ 00:00:27 v #6393 > > ........................>>>>>>>>>>>>>>>>////////////////////.................... 00:00:27 v #6394 > > ................................................................................ 00:00:27 v #6395 > > │ 00:00:27 v #6396 > > ..........................>>>>>>>>>>>>>>>>/////////////////..................... 00:00:27 v #6397 > > ................................................................................ 00:00:27 v #6398 > > │ 00:00:27 v #6399 > > .............................>>>>>>>>>>>>>>>>/////////////...................... 00:00:27 v #6400 > > ................................................................................ 00:00:27 v #6401 > > │ 00:00:27 v #6402 > > ...............................>>>>>>>>>>>>>>>>/////////........................ 00:00:27 v #6403 > > ................................................................................ 00:00:27 v #6404 > > │ 00:00:27 v #6405 > > ..................................>>>>>>>>>>>>>>>>/////......................... 00:00:27 v #6406 > > ................................................................................ 00:00:27 v #6407 > > │ 00:00:27 v #6408 > > ....................................=>>>>>>>>>>>>>>>//.......................... 00:00:27 v #6409 > > ................................................................................ 00:00:27 v #6410 > > │ 00:00:27 v #6411 > > .................................................>>>>........................... 00:00:27 v #6412 > > ................................................................................ 00:00:27 v #6413 > > │ 00:00:27 v #6414 > > ................................................................................ 00:00:27 v #6415 > > ................................................................................ 00:00:27 v #6416 > > │ 00:00:27 v #6417 > > ................................................................................ 00:00:27 v #6418 > > ................................................................................ 00:00:27 v #6419 > > │ 00:00:27 v #6420 > > ................................................................................ 00:00:27 v #6421 > > ................................................................................ 00:00:27 v #6422 > > │ 00:00:27 v #6423 > > ................................................................................ 00:00:27 v #6424 > > ................................................................................ 00:00:27 v #6425 > > │ 00:00:27 v #6426 > > ................................................................................ 00:00:27 v #6427 > > ................................................................................ 00:00:27 v #6428 > > │ 00:00:27 v #6429 > > ................................................................................ 00:00:27 v #6430 > > ................................................................................ 00:00:27 v #6431 > > │ 00:00:27 v #6432 > > ................................................................................ 00:00:27 v #6433 > > ................................................................................ 00:00:27 v #6434 > > │ 00:00:27 v #6435 > > ................................................................................ 00:00:27 v #6436 > > ................................................................................ 00:00:27 v #6437 > > │ 00:00:27 v #6438 > > ................................................................................ 00:00:27 v #6439 > > ................................................................................ 00:00:27 v #6440 > > │ 00:00:27 v #6441 > > │ 00:00:27 v #6442 > > ................................................................................ 00:00:27 v #6443 > > ................................................................................ 00:00:27 v #6444 > > │ 00:00:27 v #6445 > > ................................................................................ 00:00:27 v #6446 > > ................................................................................ 00:00:27 v #6447 > > │ 00:00:27 v #6448 > > ................................................................................ 00:00:27 v #6449 > > ................................................................................ 00:00:27 v #6450 > > │ 00:00:27 v #6451 > > ................................................................................ 00:00:27 v #6452 > > ................................................................................ 00:00:27 v #6453 > > │ 00:00:27 v #6454 > > ................................................................................ 00:00:27 v #6455 > > ................................................................................ 00:00:27 v #6456 > > │ 00:00:27 v #6457 > > ................................................................................ 00:00:27 v #6458 > > ................................................................................ 00:00:27 v #6459 > > │ 00:00:27 v #6460 > > ................................................................................ 00:00:27 v #6461 > > ................................................................................ 00:00:27 v #6462 > > │ 00:00:27 v #6463 > > ..........................................;//................................... 00:00:27 v #6464 > > ................................................................................ 00:00:27 v #6465 > > │ 00:00:27 v #6466 > > ........................................;;/////................................. 00:00:27 v #6467 > > ................................................................................ 00:00:27 v #6468 > > │ 00:00:27 v #6469 > > ......................................;;/////////............................... 00:00:27 v #6470 > > ................................................................................ 00:00:27 v #6471 > > │ 00:00:27 v #6472 > > ....................................;;;////////////............................. 00:00:27 v #6473 > > ................................................................................ 00:00:27 v #6474 > > │ 00:00:27 v #6475 > > ..................................;;;////////////////........................... 00:00:27 v #6476 > > ................................................................................ 00:00:27 v #6477 > > │ 00:00:27 v #6478 > > ................................;;;;///////////////////<........................ 00:00:27 v #6479 > > ................................................................................ 00:00:27 v #6480 > > │ 00:00:27 v #6481 > > ..............................;;;;///////////////////////<...................... 00:00:27 v #6482 > > ................................................................................ 00:00:27 v #6483 > > │ 00:00:27 v #6484 > > .............................;;;;//////////////////////////<.................... 00:00:27 v #6485 > > ................................................................................ 00:00:27 v #6486 > > │ 00:00:27 v #6487 > > ...........................;;;;///////////////////////////////.................. 00:00:27 v #6488 > > .........;;;//.................................................................. 00:00:27 v #6489 > > │ 00:00:27 v #6490 > > ..........................;;;;//////////////////////////////////................ 00:00:27 v #6491 > > ......;;;;//////................................................................ 00:00:27 v #6492 > > │ 00:00:27 v #6493 > > ........................;;;;//////////////////////////////////////.............. 00:00:27 v #6494 > > ....;;;;;/////////.............................................................. 00:00:27 v #6495 > > │ 00:00:27 v #6496 > > ......................;;;;;/////////////////////////////////////////............ 00:00:27 v #6497 > > ...;;;;/////////////<..................<;<...................................... 00:00:27 v #6498 > > │ 00:00:27 v #6499 > > .....................;;;;///////////////////////////////////////////............ 00:00:27 v #6500 > > .;;;;;/////////////////..............;;;////.................................... 00:00:27 v #6501 > > │ 00:00:27 v #6502 > > ...................;;;;;////////////////////////////////////////////............ 00:00:27 v #6503 > > ;;;;////////////////////...........;;;;///////.................................. 00:00:27 v #6504 > > │ 00:00:27 v #6505 > > ..................;;;;;>///////////////////////////////////////////...........;; 00:00:27 v #6506 > > ;;;>////////////////////..........;;;//////////................................. 00:00:27 v #6507 > > │ 00:00:27 v #6508 > > ................;;;;;>>>>>////////////////////////////////////////...........;;; 00:00:27 v #6509 > > ;;>>>>/////////////////..........;;;>>>>//////.................................. 00:00:27 v #6510 > > │ 00:00:27 v #6511 > > ...............;;;>>>>>>>>>>>////////////////////////////////////...........;;>> 00:00:27 v #6512 > > >>>>>>>>>/////////////............>>>>>>>>///................................... 00:00:27 v #6513 > > │ 00:00:27 v #6514 > > .............;;;>>>>>>>>>>>>>>>>////////////////////////////////..............>> 00:00:27 v #6515 > > >>>>>>>>>>>/////////................>>>>>>>/.................................... 00:00:27 v #6516 > > │ 00:00:27 v #6517 > > ..............\>>>>>>>>>>>>>>>>>>>/////////////////////////////................. 00:00:27 v #6518 > > .>>>>>>>>>>>>>/////....................>........................................ 00:00:27 v #6519 > > │ 00:00:27 v #6520 > > .................>>>>>>>>>>>>>>>>>>>>/////////////////////////.................. 00:00:27 v #6521 > > ...>>>>>>>>>>>>>//.............................................................. 00:00:27 v #6522 > > │ 00:00:27 v #6523 > > ....................>>>>>>>>>>>>>>>>>>>>/////////////////////................... 00:00:27 v #6524 > > ......>>>>>>>>>>>............................................................... 00:00:27 v #6525 > > │ 00:00:27 v #6526 > > .......................>>>>>>>>>>>>>>>>>>>//////////////////.................... 00:00:27 v #6527 > > ................................................................................ 00:00:27 v #6528 > > │ 00:00:27 v #6529 > > ..........................>>>>>>>>>>>>>>>>>>>//////////////..................... 00:00:27 v #6530 > > ................................................................................ 00:00:27 v #6531 > > │ 00:00:27 v #6532 > > ............................>>>>>>>>>>>>>>>>>>>>///////////..................... 00:00:27 v #6533 > > ................................................................................ 00:00:27 v #6534 > > │ 00:00:27 v #6535 > > ...............................>>>>>>>>>>>>>>>>>>>////////...................... 00:00:27 v #6536 > > ................................................................................ 00:00:27 v #6537 > > │ 00:00:27 v #6538 > > ..................................>>>>>>>>>>>>>>>>>>>////....................... 00:00:27 v #6539 > > ................................................................................ 00:00:27 v #6540 > > │ 00:00:27 v #6541 > > .....................................>>>>>>>>>>>>>>>>>>/........................ 00:00:27 v #6542 > > ................................................................................ 00:00:27 v #6543 > > │ 00:00:27 v #6544 > > ................................................................................ 00:00:27 v #6545 > > ................................................................................ 00:00:27 v #6546 > > │ 00:00:27 v #6547 > > ................................................................................ 00:00:27 v #6548 > > ................................................................................ 00:00:27 v #6549 > > │ 00:00:27 v #6550 > > ................................................................................ 00:00:27 v #6551 > > ................................................................................ 00:00:27 v #6552 > > │ 00:00:27 v #6553 > > ................................................................................ 00:00:27 v #6554 > > ................................................................................ 00:00:27 v #6555 > > │ 00:00:27 v #6556 > > ................................................................................ 00:00:27 v #6557 > > ................................................................................ 00:00:27 v #6558 > > │ 00:00:27 v #6559 > > ................................................................................ 00:00:27 v #6560 > > ................................................................................ 00:00:27 v #6561 > > │ 00:00:27 v #6562 > > ................................................................................ 00:00:27 v #6563 > > ................................................................................ 00:00:27 v #6564 > > │ 00:00:27 v #6565 > > ................................................................................ 00:00:27 v #6566 > > ................................................................................ 00:00:27 v #6567 > > │ 00:00:27 v #6568 > > ................................................................................ 00:00:27 v #6569 > > ................................................................................ 00:00:27 v #6570 > > │ 00:00:27 v #6571 > > ................................................................................ 00:00:27 v #6572 > > ................................................................................ 00:00:27 v #6573 > > │ 00:00:27 v #6574 > > │ 00:00:27 v #6575 > > ................................................................................ 00:00:27 v #6576 > > ................................................................................ 00:00:27 v #6577 > > │ 00:00:27 v #6578 > > ................................................................................ 00:00:27 v #6579 > > ................................................................................ 00:00:27 v #6580 > > │ 00:00:27 v #6581 > > ................................................................................ 00:00:27 v #6582 > > ................................................................................ 00:00:27 v #6583 > > │ 00:00:27 v #6584 > > ................................................................................ 00:00:27 v #6585 > > ................................................................................ 00:00:27 v #6586 > > │ 00:00:27 v #6587 > > ................................................................................ 00:00:27 v #6588 > > ................................................................................ 00:00:27 v #6589 > > │ 00:00:27 v #6590 > > ................................................................................ 00:00:27 v #6591 > > ................................................................................ 00:00:27 v #6592 > > │ 00:00:27 v #6593 > > ................................................................................ 00:00:27 v #6594 > > ................................................................................ 00:00:27 v #6595 > > │ 00:00:27 v #6596 > > .........................................;;/.................................... 00:00:27 v #6597 > > ................................................................................ 00:00:27 v #6598 > > │ 00:00:27 v #6599 > > .......................................;;/////<................................. 00:00:27 v #6600 > > ................................................................................ 00:00:27 v #6601 > > │ 00:00:27 v #6602 > > .....................................;;;/////////............................... 00:00:27 v #6603 > > ................................................................................ 00:00:27 v #6604 > > │ 00:00:27 v #6605 > > ...................................;;;;////////////............................. 00:00:27 v #6606 > > ................................................................................ 00:00:27 v #6607 > > │ 00:00:27 v #6608 > > .................................;;;;;///////////////........................... 00:00:27 v #6609 > > ................................................................................ 00:00:27 v #6610 > > │ 00:00:27 v #6611 > > ...............................;;;;;///////////////////<........................ 00:00:27 v #6612 > > ................................................................................ 00:00:27 v #6613 > > │ 00:00:27 v #6614 > > .............................;;;;;;//////////////////////<...................... 00:00:27 v #6615 > > ................................................................................ 00:00:27 v #6616 > > │ 00:00:27 v #6617 > > ...........................;;;;;;;//////////////////////////.................... 00:00:27 v #6618 > > ................................................................................ 00:00:27 v #6619 > > │ 00:00:27 v #6620 > > ..........................;;;;;;//////////////////////////////.................. 00:00:27 v #6621 > > .........;;//<.................................................................. 00:00:27 v #6622 > > │ 00:00:27 v #6623 > > .........................;;;;;;/////////////////////////////////................ 00:00:27 v #6624 > > ......;;;;//////................................................................ 00:00:27 v #6625 > > │ 00:00:27 v #6626 > > .......................;;;;;;;////////////////////////////////////<............. 00:00:27 v #6627 > > ...;;;;;;/////////<............................................................. 00:00:27 v #6628 > > │ 00:00:27 v #6629 > > ......................;;;;;;;///////////////////////////////////////............ 00:00:27 v #6630 > > ..;;;;;//////////////..................;;....................................... 00:00:27 v #6631 > > │ 00:00:27 v #6632 > > .....................;;;;;;////////////////////////////////////////............. 00:00:27 v #6633 > > .;;;;;;////////////////.............;;;;////.................................... 00:00:27 v #6634 > > │ 00:00:27 v #6635 > > ...................;;;;;;;////////////////////////////////////////.............. 00:00:27 v #6636 > > ;;;;;;//////////////////...........;;;;///////<................................. 00:00:27 v #6637 > > │ 00:00:27 v #6638 > > ..................;;;;;;;/////////////////////////////////////////............\; 00:00:27 v #6639 > > ;;;;///////////////////...........;;;;/////////................................. 00:00:27 v #6640 > > │ 00:00:27 v #6641 > > .................;;;;;;;>>>//////////////////////////////////////............;;; 00:00:27 v #6642 > > ;;;>>>>///////////////...........;;;;>>>//////.................................. 00:00:27 v #6643 > > │ 00:00:27 v #6644 > > ...............;;;;;;>>>>>>>>>>/////////////////////////////////............;;;> 00:00:27 v #6645 > > >>>>>>>>>////////////............\>>>>>>>>>//................................... 00:00:27 v #6646 > > │ 00:00:27 v #6647 > > ..............;;;;>>>>>>>>>>>>>>>///////////////////////////////.............>>> 00:00:27 v #6648 > > >>>>>>>>>>>>/////////...............>>>>>>>>.................................... 00:00:27 v #6649 > > │ 00:00:27 v #6650 > > .............;;>>>>>>>>>>>>>>>>>>>>>///////////////////////////................. 00:00:27 v #6651 > > >>>>>>>>>>>>>>>/////...................>........................................ 00:00:27 v #6652 > > │ 00:00:27 v #6653 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>///////////////////////.................. 00:00:27 v #6654 > > ...>>>>>>>>>>>>>>>/............................................................. 00:00:27 v #6655 > > │ 00:00:27 v #6656 > > ..................>>>>>>>>>>>>>>>>>>>>>>>>////////////////////.................. 00:00:27 v #6657 > > ......>>>>>>>>>>>/.............................................................. 00:00:27 v #6658 > > │ 00:00:27 v #6659 > > .....................>>>>>>>>>>>>>>>>>>>>>>>>////////////////................... 00:00:27 v #6660 > > ................................................................................ 00:00:27 v #6661 > > │ 00:00:27 v #6662 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>////////////.................... 00:00:27 v #6663 > > ................................................................................ 00:00:27 v #6664 > > │ 00:00:27 v #6665 > > ............................>>>>>>>>>>>>>>>>>>>>>>>/////////.................... 00:00:27 v #6666 > > ................................................................................ 00:00:27 v #6667 > > │ 00:00:27 v #6668 > > ...............................>>>>>>>>>>>>>>>>>>>>>>>/////..................... 00:00:27 v #6669 > > ................................................................................ 00:00:27 v #6670 > > │ 00:00:27 v #6671 > > ..................................>>>>>>>>>>>>>>>>>>>>>>//...................... 00:00:27 v #6672 > > ................................................................................ 00:00:27 v #6673 > > │ 00:00:27 v #6674 > > .....................................>>>>>>>>>>>>>>>>>>>>/...................... 00:00:27 v #6675 > > ................................................................................ 00:00:27 v #6676 > > │ 00:00:27 v #6677 > > ................................................................................ 00:00:27 v #6678 > > ................................................................................ 00:00:27 v #6679 > > │ 00:00:27 v #6680 > > ................................................................................ 00:00:27 v #6681 > > ................................................................................ 00:00:27 v #6682 > > │ 00:00:27 v #6683 > > ................................................................................ 00:00:27 v #6684 > > ................................................................................ 00:00:27 v #6685 > > │ 00:00:27 v #6686 > > ................................................................................ 00:00:27 v #6687 > > ................................................................................ 00:00:27 v #6688 > > │ 00:00:27 v #6689 > > ................................................................................ 00:00:27 v #6690 > > ................................................................................ 00:00:27 v #6691 > > │ 00:00:27 v #6692 > > ................................................................................ 00:00:27 v #6693 > > ................................................................................ 00:00:27 v #6694 > > │ 00:00:27 v #6695 > > ................................................................................ 00:00:27 v #6696 > > ................................................................................ 00:00:27 v #6697 > > │ 00:00:27 v #6698 > > ................................................................................ 00:00:27 v #6699 > > ................................................................................ 00:00:27 v #6700 > > │ 00:00:27 v #6701 > > ................................................................................ 00:00:27 v #6702 > > ................................................................................ 00:00:27 v #6703 > > │ 00:00:27 v #6704 > > ................................................................................ 00:00:27 v #6705 > > ................................................................................ 00:00:27 v #6706 > > │ 00:00:27 v #6707 > > │ 00:00:27 v #6708 > > ................................................................................ 00:00:27 v #6709 > > ................................................................................ 00:00:27 v #6710 > > │ 00:00:27 v #6711 > > ................................................................................ 00:00:27 v #6712 > > ................................................................................ 00:00:27 v #6713 > > │ 00:00:27 v #6714 > > ................................................................................ 00:00:27 v #6715 > > ................................................................................ 00:00:27 v #6716 > > │ 00:00:27 v #6717 > > ................................................................................ 00:00:27 v #6718 > > ................................................................................ 00:00:27 v #6719 > > │ 00:00:27 v #6720 > > ................................................................................ 00:00:27 v #6721 > > ................................................................................ 00:00:27 v #6722 > > │ 00:00:27 v #6723 > > ................................................................................ 00:00:27 v #6724 > > ................................................................................ 00:00:27 v #6725 > > │ 00:00:27 v #6726 > > ................................................................................ 00:00:27 v #6727 > > ................................................................................ 00:00:27 v #6728 > > │ 00:00:27 v #6729 > > ........................................;;/<.................................... 00:00:27 v #6730 > > ................................................................................ 00:00:27 v #6731 > > │ 00:00:27 v #6732 > > ......................................;;;/////.................................. 00:00:27 v #6733 > > ................................................................................ 00:00:27 v #6734 > > │ 00:00:27 v #6735 > > ....................................;;;;////////................................ 00:00:27 v #6736 > > ................................................................................ 00:00:27 v #6737 > > │ 00:00:27 v #6738 > > ..................................;;;;;////////////............................. 00:00:27 v #6739 > > ................................................................................ 00:00:27 v #6740 > > │ 00:00:27 v #6741 > > ................................;;;;;;///////////////........................... 00:00:27 v #6742 > > ................................................................................ 00:00:27 v #6743 > > │ 00:00:27 v #6744 > > ..............................;;;;;;;//////////////////......................... 00:00:27 v #6745 > > ................................................................................ 00:00:27 v #6746 > > │ 00:00:27 v #6747 > > ............................;;;;;;;;//////////////////////...................... 00:00:27 v #6748 > > ................................................................................ 00:00:27 v #6749 > > │ 00:00:27 v #6750 > > ..........................;;;;;;;;//////////////////////////.................... 00:00:27 v #6751 > > ................................................................................ 00:00:27 v #6752 > > │ 00:00:27 v #6753 > > .........................;;;;;;;;/////////////////////////////<................. 00:00:27 v #6754 > > ........;;;//................................................................... 00:00:27 v #6755 > > │ 00:00:27 v #6756 > > ........................;;;;;;;;////////////////////////////////<............... 00:00:27 v #6757 > > .....;;;;;//////................................................................ 00:00:27 v #6758 > > │ 00:00:27 v #6759 > > .......................;;;;;;;;////////////////////////////////////............. 00:00:27 v #6760 > > ..<;;;;;;/////////<............................................................. 00:00:27 v #6761 > > │ 00:00:27 v #6762 > > .....................\;;;;;;;;/////////////////////////////////////............. 00:00:27 v #6763 > > ..;;;;;;/////////////..................;;<...................................... 00:00:27 v #6764 > > │ 00:00:27 v #6765 > > ....................;;;;;;;;;/////////////////////////////////////.............. 00:00:27 v #6766 > > \;;;;;;/////////////////............;;;;////.................................... 00:00:27 v #6767 > > │ 00:00:27 v #6768 > > ...................;;;;;;;;;//////////////////////////////////////.............. 00:00:27 v #6769 > > ;;;;;;/////////////////............;;;;////////................................. 00:00:27 v #6770 > > │ 00:00:27 v #6771 > > ..................;;;;;;;;;//////////////////////////////////////.............\; 00:00:27 v #6772 > > ;;;;;//////////////////...........;;;;/////////................................. 00:00:27 v #6773 > > │ 00:00:27 v #6774 > > .................;;;;;;;;;;>/////////////////////////////////////............\;; 00:00:27 v #6775 > > ;;;;;>>///////////////...........;;;;;>>>/////.................................. 00:00:27 v #6776 > > │ 00:00:27 v #6777 > > ................;;;;;;;;>>>>>>>>////////////////////////////////............\;;; 00:00:27 v #6778 > > ;>>>>>>>>>////////////...........;>>>>>>>>>//................................... 00:00:27 v #6779 > > │ 00:00:27 v #6780 > > ...............;;;;;;>>>>>>>>>>>>>>/////////////////////////////............;>>> 00:00:27 v #6781 > > >>>>>>>>>>>>>////////...............>>>>>>>>/................................... 00:00:27 v #6782 > > │ 00:00:27 v #6783 > > ..............;;;;>>>>>>>>>>>>>>>>>>>>/////////////////////////................> 00:00:27 v #6784 > > >>>>>>>>>>>>>>>>////...................=>....................................... 00:00:27 v #6785 > > │ 00:00:27 v #6786 > > .............;>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////////................. 00:00:27 v #6787 > > ..\>>>>>>>>>>>>>>>>............................................................. 00:00:27 v #6788 > > │ 00:00:27 v #6789 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////.................. 00:00:27 v #6790 > > ......>>>>>>>>>=>............................................................... 00:00:27 v #6791 > > │ 00:00:27 v #6792 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////.................. 00:00:27 v #6793 > > ................................................................................ 00:00:27 v #6794 > > │ 00:00:27 v #6795 > > .......................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////////................... 00:00:27 v #6796 > > ................................................................................ 00:00:27 v #6797 > > │ 00:00:27 v #6798 > > ...........................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////................... 00:00:27 v #6799 > > ................................................................................ 00:00:27 v #6800 > > │ 00:00:27 v #6801 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>///.................... 00:00:27 v #6802 > > ................................................................................ 00:00:27 v #6803 > > │ 00:00:27 v #6804 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>/.................... 00:00:27 v #6805 > > ................................................................................ 00:00:27 v #6806 > > │ 00:00:27 v #6807 > > ......................................>>>>>=>=>>................................ 00:00:27 v #6808 > > ................................................................................ 00:00:27 v #6809 > > │ 00:00:27 v #6810 > > ................................................................................ 00:00:27 v #6811 > > ................................................................................ 00:00:27 v #6812 > > │ 00:00:27 v #6813 > > ................................................................................ 00:00:27 v #6814 > > ................................................................................ 00:00:27 v #6815 > > │ 00:00:27 v #6816 > > ................................................................................ 00:00:27 v #6817 > > ................................................................................ 00:00:27 v #6818 > > │ 00:00:27 v #6819 > > ................................................................................ 00:00:27 v #6820 > > ................................................................................ 00:00:27 v #6821 > > │ 00:00:27 v #6822 > > ................................................................................ 00:00:27 v #6823 > > ................................................................................ 00:00:27 v #6824 > > │ 00:00:27 v #6825 > > ................................................................................ 00:00:27 v #6826 > > ................................................................................ 00:00:27 v #6827 > > │ 00:00:27 v #6828 > > ................................................................................ 00:00:27 v #6829 > > ................................................................................ 00:00:27 v #6830 > > │ 00:00:27 v #6831 > > ................................................................................ 00:00:27 v #6832 > > ................................................................................ 00:00:27 v #6833 > > │ 00:00:27 v #6834 > > ................................................................................ 00:00:27 v #6835 > > ................................................................................ 00:00:27 v #6836 > > │ 00:00:27 v #6837 > > ................................................................................ 00:00:27 v #6838 > > ................................................................................ 00:00:27 v #6839 > > │ 00:00:27 v #6840 > > │ 00:00:27 v #6841 > > ................................................................................ 00:00:27 v #6842 > > ................................................................................ 00:00:27 v #6843 > > │ 00:00:27 v #6844 > > ................................................................................ 00:00:27 v #6845 > > ................................................................................ 00:00:27 v #6846 > > │ 00:00:27 v #6847 > > ................................................................................ 00:00:27 v #6848 > > ................................................................................ 00:00:27 v #6849 > > │ 00:00:27 v #6850 > > ................................................................................ 00:00:27 v #6851 > > ................................................................................ 00:00:27 v #6852 > > │ 00:00:27 v #6853 > > ................................................................................ 00:00:27 v #6854 > > ................................................................................ 00:00:27 v #6855 > > │ 00:00:27 v #6856 > > ................................................................................ 00:00:27 v #6857 > > ................................................................................ 00:00:27 v #6858 > > │ 00:00:27 v #6859 > > ................................................................................ 00:00:27 v #6860 > > ................................................................................ 00:00:27 v #6861 > > │ 00:00:27 v #6862 > > .......................................;;//..................................... 00:00:27 v #6863 > > ................................................................................ 00:00:27 v #6864 > > │ 00:00:27 v #6865 > > .....................................;;;/////<.................................. 00:00:27 v #6866 > > ................................................................................ 00:00:27 v #6867 > > │ 00:00:27 v #6868 > > ...................................;;;;/////////................................ 00:00:27 v #6869 > > ................................................................................ 00:00:27 v #6870 > > │ 00:00:27 v #6871 > > .................................;;;;;;///////////<............................. 00:00:27 v #6872 > > ................................................................................ 00:00:27 v #6873 > > │ 00:00:27 v #6874 > > ...............................;;;;;;;///////////////........................... 00:00:27 v #6875 > > ................................................................................ 00:00:27 v #6876 > > │ 00:00:27 v #6877 > > .............................;;;;;;;;//////////////////......................... 00:00:27 v #6878 > > ................................................................................ 00:00:27 v #6879 > > │ 00:00:27 v #6880 > > ...........................;;;;;;;;;//////////////////////...................... 00:00:27 v #6881 > > ................................................................................ 00:00:27 v #6882 > > │ 00:00:27 v #6883 > > .........................;;;;;;;;;;/////////////////////////.................... 00:00:27 v #6884 > > ................................................................................ 00:00:27 v #6885 > > │ 00:00:27 v #6886 > > ........................;;;;;;;;;;;///////////////////////////<................. 00:00:27 v #6887 > > ........;;;//................................................................... 00:00:27 v #6888 > > │ 00:00:27 v #6889 > > .......................;;;;;;;;;;;///////////////////////////////............... 00:00:27 v #6890 > > .....;;;;;//////................................................................ 00:00:27 v #6891 > > │ 00:00:27 v #6892 > > ......................;;;;;;;;;;;/////////////////////////////////.............. 00:00:27 v #6893 > > ..;;;;;;;/////////<............................................................. 00:00:27 v #6894 > > │ 00:00:27 v #6895 > > .....................;;;;;;;;;;;//////////////////////////////////.............. 00:00:27 v #6896 > > .;;;;;;;/////////////..................;;<...................................... 00:00:27 v #6897 > > │ 00:00:27 v #6898 > > ....................;;;;;;;;;;;//////////////////////////////////............... 00:00:27 v #6899 > > ;;;;;;;;///////////////.............;;;;////<................................... 00:00:27 v #6900 > > │ 00:00:27 v #6901 > > ...................;;;;;;;;;;;;//////////////////////////////////..............; 00:00:27 v #6902 > > ;;;;;;;////////////////............;;;;////////................................. 00:00:27 v #6903 > > │ 00:00:27 v #6904 > > ..................;;;;;;;;;;;;///////////////////////////////////..............; 00:00:27 v #6905 > > ;;;;;;/////////////////...........;;;;;////////................................. 00:00:27 v #6906 > > │ 00:00:27 v #6907 > > .................;;;;;;;;;;;;///////////////////////////////////..............;; 00:00:27 v #6908 > > ;;;;;;>>//////////////...........;;;;;>>>/////.................................. 00:00:27 v #6909 > > │ 00:00:27 v #6910 > > ................;;;;;;;;;;;;>>>>>///////////////////////////////.............;;; 00:00:27 v #6911 > > ;;>>>>>>>>>///////////...........;>>>>>>>>>>//.................................. 00:00:27 v #6912 > > │ 00:00:27 v #6913 > > ...............;;;;;;;;;>>>>>>>>>>>>////////////////////////////............\;;> 00:00:27 v #6914 > > >>>>>>>>>>>>>>///////...............>>>>>>>>>................................... 00:00:27 v #6915 > > │ 00:00:27 v #6916 > > ..............;;;;;;;>>>>>>>>>>>>>>>>>>>///////////////////////...............\> 00:00:27 v #6917 > > >>>>>>>>>>>>>>>>>>///..................>=....................................... 00:00:27 v #6918 > > │ 00:00:27 v #6919 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>////////////////////................. 00:00:27 v #6920 > > ..>>>>>>>>>>>>>>>>>>............................................................ 00:00:27 v #6921 > > │ 00:00:27 v #6922 > > .............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////////................. 00:00:27 v #6923 > > ......>>>>>>>>>>=............................................................... 00:00:27 v #6924 > > │ 00:00:27 v #6925 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////.................. 00:00:27 v #6926 > > ................................................................................ 00:00:27 v #6927 > > │ 00:00:27 v #6928 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////.................. 00:00:27 v #6929 > > ................................................................................ 00:00:27 v #6930 > > │ 00:00:27 v #6931 > > ..........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////.................. 00:00:27 v #6932 > > ................................................................................ 00:00:27 v #6933 > > │ 00:00:27 v #6934 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//.................. 00:00:27 v #6935 > > ................................................................................ 00:00:27 v #6936 > > │ 00:00:27 v #6937 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>>>................... 00:00:27 v #6938 > > ................................................................................ 00:00:27 v #6939 > > │ 00:00:27 v #6940 > > ......................................>>>==..................................... 00:00:27 v #6941 > > ................................................................................ 00:00:27 v #6942 > > │ 00:00:27 v #6943 > > ................................................................................ 00:00:27 v #6944 > > ................................................................................ 00:00:27 v #6945 > > │ 00:00:27 v #6946 > > ................................................................................ 00:00:27 v #6947 > > ................................................................................ 00:00:27 v #6948 > > │ 00:00:27 v #6949 > > ................................................................................ 00:00:27 v #6950 > > ................................................................................ 00:00:27 v #6951 > > │ 00:00:27 v #6952 > > ................................................................................ 00:00:27 v #6953 > > ................................................................................ 00:00:27 v #6954 > > │ 00:00:27 v #6955 > > ................................................................................ 00:00:27 v #6956 > > ................................................................................ 00:00:27 v #6957 > > │ 00:00:27 v #6958 > > ................................................................................ 00:00:27 v #6959 > > ................................................................................ 00:00:27 v #6960 > > │ 00:00:27 v #6961 > > ................................................................................ 00:00:27 v #6962 > > ................................................................................ 00:00:27 v #6963 > > │ 00:00:27 v #6964 > > ................................................................................ 00:00:27 v #6965 > > ................................................................................ 00:00:27 v #6966 > > │ 00:00:27 v #6967 > > ................................................................................ 00:00:27 v #6968 > > ................................................................................ 00:00:27 v #6969 > > │ 00:00:27 v #6970 > > ................................................................................ 00:00:27 v #6971 > > ................................................................................ 00:00:27 v #6972 > > │ 00:00:27 v #6973 > > │ 00:00:27 v #6974 > > ................................................................................ 00:00:27 v #6975 > > ................................................................................ 00:00:27 v #6976 > > │ 00:00:27 v #6977 > > ................................................................................ 00:00:27 v #6978 > > ................................................................................ 00:00:27 v #6979 > > │ 00:00:27 v #6980 > > ................................................................................ 00:00:27 v #6981 > > ................................................................................ 00:00:27 v #6982 > > │ 00:00:27 v #6983 > > ................................................................................ 00:00:27 v #6984 > > ................................................................................ 00:00:27 v #6985 > > │ 00:00:27 v #6986 > > ................................................................................ 00:00:27 v #6987 > > ................................................................................ 00:00:27 v #6988 > > │ 00:00:27 v #6989 > > ................................................................................ 00:00:27 v #6990 > > ................................................................................ 00:00:27 v #6991 > > │ 00:00:27 v #6992 > > ................................................................................ 00:00:27 v #6993 > > ................................................................................ 00:00:27 v #6994 > > │ 00:00:27 v #6995 > > .......................................;;/<..................................... 00:00:27 v #6996 > > ................................................................................ 00:00:27 v #6997 > > │ 00:00:27 v #6998 > > ....................................<;;;/////................................... 00:00:27 v #6999 > > ................................................................................ 00:00:27 v #7000 > > │ 00:00:27 v #7001 > > ..................................;;;;;////////<................................ 00:00:27 v #7002 > > ................................................................................ 00:00:27 v #7003 > > │ 00:00:27 v #7004 > > ................................;;;;;;;///////////.............................. 00:00:27 v #7005 > > ................................................................................ 00:00:27 v #7006 > > │ 00:00:27 v #7007 > > ..............................;;;;;;;;//////////////<........................... 00:00:27 v #7008 > > ................................................................................ 00:00:27 v #7009 > > │ 00:00:27 v #7010 > > ............................;;;;;;;;;;/////////////////......................... 00:00:27 v #7011 > > ................................................................................ 00:00:27 v #7012 > > │ 00:00:27 v #7013 > > ..........................;;;;;;;;;;;////////////////////<...................... 00:00:27 v #7014 > > ................................................................................ 00:00:27 v #7015 > > │ 00:00:27 v #7016 > > ........................;;;;;;;;;;;;////////////////////////.................... 00:00:27 v #7017 > > ................................................................................ 00:00:27 v #7018 > > │ 00:00:27 v #7019 > > .......................;;;;;;;;;;;;;///////////////////////////................. 00:00:27 v #7020 > > ........;;///................................................................... 00:00:27 v #7021 > > │ 00:00:27 v #7022 > > ......................;;;;;;;;;;;;;//////////////////////////////............... 00:00:27 v #7023 > > .....;;;;;//////................................................................ 00:00:27 v #7024 > > │ 00:00:27 v #7025 > > .....................;;;;;;;;;;;;;;//////////////////////////////............... 00:00:27 v #7026 > > ..;;;;;;;//////////............................................................. 00:00:27 v #7027 > > │ 00:00:27 v #7028 > > ....................;;;;;;;;;;;;;;///////////////////////////////............... 00:00:27 v #7029 > > \;;;;;;;;////////////<.................;;....................................... 00:00:27 v #7030 > > │ 00:00:27 v #7031 > > ...................\;;;;;;;;;;;;;///////////////////////////////................ 00:00:27 v #7032 > > ;;;;;;;;///////////////............<;;;;////<................................... 00:00:27 v #7033 > > │ 00:00:27 v #7034 > > ...................;;;;;;;;;;;;;;///////////////////////////////...............; 00:00:27 v #7035 > > ;;;;;;;;///////////////...........\;;;;////////................................. 00:00:27 v #7036 > > │ 00:00:27 v #7037 > > ..................;;;;;;;;;;;;;;////////////////////////////////..............\; 00:00:27 v #7038 > > ;;;;;;;///////////////............;;;;;////////................................. 00:00:27 v #7039 > > │ 00:00:27 v #7040 > > .................;;;;;;;;;;;;;;;////////////////////////////////..............;; 00:00:27 v #7041 > > ;;;;;;;>//////////////...........\;;;;;>>>////.................................. 00:00:27 v #7042 > > │ 00:00:27 v #7043 > > ................;;;;;;;;;;;;;;;>>>//////////////////////////////.............;;; 00:00:27 v #7044 > > ;;;;>>>>>>>>//////////...........;;>>>>>>>>>>/.................................. 00:00:27 v #7045 > > │ 00:00:27 v #7046 > > ................;;;;;;;;;;;;>>>>>>>>>>//////////////////////////.............;;; 00:00:27 v #7047 > > >>>>>>>>>>>>>>>>/////..............\>>>>>>>>/................................... 00:00:27 v #7048 > > │ 00:00:27 v #7049 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>//////////////////////.............\>> 00:00:27 v #7050 > > >>>>>>>>>>>>>>>>>>>//..................\=....................................... 00:00:27 v #7051 > > │ 00:00:27 v #7052 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////................ 00:00:27 v #7053 > > .\>>>>>>>>>>>>>>>>>>/........................................................... 00:00:27 v #7054 > > │ 00:00:27 v #7055 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////................. 00:00:27 v #7056 > > ......>>>>>>>>>>................................................................ 00:00:27 v #7057 > > │ 00:00:27 v #7058 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////................. 00:00:27 v #7059 > > ................................................................................ 00:00:27 v #7060 > > │ 00:00:27 v #7061 > > ...................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////................. 00:00:27 v #7062 > > ................................................................................ 00:00:27 v #7063 > > │ 00:00:27 v #7064 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//................. 00:00:27 v #7065 > > ................................................................................ 00:00:27 v #7066 > > │ 00:00:27 v #7067 > > .............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/................. 00:00:27 v #7068 > > ................................................................................ 00:00:27 v #7069 > > │ 00:00:27 v #7070 > > ..................................>>>>>>>>>>>>>>>>>>>>==........................ 00:00:27 v #7071 > > ................................................................................ 00:00:27 v #7072 > > │ 00:00:27 v #7073 > > .......................................>==...................................... 00:00:27 v #7074 > > ................................................................................ 00:00:27 v #7075 > > │ 00:00:27 v #7076 > > ................................................................................ 00:00:27 v #7077 > > ................................................................................ 00:00:27 v #7078 > > │ 00:00:27 v #7079 > > ................................................................................ 00:00:27 v #7080 > > ................................................................................ 00:00:27 v #7081 > > │ 00:00:27 v #7082 > > ................................................................................ 00:00:27 v #7083 > > ................................................................................ 00:00:27 v #7084 > > │ 00:00:27 v #7085 > > ................................................................................ 00:00:27 v #7086 > > ................................................................................ 00:00:27 v #7087 > > │ 00:00:27 v #7088 > > ................................................................................ 00:00:27 v #7089 > > ................................................................................ 00:00:27 v #7090 > > │ 00:00:27 v #7091 > > ................................................................................ 00:00:27 v #7092 > > ................................................................................ 00:00:27 v #7093 > > │ 00:00:27 v #7094 > > ................................................................................ 00:00:27 v #7095 > > ................................................................................ 00:00:27 v #7096 > > │ 00:00:27 v #7097 > > ................................................................................ 00:00:27 v #7098 > > ................................................................................ 00:00:27 v #7099 > > │ 00:00:27 v #7100 > > ................................................................................ 00:00:27 v #7101 > > ................................................................................ 00:00:27 v #7102 > > │ 00:00:27 v #7103 > > ................................................................................ 00:00:27 v #7104 > > ................................................................................ 00:00:27 v #7105 > > │ 00:00:27 v #7106 > > │ 00:00:27 v #7107 > > ................................................................................ 00:00:27 v #7108 > > ................................................................................ 00:00:27 v #7109 > > │ 00:00:27 v #7110 > > ................................................................................ 00:00:27 v #7111 > > ................................................................................ 00:00:27 v #7112 > > │ 00:00:27 v #7113 > > ................................................................................ 00:00:27 v #7114 > > ................................................................................ 00:00:27 v #7115 > > │ 00:00:27 v #7116 > > ................................................................................ 00:00:27 v #7117 > > ................................................................................ 00:00:27 v #7118 > > │ 00:00:27 v #7119 > > ................................................................................ 00:00:27 v #7120 > > ................................................................................ 00:00:27 v #7121 > > │ 00:00:27 v #7122 > > ................................................................................ 00:00:27 v #7123 > > ................................................................................ 00:00:27 v #7124 > > │ 00:00:27 v #7125 > > ................................................................................ 00:00:27 v #7126 > > ................................................................................ 00:00:27 v #7127 > > │ 00:00:27 v #7128 > > ......................................;;//...................................... 00:00:27 v #7129 > > ................................................................................ 00:00:27 v #7130 > > │ 00:00:27 v #7131 > > ....................................;;;;////.................................... 00:00:27 v #7132 > > ................................................................................ 00:00:27 v #7133 > > │ 00:00:27 v #7134 > > ..................................;;;;;////////................................. 00:00:27 v #7135 > > ................................................................................ 00:00:27 v #7136 > > │ 00:00:27 v #7137 > > ...............................<;;;;;;;///////////.............................. 00:00:27 v #7138 > > ................................................................................ 00:00:27 v #7139 > > │ 00:00:27 v #7140 > > .............................;;;;;;;;;//////////////............................ 00:00:27 v #7141 > > ................................................................................ 00:00:27 v #7142 > > │ 00:00:27 v #7143 > > ...........................;;;;;;;;;;;/////////////////......................... 00:00:27 v #7144 > > ................................................................................ 00:00:27 v #7145 > > │ 00:00:27 v #7146 > > .........................;;;;;;;;;;;;;///////////////////<...................... 00:00:27 v #7147 > > ................................................................................ 00:00:27 v #7148 > > │ 00:00:27 v #7149 > > .......................;;;;;;;;;;;;;;///////////////////////.................... 00:00:27 v #7150 > > ................................................................................ 00:00:27 v #7151 > > │ 00:00:27 v #7152 > > .....................\;;;;;;;;;;;;;;;//////////////////////////................. 00:00:27 v #7153 > > .......<;;//<................................................................... 00:00:27 v #7154 > > │ 00:00:27 v #7155 > > .....................;;;;;;;;;;;;;;;;///////////////////////////................ 00:00:27 v #7156 > > ....<;;;;;//////................................................................ 00:00:27 v #7157 > > │ 00:00:27 v #7158 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................ 00:00:27 v #7159 > > ..;;;;;;;;/////////............................................................. 00:00:27 v #7160 > > │ 00:00:27 v #7161 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................ 00:00:27 v #7162 > > ;;;;;;;;;/////////////.................;/....................................... 00:00:27 v #7163 > > │ 00:00:27 v #7164 > > ...................;;;;;;;;;;;;;;;;/////////////////////////////...............; 00:00:27 v #7165 > > ;;;;;;;;;/////////////.............<;;;;////<................................... 00:00:27 v #7166 > > │ 00:00:27 v #7167 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////...............; 00:00:27 v #7168 > > ;;;;;;;;//////////////............\;;;;;//////.................................. 00:00:27 v #7169 > > │ 00:00:27 v #7170 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////..............\; 00:00:27 v #7171 > > ;;;;;;;;//////////////............;;;;;///////.................................. 00:00:27 v #7172 > > │ 00:00:27 v #7173 > > .................;;;;;;;;;;;;;;;;;//////////////////////////////..............;; 00:00:27 v #7174 > > ;;;;;;;;>/////////////............;;;;;>>>////.................................. 00:00:27 v #7175 > > │ 00:00:27 v #7176 > > .................;;;;;;;;;;;;;;;;;>/////////////////////////////..............;; 00:00:27 v #7177 > > ;;;;;;>>>>>>>/////////...........;;;>>>>>>>>>/.................................. 00:00:27 v #7178 > > │ 00:00:27 v #7179 > > ................;;;;;;;;;;;;;;;;>>>>>>>/////////////////////////.............;;; 00:00:27 v #7180 > > ;;>>>>>>>>>>>>>>>/////.............\>>>>>>>>>=.................................. 00:00:27 v #7181 > > │ 00:00:27 v #7182 > > ...............;;;;;;;;;;;;;>>>>>>>>>>>>>>>/////////////////////.............;>> 00:00:27 v #7183 > > >>>>>>>>>>>>>>>>>>>>>/..................>....................................... 00:00:27 v #7184 > > │ 00:00:27 v #7185 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>////////////////................ 00:00:27 v #7186 > > .>>>>>>>>>>>>>>>>>>>/........................................................... 00:00:27 v #7187 > > │ 00:00:27 v #7188 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////................ 00:00:27 v #7189 > > ......>>>>>>>>>>................................................................ 00:00:27 v #7190 > > │ 00:00:27 v #7191 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////................ 00:00:27 v #7192 > > ................................................................................ 00:00:27 v #7193 > > │ 00:00:27 v #7194 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////................ 00:00:27 v #7195 > > ................................................................................ 00:00:27 v #7196 > > │ 00:00:27 v #7197 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>................ 00:00:27 v #7198 > > ................................................................................ 00:00:27 v #7199 > > │ 00:00:27 v #7200 > > ............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.................. 00:00:27 v #7201 > > ................................................................................ 00:00:27 v #7202 > > │ 00:00:27 v #7203 > > ..................................>>>>>>>>>>>>>>>>>>............................ 00:00:27 v #7204 > > ................................................................................ 00:00:27 v #7205 > > │ 00:00:27 v #7206 > > .......................................>=....................................... 00:00:27 v #7207 > > ................................................................................ 00:00:27 v #7208 > > │ 00:00:27 v #7209 > > ................................................................................ 00:00:27 v #7210 > > ................................................................................ 00:00:27 v #7211 > > │ 00:00:27 v #7212 > > ................................................................................ 00:00:27 v #7213 > > ................................................................................ 00:00:27 v #7214 > > │ 00:00:27 v #7215 > > ................................................................................ 00:00:27 v #7216 > > ................................................................................ 00:00:27 v #7217 > > │ 00:00:27 v #7218 > > ................................................................................ 00:00:27 v #7219 > > ................................................................................ 00:00:27 v #7220 > > │ 00:00:27 v #7221 > > ................................................................................ 00:00:27 v #7222 > > ................................................................................ 00:00:27 v #7223 > > │ 00:00:27 v #7224 > > ................................................................................ 00:00:27 v #7225 > > ................................................................................ 00:00:27 v #7226 > > │ 00:00:27 v #7227 > > ................................................................................ 00:00:27 v #7228 > > ................................................................................ 00:00:27 v #7229 > > │ 00:00:27 v #7230 > > ................................................................................ 00:00:27 v #7231 > > ................................................................................ 00:00:27 v #7232 > > │ 00:00:27 v #7233 > > ................................................................................ 00:00:27 v #7234 > > ................................................................................ 00:00:27 v #7235 > > │ 00:00:27 v #7236 > > ................................................................................ 00:00:27 v #7237 > > ................................................................................ 00:00:27 v #7238 > > │ 00:00:27 v #7239 > > │ 00:00:27 v #7240 > > ................................................................................ 00:00:27 v #7241 > > ................................................................................ 00:00:27 v #7242 > > │ 00:00:27 v #7243 > > ................................................................................ 00:00:27 v #7244 > > ................................................................................ 00:00:27 v #7245 > > │ 00:00:27 v #7246 > > ................................................................................ 00:00:27 v #7247 > > ................................................................................ 00:00:27 v #7248 > > │ 00:00:27 v #7249 > > ................................................................................ 00:00:27 v #7250 > > ................................................................................ 00:00:27 v #7251 > > │ 00:00:27 v #7252 > > ................................................................................ 00:00:27 v #7253 > > ................................................................................ 00:00:27 v #7254 > > │ 00:00:27 v #7255 > > ................................................................................ 00:00:27 v #7256 > > ................................................................................ 00:00:27 v #7257 > > │ 00:00:27 v #7258 > > ................................................................................ 00:00:27 v #7259 > > ................................................................................ 00:00:27 v #7260 > > │ 00:00:27 v #7261 > > .....................................<;;/<...................................... 00:00:27 v #7262 > > ................................................................................ 00:00:27 v #7263 > > │ 00:00:27 v #7264 > > ...................................;;;;;///<.................................... 00:00:27 v #7265 > > ................................................................................ 00:00:27 v #7266 > > │ 00:00:27 v #7267 > > .................................;;;;;;///////<................................. 00:00:27 v #7268 > > ................................................................................ 00:00:27 v #7269 > > │ 00:00:27 v #7270 > > ...............................;;;;;;;;//////////<.............................. 00:00:27 v #7271 > > ................................................................................ 00:00:27 v #7272 > > │ 00:00:27 v #7273 > > ............................<;;;;;;;;;;/////////////............................ 00:00:27 v #7274 > > ................................................................................ 00:00:27 v #7275 > > │ 00:00:27 v #7276 > > ..........................<;;;;;;;;;;;;///////////////<......................... 00:00:27 v #7277 > > ................................................................................ 00:00:27 v #7278 > > │ 00:00:27 v #7279 > > ........................;;;;;;;;;;;;;;;//////////////////<...................... 00:00:27 v #7280 > > ................................................................................ 00:00:27 v #7281 > > │ 00:00:27 v #7282 > > ......................;;;;;;;;;;;;;;;;//////////////////////.................... 00:00:27 v #7283 > > ................................................................................ 00:00:27 v #7284 > > │ 00:00:27 v #7285 > > ....................;;;;;;;;;;;;;;;;;;////////////////////////.................. 00:00:27 v #7286 > > .......;;;//.................................................................... 00:00:27 v #7287 > > │ 00:00:27 v #7288 > > ....................;;;;;;;;;;;;;;;;;;/////////////////////////................. 00:00:27 v #7289 > > ....;;;;;;//////................................................................ 00:00:27 v #7290 > > │ 00:00:27 v #7291 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................. 00:00:27 v #7292 > > .<;;;;;;;;////////<............................................................. 00:00:27 v #7293 > > │ 00:00:27 v #7294 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................; 00:00:27 v #7295 > > ;;;;;;;;;;////////////.................;/....................................... 00:00:27 v #7296 > > │ 00:00:27 v #7297 > > ..................\;;;;;;;;;;;;;;;;;;//////////////////////////................; 00:00:27 v #7298 > > ;;;;;;;;;/////////////.............<;;;;////<................................... 00:00:27 v #7299 > > │ 00:00:27 v #7300 > > ..................;;;;;;;;;;;;;;;;;;;//////////////////////////................; 00:00:27 v #7301 > > ;;;;;;;;;/////////////............;;;;;;//////.................................. 00:00:27 v #7302 > > │ 00:00:27 v #7303 > > ..................;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; 00:00:27 v #7304 > > ;;;;;;;;;/////////////............;;;;;;//////.................................. 00:00:27 v #7305 > > │ 00:00:27 v #7306 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; 00:00:27 v #7307 > > ;;;;;;;;;>////////////............;;;;;;>>////.................................. 00:00:27 v #7308 > > │ 00:00:27 v #7309 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; 00:00:27 v #7310 > > ;;;;;;;;>>>>/>////////............;;;>>>>>>>>>.................................. 00:00:27 v #7311 > > │ 00:00:27 v #7312 > > ................;;;;;;;;;;;;;;;;;;;;>>>>>///////////////////////.............\;; 00:00:27 v #7313 > > ;;;>>>>>>>>>>>>>/>////.............>>>>>>>>>=................................... 00:00:27 v #7314 > > │ 00:00:27 v #7315 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>//////////////////.............;;; 00:00:27 v #7316 > > >>>>>>>>>>>>>>>>>>>>>>..................=....................................... 00:00:27 v #7317 > > │ 00:00:27 v #7318 > > ...............;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>//////////////................ 00:00:27 v #7319 > > >>>>>>>>>>>>>>>>>>>>>........................................................... 00:00:27 v #7320 > > │ 00:00:27 v #7321 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////............... 00:00:27 v #7322 > > .....\>>>>>>>>=................................................................. 00:00:27 v #7323 > > │ 00:00:27 v #7324 > > ..............;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////............... 00:00:27 v #7325 > > ................................................................................ 00:00:27 v #7326 > > │ 00:00:27 v #7327 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/............... 00:00:27 v #7328 > > ................................................................................ 00:00:27 v #7329 > > │ 00:00:27 v #7330 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>............... 00:00:27 v #7331 > > ................................................................................ 00:00:27 v #7332 > > │ 00:00:27 v #7333 > > ..........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...................... 00:00:27 v #7334 > > ................................................................................ 00:00:27 v #7335 > > │ 00:00:27 v #7336 > > .................................>>>>>>>>>>>>>>>>............................... 00:00:27 v #7337 > > ................................................................................ 00:00:27 v #7338 > > │ 00:00:27 v #7339 > > ........................................=....................................... 00:00:27 v #7340 > > ................................................................................ 00:00:27 v #7341 > > │ 00:00:27 v #7342 > > ................................................................................ 00:00:27 v #7343 > > ................................................................................ 00:00:27 v #7344 > > │ 00:00:27 v #7345 > > ................................................................................ 00:00:27 v #7346 > > ................................................................................ 00:00:27 v #7347 > > │ 00:00:27 v #7348 > > ................................................................................ 00:00:27 v #7349 > > ................................................................................ 00:00:27 v #7350 > > │ 00:00:27 v #7351 > > ................................................................................ 00:00:27 v #7352 > > ................................................................................ 00:00:27 v #7353 > > │ 00:00:27 v #7354 > > ................................................................................ 00:00:27 v #7355 > > ................................................................................ 00:00:27 v #7356 > > │ 00:00:27 v #7357 > > ................................................................................ 00:00:27 v #7358 > > ................................................................................ 00:00:27 v #7359 > > │ 00:00:27 v #7360 > > ................................................................................ 00:00:27 v #7361 > > ................................................................................ 00:00:27 v #7362 > > │ 00:00:27 v #7363 > > ................................................................................ 00:00:27 v #7364 > > ................................................................................ 00:00:27 v #7365 > > │ 00:00:27 v #7366 > > ................................................................................ 00:00:27 v #7367 > > ................................................................................ 00:00:27 v #7368 > > │ 00:00:27 v #7369 > > ................................................................................ 00:00:27 v #7370 > > ................................................................................ 00:00:27 v #7371 > > │ 00:00:27 v #7372 > > │ 00:00:27 v #7373 > > ................................................................................ 00:00:27 v #7374 > > ................................................................................ 00:00:27 v #7375 > > │ 00:00:27 v #7376 > > ................................................................................ 00:00:27 v #7377 > > ................................................................................ 00:00:27 v #7378 > > │ 00:00:27 v #7379 > > ................................................................................ 00:00:27 v #7380 > > ................................................................................ 00:00:27 v #7381 > > │ 00:00:27 v #7382 > > ................................................................................ 00:00:27 v #7383 > > ................................................................................ 00:00:27 v #7384 > > │ 00:00:27 v #7385 > > ................................................................................ 00:00:27 v #7386 > > ................................................................................ 00:00:27 v #7387 > > │ 00:00:27 v #7388 > > ................................................................................ 00:00:27 v #7389 > > ................................................................................ 00:00:27 v #7390 > > │ 00:00:27 v #7391 > > ................................................................................ 00:00:27 v #7392 > > ................................................................................ 00:00:27 v #7393 > > │ 00:00:27 v #7394 > > .....................................;;//....................................... 00:00:27 v #7395 > > ................................................................................ 00:00:27 v #7396 > > │ 00:00:27 v #7397 > > ...................................;;;;////<.................................... 00:00:27 v #7398 > > ................................................................................ 00:00:27 v #7399 > > │ 00:00:27 v #7400 > > ................................<;;;;;;///////.................................. 00:00:27 v #7401 > > ................................................................................ 00:00:27 v #7402 > > │ 00:00:27 v #7403 > > ..............................<;;;;;;;;/////////<............................... 00:00:27 v #7404 > > ................................................................................ 00:00:27 v #7405 > > │ 00:00:27 v #7406 > > ............................;;;;;;;;;;;////////////<............................ 00:00:27 v #7407 > > ................................................................................ 00:00:27 v #7408 > > │ 00:00:27 v #7409 > > ..........................;;;;;;;;;;;;;///////////////<......................... 00:00:27 v #7410 > > ................................................................................ 00:00:27 v #7411 > > │ 00:00:27 v #7412 > > .......................<;;;;;;;;;;;;;;;//////////////////....................... 00:00:27 v #7413 > > ................................................................................ 00:00:27 v #7414 > > │ 00:00:27 v #7415 > > .....................;;;;;;;;;;;;;;;;;;/////////////////////.................... 00:00:27 v #7416 > > ................................................................................ 00:00:27 v #7417 > > │ 00:00:27 v #7418 > > ...................;;;;;;;;;;;;;;;;;;;;//////////////////////................... 00:00:27 v #7419 > > .......;;;//.................................................................... 00:00:27 v #7420 > > │ 00:00:27 v #7421 > > ...................;;;;;;;;;;;;;;;;;;;;///////////////////////.................. 00:00:27 v #7422 > > ....;;;;;;//////................................................................ 00:00:27 v #7423 > > │ 00:00:27 v #7424 > > ..................\;;;;;;;;;;;;;;;;;;;;///////////////////////.................. 00:00:27 v #7425 > > .;;;;;;;;;/////////............................................................. 00:00:27 v #7426 > > │ 00:00:27 v #7427 > > ..................;;;;;;;;;;;;;;;;;;;;;///////////////////////.................; 00:00:27 v #7428 > > ;;;;;;;;;;///////////..................;/....................................... 00:00:27 v #7429 > > │ 00:00:27 v #7430 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////................; 00:00:27 v #7431 > > ;;;;;;;;;;////////////.............<;;;;////<................................... 00:00:27 v #7432 > > │ 00:00:27 v #7433 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////...............\; 00:00:27 v #7434 > > ;;;;;;;;;;////////////............;;;;;;//////.................................. 00:00:27 v #7435 > > │ 00:00:27 v #7436 > > .................;;;;;;;;;;;;;;;;;;;;;;////////////////////////...............;; 00:00:27 v #7437 > > ;;;;;;;;;;////////////............;;;;;;//////.................................. 00:00:27 v #7438 > > │ 00:00:27 v #7439 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;; 00:00:27 v #7440 > > ;;;;;;;;;;>///////////............;;;;;;>>>///.................................. 00:00:27 v #7441 > > │ 00:00:27 v #7442 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;; 00:00:27 v #7443 > > ;;;;;;;;;>>>>>>///////............;;;;>>>>>>>>.................................. 00:00:27 v #7444 > > │ 00:00:27 v #7445 > > ................;;;;;;;;;;;;;;;;;;;;;;;>>>>/////////////////////..............;; 00:00:27 v #7446 > > ;;;;;;>>>>>>>>>>>>>>//.............>>>>>>>>>=................................... 00:00:27 v #7447 > > │ 00:00:27 v #7448 > > ................;;;;;;;;;;;;;;;;;;;>>>>>>>>>>>>>/////////////////.............;; 00:00:27 v #7449 > > ;;>>>>>>>>>>>>>>>>>>>>..................=....................................... 00:00:27 v #7450 > > │ 00:00:27 v #7451 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>////////////..............\ 00:00:27 v #7452 > > >>>>>>>>>>>>>>>>>>>>............................................................ 00:00:27 v #7453 > > │ 00:00:27 v #7454 > > ...............\;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///////............... 00:00:27 v #7455 > > .....>>>>>>>>>=................................................................. 00:00:27 v #7456 > > │ 00:00:27 v #7457 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///.............. 00:00:27 v #7458 > > ................................................................................ 00:00:27 v #7459 > > │ 00:00:27 v #7460 > > ...............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.............. 00:00:27 v #7461 > > ................................................................................ 00:00:27 v #7462 > > │ 00:00:27 v #7463 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=.................. 00:00:27 v #7464 > > ................................................................................ 00:00:27 v #7465 > > │ 00:00:27 v #7466 > > ........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=......................... 00:00:27 v #7467 > > ................................................................................ 00:00:27 v #7468 > > │ 00:00:27 v #7469 > > .................................\>>>>>>>>>>>>>=................................ 00:00:27 v #7470 > > ................................................................................ 00:00:27 v #7471 > > │ 00:00:27 v #7472 > > ................................................................................ 00:00:27 v #7473 > > ................................................................................ 00:00:27 v #7474 > > │ 00:00:27 v #7475 > > ................................................................................ 00:00:27 v #7476 > > ................................................................................ 00:00:27 v #7477 > > │ 00:00:27 v #7478 > > ................................................................................ 00:00:27 v #7479 > > ................................................................................ 00:00:27 v #7480 > > │ 00:00:27 v #7481 > > ................................................................................ 00:00:27 v #7482 > > ................................................................................ 00:00:27 v #7483 > > │ 00:00:27 v #7484 > > ................................................................................ 00:00:27 v #7485 > > ................................................................................ 00:00:27 v #7486 > > │ 00:00:27 v #7487 > > ................................................................................ 00:00:27 v #7488 > > ................................................................................ 00:00:27 v #7489 > > │ 00:00:27 v #7490 > > ................................................................................ 00:00:27 v #7491 > > ................................................................................ 00:00:27 v #7492 > > │ 00:00:27 v #7493 > > ................................................................................ 00:00:27 v #7494 > > ................................................................................ 00:00:27 v #7495 > > │ 00:00:27 v #7496 > > ................................................................................ 00:00:27 v #7497 > > ................................................................................ 00:00:27 v #7498 > > │ 00:00:27 v #7499 > > ................................................................................ 00:00:27 v #7500 > > ................................................................................ 00:00:27 v #7501 > > │ 00:00:27 v #7502 > > ................................................................................ 00:00:27 v #7503 > > ................................................................................ 00:00:27 v #7504 > > │ 00:00:27 v #7505 > > │ 00:00:27 v #7506 > 00:00:26 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 450048 } 00:00:27 v #7507 > 00:00:26 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:28 v #7508 > 00:00:27 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.ipynb to html 00:00:28 v #7509 > 00:00:27 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:28 v #7510 > 00:00:27 v #7 ! validate(nb) 00:00:28 v #7511 > 00:00:27 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:28 v #7512 > 00:00:27 v #9 ! return _pygments_highlight( 00:00:29 v #7513 > 00:00:28 v #10 ! [NbConvertApp] Writing 798012 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.html 00:00:29 v #7514 > 00:00:28 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914 } 00:00:29 v #7515 > 00:00:28 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 914 } 00:00:29 v #7516 > 00:00:28 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:29 v #7517 > 00:00:28 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:29 v #7518 > 00:00:28 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:29 v #7519 > 00:00:28 d #16 spiral.run / dib / { exit_code = 0; result_length = 451021 } 00:00:29 d #7520 runtime.execute_with_options_async / { exit_code = 0; output_length = 468722 } 00:00:29 d #3 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral dib --path cube.dib 00:00:29 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 writeDibCode / output: Spi / path: cube.dib 00:00:00 d #2 parseDibCode / output: Spi / file: cube.dib 00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #31 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 v #32 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n 160i... }\n : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: 00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: 00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end #else type std_string_String = string #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] #endif type std_env_VarError = class end type IOsEnviron = abstract environ: x: unit -> obj type [<Struct>] US0 = | US0_0 | US0_1 | US0_2 and [<Struct>] US1 = | US1_0 of f0_0 : US0 | US1_1 of f1_0 : US0 | US1_2 of f2_0 : US0 | US1_3 of f3_0 : US0 | US1_4 of f4_0 : US0 and [<Struct>] US2 = | US2_0 of f0_0 : string | US2_1 and Mut0 = {mutable l0 : float} and [<Struct>] US3 = | US3_0 of f0_0 : int32 * f0_1 : float * f0_2 : char | US3_1 and [<Struct>] US4 = ...x<unit> #endif #if FABLE_COMPILER_RUST && CONTRACT null |> unbox<unit> #endif #if FABLE_COMPILER_TYPESCRIPT null |> unbox<unit> #endif #if FABLE_COMPILER_PYTHON let v151 : (Async<unit> -> unit) = Async.RunSynchronously v151 v79 #endif #if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON let v152 : (Async<unit> -> unit) = Async.RunSynchronously v152 v79 #endif #else let v153 : (Async<unit> -> unit) = Async.RunSynchronously v153 v79 #endif // run_target_args' is_unit #endif // run_target_args' is_unit () let v0 : ((string []) -> unit) = closure0() let main_ = v0 #if !FABLE_COMPILER_RUST main_ [||] #else let main args = main_ [||]; 0 #endif () 00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end #else type std_string_String = string #endif #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] #endif type std_env_VarError = class end type IOsEnviron = abstract environ: x: unit -> obj type [<Struct>] US0 = | US0_0 | US0_1 | US0_2 and [<Struct>] US1 = | US1_0 of f0_0 : US0 | US1_1 of f1_0 : US0 | US1_2 of f2_0 : US0 | US1_3 of f3_0 : US0 | US1_4 of f4_0 : US0 and [<Struct>] US2 = | US2_0 of f0_0 : string | US2_1 and Mut0 = {mutable l0 : float} and [<Struct>] US3 = | US3_0 of f0_0 : int32 * f0_1 : float * f0_2 : char | US3_1 and [<Struct>] US4 = ...x<unit> #endif #if FABLE_COMPILER_RUST && CONTRACT null |> unbox<unit> #endif #if FABLE_COMPILER_TYPESCRIPT null |> unbox<unit> #endif #if FABLE_COMPILER_PYTHON let v151 : (Async<unit> -> unit) = Async.RunSynchronously v151 v79 #endif #if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON let v152 : (Async<unit> -> unit) = Async.RunSynchronously v152 v79 #endif #else let v153 : (Async<unit> -> unit) = Async.RunSynchronously v153 v79 #endif // run_target_args' is_unit #endif // run_target_args' is_unit () let v0 : ((string []) -> unit) = closure0() let main_ = v0 #if !FABLE_COMPILER_RUST main_ [||] #else let main args = main_ [||]; 0 #endif () 00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite 00:00:05 v #33 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 v #31 networking.test_port_open / { port = 13806; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n 160i... }\n : ()\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: 00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Python \u002B Cuda","uri":"file:///home/runner/work/polyglot/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: 00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:03 d #16 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:03 d #17 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: 00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:04 d #20 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: kernel = r""" """ class static_array(): def __init__(self, length): self.ptr = [] for _ in range(length): self.ptr.append(None) def __getitem__(self, index): assert 0 <= index < len(self.ptr), "The get index needs to be in range." return self.ptr[index] def __setitem__(self, index, value): assert 0 <= index < len(self.ptr), "The set index needs to be in range." self.ptr[index] = value class static_array_list(static_array): def __init__(self, length): super().__init__(length) self.length = 0 def __getitem__(self, index): assert 0 <= index < self.length, "The get index needs to be in range." return self.ptr[index] d... = 0 == v60 del v60 if v61: v62 = "AUTOMATION" v63 = method1(v62) del v62 v64 = len(v63) del v63 v65 = 0 == v64 del v64 v66 = v65 else: v66 = False del v61 if v66: v75 = -1 else: v75 = 50 del v66 v76 = 1 v77 = 0.0 v78 = 0.0 v79 = 0.0 v80 = method2(v75, v76, v77, v78, v79) del v75, v76, v77, v78, v79 asyncio.run(v80()) del v80 return def main(): r = main_body() if cuda: cp.cuda.get_current_stream().synchronize() # This line is here so the `__trap()` calls on the kernel aren't missed. return r if __name__ == '__main__': result = main(); None if result is None else print(result) 00:00:04 d #21 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: kernel = r""" """ class static_array(): def __init__(self, length): self.ptr = [] for _ in range(length): self.ptr.append(None) def __getitem__(self, index): assert 0 <= index < len(self.ptr), "The get index needs to be in range." return self.ptr[index] def __setitem__(self, index, value): assert 0 <= index < len(self.ptr), "The set index needs to be in range." self.ptr[index] = value class static_array_list(static_array): def __init__(self, length): super().__init__(length) self.length = 0 def __getitem__(self, index): assert 0 <= index < self.length, "The get index needs to be in range." return self.ptr[index] d... = 0 == v60 del v60 if v61: v62 = "AUTOMATION" v63 = method1(v62) del v62 v64 = len(v63) del v63 v65 = 0 == v64 del v64 v66 = v65 else: v66 = False del v61 if v66: v75 = -1 else: v75 = 50 del v66 v76 = 1 v77 = 0.0 v78 = 0.0 v79 = 0.0 v80 = method2(v75, v76, v77, v78, v79) del v75, v76, v77, v78, v79 asyncio.run(v80()) del v80 return def main(): r = main_body() if cuda: cp.cuda.get_current_stream().synchronize() # This line is here so the `__trap()` calls on the kernel aren't missed. return r if __name__ == '__main__': result = main(); None if result is None else print(result) 00:00:04 d #22 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite 00:00:04 v #32 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: cube / hash: / code.Length: 48391 polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target: / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube / ProjectName: cube / Language: rs / Runtime: / root: /home/runner/work/polyglot/polyglot Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha) Thanks to the contributor! @GordonBGood Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target/Builder/cube/cube.fsproj... Project and references (14 source files) parsed in 3160ms Started Fable compilation... Fable compilation finished in 7262ms ./deps/spiral/lib/spiral/sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! ./deps/spiral/lib/spiral/file_system.fsx(17985,0): (17985,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/lib/fsharp/Common.rs / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/common.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/common.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/date_time.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/async_.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/platform.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/runtime.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/threading.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/networking.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/file_system.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/sm.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/crypto.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/trace.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.rs polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.rs spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/spiral/lib.rs / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.rs polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target: / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube / ProjectName: cube / Language: ts / Runtime: / root: /home/runner/work/polyglot/polyglot Fable 5.0.0-alpha.9: F# to TypeScript compiler Minimum @fable-org/fable-library-ts version (when installed from npm): 1.10.0 Thanks to the contributor! @markek Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target/Builder/cube/cube.fsproj... Project and references (14 source files) parsed in 2156ms Started Fable compilation... Fable compilation finished in 6854ms ./deps/spiral/lib/spiral/sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored ./deps/spiral/lib/spiral/sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/fsharp/Common.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/Common.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/lib/fsharp/Common.ts / to: /home/runner/work/polyglot/polyglot/lib/fsharp/Common.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/common.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/common.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/date_time.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/async_.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/platform.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/platform.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/runtime.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/threading.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/threading.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/networking.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/file_system.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/sm.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/crypto.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/trace.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.ts polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.ts spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/spiral/lib.ts / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.ts polyglot/scripts/core.ps1/ResolveLink #4 / Path: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps/polyglot / parent_target: / path_target: /home/runner/work/polyglot/polyglot / parent: /home/runner/work/polyglot/polyglot/deps/spiral/lib/spiral/../../deps / End: polyglot spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: /home/runner/work/polyglot/polyglot/target/Builder/cube / ProjectName: cube / Language: py / Runtime: / root: /home/runner/work/polyglot/polyglot Fable 5.0.0-alpha.9: F# to Python compiler (status: beta) Thanks to the contributor! @johlrich Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target/Builder/cube/cube.fsproj... Project and references (14 source files) parsed in 2068ms Started Fable compilation... Fable compilation finished in 6744ms ./deps/spiral/lib/spiral/sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored ./deps/spiral/lib/spiral/sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/fsharp/common.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/lib/fsharp/common.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/lib/fsharp/common.py / to: /home/runner/work/polyglot/polyglot/lib/fsharp/common.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/common.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/common.py / to: /home/runner/work/polyglot/spiral/lib/spiral/common.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/date_time.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/date_time.py / to: /home/runner/work/polyglot/spiral/lib/spiral/date_time.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/async_.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/async_.py / to: /home/runner/work/polyglot/spiral/lib/spiral/async_.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/platform_.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/platform_.py / to: /home/runner/work/polyglot/spiral/lib/spiral/platform_.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/runtime.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/runtime.py / to: /home/runner/work/polyglot/spiral/lib/spiral/runtime.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/threading_.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/threading_.py / to: /home/runner/work/polyglot/spiral/lib/spiral/threading_.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/networking.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/networking.py / to: /home/runner/work/polyglot/spiral/lib/spiral/networking.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/file_system.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/file_system.py / to: /home/runner/work/polyglot/spiral/lib/spiral/file_system.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/sm.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/sm.py / to: /home/runner/work/polyglot/spiral/lib/spiral/sm.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/crypto.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/crypto.py / to: /home/runner/work/polyglot/spiral/lib/spiral/crypto.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/trace.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/trace.py / to: /home/runner/work/polyglot/spiral/lib/spiral/trace.py polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/spiral/lib/spiral/lib.py spiral/lib/spiral/lib.ps1/CopyItem / from: /home/runner/work/polyglot/polyglot/target/Builder/cube/target/py/deps/spiral/lib/spiral/lib.py / to: /home/runner/work/polyglot/spiral/lib/spiral/lib.py bun install v1.2.1 (ce532901) + @playwright/test@1.44.0 + @types/chrome@0.0.268 + npm-check-updates@17.1.14 + buffer@6.0.3 11 packages installed [102.00ms] [INFO]: 🎯 Checking for the Wasm target... [INFO]: 🌀 Compiling to Wasm... Compiling proc-macro2 v1.0.92 Compiling unicode-ident v1.0.14 Compiling autocfg v1.4.0 Compiling serde v1.0.216 Compiling cfg-if v1.0.0 Compiling wasm-bindgen-shared v0.2.99 Compiling once_cell v1.20.2 Compiling log v0.4.22 Compiling bumpalo v3.16.0 Compiling version_check v0.9.5 Compiling wasm-bindgen v0.2.99 Compiling quote v1.0.37 Compiling thiserror v1.0.69 Compiling syn v2.0.90 Compiling memchr v2.7.4 Compiling stable_deref_trait v1.2.0 Compiling pin-project-lite v0.2.15 Compiling smallvec v1.13.2 Compiling litemap v0.7.4 Compiling futures-core v0.3.31 Compiling writeable v0.5.5 Compiling slab v0.4.9 Compiling lock_api v0.4.12 Compiling parking_lot_core v0.9.10 Compiling futures-sink v0.3.31 Compiling itoa v1.0.14 Compiling futures-channel v0.3.31 Compiling icu_locid_transform_data v1.5.0 Compiling futures-io v0.3.31 Compiling libc v0.2.168 Compiling percent-encoding v2.3.1 Compiling pin-utils v0.1.0 Compiling ryu v1.0.18 Compiling unicode-xid v0.2.6 Compiling serde_json v1.0.133 Compiling icu_properties_data v1.5.0 Compiling futures-task v0.3.31 Compiling const_format_proc_macros v0.2.34 Compiling proc-macro-error-attr v1.0.4 Compiling utf16_iter v1.0.5 Compiling hashbrown v0.15.2 Compiling icu_normalizer_data v1.5.0 Compiling write16 v1.0.0 Compiling utf8_iter v1.0.4 Compiling equivalent v1.0.1 Compiling indexmap v2.7.0 Compiling proc-macro-error v1.0.4 Compiling unicode-segmentation v1.12.0 Compiling bytes v1.9.0 Compiling fnv v1.0.7 Compiling convert_case v0.6.0 Compiling const_format v0.2.34 Compiling form_urlencoded v1.2.1 Compiling proc-macro-utils v0.10.0 Compiling proc-macro-utils v0.8.0 Compiling proc-macro2-diagnostics v0.10.1 Compiling xxhash-rust v0.8.12 Compiling wasm-bindgen-backend v0.2.99 Compiling synstructure v0.13.1 Compiling manyhow-macros v0.10.4 Compiling server_fn_macro v0.6.15 Compiling slotmap v1.0.7 Compiling wasm-bindgen-macro-support v0.2.99 Compiling half v2.4.1 Compiling camino v1.1.9 Compiling scopeguard v1.2.0 Compiling yansi v1.0.1 Compiling anyhow v1.0.94 Compiling ciborium-io v0.2.2 Compiling paste v1.0.15 Compiling ciborium-ll v0.2.2 Compiling manyhow v0.10.4 Compiling http v1.2.0 Compiling tracing-core v0.1.33 Compiling winnow v0.6.20 Compiling serde_derive v1.0.216 Compiling wasm-bindgen-macro v0.2.99 Compiling zerofrom-derive v0.1.5 Compiling yoke-derive v0.7.5 Compiling thiserror-impl v1.0.69 Compiling js-sys v0.3.76 Compiling zerofrom v0.1.5 Compiling yoke v0.7.5 Compiling zerovec-derive v0.10.3 Compiling displaydoc v0.2.5 Compiling icu_provider_macros v1.5.0 Compiling zerovec v0.10.4 Compiling futures-macro v0.3.31 Compiling tinystr v0.7.6 Compiling icu_collections v1.5.0 Compiling icu_locid v1.5.0 Compiling icu_provider v1.5.0 Compiling icu_locid_transform v1.5.0 Compiling futures-util v0.3.31 Compiling web-sys v0.3.76 Compiling icu_properties v1.5.1 Compiling wasm-bindgen-futures v0.4.49 Compiling pin-project-internal v1.1.7 Compiling futures-executor v0.3.31 Compiling tracing-attributes v0.1.28 Compiling icu_normalizer v1.5.0 Compiling pin-project v1.1.7 Compiling futures v0.3.31 Compiling idna_adapter v1.2.0 Compiling idna v1.0.3 Compiling quote-use-macros v0.8.4 Compiling url v2.5.4 Compiling toml_datetime v0.6.8 Compiling quote-use v0.8.4 Compiling serde_spanned v0.6.8 Compiling syn_derive v0.1.8 Compiling collection_literals v1.0.1 Compiling interpolator v0.5.0 Compiling same-file v1.0.6 Compiling hashbrown v0.14.5 Compiling prettyplease v0.2.25 Compiling dashmap v5.5.3 Compiling rstml v0.11.2 Compiling walkdir v2.5.0 Compiling attribute-derive-macro v0.9.2 Compiling toml_edit v0.22.22 Compiling tracing v0.1.41 Compiling serde-wasm-bindgen v0.6.5 Compiling oco_ref v0.1.1 Compiling serde_qs v0.12.0 Compiling ciborium v0.2.2 Compiling derive-where v1.2.7 Compiling server_fn_macro_default v0.6.15 Compiling parking_lot v0.12.3 Compiling getrandom v0.2.15 Compiling send_wrapper v0.6.0 Compiling proc-macro-error-attr2 v2.0.0 Compiling aho-corasick v1.1.3 Compiling base64 v0.22.1 Compiling self_cell v1.1.0 Compiling utf8-width v0.1.7 Compiling either v1.13.0 Compiling regex-syntax v0.8.5 Compiling minimal-lexical v0.2.1 Compiling rustc-hash v1.1.0 Compiling nom v7.1.3 Compiling regex-automata v0.4.9 Compiling itertools v0.12.1 Compiling html-escape v0.2.13 Compiling proc-macro-error2 v2.0.1 Compiling leptos_hot_reload v0.6.15 Compiling uuid v1.11.0 Compiling attribute-derive v0.9.2 Compiling toml v0.8.19 Compiling typed-builder-macro v0.18.2 Compiling pathdiff v0.2.3 Compiling config v0.14.1 Compiling typed-builder v0.18.2 Compiling leptos_macro v0.6.15 Compiling regex v1.11.1 Compiling async-recursion v1.1.1 Compiling num-traits v0.2.19 Compiling lazy_static v1.5.0 Compiling drain_filter_polyfill v0.1.3 Compiling pad-adapter v0.1.1 Compiling inventory v0.3.15 Compiling leptos_config v0.6.15 Compiling cfg_aliases v0.2.1 Compiling borsh v1.5.3 Compiling serde_test v1.0.177 Compiling tokio v1.42.0 Compiling linear-map v1.2.0 Compiling serde_urlencoded v0.7.1 Compiling serde_qs v0.13.0 Compiling http v0.2.12 Compiling base64 v0.13.1 Compiling tower-service v0.3.3 Compiling console_error_panic_hook v0.1.7 Compiling gloo-utils v0.2.0 Compiling leptos_reactive v0.6.15 Compiling idb v0.6.4 Compiling gloo-net v0.6.0 Compiling reqwest-wasm v0.11.16 Compiling console_log v1.0.0 Compiling wasm-streams v0.4.2 Compiling rexie v0.6.2 Compiling server_fn v0.6.15 Compiling leptos_dom v0.6.15 Compiling leptos_server v0.6.15 Compiling leptos v0.6.15 Compiling leptos_meta v0.6.15 Compiling leptos_router v0.6.15 Compiling spiral_temp_extension v0.0.1 (/home/runner/work/polyglot/polyglot/apps/spiral/temp/extension) Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.25s [INFO]: ⬇️ Installing wasm-bindgen... [INFO]: Optional field missing from Cargo.toml: 'description'. This is not necessary, but recommended [INFO]: ✨ Done in 55.52s [INFO]: 📦 Your wasm pkg is ready to publish at /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension/pkg. Resolving dependencies Resolved, downloaded and extracted [56] Saved lockfile ▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta] pkg/spiral_temp_extension.js:1455:66: 1455 │ ...ath = new URL('spiral_temp_extension_bg.wasm', import.meta.url); ╵ ~~~~~~~~~~~ You need to set the output format to "esm" for "import.meta" to work correctly. 1 warning dist/spiral_temp_extension_bg-GYR7LT4Q.wasm 4.4mb ⚠️ dist/devtools.js 29.0kb dist/content_script.js 26.7kb dist/service_worker.js 2.2kb ⚡ Done in 32ms $ playwright test [WebServer] Resolving dependencies [WebServer] Resolved, downloaded and extracted [270] [WebServer] Saved lockfile Running 3 tests using 2 workers ··· 3 passed (8.1s) 00:00:00 v #1 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 ""/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "/home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release/Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "/home/runner/work/polyglot/polyglot" } } 00:00:00 v #2 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #2 > 00:00:00 d #1 pwd: /home/runner/work/polyglot/polyglot 00:00:00 v #3 > 00:00:00 d #2 dllPath: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/The Spiral Language 2/artifacts/bin/The Spiral Language 2/release 00:00:00 v #4 > 00:00:00 d #3 targetDir: /home/runner/work/polyglot/polyglot/target/spiral_Eval 00:00:00 v #3 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #4 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #6 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #7 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #8 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #9 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #10 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #11 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #12 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #13 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #14 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #15 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #16 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #17 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #18 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #19 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #20 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #21 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #22 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #23 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #24 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #25 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #26 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #27 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 00:00:00 v #28 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #29 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:00 v #30 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } 00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: 00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 00:00:01 v #6 > Server bound to: http://localhost:13805 00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral; arguments = US5_0 "dib --path build.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral dib --path build.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "build.dib"])) } 00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib", "--output-path", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib" --output-path "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } 00:00:02 v #10 > > 00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #12 > > │ # test 00:00:02 v #13 > > 00:00:02 v #14 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #15 > > │ ## include scripts 00:00:02 v #16 > > 00:00:02 v #17 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:02 v #18 > > │ ### include notebook core 00:00:02 v #19 > > 00:00:02 v #20 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:02 v #21 > > . ../../../../scripts/nbs_header.ps1 00:00:03 v #22 > > 00:00:03 v #23 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:03 v #24 > > │ ### Include core functions script 00:00:03 v #25 > > 00:00:03 v #26 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:03 v #27 > > . ../../../../scripts/core.ps1 00:00:03 v #28 > > 00:00:03 v #29 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:03 v #30 > > │ ### Include spiral library 00:00:03 v #31 > > 00:00:03 v #32 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:03 v #33 > > . ../../../../deps/spiral/lib/spiral/lib.ps1 00:00:03 v #34 > > 00:00:03 v #35 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:03 v #36 > > │ ## execute project commands 00:00:03 v #37 > > 00:00:03 v #38 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:03 v #39 > > │ ### run notebook with retries using spiral supervisor 00:00:03 v #40 > > 00:00:03 v #41 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:03 v #42 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --execute-command 00:00:03 v #43 > > "../../../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path 00:00:03 v #44 > > test.dib --retries 3" } | Invoke-Block 00:00:15 v #45 > <test> 00:00:15 v #46 > </test> 00:00:17 v #47 > > 00:00:17 v #48 > > ── [ 13.95s - stdout ] ───────────────────────────────────────────────────────── 00:00:17 v #49 > > │ 00:00:00 v #1 networking.test_port_open / { port = 00:00:17 v #50 > > 13806; ex = System.AggregateException: One or more errors occurred. (Connection 00:00:17 v #51 > > refused) } 00:00:17 v #52 > > │ 00:00:00 d #1 runtime.execute_with_options_async / { 00:00:17 v #53 > > file_name = ../../../../deps/spiral/workspace/target/release/spiral; arguments = 00:00:17 v #54 > > US5_0 "dib --path test.dib --retries 3"; options = { command = 00:00:17 v #55 > > ../../../../deps/spiral/workspace/target/release/spiral dib --path test.dib 00:00:17 v #56 > > --retries 3; cancellation_token = Some System.Threading.CancellationToken; 00:00:17 v #57 > > environment_variables = [||]; on_line = None; stdin = None; trace = true; 00:00:17 v #58 > > working_directory = None } } 00:00:17 v #59 > > │ 00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args 00:00:17 v #60 > > = Array(MutCell(["dib", "--path", "test.dib", "--retries", "3"])) } 00:00:17 v #61 > > │ 00:00:00 v #3 > 00:00:00 d #2 00:00:17 v #62 > > runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", 00:00:17 v #63 > > "--exit-after-run", "--run", 00:00:17 v #64 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib", 00:00:17 v #65 > > "--output-path", 00:00:17 v #66 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb"]; 00:00:17 v #67 > > options = { command = dotnet repl --exit-after-run --run 00:00:17 v #68 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib" 00:00:17 v #69 > > --output-path 00:00:17 v #70 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb"; 00:00:17 v #71 > > cancellation_token = None; environment_variables = 00:00:17 v #72 > > Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = 00:00:17 v #73 > > None; stdin = None; trace = false; working_directory = None } } 00:00:17 v #74 > > │ 00:00:01 v #4 > > 00:00:17 v #75 > > │ 00:00:01 v #5 > > ── markdown 00:00:17 v #76 > > ──────────────────────────────────────────────────────────────────── 00:00:17 v #77 > > │ 00:00:01 v #6 > > │ # test (Polyglot) 00:00:17 v #78 > > │ 00:00:04 v #7 > > 00:00:17 v #79 > > │ 00:00:04 v #8 > > ── spiral 00:00:17 v #80 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #81 > > │ 00:00:04 v #9 > > //// test 00:00:17 v #82 > > │ 00:00:04 v #10 > > 00:00:17 v #83 > > │ 00:00:04 v #11 > > open testing 00:00:17 v #84 > > │ 00:00:08 v #12 > > 00:00:17 v #85 > > │ 00:00:08 v #13 > > ── spiral 00:00:17 v #86 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #87 > > │ 00:00:08 v #14 > > //// test 00:00:17 v #88 > > │ 00:00:08 v #15 > > //// print_code 00:00:17 v #89 > > │ 00:00:08 v #16 > > 00:00:17 v #90 > > │ 00:00:08 v #17 > > inl jp = [[ "J"; "P" ]] 00:00:17 v #91 > > │ 00:00:08 v #18 > > inl tf = [[ "T"; "F" ]] 00:00:17 v #92 > > │ 00:00:08 v #19 > > inl sn = [[ "S"; "N" ]] 00:00:17 v #93 > > │ 00:00:08 v #20 > > inl ie = [[ "I"; "E" ]] 00:00:17 v #94 > > │ 00:00:08 v #21 > > 00:00:17 v #95 > > │ 00:00:08 v #22 > > (ie, ([[]] : _ string)) 00:00:17 v #96 > > │ 00:00:08 v #23 > > ||> listm.foldBack fun ie' acc => 00:00:17 v #97 > > │ 00:00:08 v #24 > > inl ssnn acc' jp' = 00:00:17 v #98 > > │ 00:00:08 v #25 > > (sn, acc') 00:00:17 v #99 > > │ 00:00:08 v #26 > > ||> listm.foldBack fun sn' 00:00:17 v #100 > > acc' => 00:00:17 v #101 > > │ 00:00:08 v #27 > > inl c' ie' sn' tf' jp' = 00:00:17 v #102 > > │ 00:00:08 v #28 > > 00:00:17 v #103 > > $'$"{!ie'}{!sn'}{!tf'}{!jp'}"' 00:00:17 v #104 > > │ 00:00:08 v #29 > > 00:00:17 v #105 > > │ 00:00:08 v #30 > > if listm.length acc' % 00:00:17 v #106 > > 4i32 = 2 then 00:00:17 v #107 > > │ 00:00:08 v #31 > > (tf, acc') 00:00:17 v #108 > > │ 00:00:08 v #32 > > ||> listm.foldBack 00:00:17 v #109 > > fun tf' acc'' => 00:00:17 v #110 > > │ 00:00:08 v #33 > > c' ie' sn' tf' 00:00:17 v #111 > > jp' :: acc'' 00:00:17 v #112 > > │ 00:00:08 v #34 > > else 00:00:17 v #113 > > │ 00:00:08 v #35 > > (acc', tf) 00:00:17 v #114 > > │ 00:00:08 v #36 > > ||> listm.fold fun 00:00:17 v #115 > > acc'' tf' => 00:00:17 v #116 > > │ 00:00:08 v #37 > > c' ie' sn' tf' 00:00:17 v #117 > > jp' :: acc'' 00:00:17 v #118 > > │ 00:00:08 v #38 > > if acc = [[]] then 00:00:17 v #119 > > │ 00:00:08 v #39 > > (acc, jp) 00:00:17 v #120 > > │ 00:00:08 v #40 > > ||> listm.fold fun acc' jp' 00:00:17 v #121 > > => 00:00:17 v #122 > > │ 00:00:08 v #41 > > ssnn acc' jp' 00:00:17 v #123 > > │ 00:00:08 v #42 > > else 00:00:17 v #124 > > │ 00:00:08 v #43 > > (jp, acc) 00:00:17 v #125 > > │ 00:00:08 v #44 > > ||> listm.foldBack fun jp' 00:00:17 v #126 > > acc' => 00:00:17 v #127 > > │ 00:00:08 v #45 > > ssnn acc' jp' 00:00:17 v #128 > > │ 00:00:08 v #46 > > |> listm'.box 00:00:17 v #129 > > │ 00:00:08 v #47 > > |> listm'.to_array' 00:00:17 v #130 > > │ 00:00:08 v #48 > > |> _assert_eq' ;[[ 00:00:17 v #131 > > │ 00:00:08 v #49 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" 00:00:17 v #132 > > │ 00:00:08 v #50 > > "ISTP"; "ISFP"; "INFP"; "INTP" 00:00:17 v #133 > > │ 00:00:08 v #51 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" 00:00:17 v #134 > > │ 00:00:08 v #52 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" 00:00:17 v #135 > > │ 00:00:08 v #53 > > ]] 00:00:17 v #136 > > │ 00:00:09 v #54 > > 00:00:17 v #137 > > │ 00:00:09 v #55 > > ── [ 980.39ms - stdout ] 00:00:17 v #138 > > ─────────────────────────────────────────────────────── 00:00:17 v #139 > > │ 00:00:09 v #56 > > │ let rec method1 00:00:17 v #140 > > (v0 : bool) : bool = 00:00:17 v #141 > > │ 00:00:09 v #57 > > │ v0 00:00:17 v #142 > > │ 00:00:09 v #58 > > │ and closure0 (v0 : 00:00:17 v #143 > > string) () : unit = 00:00:17 v #144 > > │ 00:00:09 v #59 > > │ let v1 : 00:00:17 v #145 > > (string -> unit) = System.Console.WriteLine 00:00:17 v #146 > > │ 00:00:09 v #60 > > │ v1 v0 00:00:17 v #147 > > │ 00:00:09 v #61 > > │ and method0 () : 00:00:17 v #148 > > unit = 00:00:17 v #149 > > │ 00:00:09 v #62 > > │ let v0 : 00:00:17 v #150 > > string = "E" 00:00:17 v #151 > > │ 00:00:09 v #63 > > │ let v1 : 00:00:17 v #152 > > string = "N" 00:00:17 v #153 > > │ 00:00:09 v #64 > > │ let v2 : 00:00:17 v #154 > > string = "T" 00:00:17 v #155 > > │ 00:00:09 v #65 > > │ let v3 : 00:00:17 v #156 > > string = "J" 00:00:17 v #157 > > │ 00:00:09 v #66 > > │ let v4 : 00:00:17 v #158 > > string = $"{v0}{v1}{v2}{v3}" 00:00:17 v #159 > > │ 00:00:09 v #67 > > │ let v5 : 00:00:17 v #160 > > string = "F" 00:00:17 v #161 > > │ 00:00:09 v #68 > > │ let v6 : 00:00:17 v #162 > > string = $"{v0}{v1}{v5}{v3}" 00:00:17 v #163 > > │ 00:00:09 v #69 > > │ let v7 : 00:00:17 v #164 > > string = "S" 00:00:17 v #165 > > │ 00:00:09 v #70 > > │ let v8 : 00:00:17 v #166 > > string = $"{v0}{v7}{v5}{v3}" 00:00:17 v #167 > > │ 00:00:09 v #71 > > │ let v9 : 00:00:17 v #168 > > string = $"{v0}{v7}{v2}{v3}" 00:00:17 v #169 > > │ 00:00:09 v #72 > > │ let v10 : 00:00:17 v #170 > > string = "P" 00:00:17 v #171 > > │ 00:00:09 v #73 > > │ let v11 : 00:00:17 v #172 > > string = $"{v0}{v1}{v2}{v10}" 00:00:17 v #173 > > │ 00:00:09 v #74 > > │ let v12 : 00:00:17 v #174 > > string = $"{v0}{v1}{v5}{v10}" 00:00:17 v #175 > > │ 00:00:09 v #75 > > │ let v13 : 00:00:17 v #176 > > string = $"{v0}{v7}{v5}{v10}" 00:00:17 v #177 > > │ 00:00:09 v #76 > > │ let v14 : 00:00:17 v #178 > > string = $"{v0}{v7}{v2}{v10}" 00:00:17 v #179 > > │ 00:00:09 v #77 > > │ let v15 : 00:00:17 v #180 > > string = "I" 00:00:17 v #181 > > │ 00:00:09 v #78 > > │ let v16 : 00:00:17 v #182 > > string = $"{v15}{v1}{v2}{v10}" 00:00:17 v #183 > > │ 00:00:09 v #79 > > │ let v17 : 00:00:17 v #184 > > string = $"{v15}{v1}{v5}{v10}" 00:00:17 v #185 > > │ 00:00:09 v #80 > > │ let v18 : 00:00:17 v #186 > > string = $"{v15}{v7}{v5}{v10}" 00:00:17 v #187 > > │ 00:00:09 v #81 > > │ let v19 : 00:00:17 v #188 > > string = $"{v15}{v7}{v2}{v10}" 00:00:17 v #189 > > │ 00:00:09 v #82 > > │ let v20 : 00:00:17 v #190 > > string = $"{v15}{v1}{v2}{v3}" 00:00:17 v #191 > > │ 00:00:09 v #83 > > │ let v21 : 00:00:17 v #192 > > string = $"{v15}{v1}{v5}{v3}" 00:00:17 v #193 > > │ 00:00:09 v #84 > > │ let v22 : 00:00:17 v #194 > > string = $"{v15}{v7}{v5}{v3}" 00:00:17 v #195 > > │ 00:00:09 v #85 > > │ let v23 : 00:00:17 v #196 > > string = $"{v15}{v7}{v2}{v3}" 00:00:17 v #197 > > │ 00:00:09 v #86 > > │ let v24 : 00:00:17 v #198 > > string list = [] 00:00:17 v #199 > > │ 00:00:09 v #87 > > │ let v25 : 00:00:17 v #200 > > string list = v4 :: v24 00:00:17 v #201 > > │ 00:00:09 v #88 > > │ let v28 : 00:00:17 v #202 > > string list = v6 :: v25 00:00:17 v #203 > > │ 00:00:09 v #89 > > │ let v31 : 00:00:17 v #204 > > string list = v8 :: v28 00:00:17 v #205 > > │ 00:00:09 v #90 > > │ let v34 : 00:00:17 v #206 > > string list = v9 :: v31 00:00:17 v #207 > > │ 00:00:09 v #91 > > │ let v37 : 00:00:17 v #208 > > string list = v11 :: v34 00:00:17 v #209 > > │ 00:00:09 v #92 > > │ let v40 : 00:00:17 v #210 > > string list = v12 :: v37 00:00:17 v #211 > > │ 00:00:09 v #93 > > │ let v43 : 00:00:17 v #212 > > string list = v13 :: v40 00:00:17 v #213 > > │ 00:00:09 v #94 > > │ let v46 : 00:00:17 v #214 > > string list = v14 :: v43 00:00:17 v #215 > > │ 00:00:09 v #95 > > │ let v49 : 00:00:17 v #216 > > string list = v16 :: v46 00:00:17 v #217 > > │ 00:00:09 v #96 > > │ let v52 : 00:00:17 v #218 > > string list = v17 :: v49 00:00:17 v #219 > > │ 00:00:09 v #97 > > │ let v55 : 00:00:17 v #220 > > string list = v18 :: v52 00:00:17 v #221 > > │ 00:00:09 v #98 > > │ let v58 : 00:00:17 v #222 > > string list = v19 :: v55 00:00:17 v #223 > > │ 00:00:09 v #99 > > │ let v61 : 00:00:17 v #224 > > string list = v20 :: v58 00:00:17 v #225 > > │ 00:00:09 v #100 > > │ let v64 : 00:00:17 v #226 > > string list = v21 :: v61 00:00:17 v #227 > > │ 00:00:09 v #101 > > │ let v67 : 00:00:17 v #228 > > string list = v22 :: v64 00:00:17 v #229 > > │ 00:00:09 v #102 > > │ let v70 : 00:00:17 v #230 > > string list = v23 :: v67 00:00:17 v #231 > > │ 00:00:09 v #103 > > │ let v73 : 00:00:17 v #232 > > (string list -> (string [])) = List.toArray 00:00:17 v #233 > > │ 00:00:09 v #104 > > │ let v74 : 00:00:17 v #234 > > (string []) = v73 v70 00:00:17 v #235 > > │ 00:00:09 v #105 > > │ let v77 : 00:00:17 v #236 > > string = "ISTJ" 00:00:17 v #237 > > │ 00:00:09 v #106 > > │ let v78 : 00:00:17 v #238 > > string = "ISFJ" 00:00:17 v #239 > > │ 00:00:09 v #107 > > │ let v79 : 00:00:17 v #240 > > string = "INFJ" 00:00:17 v #241 > > │ 00:00:09 v #108 > > │ let v80 : 00:00:17 v #242 > > string = "INTJ" 00:00:17 v #243 > > │ 00:00:09 v #109 > > │ let v81 : 00:00:17 v #244 > > string = "ISTP" 00:00:17 v #245 > > │ 00:00:09 v #110 > > │ let v82 : 00:00:17 v #246 > > string = "ISFP" 00:00:17 v #247 > > │ 00:00:09 v #111 > > │ let v83 : 00:00:17 v #248 > > string = "INFP" 00:00:17 v #249 > > │ 00:00:09 v #112 > > │ let v84 : 00:00:17 v #250 > > string = "INTP" 00:00:17 v #251 > > │ 00:00:09 v #113 > > │ let v85 : 00:00:17 v #252 > > string = "ESTP" 00:00:17 v #253 > > │ 00:00:09 v #114 > > │ let v86 : 00:00:17 v #254 > > string = "ESFP" 00:00:17 v #255 > > │ 00:00:09 v #115 > > │ let v87 : 00:00:17 v #256 > > string = "ENFP" 00:00:17 v #257 > > │ 00:00:09 v #116 > > │ let v88 : 00:00:17 v #258 > > string = "ENTP" 00:00:17 v #259 > > │ 00:00:09 v #117 > > │ let v89 : 00:00:17 v #260 > > string = "ESTJ" 00:00:17 v #261 > > │ 00:00:09 v #118 > > │ let v90 : 00:00:17 v #262 > > string = "ESFJ" 00:00:17 v #263 > > │ 00:00:09 v #119 > > │ let v91 : 00:00:17 v #264 > > string = "ENFJ" 00:00:17 v #265 > > │ 00:00:09 v #120 > > │ let v92 : 00:00:17 v #266 > > string = "ENTJ" 00:00:17 v #267 > > │ 00:00:09 v #121 > > │ let v93 : 00:00:17 v #268 > > (string []) = [|v77; v78; v79; v80; v81; v82; 00:00:17 v #269 > > │ 00:00:09 v #122 > > v83; v84; v85; v86; v87; v88; v89; 00:00:17 v #270 > > v90; v91; v92|] 00:00:17 v #271 > > │ 00:00:09 v #123 > > │ let v94 : 00:00:17 v #272 > > bool = v74 = v93 00:00:17 v #273 > > │ 00:00:09 v #124 > > │ let v98 : 00:00:17 v #274 > > bool = 00:00:17 v #275 > > │ 00:00:09 v #125 > > │ if v94 00:00:17 v #276 > > then 00:00:17 v #277 > > │ 00:00:09 v #126 > > │ true 00:00:17 v #278 > > │ 00:00:09 v #127 > > │ else 00:00:17 v #279 > > │ 00:00:09 v #128 > > │ 00:00:17 v #280 > > method1(v94) 00:00:17 v #281 > > │ 00:00:09 v #129 > > │ let v99 : 00:00:17 v #282 > > string = "__assert_eq'" 00:00:17 v #283 > > │ 00:00:09 v #130 > > │ let v100 : 00:00:17 v #284 > > string = $"{v99} / actual: %A{v74} / expected: 00:00:17 v #285 > > │ 00:00:09 v #131 > > %A{v93}" 00:00:17 v #286 > > │ 00:00:09 v #132 > > │ let v103 : 00:00:17 v #287 > > unit = () 00:00:17 v #288 > > │ 00:00:09 v #133 > > │ let v104 : 00:00:17 v #289 > > (unit -> unit) = closure0(v100) 00:00:17 v #290 > > │ 00:00:09 v #134 > > │ let v105 : 00:00:17 v #291 > > unit = (fun () -> v104 (); v103) () 00:00:17 v #292 > > │ 00:00:09 v #135 > > │ let v107 : 00:00:17 v #293 > > bool = v98 = false 00:00:17 v #294 > > │ 00:00:09 v #136 > > │ if v107 then 00:00:17 v #295 > > │ 00:00:09 v #137 > > │ 00:00:17 v #296 > > failwith<unit> v100 00:00:17 v #297 > > │ 00:00:09 v #138 > > │ method0() 00:00:17 v #298 > > │ 00:00:09 v #139 > > │ 00:00:17 v #299 > > │ 00:00:09 v #140 > > │ __assert_eq' 00:00:17 v #300 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; 00:00:17 v #301 > > │ 00:00:09 v #141 > > "ISTP"; "ISFP"; "INFP"; "INTP"; 00:00:17 v #302 > > "ESTP"; "ESFP"; 00:00:17 v #303 > > │ 00:00:09 v #142 > > │ "ENFP"; "ENTP"; 00:00:17 v #304 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] 00:00:17 v #305 > > │ 00:00:09 v #143 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; 00:00:17 v #306 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; 00:00:17 v #307 > > │ 00:00:09 v #144 > > "ESTP"; "ESFP"; 00:00:17 v #308 > > │ 00:00:09 v #145 > > │ "ENFP"; "ENTP"; 00:00:17 v #309 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] 00:00:17 v #310 > > │ 00:00:09 v #146 > > │ 00:00:17 v #311 > > │ 00:00:09 v #147 > > 00:00:17 v #312 > > │ 00:00:09 v #148 > > ── spiral 00:00:17 v #313 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #314 > > │ 00:00:09 v #149 > > //// test 00:00:17 v #315 > > │ 00:00:09 v #150 > > //// print_code 00:00:17 v #316 > > │ 00:00:09 v #151 > > 00:00:17 v #317 > > │ 00:00:09 v #152 > > inl i_e = 00:00:17 v #318 > > │ 00:00:09 v #153 > > listm'.replicate 8i32 "I" ++ 00:00:17 v #319 > > listm'.replicate 8i32 "E" 00:00:17 v #320 > > │ 00:00:09 v #154 > > inl s_n = 00:00:17 v #321 > > │ 00:00:09 v #155 > > [[ "S"; "S"; "N"; "N" ]] 00:00:17 v #322 > > │ 00:00:09 v #156 > > |> listm'.replicate 4i32 00:00:17 v #323 > > │ 00:00:09 v #157 > > |> listm'.collect id 00:00:17 v #324 > > │ 00:00:09 v #158 > > inl t_f = 00:00:17 v #325 > > │ 00:00:09 v #159 > > [[ "T"; "F"; "F"; "T" ]] 00:00:17 v #326 > > │ 00:00:09 v #160 > > |> listm'.replicate 4i32 00:00:17 v #327 > > │ 00:00:09 v #161 > > |> listm'.collect id 00:00:17 v #328 > > │ 00:00:09 v #162 > > inl j_p = 00:00:17 v #329 > > │ 00:00:09 v #163 > > [[ "J"; "J"; "J"; "J" ]] 00:00:17 v #330 > > │ 00:00:09 v #164 > > ++ [[ "P"; "P"; "P"; "P" ]] 00:00:17 v #331 > > │ 00:00:09 v #165 > > ++ [[ "P"; "P"; "P"; "P" ]] 00:00:17 v #332 > > │ 00:00:09 v #166 > > ++ [[ "J"; "J"; "J"; "J" ]] 00:00:17 v #333 > > │ 00:00:09 v #167 > > inl mbti = 00:00:17 v #334 > > │ 00:00:09 v #168 > > listm'.map4 (fun a b c d => 00:00:17 v #335 > > $'$"{!a}{!b}{!c}{!d}"') i_e s_n t_f j_p 00:00:17 v #336 > > │ 00:00:09 v #169 > > 00:00:17 v #337 > > │ 00:00:09 v #170 > > mbti 00:00:17 v #338 > > │ 00:00:09 v #171 > > |> listm'.box 00:00:17 v #339 > > │ 00:00:09 v #172 > > |> listm'.to_array' 00:00:17 v #340 > > │ 00:00:09 v #173 > > |> _assert_eq' ;[[ 00:00:17 v #341 > > │ 00:00:09 v #174 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" 00:00:17 v #342 > > │ 00:00:09 v #175 > > "ISTP"; "ISFP"; "INFP"; "INTP" 00:00:17 v #343 > > │ 00:00:09 v #176 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" 00:00:17 v #344 > > │ 00:00:09 v #177 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" 00:00:17 v #345 > > │ 00:00:09 v #178 > > ]] 00:00:17 v #346 > > │ 00:00:09 v #179 > > 00:00:17 v #347 > > │ 00:00:09 v #180 > > ── [ 289.49ms - stdout ] 00:00:17 v #348 > > ─────────────────────────────────────────────────────── 00:00:17 v #349 > > │ 00:00:09 v #181 > > │ let rec method1 00:00:17 v #350 > > (v0 : bool) : bool = 00:00:17 v #351 > > │ 00:00:09 v #182 > > │ v0 00:00:17 v #352 > > │ 00:00:09 v #183 > > │ and closure0 (v0 00:00:17 v #353 > > : string) () : unit = 00:00:17 v #354 > > │ 00:00:09 v #184 > > │ let v1 : 00:00:17 v #355 > > (string -> unit) = System.Console.WriteLine 00:00:17 v #356 > > │ 00:00:09 v #185 > > │ v1 v0 00:00:17 v #357 > > │ 00:00:09 v #186 > > │ and method0 () : 00:00:17 v #358 > > unit = 00:00:17 v #359 > > │ 00:00:09 v #187 > > │ let v0 : 00:00:17 v #360 > > string = "I" 00:00:17 v #361 > > │ 00:00:09 v #188 > > │ let v1 : 00:00:17 v #362 > > string = "S" 00:00:17 v #363 > > │ 00:00:09 v #189 > > │ let v2 : 00:00:17 v #364 > > string = "T" 00:00:17 v #365 > > │ 00:00:09 v #190 > > │ let v3 : 00:00:17 v #366 > > string = "J" 00:00:17 v #367 > > │ 00:00:09 v #191 > > │ let v4 : 00:00:17 v #368 > > string = $"{v0}{v1}{v2}{v3}" 00:00:17 v #369 > > │ 00:00:09 v #192 > > │ let v5 : 00:00:17 v #370 > > string = "F" 00:00:17 v #371 > > │ 00:00:09 v #193 > > │ let v6 : 00:00:17 v #372 > > string = $"{v0}{v1}{v5}{v3}" 00:00:17 v #373 > > │ 00:00:09 v #194 > > │ let v7 : 00:00:17 v #374 > > string = "N" 00:00:17 v #375 > > │ 00:00:09 v #195 > > │ let v8 : 00:00:17 v #376 > > string = $"{v0}{v7}{v5}{v3}" 00:00:17 v #377 > > │ 00:00:09 v #196 > > │ let v9 : 00:00:17 v #378 > > string = $"{v0}{v7}{v2}{v3}" 00:00:17 v #379 > > │ 00:00:09 v #197 > > │ let v10 : 00:00:17 v #380 > > string = "P" 00:00:17 v #381 > > │ 00:00:09 v #198 > > │ let v11 : 00:00:17 v #382 > > string = $"{v0}{v1}{v2}{v10}" 00:00:17 v #383 > > │ 00:00:09 v #199 > > │ let v12 : 00:00:17 v #384 > > string = $"{v0}{v1}{v5}{v10}" 00:00:17 v #385 > > │ 00:00:09 v #200 > > │ let v13 : 00:00:17 v #386 > > string = $"{v0}{v7}{v5}{v10}" 00:00:17 v #387 > > │ 00:00:09 v #201 > > │ let v14 : 00:00:17 v #388 > > string = $"{v0}{v7}{v2}{v10}" 00:00:17 v #389 > > │ 00:00:09 v #202 > > │ let v15 : 00:00:17 v #390 > > string = "E" 00:00:17 v #391 > > │ 00:00:09 v #203 > > │ let v16 : 00:00:17 v #392 > > string = $"{v15}{v1}{v2}{v10}" 00:00:17 v #393 > > │ 00:00:09 v #204 > > │ let v17 : 00:00:17 v #394 > > string = $"{v15}{v1}{v5}{v10}" 00:00:17 v #395 > > │ 00:00:09 v #205 > > │ let v18 : 00:00:17 v #396 > > string = $"{v15}{v7}{v5}{v10}" 00:00:17 v #397 > > │ 00:00:09 v #206 > > │ let v19 : 00:00:17 v #398 > > string = $"{v15}{v7}{v2}{v10}" 00:00:17 v #399 > > │ 00:00:09 v #207 > > │ let v20 : 00:00:17 v #400 > > string = $"{v15}{v1}{v2}{v3}" 00:00:17 v #401 > > │ 00:00:09 v #208 > > │ let v21 : 00:00:17 v #402 > > string = $"{v15}{v1}{v5}{v3}" 00:00:17 v #403 > > │ 00:00:09 v #209 > > │ let v22 : 00:00:17 v #404 > > string = $"{v15}{v7}{v5}{v3}" 00:00:17 v #405 > > │ 00:00:09 v #210 > > │ let v23 : 00:00:17 v #406 > > string = $"{v15}{v7}{v2}{v3}" 00:00:17 v #407 > > │ 00:00:09 v #211 > > │ let v24 : 00:00:17 v #408 > > string list = [] 00:00:17 v #409 > > │ 00:00:09 v #212 > > │ let v25 : 00:00:17 v #410 > > string list = v23 :: v24 00:00:17 v #411 > > │ 00:00:09 v #213 > > │ let v28 : 00:00:17 v #412 > > string list = v22 :: v25 00:00:17 v #413 > > │ 00:00:09 v #214 > > │ let v31 : 00:00:17 v #414 > > string list = v21 :: v28 00:00:17 v #415 > > │ 00:00:09 v #215 > > │ let v34 : 00:00:17 v #416 > > string list = v20 :: v31 00:00:17 v #417 > > │ 00:00:09 v #216 > > │ let v37 : 00:00:17 v #418 > > string list = v19 :: v34 00:00:17 v #419 > > │ 00:00:09 v #217 > > │ let v40 : 00:00:17 v #420 > > string list = v18 :: v37 00:00:17 v #421 > > │ 00:00:09 v #218 > > │ let v43 : 00:00:17 v #422 > > string list = v17 :: v40 00:00:17 v #423 > > │ 00:00:09 v #219 > > │ let v46 : 00:00:17 v #424 > > string list = v16 :: v43 00:00:17 v #425 > > │ 00:00:09 v #220 > > │ let v49 : 00:00:17 v #426 > > string list = v14 :: v46 00:00:17 v #427 > > │ 00:00:09 v #221 > > │ let v52 : 00:00:17 v #428 > > string list = v13 :: v49 00:00:17 v #429 > > │ 00:00:09 v #222 > > │ let v55 : 00:00:17 v #430 > > string list = v12 :: v52 00:00:17 v #431 > > │ 00:00:09 v #223 > > │ let v58 : 00:00:17 v #432 > > string list = v11 :: v55 00:00:17 v #433 > > │ 00:00:09 v #224 > > │ let v61 : 00:00:17 v #434 > > string list = v9 :: v58 00:00:17 v #435 > > │ 00:00:09 v #225 > > │ let v64 : 00:00:17 v #436 > > string list = v8 :: v61 00:00:17 v #437 > > │ 00:00:09 v #226 > > │ let v67 : 00:00:17 v #438 > > string list = v6 :: v64 00:00:17 v #439 > > │ 00:00:09 v #227 > > │ let v70 : 00:00:17 v #440 > > string list = v4 :: v67 00:00:17 v #441 > > │ 00:00:09 v #228 > > │ let v73 : 00:00:17 v #442 > > (string list -> (string [])) = List.toArray 00:00:17 v #443 > > │ 00:00:09 v #229 > > │ let v74 : 00:00:17 v #444 > > (string []) = v73 v70 00:00:17 v #445 > > │ 00:00:09 v #230 > > │ let v77 : 00:00:17 v #446 > > string = "ISTJ" 00:00:17 v #447 > > │ 00:00:09 v #231 > > │ let v78 : 00:00:17 v #448 > > string = "ISFJ" 00:00:17 v #449 > > │ 00:00:09 v #232 > > │ let v79 : 00:00:17 v #450 > > string = "INFJ" 00:00:17 v #451 > > │ 00:00:09 v #233 > > │ let v80 : 00:00:17 v #452 > > string = "INTJ" 00:00:17 v #453 > > │ 00:00:09 v #234 > > │ let v81 : 00:00:17 v #454 > > string = "ISTP" 00:00:17 v #455 > > │ 00:00:09 v #235 > > │ let v82 : 00:00:17 v #456 > > string = "ISFP" 00:00:17 v #457 > > │ 00:00:09 v #236 > > │ let v83 : 00:00:17 v #458 > > string = "INFP" 00:00:17 v #459 > > │ 00:00:09 v #237 > > │ let v84 : 00:00:17 v #460 > > string = "INTP" 00:00:17 v #461 > > │ 00:00:09 v #238 > > │ let v85 : 00:00:17 v #462 > > string = "ESTP" 00:00:17 v #463 > > │ 00:00:09 v #239 > > │ let v86 : 00:00:17 v #464 > > string = "ESFP" 00:00:17 v #465 > > │ 00:00:09 v #240 > > │ let v87 : 00:00:17 v #466 > > string = "ENFP" 00:00:17 v #467 > > │ 00:00:09 v #241 > > │ let v88 : 00:00:17 v #468 > > string = "ENTP" 00:00:17 v #469 > > │ 00:00:09 v #242 > > │ let v89 : 00:00:17 v #470 > > string = "ESTJ" 00:00:17 v #471 > > │ 00:00:09 v #243 > > │ let v90 : 00:00:17 v #472 > > string = "ESFJ" 00:00:17 v #473 > > │ 00:00:09 v #244 > > │ let v91 : 00:00:17 v #474 > > string = "ENFJ" 00:00:17 v #475 > > │ 00:00:09 v #245 > > │ let v92 : 00:00:17 v #476 > > string = "ENTJ" 00:00:17 v #477 > > │ 00:00:09 v #246 > > │ let v93 : 00:00:17 v #478 > > (string []) = [|v77; v78; v79; v80; v81; v82; 00:00:17 v #479 > > │ 00:00:09 v #247 > > v83; v84; v85; v86; v87; v88; v89; 00:00:17 v #480 > > v90; v91; v92|] 00:00:17 v #481 > > │ 00:00:09 v #248 > > │ let v94 : 00:00:17 v #482 > > bool = v74 = v93 00:00:17 v #483 > > │ 00:00:09 v #249 > > │ let v98 : 00:00:17 v #484 > > bool = 00:00:17 v #485 > > │ 00:00:09 v #250 > > │ if v94 00:00:17 v #486 > > then 00:00:17 v #487 > > │ 00:00:09 v #251 > > │ true 00:00:17 v #488 > > │ 00:00:09 v #252 > > │ else 00:00:17 v #489 > > │ 00:00:09 v #253 > > │ 00:00:17 v #490 > > method1(v94) 00:00:17 v #491 > > │ 00:00:09 v #254 > > │ let v99 : 00:00:17 v #492 > > string = "__assert_eq'" 00:00:17 v #493 > > │ 00:00:09 v #255 > > │ let v100 : 00:00:17 v #494 > > string = $"{v99} / actual: %A{v74} / expected: 00:00:17 v #495 > > │ 00:00:09 v #256 > > %A{v93}" 00:00:17 v #496 > > │ 00:00:09 v #257 > > │ let v103 : 00:00:17 v #497 > > unit = () 00:00:17 v #498 > > │ 00:00:09 v #258 > > │ let v104 : 00:00:17 v #499 > > (unit -> unit) = closure0(v100) 00:00:17 v #500 > > │ 00:00:09 v #259 > > │ let v105 : 00:00:17 v #501 > > unit = (fun () -> v104 (); v103) () 00:00:17 v #502 > > │ 00:00:09 v #260 > > │ let v107 : 00:00:17 v #503 > > bool = v98 = false 00:00:17 v #504 > > │ 00:00:09 v #261 > > │ if v107 then 00:00:17 v #505 > > │ 00:00:09 v #262 > > │ 00:00:17 v #506 > > failwith<unit> v100 00:00:17 v #507 > > │ 00:00:09 v #263 > > │ method0() 00:00:17 v #508 > > │ 00:00:09 v #264 > > │ 00:00:17 v #509 > > │ 00:00:09 v #265 > > │ __assert_eq' 00:00:17 v #510 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; 00:00:17 v #511 > > │ 00:00:09 v #266 > > "ISTP"; "ISFP"; "INFP"; "INTP"; 00:00:17 v #512 > > "ESTP"; "ESFP"; 00:00:17 v #513 > > │ 00:00:09 v #267 > > │ "ENFP"; "ENTP"; 00:00:17 v #514 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] 00:00:17 v #515 > > │ 00:00:09 v #268 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; 00:00:17 v #516 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; 00:00:17 v #517 > > │ 00:00:09 v #269 > > "ESTP"; "ESFP"; 00:00:17 v #518 > > │ 00:00:09 v #270 > > │ "ENFP"; "ENTP"; 00:00:17 v #519 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] 00:00:17 v #520 > > │ 00:00:09 v #271 > > │ 00:00:17 v #521 > > │ 00:00:09 v #272 > > 00:00:17 v #522 > > │ 00:00:09 v #273 > > ── spiral 00:00:17 v #523 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #524 > > │ 00:00:09 v #274 > > //// test 00:00:17 v #525 > > │ 00:00:09 v #275 > > //// print_code 00:00:17 v #526 > > │ 00:00:09 v #276 > > 00:00:17 v #527 > > │ 00:00:09 v #277 > > fun i => 00:00:17 v #528 > > │ 00:00:09 v #278 > > inl i_e = 00:00:17 v #529 > > │ 00:00:09 v #279 > > if i < 8 00:00:17 v #530 > > │ 00:00:09 v #280 > > then "I" 00:00:17 v #531 > > │ 00:00:09 v #281 > > else "E" 00:00:17 v #532 > > │ 00:00:09 v #282 > > inl s_n = 00:00:17 v #533 > > │ 00:00:09 v #283 > > inl group = (i / 2) % 2 00:00:17 v #534 > > │ 00:00:09 v #284 > > if group = 0 00:00:17 v #535 > > │ 00:00:09 v #285 > > then "S" 00:00:17 v #536 > > │ 00:00:09 v #286 > > else "N" 00:00:17 v #537 > > │ 00:00:09 v #287 > > inl t_f = 00:00:17 v #538 > > │ 00:00:09 v #288 > > match i % 4 with 00:00:17 v #539 > > │ 00:00:09 v #289 > > | 0 => "T" 00:00:17 v #540 > > │ 00:00:09 v #290 > > | 1 => "F" 00:00:17 v #541 > > │ 00:00:09 v #291 > > | 2 => "F" 00:00:17 v #542 > > │ 00:00:09 v #292 > > | _ => "T" 00:00:17 v #543 > > │ 00:00:09 v #293 > > inl j_p = 00:00:17 v #544 > > │ 00:00:09 v #294 > > if i < 4 00:00:17 v #545 > > │ 00:00:09 v #295 > > then "J" 00:00:17 v #546 > > │ 00:00:09 v #296 > > elif i < 12 00:00:17 v #547 > > │ 00:00:09 v #297 > > then "P" 00:00:17 v #548 > > │ 00:00:09 v #298 > > else "J" 00:00:17 v #549 > > │ 00:00:09 v #299 > > $'$"{!i_e}{!s_n}{!t_f}{!j_p}"' 00:00:17 v #550 > > │ 00:00:09 v #300 > > |> listm.init 16i32 00:00:17 v #551 > > │ 00:00:09 v #301 > > |> listm'.box 00:00:17 v #552 > > │ 00:00:09 v #302 > > |> listm'.to_array' 00:00:17 v #553 > > │ 00:00:09 v #303 > > |> _assert_eq' ;[[ 00:00:17 v #554 > > │ 00:00:09 v #304 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" 00:00:17 v #555 > > │ 00:00:09 v #305 > > "ISTP"; "ISFP"; "INFP"; "INTP" 00:00:17 v #556 > > │ 00:00:09 v #306 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" 00:00:17 v #557 > > │ 00:00:09 v #307 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" 00:00:17 v #558 > > │ 00:00:09 v #308 > > ]] 00:00:17 v #559 > > │ 00:00:09 v #309 > > 00:00:17 v #560 > > │ 00:00:09 v #310 > > ── [ 381.36ms - stdout ] 00:00:17 v #561 > > ─────────────────────────────────────────────────────── 00:00:17 v #562 > > │ 00:00:09 v #311 > > │ let rec method1 00:00:17 v #563 > > (v0 : bool) : bool = 00:00:17 v #564 > > │ 00:00:09 v #312 > > │ v0 00:00:17 v #565 > > │ 00:00:09 v #313 > > │ and closure0 (v0 00:00:17 v #566 > > : string) () : unit = 00:00:17 v #567 > > │ 00:00:09 v #314 > > │ let v1 : 00:00:17 v #568 > > (string -> unit) = System.Console.WriteLine 00:00:17 v #569 > > │ 00:00:09 v #315 > > │ v1 v0 00:00:17 v #570 > > │ 00:00:09 v #316 > > │ and method0 () : 00:00:17 v #571 > > unit = 00:00:17 v #572 > > │ 00:00:09 v #317 > > │ let v0 : 00:00:17 v #573 > > string = "I" 00:00:17 v #574 > > │ 00:00:09 v #318 > > │ let v1 : 00:00:17 v #575 > > string = "S" 00:00:17 v #576 > > │ 00:00:09 v #319 > > │ let v2 : 00:00:17 v #577 > > string = "T" 00:00:17 v #578 > > │ 00:00:09 v #320 > > │ let v3 : 00:00:17 v #579 > > string = "J" 00:00:17 v #580 > > │ 00:00:09 v #321 > > │ let v4 : 00:00:17 v #581 > > string = $"{v0}{v1}{v2}{v3}" 00:00:17 v #582 > > │ 00:00:09 v #322 > > │ let v5 : 00:00:17 v #583 > > string = "F" 00:00:17 v #584 > > │ 00:00:09 v #323 > > │ let v6 : 00:00:17 v #585 > > string = $"{v0}{v1}{v5}{v3}" 00:00:17 v #586 > > │ 00:00:09 v #324 > > │ let v7 : 00:00:17 v #587 > > string = "N" 00:00:17 v #588 > > │ 00:00:09 v #325 > > │ let v8 : 00:00:17 v #589 > > string = $"{v0}{v7}{v5}{v3}" 00:00:17 v #590 > > │ 00:00:09 v #326 > > │ let v9 : 00:00:17 v #591 > > string = $"{v0}{v7}{v2}{v3}" 00:00:17 v #592 > > │ 00:00:09 v #327 > > │ let v10 : 00:00:17 v #593 > > string = "P" 00:00:17 v #594 > > │ 00:00:09 v #328 > > │ let v11 : 00:00:17 v #595 > > string = $"{v0}{v1}{v2}{v10}" 00:00:17 v #596 > > │ 00:00:09 v #329 > > │ let v12 : 00:00:17 v #597 > > string = $"{v0}{v1}{v5}{v10}" 00:00:17 v #598 > > │ 00:00:09 v #330 > > │ let v13 : 00:00:17 v #599 > > string = $"{v0}{v7}{v5}{v10}" 00:00:17 v #600 > > │ 00:00:09 v #331 > > │ let v14 : 00:00:17 v #601 > > string = $"{v0}{v7}{v2}{v10}" 00:00:17 v #602 > > │ 00:00:09 v #332 > > │ let v15 : 00:00:17 v #603 > > string = "E" 00:00:17 v #604 > > │ 00:00:09 v #333 > > │ let v16 : 00:00:17 v #605 > > string = $"{v15}{v1}{v2}{v10}" 00:00:17 v #606 > > │ 00:00:09 v #334 > > │ let v17 : 00:00:17 v #607 > > string = $"{v15}{v1}{v5}{v10}" 00:00:17 v #608 > > │ 00:00:09 v #335 > > │ let v18 : 00:00:17 v #609 > > string = $"{v15}{v7}{v5}{v10}" 00:00:17 v #610 > > │ 00:00:09 v #336 > > │ let v19 : 00:00:17 v #611 > > string = $"{v15}{v7}{v2}{v10}" 00:00:17 v #612 > > │ 00:00:09 v #337 > > │ let v20 : 00:00:17 v #613 > > string = $"{v15}{v1}{v2}{v3}" 00:00:17 v #614 > > │ 00:00:09 v #338 > > │ let v21 : 00:00:17 v #615 > > string = $"{v15}{v1}{v5}{v3}" 00:00:17 v #616 > > │ 00:00:09 v #339 > > │ let v22 : 00:00:17 v #617 > > string = $"{v15}{v7}{v5}{v3}" 00:00:17 v #618 > > │ 00:00:09 v #340 > > │ let v23 : 00:00:17 v #619 > > string = $"{v15}{v7}{v2}{v3}" 00:00:17 v #620 > > │ 00:00:09 v #341 > > │ let v24 : 00:00:17 v #621 > > string list = [] 00:00:17 v #622 > > │ 00:00:09 v #342 > > │ let v25 : 00:00:17 v #623 > > string list = v23 :: v24 00:00:17 v #624 > > │ 00:00:09 v #343 > > │ let v28 : 00:00:17 v #625 > > string list = v22 :: v25 00:00:17 v #626 > > │ 00:00:09 v #344 > > │ let v31 : 00:00:17 v #627 > > string list = v21 :: v28 00:00:17 v #628 > > │ 00:00:09 v #345 > > │ let v34 : 00:00:17 v #629 > > string list = v20 :: v31 00:00:17 v #630 > > │ 00:00:09 v #346 > > │ let v37 : 00:00:17 v #631 > > string list = v19 :: v34 00:00:17 v #632 > > │ 00:00:09 v #347 > > │ let v40 : 00:00:17 v #633 > > string list = v18 :: v37 00:00:17 v #634 > > │ 00:00:09 v #348 > > │ let v43 : 00:00:17 v #635 > > string list = v17 :: v40 00:00:17 v #636 > > │ 00:00:09 v #349 > > │ let v46 : 00:00:17 v #637 > > string list = v16 :: v43 00:00:17 v #638 > > │ 00:00:09 v #350 > > │ let v49 : 00:00:17 v #639 > > string list = v14 :: v46 00:00:17 v #640 > > │ 00:00:09 v #351 > > │ let v52 : 00:00:17 v #641 > > string list = v13 :: v49 00:00:17 v #642 > > │ 00:00:09 v #352 > > │ let v55 : 00:00:17 v #643 > > string list = v12 :: v52 00:00:17 v #644 > > │ 00:00:09 v #353 > > │ let v58 : 00:00:17 v #645 > > string list = v11 :: v55 00:00:17 v #646 > > │ 00:00:09 v #354 > > │ let v61 : 00:00:17 v #647 > > string list = v9 :: v58 00:00:17 v #648 > > │ 00:00:09 v #355 > > │ let v64 : 00:00:17 v #649 > > string list = v8 :: v61 00:00:17 v #650 > > │ 00:00:09 v #356 > > │ let v67 : 00:00:17 v #651 > > string list = v6 :: v64 00:00:17 v #652 > > │ 00:00:09 v #357 > > │ let v70 : 00:00:17 v #653 > > string list = v4 :: v67 00:00:17 v #654 > > │ 00:00:09 v #358 > > │ let v73 : 00:00:17 v #655 > > (string list -> (string [])) = List.toArray 00:00:17 v #656 > > │ 00:00:09 v #359 > > │ let v74 : 00:00:17 v #657 > > (string []) = v73 v70 00:00:17 v #658 > > │ 00:00:09 v #360 > > │ let v77 : 00:00:17 v #659 > > string = "ISTJ" 00:00:17 v #660 > > │ 00:00:09 v #361 > > │ let v78 : 00:00:17 v #661 > > string = "ISFJ" 00:00:17 v #662 > > │ 00:00:09 v #362 > > │ let v79 : 00:00:17 v #663 > > string = "INFJ" 00:00:17 v #664 > > │ 00:00:09 v #363 > > │ let v80 : 00:00:17 v #665 > > string = "INTJ" 00:00:17 v #666 > > │ 00:00:09 v #364 > > │ let v81 : 00:00:17 v #667 > > string = "ISTP" 00:00:17 v #668 > > │ 00:00:09 v #365 > > │ let v82 : 00:00:17 v #669 > > string = "ISFP" 00:00:17 v #670 > > │ 00:00:09 v #366 > > │ let v83 : 00:00:17 v #671 > > string = "INFP" 00:00:17 v #672 > > │ 00:00:09 v #367 > > │ let v84 : 00:00:17 v #673 > > string = "INTP" 00:00:17 v #674 > > │ 00:00:09 v #368 > > │ let v85 : 00:00:17 v #675 > > string = "ESTP" 00:00:17 v #676 > > │ 00:00:09 v #369 > > │ let v86 : 00:00:17 v #677 > > string = "ESFP" 00:00:17 v #678 > > │ 00:00:09 v #370 > > │ let v87 : 00:00:17 v #679 > > string = "ENFP" 00:00:17 v #680 > > │ 00:00:09 v #371 > > │ let v88 : 00:00:17 v #681 > > string = "ENTP" 00:00:17 v #682 > > │ 00:00:09 v #372 > > │ let v89 : 00:00:17 v #683 > > string = "ESTJ" 00:00:17 v #684 > > │ 00:00:09 v #373 > > │ let v90 : 00:00:17 v #685 > > string = "ESFJ" 00:00:17 v #686 > > │ 00:00:09 v #374 > > │ let v91 : 00:00:17 v #687 > > string = "ENFJ" 00:00:17 v #688 > > │ 00:00:09 v #375 > > │ let v92 : 00:00:17 v #689 > > string = "ENTJ" 00:00:17 v #690 > > │ 00:00:09 v #376 > > │ let v93 : 00:00:17 v #691 > > (string []) = [|v77; v78; v79; v80; v81; v82; 00:00:17 v #692 > > │ 00:00:09 v #377 > > v83; v84; v85; v86; v87; v88; v89; 00:00:17 v #693 > > v90; v91; v92|] 00:00:17 v #694 > > │ 00:00:09 v #378 > > │ let v94 : 00:00:17 v #695 > > bool = v74 = v93 00:00:17 v #696 > > │ 00:00:09 v #379 > > │ let v98 : 00:00:17 v #697 > > bool = 00:00:17 v #698 > > │ 00:00:09 v #380 > > │ if v94 00:00:17 v #699 > > then 00:00:17 v #700 > > │ 00:00:09 v #381 > > │ true 00:00:17 v #701 > > │ 00:00:09 v #382 > > │ else 00:00:17 v #702 > > │ 00:00:09 v #383 > > │ 00:00:17 v #703 > > method1(v94) 00:00:17 v #704 > > │ 00:00:09 v #384 > > │ let v99 : 00:00:17 v #705 > > string = "__assert_eq'" 00:00:17 v #706 > > │ 00:00:09 v #385 > > │ let v100 : 00:00:17 v #707 > > string = $"{v99} / actual: %A{v74} / expected: 00:00:17 v #708 > > │ 00:00:09 v #386 > > %A{v93}" 00:00:17 v #709 > > │ 00:00:09 v #387 > > │ let v103 : 00:00:17 v #710 > > unit = () 00:00:17 v #711 > > │ 00:00:09 v #388 > > │ let v104 : 00:00:17 v #712 > > (unit -> unit) = closure0(v100) 00:00:17 v #713 > > │ 00:00:09 v #389 > > │ let v105 : 00:00:17 v #714 > > unit = (fun () -> v104 (); v103) () 00:00:17 v #715 > > │ 00:00:09 v #390 > > │ let v107 : 00:00:17 v #716 > > bool = v98 = false 00:00:17 v #717 > > │ 00:00:09 v #391 > > │ if v107 then 00:00:17 v #718 > > │ 00:00:09 v #392 > > │ 00:00:17 v #719 > > failwith<unit> v100 00:00:17 v #720 > > │ 00:00:09 v #393 > > │ method0() 00:00:17 v #721 > > │ 00:00:09 v #394 > > │ 00:00:17 v #722 > > │ 00:00:09 v #395 > > │ __assert_eq' 00:00:17 v #723 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; 00:00:17 v #724 > > │ 00:00:09 v #396 > > "ISTP"; "ISFP"; "INFP"; "INTP"; 00:00:17 v #725 > > "ESTP"; "ESFP"; 00:00:17 v #726 > > │ 00:00:09 v #397 > > │ "ENFP"; "ENTP"; 00:00:17 v #727 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] 00:00:17 v #728 > > │ 00:00:09 v #398 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; 00:00:17 v #729 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; 00:00:17 v #730 > > │ 00:00:09 v #399 > > "ESTP"; "ESFP"; 00:00:17 v #731 > > │ 00:00:09 v #400 > > │ "ENFP"; "ENTP"; 00:00:17 v #732 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] 00:00:17 v #733 > > │ 00:00:09 v #401 > > │ 00:00:17 v #734 > > │ 00:00:10 v #402 > > 00:00:17 v #735 > > │ 00:00:10 v #403 > > ── fsharp 00:00:17 v #736 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #737 > > │ 00:00:10 v #404 > > type PhonologicalFeature = 00:00:17 v #738 > > │ 00:00:10 v #405 > > | VowelFeature of 00:00:17 v #739 > > │ 00:00:10 v #406 > > height: Height 00:00:17 v #740 > > │ 00:00:10 v #407 > > * backness: Backness 00:00:17 v #741 > > │ 00:00:10 v #408 > > * roundedness: Roundedness 00:00:17 v #742 > > │ 00:00:10 v #409 > > * tone: Option<Tone> 00:00:17 v #743 > > │ 00:00:10 v #410 > > * stress: Option<Stress> 00:00:17 v #744 > > │ 00:00:10 v #411 > > * length: Option<Length> 00:00:17 v #745 > > │ 00:00:10 v #412 > > | ConsonantFeature of 00:00:17 v #746 > > │ 00:00:10 v #413 > > place: PlaceOfArticulation 00:00:17 v #747 > > │ 00:00:10 v #414 > > * manner: 00:00:17 v #748 > > MannerOfArticulation 00:00:17 v #749 > > │ 00:00:10 v #415 > > * voicing: Voicing 00:00:17 v #750 > > │ 00:00:10 v #416 > > * length: Option<Length> 00:00:17 v #751 > > │ 00:00:10 v #417 > > | VowelHarmonyFeature 00:00:17 v #752 > > │ 00:00:10 v #418 > > | PitchAccentFeature 00:00:17 v #753 > > │ 00:00:10 v #419 > > 00:00:17 v #754 > > │ 00:00:10 v #420 > > and Stress = Primary | Secondary 00:00:17 v #755 > > │ 00:00:10 v #421 > > and Length = Long | Short | HalfLong 00:00:17 v #756 > > │ 00:00:10 v #422 > > 00:00:17 v #757 > > │ 00:00:10 v #423 > > and Height = 00:00:17 v #758 > > │ 00:00:10 v #424 > > | High | NearHigh | HighMid 00:00:17 v #759 > > │ 00:00:10 v #425 > > | Mid | LowMid | NearLow 00:00:17 v #760 > > │ 00:00:10 v #426 > > | Low 00:00:17 v #761 > > │ 00:00:10 v #427 > > 00:00:17 v #762 > > │ 00:00:10 v #428 > > and Backness = Front | Central | 00:00:17 v #763 > > Back 00:00:17 v #764 > > │ 00:00:10 v #429 > > 00:00:17 v #765 > > │ 00:00:10 v #430 > > and Roundedness = Rounded | 00:00:17 v #766 > > Unrounded 00:00:17 v #767 > > │ 00:00:10 v #431 > > 00:00:17 v #768 > > │ 00:00:10 v #432 > > and PlaceOfArticulation = 00:00:17 v #769 > > │ 00:00:10 v #433 > > | Bilabial | Labiodental | 00:00:17 v #770 > > Dental 00:00:17 v #771 > > │ 00:00:10 v #434 > > | Alveolar | Postalveolar | 00:00:17 v #772 > > Retroflex 00:00:17 v #773 > > │ 00:00:10 v #435 > > | Palatal | Velar | Uvular 00:00:17 v #774 > > │ 00:00:10 v #436 > > | Pharyngeal | Epiglottal | 00:00:17 v #775 > > Glottal 00:00:17 v #776 > > │ 00:00:10 v #437 > > 00:00:17 v #777 > > │ 00:00:10 v #438 > > and MannerOfArticulation = 00:00:17 v #778 > > │ 00:00:10 v #439 > > | Plosive | Nasal | Trill 00:00:17 v #779 > > │ 00:00:10 v #440 > > | TapOrFlap | Fricative | 00:00:17 v #780 > > LateralFricative 00:00:17 v #781 > > │ 00:00:10 v #441 > > | Approximant | 00:00:17 v #782 > > LateralApproximant 00:00:17 v #783 > > │ 00:00:10 v #442 > > 00:00:17 v #784 > > │ 00:00:10 v #443 > > and Voicing = Voiced | Voiceless 00:00:17 v #785 > > │ 00:00:10 v #444 > > 00:00:17 v #786 > > │ 00:00:10 v #445 > > and SecondaryArticulation = 00:00:17 v #787 > > │ 00:00:10 v #446 > > | Labialization | Palatalization 00:00:17 v #788 > > | Velarization 00:00:17 v #789 > > │ 00:00:10 v #447 > > | Pharyngealization | Aspiration 00:00:17 v #790 > > │ 00:00:10 v #448 > > 00:00:17 v #791 > > │ 00:00:10 v #449 > > and Tone = 00:00:17 v #792 > > │ 00:00:10 v #450 > > | LevelTone of int 00:00:17 v #793 > > │ 00:00:10 v #451 > > | ContourTone of int list 00:00:17 v #794 > > │ 00:00:10 v #452 > > 00:00:17 v #795 > > │ 00:00:10 v #453 > > and MorphologicalFeature = 00:00:17 v #796 > > │ 00:00:10 v #454 > > | RootFeature of string 00:00:17 v #797 > > │ 00:00:10 v #455 > > | AffixFeature of AffixType * 00:00:17 v #798 > > string 00:00:17 v #799 > > │ 00:00:10 v #456 > > | IncorporationFeature of string 00:00:17 v #800 > > * MorphologicalFeature 00:00:17 v #801 > > │ 00:00:10 v #457 > > | NonConcatenativePattern of 00:00:17 v #802 > > string * string 00:00:17 v #803 > > │ 00:00:10 v #458 > > | AgglutinativeAffixFeature of 00:00:17 v #804 > > AgglutinativeAffixType * string 00:00:17 v #805 > > │ 00:00:10 v #459 > > | HonorificFeature of 00:00:17 v #806 > > HonorificType * string 00:00:17 v #807 > > │ 00:00:10 v #460 > > 00:00:17 v #808 > > │ 00:00:10 v #461 > > and AgglutinativeAffixType = Suffix 00:00:17 v #809 > > | Prefix 00:00:17 v #810 > > │ 00:00:10 v #462 > > 00:00:17 v #811 > > │ 00:00:10 v #463 > > and HonorificType = VerbHonorific | 00:00:17 v #812 > > NounHonorific 00:00:17 v #813 > > │ 00:00:10 v #464 > > 00:00:17 v #814 > > │ 00:00:10 v #465 > > and AffixType = 00:00:17 v #815 > > │ 00:00:10 v #466 > > | Prefix | Suffix | Infix 00:00:17 v #816 > > │ 00:00:10 v #467 > > | Circumfix 00:00:17 v #817 > > │ 00:00:10 v #468 > > 00:00:17 v #818 > > │ 00:00:10 v #469 > > type SyntacticFeature = 00:00:17 v #819 > > │ 00:00:10 v #470 > > | WordFeature of 00:00:17 v #820 > > MorphologicalFeature list * LexicalCategory 00:00:17 v #821 > > │ 00:00:10 v #471 > > | PhraseFeature of PhraseType * 00:00:17 v #822 > > SyntacticFeature list 00:00:17 v #823 > > │ 00:00:10 v #472 > > | GrammaticalRelation of 00:00:17 v #824 > > GrammaticalRelationType * SyntacticFeature list 00:00:17 v #825 > > │ 00:00:10 v #473 > > | SOVOrderFeature 00:00:17 v #826 > > │ 00:00:10 v #474 > > | TopicCommentFeature 00:00:17 v #827 > > │ 00:00:10 v #475 > > 00:00:17 v #828 > > │ 00:00:10 v #476 > > and GrammaticalRelationType = 00:00:17 v #829 > > │ 00:00:10 v #477 > > | Ergative | Absolutive | 00:00:17 v #830 > > Nominative 00:00:17 v #831 > > │ 00:00:10 v #478 > > | Accusative 00:00:17 v #832 > > │ 00:00:10 v #479 > > 00:00:17 v #833 > > │ 00:00:10 v #480 > > and LexicalCategory = 00:00:17 v #834 > > │ 00:00:10 v #481 > > | Noun | Verb | Adjective 00:00:17 v #835 > > │ 00:00:10 v #482 > > | Adverb | Pronoun | Preposition 00:00:17 v #836 > > │ 00:00:10 v #483 > > | Conjunction | Determiner | 00:00:17 v #837 > > Interjection 00:00:17 v #838 > > │ 00:00:10 v #484 > > 00:00:17 v #839 > > │ 00:00:10 v #485 > > and PhraseType = 00:00:17 v #840 > > │ 00:00:10 v #486 > > | NP | VP | AP 00:00:17 v #841 > > │ 00:00:10 v #487 > > | PP | CP 00:00:17 v #842 > > │ 00:00:10 v #488 > > 00:00:17 v #843 > > │ 00:00:10 v #489 > > and SemanticFeature = 00:00:17 v #844 > > │ 00:00:10 v #490 > > | Meaning of string 00:00:17 v #845 > > │ 00:00:10 v #491 > > | SemanticRole of 00:00:17 v #846 > > SemanticRoleType * SemanticFeature 00:00:17 v #847 > > │ 00:00:10 v #492 > > 00:00:17 v #848 > > │ 00:00:10 v #493 > > and SemanticRoleType = 00:00:17 v #849 > > │ 00:00:10 v #494 > > | Agent | Patient | Instrument 00:00:17 v #850 > > │ 00:00:10 v #495 > > | Location | Time | Cause 00:00:17 v #851 > > │ 00:00:10 v #496 > > 00:00:17 v #852 > > │ 00:00:10 v #497 > > and PragmaticFeature = 00:00:17 v #853 > > │ 00:00:10 v #498 > > | UseContext of string 00:00:17 v #854 > > │ 00:00:10 v #499 > > | PolitenessLevel of Politeness 00:00:17 v #855 > > │ 00:00:10 v #500 > > | SpeechAct of SpeechActType 00:00:17 v #856 > > │ 00:00:10 v #501 > > | SpeechLevel of SpeechLevelType 00:00:17 v #857 > > │ 00:00:10 v #502 > > 00:00:17 v #858 > > │ 00:00:10 v #503 > > and Politeness = Formal | Informal | 00:00:17 v #859 > > Neutral 00:00:17 v #860 > > │ 00:00:10 v #504 > > 00:00:17 v #861 > > │ 00:00:10 v #505 > > and SpeechActType = 00:00:17 v #862 > > │ 00:00:10 v #506 > > | Assertive | Directive | 00:00:17 v #863 > > Commissive 00:00:17 v #864 > > │ 00:00:10 v #507 > > | Expressive | Declarative 00:00:17 v #865 > > │ 00:00:10 v #508 > > 00:00:17 v #866 > > │ 00:00:10 v #509 > > and SpeechLevelType = 00:00:17 v #867 > > │ 00:00:10 v #510 > > | FormalHigh | FormalLow | 00:00:17 v #868 > > InformalHigh 00:00:17 v #869 > > │ 00:00:10 v #511 > > | InformalLow | Neutral 00:00:17 v #870 > > │ 00:00:10 v #512 > > 00:00:17 v #871 > > │ 00:00:10 v #513 > > type LinguisticFeature = 00:00:17 v #872 > > │ 00:00:10 v #514 > > | Phonological of 00:00:17 v #873 > > PhonologicalFeature 00:00:17 v #874 > > │ 00:00:10 v #515 > > | Morphological of 00:00:17 v #875 > > MorphologicalFeature 00:00:17 v #876 > > │ 00:00:10 v #516 > > | Syntactic of SyntacticFeature 00:00:17 v #877 > > │ 00:00:10 v #517 > > | Semantic of SemanticFeature 00:00:17 v #878 > > │ 00:00:10 v #518 > > | Pragmatic of PragmaticFeature 00:00:17 v #879 > > │ 00:00:10 v #519 > > 00:00:17 v #880 > > │ 00:00:10 v #520 > > type LanguageConstruct = 00:00:17 v #881 > > │ 00:00:10 v #521 > > | LanguageElement of 00:00:17 v #882 > > LinguisticFeature 00:00:17 v #883 > > │ 00:00:10 v #522 > > | LanguageStructure of 00:00:17 v #884 > > LanguageConstruct list 00:00:17 v #885 > > │ 00:00:10 v #523 > > | TranslationElement of 00:00:17 v #886 > > TranslationFeature 00:00:17 v #887 > > │ 00:00:10 v #524 > > 00:00:17 v #888 > > │ 00:00:10 v #525 > > and TranslationFeature = 00:00:17 v #889 > > │ 00:00:10 v #526 > > | LinkedPhonological of 00:00:17 v #890 > > PhonologicalFeature * PhonologicalFeature 00:00:17 v #891 > > │ 00:00:10 v #527 > > | LinkedMorphological of 00:00:17 v #892 > > MorphologicalFeature * MorphologicalFeature 00:00:17 v #893 > > │ 00:00:10 v #528 > > | LinkedSyntactic of 00:00:17 v #894 > > SyntacticFeature * SyntacticFeature 00:00:17 v #895 > > │ 00:00:10 v #529 > > | LinkedSemantic of 00:00:17 v #896 > > SemanticFeature * SemanticFeature 00:00:17 v #897 > > │ 00:00:10 v #530 > > 00:00:17 v #898 > > │ 00:00:10 v #531 > > type Discourse = DiscourseUnit of 00:00:17 v #899 > > LanguageConstruct list 00:00:17 v #900 > > │ 00:00:10 v #532 > > 00:00:17 v #901 > > │ 00:00:10 v #533 > > type LanguageModel = 00:00:17 v #902 > > │ 00:00:10 v #534 > > | Model of discourse: Discourse 00:00:17 v #903 > > │ 00:00:11 v #535 > > 00:00:17 v #904 > > │ 00:00:11 v #536 > > ── fsharp 00:00:17 v #905 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #906 > > │ 00:00:11 v #537 > > let testEnglish = 00:00:17 v #907 > > │ 00:00:11 v #538 > > Model( 00:00:17 v #908 > > │ 00:00:11 v #539 > > DiscourseUnit [[ 00:00:17 v #909 > > │ 00:00:11 v #540 > > LanguageElement 00:00:17 v #910 > > (Phonological (ConsonantFeature (Alveolar, Nasal, 00:00:17 v #911 > > │ 00:00:11 v #541 > > Voiced, Some(HalfLong)))); 00:00:17 v #912 > > │ 00:00:11 v #542 > > LanguageElement 00:00:17 v #913 > > (Phonological (VowelFeature (High, Front, Unrounded, 00:00:17 v #914 > > │ 00:00:11 v #543 > > Some(LevelTone 1), Some(Primary), 00:00:17 v #915 > > Some(Short)))); 00:00:17 v #916 > > │ 00:00:11 v #544 > > LanguageElement 00:00:17 v #917 > > (Phonological (VowelFeature (Low, Front, Unrounded, 00:00:17 v #918 > > │ 00:00:11 v #545 > > Some(LevelTone 2), Some(Secondary), 00:00:17 v #919 > > Some(Long)))); 00:00:17 v #920 > > │ 00:00:11 v #546 > > LanguageElement 00:00:17 v #921 > > (Phonological (ConsonantFeature (Velar, Plosive, 00:00:17 v #922 > > │ 00:00:11 v #547 > > Voiceless, Some(HalfLong)))); 00:00:17 v #923 > > │ 00:00:11 v #548 > > LanguageElement 00:00:17 v #924 > > (Morphological (RootFeature "I")); 00:00:17 v #925 > > │ 00:00:11 v #549 > > LanguageElement 00:00:17 v #926 > > (Morphological (RootFeature "see")); 00:00:17 v #927 > > │ 00:00:11 v #550 > > LanguageElement 00:00:17 v #928 > > (Morphological (RootFeature "a")); 00:00:17 v #929 > > │ 00:00:11 v #551 > > LanguageElement 00:00:17 v #930 > > (Morphological (RootFeature "cat")); 00:00:17 v #931 > > │ 00:00:11 v #552 > > LanguageElement 00:00:17 v #932 > > (Syntactic (PhraseFeature (NP, [[WordFeature 00:00:17 v #933 > > │ 00:00:11 v #553 > > ([[RootFeature "I"]], Pronoun)]]))); 00:00:17 v #934 > > │ 00:00:11 v #554 > > LanguageElement 00:00:17 v #935 > > (Syntactic (PhraseFeature (VP, [[WordFeature 00:00:17 v #936 > > │ 00:00:11 v #555 > > ([[RootFeature "see"]], Verb)]]))); 00:00:17 v #937 > > │ 00:00:11 v #556 > > LanguageElement 00:00:17 v #938 > > (Syntactic (PhraseFeature (NP, [[WordFeature 00:00:17 v #939 > > │ 00:00:11 v #557 > > ([[RootFeature "a"; RootFeature 00:00:17 v #940 > > "cat"]], Noun)]]))); 00:00:17 v #941 > > │ 00:00:11 v #558 > > LanguageElement 00:00:17 v #942 > > (Semantic (Meaning "Perception act of a feline by 00:00:17 v #943 > > │ 00:00:11 v #559 > > the speaker")); 00:00:17 v #944 > > │ 00:00:11 v #560 > > LanguageElement 00:00:17 v #945 > > (Pragmatic (UseContext "Statement of an action being 00:00:17 v #946 > > │ 00:00:11 v #561 > > observed")) 00:00:17 v #947 > > │ 00:00:11 v #562 > > ]] 00:00:17 v #948 > > │ 00:00:11 v #563 > > ) 00:00:17 v #949 > > │ 00:00:11 v #564 > > 00:00:17 v #950 > > │ 00:00:11 v #565 > > let testPortuguese = 00:00:17 v #951 > > │ 00:00:11 v #566 > > Model( 00:00:17 v #952 > > │ 00:00:11 v #567 > > DiscourseUnit [[ 00:00:17 v #953 > > │ 00:00:11 v #568 > > LanguageElement 00:00:17 v #954 > > (Phonological (VowelFeature (High, Front, Unrounded, 00:00:17 v #955 > > │ 00:00:11 v #569 > > Some(LevelTone 1), Some(Primary), 00:00:17 v #956 > > Some(Short)))); 00:00:17 v #957 > > │ 00:00:11 v #570 > > LanguageElement 00:00:17 v #958 > > (Phonological (VowelFeature (Low, Front, Unrounded, 00:00:17 v #959 > > │ 00:00:11 v #571 > > Some(LevelTone 2), Some(Secondary), 00:00:17 v #960 > > Some(Long)))); 00:00:17 v #961 > > │ 00:00:11 v #572 > > LanguageElement 00:00:17 v #962 > > (Phonological (VowelFeature (Mid, Back, Rounded, 00:00:17 v #963 > > │ 00:00:11 v #573 > > Some(LevelTone 3), Some(Primary), 00:00:17 v #964 > > Some(Short)))); 00:00:17 v #965 > > │ 00:00:11 v #574 > > LanguageElement 00:00:17 v #966 > > (Phonological (ConsonantFeature (Velar, Plosive, 00:00:17 v #967 > > │ 00:00:11 v #575 > > Voiceless, Some(HalfLong)))); 00:00:17 v #968 > > │ 00:00:11 v #576 > > LanguageElement 00:00:17 v #969 > > (Morphological (RootFeature "Eu")); 00:00:17 v #970 > > │ 00:00:11 v #577 > > LanguageElement 00:00:17 v #971 > > (Morphological (RootFeature "ver" |> ignore; 00:00:17 v #972 > > │ 00:00:11 v #578 > > AffixFeature (Suffix, "o"))); 00:00:17 v #973 > > │ 00:00:11 v #579 > > LanguageElement 00:00:17 v #974 > > (Morphological (RootFeature "um")); 00:00:17 v #975 > > │ 00:00:11 v #580 > > LanguageElement 00:00:17 v #976 > > (Morphological (RootFeature "gato")); 00:00:17 v #977 > > │ 00:00:11 v #581 > > LanguageElement 00:00:17 v #978 > > (Syntactic (PhraseFeature (NP, [[WordFeature 00:00:17 v #979 > > │ 00:00:11 v #582 > > ([[RootFeature "Eu"]], 00:00:17 v #980 > > Pronoun)]]))); 00:00:17 v #981 > > │ 00:00:11 v #583 > > LanguageElement 00:00:17 v #982 > > (Syntactic (PhraseFeature (VP, [[WordFeature 00:00:17 v #983 > > │ 00:00:11 v #584 > > ([[RootFeature "vejo"]], Verb)]]))); 00:00:17 v #984 > > │ 00:00:11 v #585 > > LanguageElement 00:00:17 v #985 > > (Syntactic (PhraseFeature (NP, [[WordFeature 00:00:17 v #986 > > │ 00:00:11 v #586 > > ([[RootFeature "um"; RootFeature 00:00:17 v #987 > > "gato"]], Noun)]]))); 00:00:17 v #988 > > │ 00:00:11 v #587 > > LanguageElement 00:00:17 v #989 > > (Semantic (Meaning "Ação de percepção de um felino 00:00:17 v #990 > > │ 00:00:11 v #588 > > pelo falante")); 00:00:17 v #991 > > │ 00:00:11 v #589 > > LanguageElement 00:00:17 v #992 > > (Pragmatic (UseContext "Declaração de uma ação sendo 00:00:17 v #993 > > │ 00:00:11 v #590 > > observada")) 00:00:17 v #994 > > │ 00:00:11 v #591 > > ]] 00:00:17 v #995 > > │ 00:00:11 v #592 > > ) 00:00:17 v #996 > > │ 00:00:11 v #593 > > 00:00:17 v #997 > > │ 00:00:11 v #594 > > let testKorean = 00:00:17 v #998 > > │ 00:00:11 v #595 > > Model( 00:00:17 v #999 > > │ 00:00:11 v #596 > > DiscourseUnit [[ 00:00:17 v #1000 > > │ 00:00:11 v #597 > > LanguageElement 00:00:17 v #1001 > > (Phonological (ConsonantFeature (Alveolar, Nasal, 00:00:17 v #1002 > > │ 00:00:11 v #598 > > Voiced, Some(Short)))); 00:00:17 v #1003 > > │ 00:00:11 v #599 > > LanguageElement 00:00:17 v #1004 > > (Phonological (VowelFeature (High, Back, Rounded, 00:00:17 v #1005 > > │ 00:00:11 v #600 > > None, None, Some(Short)))); 00:00:17 v #1006 > > │ 00:00:11 v #601 > > LanguageElement 00:00:17 v #1007 > > (Phonological (VowelFeature (Mid, Front, Unrounded, 00:00:17 v #1008 > > │ 00:00:11 v #602 > > None, None, Some(Long)))); 00:00:17 v #1009 > > │ 00:00:11 v #603 > > LanguageElement 00:00:17 v #1010 > > (Phonological (ConsonantFeature (Bilabial, Plosive, 00:00:17 v #1011 > > │ 00:00:11 v #604 > > Voiceless, Some(Short)))); 00:00:17 v #1012 > > │ 00:00:11 v #605 > > LanguageElement 00:00:17 v #1013 > > (Morphological (RootFeature "나")); 00:00:17 v #1014 > > │ 00:00:11 v #606 > > LanguageElement 00:00:17 v #1015 > > (Morphological (RootFeature "보다")); 00:00:17 v #1016 > > │ 00:00:11 v #607 > > LanguageElement 00:00:17 v #1017 > > (Morphological (AffixFeature (Suffix, "아"))); 00:00:17 v #1018 > > │ 00:00:11 v #608 > > LanguageElement 00:00:17 v #1019 > > (Morphological (RootFeature "고양이")); 00:00:17 v #1020 > > │ 00:00:11 v #609 > > LanguageElement 00:00:17 v #1021 > > (Syntactic (PhraseFeature (NP, [[WordFeature 00:00:17 v #1022 > > │ 00:00:11 v #610 > > ([[RootFeature "나"]], 00:00:17 v #1023 > > Pronoun)]]))); 00:00:17 v #1024 > > │ 00:00:11 v #611 > > LanguageElement 00:00:17 v #1025 > > (Syntactic (PhraseFeature (VP, [[WordFeature 00:00:17 v #1026 > > │ 00:00:11 v #612 > > ([[RootFeature "보다"; AffixFeature 00:00:17 v #1027 > > (Suffix, "아")]], Verb)]]))); 00:00:17 v #1028 > > │ 00:00:11 v #613 > > LanguageElement 00:00:17 v #1029 > > (Syntactic (PhraseFeature (NP, [[WordFeature 00:00:17 v #1030 > > │ 00:00:11 v #614 > > ([[RootFeature "고양이"]], 00:00:17 v #1031 > > Noun)]]))); 00:00:17 v #1032 > > │ 00:00:11 v #615 > > LanguageElement 00:00:17 v #1033 > > (Semantic (Meaning "화자에 의한 고양이의 관찰 00:00:17 v #1034 > > │ 00:00:11 v #616 > > 행위")); 00:00:17 v #1035 > > │ 00:00:11 v #617 > > LanguageElement 00:00:17 v #1036 > > (Pragmatic (UseContext "관찰되고 있는 행동의 진술")) 00:00:17 v #1037 > > │ 00:00:11 v #618 > > ]] 00:00:17 v #1038 > > │ 00:00:11 v #619 > > ) 00:00:17 v #1039 > > │ 00:00:11 v #620 > > 00:00:17 v #1040 > > │ 00:00:11 v #621 > > ── markdown 00:00:17 v #1041 > > ──────────────────────────────────────────────────────────────────── 00:00:17 v #1042 > > │ 00:00:11 v #622 > > │ ## main 00:00:17 v #1043 > > │ 00:00:11 v #623 > > 00:00:17 v #1044 > > │ 00:00:11 v #624 > > ── spiral 00:00:17 v #1045 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #1046 > > │ 00:00:11 v #625 > > inl main (_args : array_base string) 00:00:17 v #1047 > > = 00:00:17 v #1048 > > │ 00:00:11 v #626 > > 0i32 00:00:17 v #1049 > > │ 00:00:11 v #627 > > 00:00:17 v #1050 > > │ 00:00:11 v #628 > > inl main () = 00:00:17 v #1051 > > │ 00:00:11 v #629 > > $'let main args = !main args' : 00:00:17 v #1052 > > () 00:00:17 v #1053 > > │ 00:00:11 v #630 > > 00:00:17 v #1054 > > │ 00:00:11 v #631 > > ── spiral 00:00:17 v #1055 > > ────────────────────────────────────────────────────────────────────── 00:00:17 v #1056 > > │ 00:00:11 v #632 > > inl app () = 00:00:17 v #1057 > > │ 00:00:11 v #633 > > "test" |> console.write_line 00:00:17 v #1058 > > │ 00:00:11 v #634 > > 0i32 00:00:17 v #1059 > > │ 00:00:11 v #635 > > 00:00:17 v #1060 > > │ 00:00:11 v #636 > > inl main () = 00:00:17 v #1061 > > │ 00:00:11 v #637 > > print_static "<test>" 00:00:17 v #1062 > > │ 00:00:11 v #638 > > 00:00:17 v #1063 > > │ 00:00:11 v #639 > > app 00:00:17 v #1064 > > │ 00:00:11 v #640 > > |> dyn 00:00:17 v #1065 > > │ 00:00:11 v #641 > > |> ignore 00:00:17 v #1066 > > │ 00:00:11 v #642 > > 00:00:17 v #1067 > > │ 00:00:11 v #643 > > print_static "</test>" 00:00:17 v #1068 > > │ 00:00:12 v #644 > 00:00:11 v #3 00:00:17 v #1069 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 00:00:17 v #1070 > > 27199 } 00:00:17 v #1071 > > │ 00:00:12 v #645 > 00:00:11 d #4 00:00:17 v #1072 > > runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", 00:00:17 v #1073 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb", 00:00:17 v #1074 > > "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter 00:00:17 v #1075 > > nbconvert 00:00:17 v #1076 > > "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb" --to 00:00:17 v #1077 > > html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables 00:00:17 v #1078 > > = Array(MutCell([])); on_line = None; stdin = None; trace = true; 00:00:17 v #1079 > > working_directory = None } } 00:00:17 v #1080 > > │ 00:00:12 v #646 > 00:00:12 v #5 ! [NbConvertApp] 00:00:17 v #1081 > > Converting notebook 00:00:17 v #1082 > > /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.ipynb to html 00:00:17 v #1083 > > │ 00:00:12 v #647 > 00:00:12 v #6 ! 00:00:17 v #1084 > > /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__i 00:00:17 v #1085 > > nit__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will 00:00:17 v #1086 > > become a hard error in future nbformat versions. You may want to use 00:00:17 v #1087 > > `normalize()` on your notebooks before validations (available since nbformat 00:00:17 v #1088 > > 5.1.4). Previous versions of nbformat are fixing this issue transparently, and 00:00:17 v #1089 > > will stop doing so in the future. 00:00:17 v #1090 > > │ 00:00:12 v #648 > 00:00:12 v #7 ! validate(nb) 00:00:17 v #1091 > > │ 00:00:13 v #649 > 00:00:12 v #8 ! 00:00:17 v #1092 > > /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/fi 00:00:17 v #1093 > > lters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on 00:00:17 v #1094 > > Python 3 00:00:17 v #1095 > > │ 00:00:13 v #650 > 00:00:12 v #9 ! return 00:00:17 v #1096 > > _pygments_highlight( 00:00:17 v #1097 > > │ 00:00:13 v #651 > 00:00:12 v #10 ! [NbConvertApp] 00:00:17 v #1098 > > Writing 332732 bytes to 00:00:17 v #1099 > > /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.html 00:00:17 v #1100 > > │ 00:00:13 v #652 > 00:00:12 v #11 00:00:17 v #1101 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914 00:00:17 v #1102 > > } 00:00:17 v #1103 > > │ 00:00:13 v #653 > 00:00:12 d #12 spiral.run / dib 00:00:17 v #1104 > > / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 914 } 00:00:17 v #1105 > > │ 00:00:13 v #654 > 00:00:12 d #13 00:00:17 v #1106 > > runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter 00:00:17 v #1107 > > = 1; $path = 00:00:17 v #1108 > > '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.html'; 00:00:17 v #1109 > > (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { 00:00:17 v #1110 > > $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = 00:00:17 v #1111 > > pwsh -c "$counter = 1; $path = 00:00:17 v #1112 > > '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/test.dib.html'; 00:00:17 v #1113 > > (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { 00:00:17 v #1114 > > $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = 00:00:17 v #1115 > > None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; 00:00:17 v #1116 > > trace = true; working_directory = None } } 00:00:17 v #1117 > > │ 00:00:13 v #655 > 00:00:13 v #14 00:00:17 v #1118 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:17 v #1119 > > │ 00:00:13 v #656 > 00:00:13 d #15 spiral.run / dib 00:00:17 v #1120 > > / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:17 v #1121 > > │ 00:00:13 v #657 > 00:00:13 d #16 spiral.run / dib 00:00:17 v #1122 > > / { exit_code = 0; result_length = 28172 } 00:00:17 v #1123 > > │ 00:00:13 d #658 runtime.execute_with_options_async / { 00:00:17 v #1124 > > exit_code = 0; output_length = 32177 } 00:00:17 v #1125 > > │ 00:00:13 d #1 main / executeCommand / exitCode: 0 00:00:17 v #1126 > > command: ../../../../deps/spiral/workspace/target/release/spiral dib --path 00:00:17 v #1127 > > test.dib --retries 3 00:00:17 v #1128 > > │ 00:00:17 v #1129 > > 00:00:17 v #1130 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:17 v #1131 > > │ ### parse the .dib file into .spi format with dibparser 00:00:17 v #1132 > > 00:00:17 v #1133 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:17 v #1134 > > { . ../../../../apps/parser/dist/DibParser$(_exe) test.dib spi } | Invoke-Block 00:00:17 v #1135 > > 00:00:17 v #1136 > > ── [ 370.61ms - stdout ] ─────────────────────────────────────────────────────── 00:00:17 v #1137 > > │ 00:00:00 d #1 writeDibCode / output: Spi / path: 00:00:17 v #1138 > > test.dib 00:00:17 v #1139 > > │ 00:00:00 d #2 parseDibCode / output: Spi / file: 00:00:17 v #1140 > > test.dib 00:00:17 v #1141 > > │ 00:00:17 v #1142 > > 00:00:17 v #1143 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:17 v #1144 > > │ ### build .fsx file from .spi using supervisor 00:00:17 v #1145 > > 00:00:17 v #1146 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:17 v #1147 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --build-file test.spi 00:00:17 v #1148 > > test.fsx } | Invoke-Block 00:00:18 v #1149 > <test> 00:00:18 v #1150 > </test> 00:00:18 v #1151 > > 00:00:18 v #1152 > > ── [ 1.04s - stdout ] ────────────────────────────────────────────────────────── 00:00:18 v #1153 > > │ 00:00:00 v #1 networking.test_port_open / { port = 00:00:18 v #1154 > > 13806; ex = System.AggregateException: One or more errors occurred. (Connection 00:00:18 v #1155 > > refused) } 00:00:18 v #1156 > > │ 00:00:00 v #2 networking.test_port_open / { port = 00:00:18 v #1157 > > 13806; ex = System.AggregateException: One or more errors occurred. (Connection 00:00:18 v #1158 > > refused) } 00:00:18 v #1159 > > │ 00:00:00 d #1 Supervisor.buildFile / takeWhileInclusive 00:00:18 v #1160 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:18 v #1161 > > │ 00:00:18 v #1162 > > │ 00:00:00 d #2 Supervisor.buildFile / AsyncSeq.scan 00:00:18 v #1163 > > path: test.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 00:00:18 v #1164 > > 0 / error: / outputContent: 00:00:18 v #1165 > > │ 00:00:18 v #1166 > > │ 00:00:00 d #3 Supervisor.buildFile / takeWhileInclusive 00:00:18 v #1167 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:18 v #1168 > > │ 00:00:18 v #1169 > > │ 00:00:00 v #4 Supervisor.sendJson / port: 13805 / json: 00:00:18 v #1170 > > {"FileOpen":{"spiText":"/// # test (Polyglot)\n\n/// ## main\ninl main (_args : 00:00:18 v #1171 > > array_base string) 00:00:18 v #1172 > > =...t\u003E\u0022\n","uri":"file:///home/runner/work/polyglot/polyglot/apps/spir 00:00:18 v #1173 > > al/temp/test/test.spi"}} / result: 00:00:18 v #1174 > > │ 00:00:00 v #5 Supervisor.sendJson / port: 13805 / json: 00:00:18 v #1175 > > {"BuildFile":{"backend":"Fsharp","uri":"file:///home/runner/work/polyglot/polygl 00:00:18 v #1176 > > ot/apps/spiral/temp/test/test.spi"}} / result: 00:00:18 v #1177 > > │ 00:00:00 d #6 Supervisor.buildFile / AsyncSeq.scan 00:00:18 v #1178 > > path: test.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 00:00:18 v #1179 > > 0 / error: / outputContent: 00:00:18 v #1180 > > │ let rec closure1 () () : unit = 00:00:18 v #1181 > > │ let v0 : (string -> unit) = System.Console.WriteLine 00:00:18 v #1182 > > │ let v1 : string = "test" 00:00:18 v #1183 > > │ v0 v1 00:00:18 v #1184 > > │ and closure0 () () : int32 = 00:00:18 v #1185 > > │ let v0 : unit = () 00:00:18 v #1186 > > │ let v1 : (unit -> unit) = closure1() 00:00:18 v #1187 > > │ let v2 : unit = (fun () -> v1 (); v0) () 00:00:18 v #1188 > > │ 0 00:00:18 v #1189 > > │ let v0 : (unit -> int32) = closure0() 00:00:18 v #1190 > > │ () 00:00:18 v #1191 > > │ 00:00:18 v #1192 > > │ 00:00:00 d #7 Supervisor.buildFile / takeWhileInclusive 00:00:18 v #1193 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: 00:00:18 v #1194 > > │ let rec closure1 () () : unit = 00:00:18 v #1195 > > │ let v0 : (string -> unit) = System.Console.WriteLine 00:00:18 v #1196 > > │ let v1 : string = "test" 00:00:18 v #1197 > > │ v0 v1 00:00:18 v #1198 > > │ and closure0 () () : int32 = 00:00:18 v #1199 > > │ let v0 : unit = () 00:00:18 v #1200 > > │ let v1 : (unit -> unit) = closure1() 00:00:18 v #1201 > > │ let v2 : unit = (fun () -> v1 (); v0) () 00:00:18 v #1202 > > │ 0 00:00:18 v #1203 > > │ let v0 : (unit -> int32) = closure0() 00:00:18 v #1204 > > │ () 00:00:18 v #1205 > > │ 00:00:18 v #1206 > > │ 00:00:00 d #8 FileSystem.watchWithFilter / Disposing 00:00:18 v #1207 > > watch stream / filter: FileName, LastWrite 00:00:18 v #1208 > > │ 00:00:18 v #1209 > > 00:00:18 v #1210 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:18 v #1211 > > │ ## compile and format the project 00:00:18 v #1212 > > 00:00:18 v #1213 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:18 v #1214 > > │ ### compile project with fable targeting optimized rust 00:00:18 v #1215 > > 00:00:18 v #1216 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:18 v #1217 > > dotnet fable --optimize --lang rs --extension .rs 00:00:23 v #1218 > > 00:00:23 v #1219 > > ── [ 4.62s - stdout ] ────────────────────────────────────────────────────────── 00:00:23 v #1220 > > │ Fable 5.0.0-alpha.9: F# to Rust compiler (status: alpha) 00:00:23 v #1221 > > │ 00:00:23 v #1222 > > │ Thanks to the contributor! @jwosty 00:00:23 v #1223 > > │ Stand with Ukraine! https://standwithukraine.com.ua 00:00:23 v #1224 > > │ 00:00:23 v #1225 > > │ Parsing test.fsproj... 00:00:23 v #1226 > > │ Project and references (1 source files) parsed in 2387ms 00:00:23 v #1227 > > │ 00:00:23 v #1228 > > │ Started Fable compilation... 00:00:23 v #1229 > > │ 00:00:23 v #1230 > > │ Fable compilation finished in 1127ms 00:00:23 v #1231 > > │ 00:00:23 v #1232 > > │ ./test.fsx(11,0): (11,2) warning FABLE: For Rust, support 00:00:23 v #1233 > > for F# static and module do bindings is disabled by default. It can be enabled 00:00:23 v #1234 > > with the 'static_do_bindings' feature. Use at your own risk! 00:00:23 v #1235 > > │ 00:00:23 v #1236 > > 00:00:23 v #1237 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #1238 > > │ ### fix formatting issues in the .rs file using regex and 00:00:23 v #1239 > > set-content 00:00:23 v #1240 > > 00:00:23 v #1241 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:23 v #1242 > > (Get-Content test.rs) ` 00:00:23 v #1243 > > -replace [[regex]]::Escape("),);"), "));" ` 00:00:23 v #1244 > > | FixRust ` 00:00:23 v #1245 > > | Set-Content test.rs 00:00:23 v #1246 > > 00:00:23 v #1247 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #1248 > > │ ### format the rust code using cargo fmt 00:00:23 v #1249 > > 00:00:23 v #1250 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:23 v #1251 > > cargo fmt -- 00:00:23 v #1252 > > 00:00:23 v #1253 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #1254 > > │ ## build and test the project 00:00:23 v #1255 > > 00:00:23 v #1256 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:23 v #1257 > > │ ### build the project in release mode using nightly rust 00:00:23 v #1258 > > compiler 00:00:23 v #1259 > > 00:00:23 v #1260 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:23 v #1261 > > cargo build --release 00:00:34 v #1262 > > 00:00:34 v #1263 > > ── [ 11.16s - stdout ] ───────────────────────────────────────────────────────── 00:00:34 v #1264 > > │ Compiling byteorder v1.5.0 00:00:34 v #1265 > > │ Compiling syn v2.0.90 00:00:34 v #1266 > > │ Compiling getrandom v0.2.15 00:00:34 v #1267 > > │ Compiling linux-raw-sys v0.4.14 00:00:34 v #1268 > > │ Compiling rand_core v0.6.4 00:00:34 v #1269 > > │ Compiling num-traits v0.2.19 00:00:34 v #1270 > > │ Compiling once_cell v1.20.2 00:00:34 v #1271 > > │ Compiling libm v0.2.11 00:00:34 v #1272 > > │ Compiling rustix v0.38.42 00:00:34 v #1273 > > │ Compiling wait-timeout v0.2.0 00:00:34 v #1274 > > │ Compiling bit-vec v0.6.3 00:00:34 v #1275 > > │ Compiling quick-error v1.2.3 00:00:34 v #1276 > > │ Compiling bit-set v0.5.3 00:00:34 v #1277 > > │ Compiling rand_xorshift v0.3.0 00:00:34 v #1278 > > │ Compiling memchr v2.7.4 00:00:34 v #1279 > > │ Compiling unarray v0.1.4 00:00:34 v #1280 > > │ Compiling fable_library_rust v0.1.0 00:00:34 v #1281 > > (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library- 00:00:34 v #1282 > > rust) 00:00:34 v #1283 > > │ Compiling nom v7.1.3 00:00:34 v #1284 > > │ Compiling zerocopy-derive v0.7.35 00:00:34 v #1285 > > │ Compiling tempfile v3.14.0 00:00:34 v #1286 > > │ Compiling rusty-fork v0.3.0 00:00:34 v #1287 > > │ Compiling zerocopy v0.7.35 00:00:34 v #1288 > > │ Compiling thiserror-impl v1.0.69 00:00:34 v #1289 > > │ Compiling ppv-lite86 v0.2.20 00:00:34 v #1290 > > │ Compiling rand_chacha v0.3.1 00:00:34 v #1291 > > │ Compiling thiserror v1.0.69 00:00:34 v #1292 > > │ Compiling rand v0.8.5 00:00:34 v #1293 > > │ Compiling proptest v1.5.0 00:00:34 v #1294 > > │ Compiling spiral_temp_test v0.0.1 00:00:34 v #1295 > > (/home/runner/work/polyglot/polyglot/apps/spiral/temp/test) 00:00:34 v #1296 > > │ Finished `release` profile [optimized] 00:00:34 v #1297 > > target(s) in 11.11s 00:00:34 v #1298 > > │ 00:00:34 v #1299 > > 00:00:34 v #1300 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:34 v #1301 > > │ ### run release tests with output enabled 00:00:34 v #1302 > > 00:00:34 v #1303 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:34 v #1304 > > { cargo test --release -- --show-output } | Invoke-Block 00:00:50 v #1305 > > 00:00:50 v #1306 > > ── [ 15.63s - stdout ] ───────────────────────────────────────────────────────── 00:00:50 v #1307 > > │ Compiling linux-raw-sys v0.4.14 00:00:50 v #1308 > > │ Compiling zerocopy v0.7.35 00:00:50 v #1309 > > │ Compiling bitflags v2.6.0 00:00:50 v #1310 > > │ Compiling once_cell v1.20.2 00:00:50 v #1311 > > │ Compiling fastrand v2.3.0 00:00:50 v #1312 > > │ Compiling wait-timeout v0.2.0 00:00:50 v #1313 > > │ Compiling quick-error v1.2.3 00:00:50 v #1314 > > │ Compiling rustix v0.38.42 00:00:50 v #1315 > > │ Compiling bit-vec v0.6.3 00:00:50 v #1316 > > │ Compiling fnv v1.0.7 00:00:50 v #1317 > > │ Compiling num-traits v0.2.19 00:00:50 v #1318 > > │ Compiling ppv-lite86 v0.2.20 00:00:50 v #1319 > > │ Compiling bit-set v0.5.3 00:00:50 v #1320 > > │ Compiling rand_xorshift v0.3.0 00:00:50 v #1321 > > │ Compiling lazy_static v1.5.0 00:00:50 v #1322 > > │ Compiling minimal-lexical v0.2.1 00:00:50 v #1323 > > │ Compiling rand_chacha v0.3.1 00:00:50 v #1324 > > │ Compiling rand v0.8.5 00:00:50 v #1325 > > │ Compiling unarray v0.1.4 00:00:50 v #1326 > > │ Compiling memchr v2.7.4 00:00:50 v #1327 > > │ Compiling fable_library_rust v0.1.0 00:00:50 v #1328 > > (/home/runner/work/polyglot/polyglot/lib/rust/fable/fable_modules/fable-library- 00:00:50 v #1329 > > rust) 00:00:50 v #1330 > > │ Compiling thiserror v1.0.69 00:00:50 v #1331 > > │ Compiling nom v7.1.3 00:00:50 v #1332 > > │ Compiling tempfile v3.14.0 00:00:50 v #1333 > > │ Compiling rusty-fork v0.3.0 00:00:50 v #1334 > > │ Compiling proptest v1.5.0 00:00:50 v #1335 > > │ Compiling spiral_temp_test v0.0.1 00:00:50 v #1336 > > (/home/runner/work/polyglot/polyglot/apps/spiral/temp/test) 00:00:50 v #1337 > > │ Finished `release` profile [optimized] 00:00:50 v #1338 > > target(s) in 15.49s 00:00:50 v #1339 > > │ Running unittests main.rs 00:00:50 v #1340 > > (/home/runner/work/polyglot/polyglot/workspace/target/release/deps/spiral_temp_t 00:00:50 v #1341 > > est-87f487a4cc8a01e4) 00:00:50 v #1342 > > │ 00:00:50 v #1343 > > │ running 3 tests 00:00:50 v #1344 > > │ test test_parse_number ... ok 00:00:50 v #1345 > > │ test prop_parse_format_idempotent ... ok 00:00:50 v #1346 > > │ test 00:00:50 v #1347 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... ok 00:00:50 v #1348 > > │ 00:00:50 v #1349 > > │ successes: 00:00:50 v #1350 > > │ 00:00:50 v #1351 > > │ ---- prop_parse_format_idempotent stdout ---- 00:00:50 v #1352 > > │ input=Comment("$^G\\{") 00:00:50 v #1353 > > │ input=StringLiteral("<::vSK?O}&@S~0F:](M5*%wN:tA") 00:00:50 v #1354 > > │ input=Operator("-") 00:00:50 v #1355 > > │ input=Identifier("ldpERjC30") 00:00:50 v #1356 > > │ input=Integer(1947299992506408981) 00:00:50 v #1357 > > │ input=Integer(-8032676483445232239) 00:00:50 v #1358 > > │ input=Comment("Q*UO{*'{?I:EX:n<gAsB`>*{O!") 00:00:50 v #1359 > > │ input=Identifier("fl7II9") 00:00:50 v #1360 > > │ input=Identifier("Hj0z7XrQ9yImcGlsZkkENbDT3iCF") 00:00:50 v #1361 > > │ input=Integer(-8035904755705811608) 00:00:50 v #1362 > > │ input=Operator("/") 00:00:50 v #1363 > > │ input=Integer(-2434766463086851749) 00:00:50 v #1364 > > │ input=Integer(-316147892470765129) 00:00:50 v #1365 > > │ input=Integer(4595713205383900708) 00:00:50 v #1366 > > │ input=Comment("^F#-W\\U?U`]@mk*4!*{pN") 00:00:50 v #1367 > > │ input=Identifier("mqNrIWvjpz42bsKF1w9jz82nh") 00:00:50 v #1368 > > │ input=StringLiteral("=/&*r*?AQi<%(l:Q$I.") 00:00:50 v #1369 > > │ input=StringLiteral("T$j6/_.") 00:00:50 v #1370 > > │ input=Comment("@+<%DGl") 00:00:50 v #1371 > > │ input=Operator(")") 00:00:50 v #1372 > > │ input=StringLiteral("62s$K+:g") 00:00:50 v #1373 > > │ input=StringLiteral("FbM@<4:6:A*Tgh~UP") 00:00:50 v #1374 > > │ input=Operator("/") 00:00:50 v #1375 > > │ input=StringLiteral("'$h^^J<<65[o") 00:00:50 v #1376 > > │ input=Comment("wm/M{|/&jD>Mtp&m]N?2Qvv:c]9/TrL") 00:00:50 v #1377 > > │ input=Comment("LS?,mb@.?^'") 00:00:50 v #1378 > > │ input=Identifier("M1BcCJP") 00:00:50 v #1379 > > │ input=Comment("=_:^ly\\?&[Q%/F]./n;@e::[H!BW?=&[") 00:00:50 v #1380 > > │ input=StringLiteral("I]>k'C_@F") 00:00:50 v #1381 > > │ input=StringLiteral("g?uNwAY05%<%=u?/") 00:00:50 v #1382 > > │ input=Comment("X%O}5%#$n<:^zn$an+p/aC&z^i?349,8") 00:00:50 v #1383 > > │ input=Operator("/") 00:00:50 v #1384 > > │ input=StringLiteral("@${i'/oF") 00:00:50 v #1385 > > │ input=Comment("&@\"K<x5c%]%E,`{T-c<?D\"=3/A") 00:00:50 v #1386 > > │ input=Integer(6482510285938993544) 00:00:50 v #1387 > > │ input=Identifier("G1o2Rs1FV3U6GrUJVs3") 00:00:50 v #1388 > > │ input=Comment("._$IM<$57uK734;5=u*'$3cU") 00:00:50 v #1389 > > │ input=Identifier("x21kb") 00:00:50 v #1390 > > │ input=Operator("=") 00:00:50 v #1391 > > │ input=StringLiteral("/F&el>jcNv%R.{t?I)f.&`Ej") 00:00:50 v #1392 > > │ input=Comment("v2.`s^j*//N``;\"") 00:00:50 v #1393 > > │ input=Operator("*") 00:00:50 v #1394 > > │ input=Operator("/") 00:00:50 v #1395 > > │ input=Operator("(") 00:00:50 v #1396 > > │ input=StringLiteral("B{oxo3+?4M+5%BNd=*e0t*") 00:00:50 v #1397 > > │ input=Integer(-7526891632462053287) 00:00:50 v #1398 > > │ input=StringLiteral("Sc?$4@eB[<U*{'XVfB") 00:00:50 v #1399 > > │ input=StringLiteral("G{VS.]*%W'fK?lHXum") 00:00:50 v #1400 > > │ input=Integer(-7128524883158555653) 00:00:50 v #1401 > > │ input=Comment(".{66[@U%Y6gL&.<Q&cIS{:") 00:00:50 v #1402 > > │ input=Identifier("I8") 00:00:50 v #1403 > > │ input=Identifier("Rrs0if7bt8") 00:00:50 v #1404 > > │ input=Operator("/") 00:00:50 v #1405 > > │ input=StringLiteral("|$I)") 00:00:50 v #1406 > > │ input=Comment("`*3;Jng#\\1.%C\\,c\\|\"']'WB") 00:00:50 v #1407 > > │ input=Integer(599646373263720733) 00:00:50 v #1408 > > │ input=Integer(-3205225023442762064) 00:00:50 v #1409 > > │ input=StringLiteral("?LA^~Q!*g&wRzq<.p(C;(>Y:") 00:00:50 v #1410 > > │ input=Operator("-") 00:00:50 v #1411 > > │ input=Identifier("Pv5b7Bb5ruTM6yhTPF6o7tIW0Y5G") 00:00:50 v #1412 > > │ input=Operator("/") 00:00:50 v #1413 > > │ input=Operator("/") 00:00:50 v #1414 > > │ input=Comment("$<&34/K?{Q`4L.O?k\\[*. =i") 00:00:50 v #1415 > > │ input=StringLiteral("4ND'l/I`Id.1%E:3).Y7*UhP4r/:") 00:00:50 v #1416 > > │ input=Comment("c &z.G:%emW&hyl5cgE@@") 00:00:50 v #1417 > > │ input=Integer(-5413164739117561733) 00:00:50 v #1418 > > │ input=Integer(7021445175565434744) 00:00:50 v #1419 > > │ input=Operator("-") 00:00:50 v #1420 > > │ input=Integer(-8153917311095233719) 00:00:50 v #1421 > > │ input=Operator("/") 00:00:50 v #1422 > > │ input=Identifier("XxA2hZI6U2P") 00:00:50 v #1423 > > │ input=Identifier("yk03e8IS6BKNOan9nk9bQsU6") 00:00:50 v #1424 > > │ input=Comment("f?='fy`'$*/.l`{CO?O<`") 00:00:50 v #1425 > > │ input=StringLiteral("{W") 00:00:50 v #1426 > > │ input=Operator("(") 00:00:50 v #1427 > > │ input=Operator("/") 00:00:50 v #1428 > > │ input=StringLiteral("vR-m&&<Qmr/n97_<Vi`9M") 00:00:50 v #1429 > > │ input=Identifier("Ua3QqMXrkK") 00:00:50 v #1430 > > │ input=Operator("-") 00:00:50 v #1431 > > │ input=Integer(2554116399884818122) 00:00:50 v #1432 > > │ input=StringLiteral("J/(w|&td2%pO+Tjq.(*BR*/>") 00:00:50 v #1433 > > │ input=Integer(1105718407796571662) 00:00:50 v #1434 > > │ input=Comment("x$s=1m*AW%l0?'") 00:00:50 v #1435 > > │ input=Integer(-7576605980448135475) 00:00:50 v #1436 > > │ input=Integer(4562554380173887892) 00:00:50 v #1437 > > │ input=StringLiteral("%mG") 00:00:50 v #1438 > > │ input=Operator("-") 00:00:50 v #1439 > > │ input=Comment("+rM'q\\hhunh0:a>RmGJ&0K`#'H=") 00:00:50 v #1440 > > │ input=Integer(-7039810283534093229) 00:00:50 v #1441 > > │ input=Operator(")") 00:00:50 v #1442 > > │ input=Comment("Bvy7#P\"?L'") 00:00:50 v #1443 > > │ input=Identifier("Z53koK9LG1uAwq94zf32BJgbi") 00:00:50 v #1444 > > │ input=Identifier("BJvX3AN0VtIqxSAQLC") 00:00:50 v #1445 > > │ input=Comment("# `0$5oXx)f%%UI$\\`DB9tre%#P=\\CH") 00:00:50 v #1446 > > │ input=StringLiteral("E46/<@3L/<=:G'") 00:00:50 v #1447 > > │ input=StringLiteral("=I':o{+Ri_`y.?") 00:00:50 v #1448 > > │ input=Operator("/") 00:00:50 v #1449 > > │ input=Integer(-3045090155257288269) 00:00:50 v #1450 > > │ input=Operator("*") 00:00:50 v #1451 > > │ input=Identifier("WN6Uy3yo4DR") 00:00:50 v #1452 > > │ input=Operator("*") 00:00:50 v #1453 > > │ input=Integer(5806888632637096118) 00:00:50 v #1454 > > │ input=Comment(".x*#B=NO7E") 00:00:50 v #1455 > > │ input=Integer(3272137317195537015) 00:00:50 v #1456 > > │ input=Integer(3707094223518345740) 00:00:50 v #1457 > > │ input=Operator("(") 00:00:50 v #1458 > > │ input=Operator("+") 00:00:50 v #1459 > > │ input=StringLiteral("/~WS*X_Wcq=hgq'd)#6^~I.66@") 00:00:50 v #1460 > > │ input=Identifier("aSj0nD1TT96") 00:00:50 v #1461 > > │ input=Integer(3928284579871151787) 00:00:50 v #1462 > > │ input=Operator("(") 00:00:50 v #1463 > > │ input=StringLiteral("G/(") 00:00:50 v #1464 > > │ input=Comment("0+CQ?\\\"Z\\P;;.y\\$X#Qq$=") 00:00:50 v #1465 > > │ input=Operator(")") 00:00:50 v #1466 > > │ input=Operator("/") 00:00:50 v #1467 > > │ input=Comment("w=") 00:00:50 v #1468 > > │ input=StringLiteral("31kg:akH5UGfjQC$E`//p") 00:00:50 v #1469 > > │ input=Identifier("xzNOjdZli76fuRM0JhpSCCIuU1VNy50qc") 00:00:50 v #1470 > > │ input=StringLiteral("=b<==") 00:00:50 v #1471 > > │ input=Operator("/") 00:00:50 v #1472 > > │ input=Identifier("YDt1gcTwlRpT") 00:00:50 v #1473 > > │ input=Operator("(") 00:00:50 v #1474 > > │ input=Identifier("tZA1sjR1GS2X1JZtuj864S") 00:00:50 v #1475 > > │ input=Identifier("P5ZjAZXenbJri9hK80l1ZJc9") 00:00:50 v #1476 > > │ input=StringLiteral("=") 00:00:50 v #1477 > > │ input=Identifier("dyb6fSBt6zlkkF6Tb4JjRbFi47lwRd") 00:00:50 v #1478 > > │ input=Operator("=") 00:00:50 v #1479 > > │ input=Integer(6446571970790728129) 00:00:50 v #1480 > > │ input=Identifier("WOYAa0x2rAyG7g8efv822KC7zpE698b") 00:00:50 v #1481 > > │ input=Comment("iRX%u") 00:00:50 v #1482 > > │ input=Integer(-3036624985295285086) 00:00:50 v #1483 > > │ input=Identifier("dFD7v3KcebXrY37z") 00:00:50 v #1484 > > │ input=Identifier("pc3Zq2W") 00:00:50 v #1485 > > │ input=Identifier("JBBHSm09Por8hYh3O") 00:00:50 v #1486 > > │ input=StringLiteral("EtK$.F>CI7u/E{zJtDAF'i@L``2?") 00:00:50 v #1487 > > │ input=Comment(" '\"T+>?|/:u*exl$$U*2/!Z{|p3:**") 00:00:50 v #1488 > > │ input=Integer(-7711120098066052661) 00:00:50 v #1489 > > │ input=Integer(1491466662836610938) 00:00:50 v #1490 > > │ input=StringLiteral("") 00:00:50 v #1491 > > │ input=Comment("=,3Y8yZfzM5`qB?'") 00:00:50 v #1492 > > │ input=Comment("M$.d: !/nlD") 00:00:50 v #1493 > > │ input=Identifier("E") 00:00:50 v #1494 > > │ input=Integer(-336605803073136200) 00:00:50 v #1495 > > │ input=Operator("/") 00:00:50 v #1496 > > │ input=Identifier("X36bJJNc3uPkp9xSrQBkUkzgC9cRwO07") 00:00:50 v #1497 > > │ input=Integer(3298988441036513400) 00:00:50 v #1498 > > │ input=StringLiteral("<C|$4f`=Ci%A{|CT$B>L`.:h") 00:00:50 v #1499 > > │ input=Operator("-") 00:00:50 v #1500 > > │ input=Operator("/") 00:00:50 v #1501 > > │ input=Comment("1{\\/<K\"Km>g%") 00:00:50 v #1502 > > │ input=Comment(":&nU~m/'K\"eh:YV:1X\"N,0p7/N$9$F|") 00:00:50 v #1503 > > │ input=Integer(422259185976601730) 00:00:50 v #1504 > > │ input=StringLiteral("_f~1z`2{K") 00:00:50 v #1505 > > │ input=Integer(3742109620342707616) 00:00:50 v #1506 > > │ input=Identifier("Z1x") 00:00:50 v #1507 > > │ input=Integer(6915319677569502773) 00:00:50 v #1508 > > │ input=StringLiteral(":'") 00:00:50 v #1509 > > │ input=Identifier("B5T9jKHI2158y") 00:00:50 v #1510 > > │ input=Identifier("pp82vmy0K8sHFAEmbypLvrXjs") 00:00:50 v #1511 > > │ input=StringLiteral("( t>k&") 00:00:50 v #1512 > > │ input=Integer(-6792640296577403429) 00:00:50 v #1513 > > │ input=Integer(4627910971870065218) 00:00:50 v #1514 > > │ input=StringLiteral("") 00:00:50 v #1515 > > │ input=StringLiteral("6$") 00:00:50 v #1516 > > │ input=Integer(-3335262579163585675) 00:00:50 v #1517 > > │ input=Identifier("rs6a72UX4VpWE6HL7h5") 00:00:50 v #1518 > > │ input=Integer(3521486607704496855) 00:00:50 v #1519 > > │ input=Operator("(") 00:00:50 v #1520 > > │ input=Integer(-34857843521567354) 00:00:50 v #1521 > > │ input=StringLiteral("&^-F&{") 00:00:50 v #1522 > > │ input=Comment("UI,O") 00:00:50 v #1523 > > │ input=Operator("=") 00:00:50 v #1524 > > │ input=Integer(-3013234105284896171) 00:00:50 v #1525 > > │ input=Integer(8243650245512455584) 00:00:50 v #1526 > > │ input=StringLiteral("X<O?q2$}U#L|Orn*;c*`Ff<I!") 00:00:50 v #1527 > > │ input=Integer(-4959284679532896562) 00:00:50 v #1528 > > │ input=Comment(",/IK&T") 00:00:50 v #1529 > > │ input=Integer(-4079795653558230785) 00:00:50 v #1530 > > │ input=Operator("-") 00:00:50 v #1531 > > │ input=Comment(".dO8h$*Ejwb{") 00:00:50 v #1532 > > │ input=StringLiteral("WG={X>") 00:00:50 v #1533 > > │ input=Integer(-9131456484976559269) 00:00:50 v #1534 > > │ input=Operator("*") 00:00:50 v #1535 > > │ input=Identifier("n9r82UuntDaG899") 00:00:50 v #1536 > > │ input=Operator("=") 00:00:50 v #1537 > > │ input=Integer(-1878336160954153665) 00:00:50 v #1538 > > │ input=Operator(")") 00:00:50 v #1539 > > │ input=StringLiteral(".") 00:00:50 v #1540 > > │ input=Integer(-740868658535390243) 00:00:50 v #1541 > > │ input=StringLiteral("SWa7*S;an$U$'N%") 00:00:50 v #1542 > > │ input=Comment("ETh*]^\\\"8U\\;A:qpP@V/6<{P@") 00:00:50 v #1543 > > │ input=Operator("(") 00:00:50 v #1544 > > │ input=StringLiteral("m|5") 00:00:50 v #1545 > > │ input=Comment("6L.@qjbpiTLA+k'?o'i5\"&(M*q") 00:00:50 v #1546 > > │ input=StringLiteral("%W@?`/lV:*'.3.dOzz>.e:o Cm,w") 00:00:50 v #1547 > > │ input=Identifier("zqXKGU") 00:00:50 v #1548 > > │ input=StringLiteral("1F&{{:q$t7ME@88[.D==") 00:00:50 v #1549 > > │ input=Integer(-3575310021264874914) 00:00:50 v #1550 > > │ input=Comment(")?dN j0t=b{") 00:00:50 v #1551 > > │ input=Integer(-5753448516841766291) 00:00:50 v #1552 > > │ input=Comment("") 00:00:50 v #1553 > > │ input=Integer(5617129197448738810) 00:00:50 v #1554 > > │ input=Identifier("ai2NNPd3ziWDwm6Wd2dUqUdhS5C72l1") 00:00:50 v #1555 > > │ input=Identifier("gfF6x7Bw06bOYhT90K") 00:00:50 v #1556 > > │ input=Integer(5541733897664154872) 00:00:50 v #1557 > > │ input=Comment("@.u-Z+%>") 00:00:50 v #1558 > > │ input=Identifier("pX09nDIGzP1") 00:00:50 v #1559 > > │ input=StringLiteral("PpA*Rb%(A=I/#2") 00:00:50 v #1560 > > │ input=StringLiteral("U.2,<;%$`5/B0f%+p #e~{w$") 00:00:50 v #1561 > > │ input=Operator("+") 00:00:50 v #1562 > > │ input=Identifier("D2d994c") 00:00:50 v #1563 > > │ input=Comment("SulUY$6dt?|n6:]%`x*:/W%+x>Xo7GO}") 00:00:50 v #1564 > > │ input=StringLiteral("*)Cd|J[`%.5%_E+S?&r&{?W-:") 00:00:50 v #1565 > > │ input=Comment("wEPf##") 00:00:50 v #1566 > > │ input=StringLiteral("?=*kb [F=Ms0d:") 00:00:50 v #1567 > > │ input=Operator("=") 00:00:50 v #1568 > > │ input=StringLiteral("v7C@)%wD$cwgkkzO5RdL-9/5t&/=/_") 00:00:50 v #1569 > > │ input=Operator("*") 00:00:50 v #1570 > > │ input=Operator(")") 00:00:50 v #1571 > > │ input=Integer(-2780370319892525042) 00:00:50 v #1572 > > │ input=Comment("H|5i/y,d[\\?*<?=X/'eAfk+nr3Ac3p}/") 00:00:50 v #1573 > > │ input=StringLiteral("7A*rE#") 00:00:50 v #1574 > > │ input=Identifier("j56RTWI2Yn5igLo65X75YxoyoyX9") 00:00:50 v #1575 > > │ input=Integer(4618053259640058758) 00:00:50 v #1576 > > │ input=Identifier("B35XE") 00:00:50 v #1577 > > │ input=Integer(-8916102798870864609) 00:00:50 v #1578 > > │ input=Integer(-2462898160966955440) 00:00:50 v #1579 > > │ input=Identifier("Uw3y15xt9W3y176gp0") 00:00:50 v #1580 > > │ input=StringLiteral(".2jb&&k'O</s&Nv`G40R={Y1") 00:00:50 v #1581 > > │ input=Operator("+") 00:00:50 v #1582 > > │ input=Comment("M2{,9''?.&.$6`B") 00:00:50 v #1583 > > │ input=Comment("%_3E/zD?ef'") 00:00:50 v #1584 > > │ input=Integer(7560575764046092295) 00:00:50 v #1585 > > │ input=Comment("eB}&\"=5(=Z$de'{Ls;\"&\\MI%9") 00:00:50 v #1586 > > │ input=Operator("/") 00:00:50 v #1587 > > │ input=Integer(4970320218451260447) 00:00:50 v #1588 > > │ input=Identifier("FNphj3JgdDb77Qmp6K7nyJJadH6l4wJ") 00:00:50 v #1589 > > │ input=Operator("-") 00:00:50 v #1590 > > │ input=StringLiteral("+s}?8]),.M%F/&t%io{ZG[go<") 00:00:50 v #1591 > > │ input=Integer(6191030106670768099) 00:00:50 v #1592 > > │ input=Integer(3108566842924814220) 00:00:50 v #1593 > > │ input=Comment(".H$") 00:00:50 v #1594 > > │ input=Identifier("tLRg6sS") 00:00:50 v #1595 > > │ input=StringLiteral("T{r<V:$:(T.wLH<b") 00:00:50 v #1596 > > │ input=Integer(9005641579682232657) 00:00:50 v #1597 > > │ input=Identifier("Rw987EC5") 00:00:50 v #1598 > > │ input=Identifier("a1Hz") 00:00:50 v #1599 > > │ input=Integer(8765913080012862092) 00:00:50 v #1600 > > │ input=Integer(5340260473067891002) 00:00:50 v #1601 > > │ input=Operator("*") 00:00:50 v #1602 > > │ input=StringLiteral("NO$=?=<Q&'M_3=1") 00:00:50 v #1603 > > │ input=Identifier("QagI") 00:00:50 v #1604 > > │ input=Integer(-7826491724294850586) 00:00:50 v #1605 > > │ input=Operator("*") 00:00:50 v #1606 > > │ input=StringLiteral("%{y&<G$B=h-4&3`") 00:00:50 v #1607 > > │ input=StringLiteral("@%:;{H^'OAj{") 00:00:50 v #1608 > > │ 00:00:50 v #1609 > > │ 00:00:50 v #1610 > > │ successes: 00:00:50 v #1611 > > │ 00:00:50 v #1612 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged 00:00:50 v #1613 > > │ prop_parse_format_idempotent 00:00:50 v #1614 > > │ test_parse_number 00:00:50 v #1615 > > │ 00:00:50 v #1616 > > │ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 00:00:50 v #1617 > > filtered out; finished in 0.08s 00:00:50 v #1618 > > │ 00:00:50 v #1619 > > │ 00:00:50 v #1620 > > 00:00:50 v #1621 > > ── markdown ──────────────────────────────────────────────────────────────────── 00:00:50 v #1622 > > │ ### execute the binary in release mode 00:00:50 v #1623 > > 00:00:50 v #1624 > > ── pwsh ──────────────────────────────────────────────────────────────────────── 00:00:50 v #1625 > > { . $ScriptDir/../../../../workspace/target/release/spiral_temp_test$(_exe) } | 00:00:50 v #1626 > > Invoke-Block 00:00:50 v #1627 > > 00:00:50 v #1628 > > ── [ 8.69ms - stdout ] ───────────────────────────────────────────────────────── 00:00:50 v #1629 > > │ app=test 00:00:50 v #1630 > > │ 00:00:50 v #1631 > 00:00:48 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 96252 } 00:00:50 v #1632 > 00:00:48 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:50 v #1633 > 00:00:49 v #5 ! [NbConvertApp] Converting notebook /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.ipynb to html 00:00:50 v #1634 > 00:00:49 v #6 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbformat/__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. 00:00:50 v #1635 > 00:00:49 v #7 ! validate(nb) 00:00:51 v #1636 > 00:00:49 v #8 ! /opt/hostedtoolcache/Python/3.12.8/x64/lib/python3.12/site-packages/nbconvert/filters/highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 00:00:51 v #1637 > 00:00:49 v #9 ! return _pygments_highlight( 00:00:51 v #1638 > 00:00:50 v #10 ! [NbConvertApp] Writing 396195 bytes to /home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.html 00:00:51 v #1639 > 00:00:50 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 916 } 00:00:51 v #1640 > 00:00:50 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 916 } 00:00:51 v #1641 > 00:00:50 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = '/home/runner/work/polyglot/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } 00:00:51 v #1642 > 00:00:50 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } 00:00:51 v #1643 > 00:00:50 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } 00:00:51 v #1644 > 00:00:50 d #16 spiral.run / dib / { exit_code = 0; result_length = 97227 } 00:00:51 d #1645 runtime.execute_with_options_async / { exit_code = 0; output_length = 103177 } 00:00:51 d #3 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral dib --path build.dib 00:00:51 v #31 networking.test_port_open / { port = 13805; ex = System.AggregateException: One or more errors occurred. (Connection refused) } Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B] Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B] Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB] Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB] Get:8 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [12.5 kB] Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [834 kB] Get:10 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB] Get:11 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [993 kB] Get:12 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [313 kB] Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B] Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B] Get:15 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [208 B] Get:16 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [17.6 kB] Get:17 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [216 B] Get:18 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B] Get:19 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [8984 B] Get:20 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [52.0 kB] Get:21 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [208 B] Get:22 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [212 B] Fetched 2766 kB in 1s (4930 kB/s) Reading package lists... Repository: 'Types: deb URIs: https://ppa.launchpadcontent.net/savoury1/blender/ubuntu/ Suites: noble Components: main ' Description: Blender 3.6.11 builds (plus 3.3.18 LTS & 2.93.18 LTS) for Xenial & newer. *** Blender builds here depend upon the private PPA for installation! *** *** Please always see https://launchpad.net/~savoury1 for general updates about this Launchpad site before contacting me or reporting any bugs! *** *** Big thanks to all those who have donated to support this project, you are very directly helping to keep it alive! To all who have not donated: please do so if you can afford it, this project depends on donations. *** If software at this site is useful to you then please consider a donation: *** Donations: https://paypal.me/Savoury1 & https://ko-fi.com/Savoury1 *** *** Also https://patreon.com/Savoury1 & https://liberapay.com/Savoury1 *** Update (27 Aug 2023): All pre-compiled CUDA kernels from today are created with CUDA 11.8.0 (this version rather than CUDA >= 12 is currently being chosen for widest compatibility with all Blender versions offered here). *** For older updates about builds see "Updates" after "Install" below *** * Note: The blender and blender-{293,lts} versions can be co-installed on the same system, as some blender* files are packaged as blender-{293,lts}* to ensure no file conflicts between the three packages. Plus they also use unique config paths (~/.config/blender/{2.93,3.3,3.6} for 293, LTS, main). These are fresh builds with as many features enabled as possible. Making use of work by Irie Shinsuke [1], Thomas Schiex [2] & Debian's multimedia packaging team (thank you all!) and developing that work further this is a fairly complete and up-to-date Blender build. Packages found here that are not in default Debian/Ubuntu repos include: Alembic, Open Image Denoise, Open Shading Language, and Universal Scene Description (USD) from Pixar. ========================================================================== Blender - fresh builds (Xenial & newer) ========================================================================== alembic-io (1.8.6), armadillo (10.8.2), arpack (3.8.0), blender (3.6.11), blender-293 (2.93.18 old LTS), blender-git (4.1.0 Release Candidate 20240321), blender-lts (3.3.18), boost1.74 (1.74.0 Focal build has both Python 3.8 & 3.9 libraries), c-blosc (1.21.1), cfitsio (4.0.0), charls (2.4.2), coin3 (4.0.0), collada-dom (2.5.0), dcmtk (3.6.7), embree (3.13.4), expat (2.6.1), freeglut (3.4.0), freeimage (3.18.0), freexl (1.0.6), gdal (3.4.1), gdcm (3.0.14), geos (3.10.2), gmp (6.3.0), hwloc (2.10.0), ilmbase (3.1.11 = imath), jasper (4.2.4), json-c (0.18), kvazaar (2.3.1), lerc (4.0.0), libcrypto++ (8.9.0), libde265 (1.0.15), libdeflate (1.22), libevent (2.1.12-stable), libgeotiff (1.7.1), libheif (1.19.5), libraw (0.21.2), libwebp (1.4.0), libzstd (1.5.6), llvm-toolchain-15 (15.0.7), mpdecimal (2.5.1), nanovdb (32.3-3), netcdf (4.8.1), ogdi-dfsg (4.1.0), onetbb (2021.9.0), opencollada (1.6.68), opencolorio (2.2.1), opencolorio1 (1.1.1), opencv (imath builds), openexr (3.2.4), openimagedenoise (2.2.2), openimagedenoise1 (1.4.3), openimageio (2.5.11.0), openjpeg2 (2.5.0), openscenegraph (3.6.5), openshadinglanguage (1.12.14.0), opensubdiv (3.5.0), openvdb (9.1.0), poppler (22.02.0), poppler-data (0.4.11), proj (8.2.1), pugixml (1.14.0), python3.10 (3.10.16), python3.11 (3.11.11), python3.9 (3.9.21), qhull (2020.2), robin-map (1.0.1), snappy (1.1.10), spatialite (5.0.1), superlu (5.3.0), tbb (2020.3), tiff (4.7.0), uriparser (0.9.7), usd (22.11), yaml-cpp (0.8.0), zlib (1.3.1) Focal only: libdbi-perl (1.20 = libdeflate / renamed source for i386), numpy (1.19.5 with both Python 3.8 & 3.9 modules), pyside2 (5.14.0+really5.13.2 downgrade, due various use cases being broken by pyside2 5.14 plus Qt 5.12 in default Focal repositories, eg. missing pyside2-uic binary) Xenial & Bionic: curl, collada2gltf, fftw3, fontconfig, freetype, hdf5 (1.10.0-patch1 libopenmpi3 rebuilds), icu (66.1), icu-le-hb (1.0.3+git180724), jemalloc (5.2.1), json-c4, libdap, libidn2, libpng1.6, libpsl (0.21.0), librttopo (1.1.0), mpich (3.3.2), openmpi (4.0.3), openssl, potrace (1.16), pysimplesoap, python-{boto,httplib2,imaplib2} (compat with new openssl), tesseract, xerces-c (3.2.2), xz-utils Xenial only: icu60, icu-le-hb, infinipath-psm, libfabric, libharu, libkml, libsquish, nghttp2, openmpi2 (2.1.1), rdma-core, sqlite3 (3.22.0) Note: Many above deps for Xenial & Bionic are interconnected and have been copied here from other PPAs at this Launchpad site to make installation of the latest Blender on older series easier, without needing too many PPAs. ========================================================================== *** Install *** Blender here is built with the public FFmpeg 4 PPA (ppa:savoury1/ffmpeg4) and also the private FFmpeg PPA (ppa:savoury1/ffmpeg). Anyone who has made a donation can contact me to request access to the private PPA. After you have been given private PPA access do these steps for successful install: sudo add-apt-repository ppa:savoury1/ffmpeg4 sudo add-apt-repository ppa:savoury1/blender sudo apt-get update sudo apt-get upgrade && sudo apt-get dist-upgrade sudo apt-get install blender Notes for Blender >= 3.5.0 builds: Blender >= 3.5.0 here is built with and requires FFmpeg >= 6.0 (as supported by latest Blender versions). Thus, to install will require adding the following command to the top of the above: sudo add-apt-repository ppa:savoury1/ffmpeg6 Notes for pre-22.04 systems: Blender >= 3.5.0 requires GCC >= 11 for both building and installation. Only 22.04 has this GCC available in "official" repos, so pre-22.04 systems will need to add one of two GCC 11 PPAs for a successful installation. Either GCC 11 binaries or GCC 11 defaults can be added (the second will make GCC 11 the system default GCC version). So add either of the following commands to the top of the above for installation: sudo add-apt-repository ppa:savoury1/gcc-11 OR sudo add-apt-repository ppa:savoury1/gcc-defaults-11 Notes for pre-20.04 systems: Blender is demanding software and more recent versions require many newer system libraries than shipped with these older series. Packages here are built with various other PPAs at this Launchpad site (see "Build" heading below), and require various newer packages from certain PPAs to successfully install. This includes requiring GCC >= 9.3.0 (default GCC for 20.04) for building & installing Blender < 3.5 versions. Firstly the display PPA must be added (add this to the top of above list): sudo add-apt-repository ppa:savoury1/display Then either a PPA with GCC 9 binaries only, or a PPA setting GCC 9 as the system default can be added (similar to GCC 11 for Blender >= 3.5.0). Note that only a GCC 11 PPA is needed if also running Blender >= 3.5.0, whereas a GCC 9 PPA is needed if not running Blender >= 3.5.0 & running either of the Blender LTS versions here. So add one of the following commands to the top of the above list if only installing a Blender < 3.5 LTS version here: sudo add-apt-repository ppa:savoury1/gcc-9 OR sudo add-apt-repository ppa:savoury1/gcc-defaults-9 If running nVidia hardware see the display PPA for more information about nVidia drivers: https://launchpad.net/~savoury1/+archive/ubuntu/display Note for Xenial: CUDA 11.1+ requires Linux kernel >= 4.5 for bug-free functionality, just as a newer kernel is best for numerous post-Xenial release (2016 onwards) display drivers and graphics programs. See here: https://docs.nvidia.com/cuda/archive/11.1.0/cuda-installation-guide-linux/index.html See the same display PPA above re: kernel >= 4.5 for new display drivers. * Notes about Numpy: Due Blender 3.1+ needing Python 3.10+ (Xenial is 3.5, Bionic 3.6, and Focal 3.8) Blender here is built with Python 3.10 for all series. Numpy from python3-numpy (to /usr/lib/python3/dist-packages) will therefore not work with Python 3.10 used by Blender for 20.04 and earlier. A workaround is to install Numpy through pip then add a user site-packages path to sys.path in a startup script (following steps outlined below). All blender{-lts}-data packages here depend on python3.10{-distutils} to ensure a complete Python 3.10 install is available. The following commands using Python 3.10 will install pip first & then a compatible Python Numpy package (bootstrap.pypa.io is hosted by Python Packaging Authority or PyPA so it's a trusted site in terms of downloading get-pip.py to install pip): cd ~ curl https://bootstrap.pypa.io/get-pip.py | python3.10 python3.10 -m pip install --target=.local/lib/python3.10/site-packages \ numpy Then a Blender startup script can be added, using the path for user config files. Use "~/.config/blender/3.6/scripts/startup" for 3.6 and create a file such as usercustomize.py (change "USER" in the below to the logged in username on your system) with contents such as the following two lines: import sys sys.path.insert(0, '/home/USER/.local/lib/python3.10/site-packages') The result will be that "import numpy" works fine after loading Blender on older series (ie. Xenial or Bionic) making Numpy functionality available. * Notes about OptiX: A report from a user of this PPA states that OptiX is unavailable with these Blender builds, even with OptiX kernels being built on my own local system and included in the Blender data packages. Due me having no nVidia hardware at present it is not possible for me to confirm. Blender _cannot_ be built here on Launchpad with the OptiX headers due the combination of two reasons: highly restrictive nVidia licensing terms for OptiX headers (no redistribution of header source whatsoever allowed); and Launchpad (like Debian) disabling all network access during all builds for valid security reasons (meaning the headers cannot be directly accessed on nVidia's website during the build). Thus, if OptiX support is unavailable in these builds (even with pre-compiled ptx OptiX kernels) then you will either have to do your own Blender builds or use official Linux binaries. *** Updates *** Update (12 Apr 2023): Blender 3.5.0 now available! Built with FFmpeg 6.0 & GCC 11, read notes below under "Install" for instructions on installation. Update (10 Apr 2023): Blender builds from today require the private PPA to successfully install. Anyone who has donated can contact me about access. Update (7 Oct 2022): A glitch upgrading to Blender 3.3.1 for 20.04 Focal users (LP: #1992110) has been fixed today. Upgrading should now work fine! Update (12 Sep 2022): Latest Blender 3.3.0 & 3.4.0 Alpha have pre-compiled CUDA kernels built with CUDA Toolkit 11.7.1 (most recent release). Also, a glitch preventing glTF export with compression is now fixed via a complete redo of the relevant Draco patch to make it work on Debian/Ubuntu systems. Update (31 Jul 2022): Blender 3.2.1 & 3.3.0 Beta versions are now building successfully for Focal! Achieved by building Boost 1.74.0 with Python 3.9 rather than Python 3.8 (Focal default). To use these new Blender builds on Focal _requires_ this custom Boost 1.74.0 build here. So if any Focal user already has Boost 1.74.0 installed (from a local build or another PPA) it must be removed to successfully install and run these Blender builds here! Update (30 Apr 2022): Builds of all three Blender versions (main, LTS, and git) are now available for Jammy. Also an additional call for donations to support the work on this PPA as there have been very few donations in over a year and a half that have specifically been for these Blender builds. If more donations for Blender don't come then work on this PPA may well end. Update (15 Apr 2022): Due a complex issue between Focal Python 3.8, Boost 1.71, and changes in Python 3.10 (deprecated C API functions), Blender 3.1 and higher (which requires Python 3.10) is not building for Focal. Blender LTS 2.93.8 is building successfully for Focal with Python 3.9 (best Python for Blender LTS, as running LTS version with Python 3.10 has some issues). Update (4 Jan 2022): Blender LTS 2.93.x is now packaged as blender-lts and latest release Blender 3.0.x is now packaged as blender, with blender-git moving to newest 3.1.0 alpha source. This means blender-{lts,git} now both have data files installed in versioned paths (ie. /usr/share/blender/x.x). Update (29 Sep 2021): Blender git builds now include cycles-x branch which has been merged into master upstream. Also see notes below about OptiX. Update (26 Feb 2021): Blender 2.92.0+ supports building CUDA kernels with a combination of CUDA 10.2 and 11.3 for SM_30 through SM_8x architectures. Update (29 Sep 2020): Blender 2.91.0 Alpha and newer builds now with USD (Universal Scene Description) support plus pre-compiled CUDA 11.1 kernels. *** Build *** This PPA has build dependencies on: ppa:savoury1/build-tools ppa:savoury1/llvm-defaults-14 ppa:savoury1/boost-defaults1.74 ppa:savoury1/backports ppa:savoury1/python ppa:savoury1/graphics ppa:savoury1/multimedia ppa:savoury1/ffmpeg4 ppa:savoury1/display Additionally, for Blender >= 3.5.0 builds: ppa:savoury1/ffmpeg6 Additionally, for Xenial, Bionic & Focal: ppa:savoury1/gcc-defaults-11 (Blender >= 3.5.0 builds only) Additionally, for Xenial & Bionic: ppa:savoury1/gcc-defaults-9 ppa:savoury1/haskell-build ppa:savoury1/tex-2019 Note about i386: Blender is not a good match for i386 arch and 2.90+ fails to build on i386 even after carefully removing all amd64 only configs and deps. The Blender packages built here will thus always be amd64 only, as that is clearly the target architecture for all features. So bye bye i386! *** Credits *** - Creators of Blender: The Blender Foundation and Blender Institute https://www.blender.org/about/ - Package code for Blender: Debian Multimedia Maintainers https://tracker.debian.org/pkg/blender - Python 3.10 packages: Now provided by backports from ppa:savoury1/python with packaging hints and ideas from Felix Krull & the "deadsnakes" team (https://launchpad.net/~deadsnakes) whose packages were used previously. - Package code for Alembic and Open Image Denoise: Irie Shinsuke - Package code for Open Shading Language: Irie Shinsuke & Thomas Schiex [1] https://launchpad.net/~irie/+archive/ubuntu/blender-builddep [2] https://launchpad.net/~thomas-schiex/+archive/ubuntu/blenderGet:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B] Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease Hit:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease Hit:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease Hit:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease Hit:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease Get:8 https://ppa.launchpadcontent.net/savoury1/blender/ubuntu noble InRelease [17.8 kB] Get:9 https://ppa.launchpadcontent.net/savoury1/blender/ubuntu noble/main amd64 Packages [4044 B] Get:10 https://ppa.launchpadcontent.net/savoury1/blender/ubuntu noble/main Translation-en [1928 B] Fetched 23.8 kB in 1s (28.9 kB/s) Reading package lists... More info: https://launchpad.net/~savoury1/+archive/ubuntu/blender Adding repository. WARNING: apt does not have a stable CLI interface. Use with caution in scripts. Reading package lists... Building dependency tree... Reading state information... The following additional packages will be installed: blender-data gdal-data gdal-plugins gstreamer1.0-plugins-base i965-va-driver intel-media-va-driver libaacs0 libaec0 libarmadillo12 libarpack2t64 libass9 libasyncns0 libavc1394-0 libavcodec60 libavdevice60 libavfilter9 libavformat60 libavutil58 libbdplus0 libblas3 libblosc1 libbluray2 libboost-iostreams1.83.0 libboost-locale1.83.0 libboost-thread1.83.0 libbs2b0 libcaca0 libcdio-cdda2t64 libcdio-paranoia2t64 libcdio19t64 libcdparanoia0 libcfitsio10t64 libcharls2 libchromaprint1 libcjson1 libcodec2-1.2 libdav1d7 libdc1394-25 libdcmtk17t64 libdecor-0-0 libdecor-0-plugin-1-gtk libembree4-4 libexif12 libfftw3-single3 libflac12t64 libflite1 libfreexl1 libfyba0t64 libgdal34t64 libgdcm3.0t64 libgeos-c1t64 libgeos3.12.1t64 libgeotiff5 libgif7 libgme0 libgphoto2-6t64 libgphoto2-l10n libgphoto2-port12t64 libgsm1 libgstreamer-plugins-base1.0-0 libhdf4-0-alt libhdf5-103-1t64 libhdf5-hl-100t64 libhwloc-plugins libhwloc15 libhwy1t64 libiec61883-0 libigdgmm12 libimath-3-1-29t64 libjack-jackd2-0 libjemalloc2 libjxl0.7 libkmlbase1t64 libkmldom1t64 libkmlengine1t64 liblapack3 liblilv-0-0 liblog4cplus-2.0.5t64 libmbedcrypto7t64 libminizip1t64 libmp3lame0 libmpg123-0t64 libmysofa1 libnetcdf19t64 libodbcinst2 libogdi4.1 libopenal-data libopenal1 libopencolorio2.1t64 libopencv-core406t64 libopencv-imgcodecs406t64 libopencv-imgproc406t64 libopencv-videoio406t64 libopenexr-3-1-30 libopenimageio2.4t64 libopenmpt0t64 libopenvdb10.0t64 libopus0 liborc-0.4-0t64 libosdcpu3.5.0t64 libosdgpu3.5.0t64 libplacebo338 libpocketsphinx3 libpoppler134 libpostproc57 libpotrace0 libproj25 libpugixml1v5 libpulse0 libpystring0 libqhull-r8.0 librav1e0 libraw1394-11 librist4 librsvg2-2 librsvg2-common librttopo1 librubberband2 libsamplerate0 libsdl2-2.0-0 libserd-0-0 libshine3 libsndfile1 libsndio7.0 libsocket++1 libsord-0-0 libsoxr0 libspatialite8t64 libspeex1 libsphinxbase3t64 libspnav0 libsratom-0-0 libsrt1.5-gnutls libssh-gcrypt-4 libsuperlu6 libsvtav1enc1d1 libswresample4 libswscale7 libsz2 libtbb12 libtbbbind-2-5 libtbbmalloc2 libtheora0 libtwolame0 libudfread0 libunibreak5 liburiparser1 libva-drm2 libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvisual-0.4-0 libvorbisenc2 libvpl2 libvpx9 libx264-164 libx265-199 libxcb-shape0 libxerces-c3.2t64 libxnvctrl0 libxv1 libxvidcore4 libyaml-cpp0.8 libzimg2 libzix-0-0 libzvbi-common libzvbi0t64 mesa-va-drivers mesa-vdpau-drivers ocl-icd-libopencl1 pocketsphinx-en-us poppler-data proj-bin proj-data unixodbc-common va-driver-all vdpau-driver-all Suggested packages: gvfs i965-va-driver-shaders libcuda1 libnvcuvid1 libnvidia-encode1 libbluray-bdj libfftw3-bin libfftw3-dev geotiff-bin gdal-bin libgeotiff-epsg gphoto2 libvisual-0.4-plugins libhdf4-doc libhdf4-alt-dev hdf4-tools libhwloc-contrib-plugins jackd2 ogdi-bin libportaudio2 opus-tools pulseaudio libraw1394-doc librsvg2-bin serdi sndiod sordi speex spacenavd opencl-icd poppler-utils ghostscript fonts-japanese-mincho | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai fonts-arphic-uming fonts-nanum libvdpau-va-gl1 The following NEW packages will be installed: blender blender-data gdal-data gdal-plugins gstreamer1.0-plugins-base i965-va-driver intel-media-va-driver libaacs0 libaec0 libarmadillo12 libarpack2t64 libass9 libasyncns0 libavc1394-0 libavcodec60 libavdevice60 libavfilter9 libavformat60 libavutil58 libbdplus0 libblas3 libblosc1 libbluray2 libboost-iostreams1.83.0 libboost-locale1.83.0 libboost-thread1.83.0 libbs2b0 libcaca0 libcdio-cdda2t64 libcdio-paranoia2t64 libcdio19t64 libcdparanoia0 libcfitsio10t64 libcharls2 libchromaprint1 libcjson1 libcodec2-1.2 libdav1d7 libdc1394-25 libdcmtk17t64 libdecor-0-0 libdecor-0-plugin-1-gtk libembree4-4 libexif12 libfftw3-single3 libflac12t64 libflite1 libfreexl1 libfyba0t64 libgdal34t64 libgdcm3.0t64 libgeos-c1t64 libgeos3.12.1t64 libgeotiff5 libgif7 libgme0 libgphoto2-6t64 libgphoto2-l10n libgphoto2-port12t64 libgsm1 libgstreamer-plugins-base1.0-0 libhdf4-0-alt libhdf5-103-1t64 libhdf5-hl-100t64 libhwloc-plugins libhwloc15 libhwy1t64 libiec61883-0 libigdgmm12 libimath-3-1-29t64 libjack-jackd2-0 libjemalloc2 libjxl0.7 libkmlbase1t64 libkmldom1t64 libkmlengine1t64 liblapack3 liblilv-0-0 liblog4cplus-2.0.5t64 libmbedcrypto7t64 libminizip1t64 libmp3lame0 libmpg123-0t64 libmysofa1 libnetcdf19t64 libodbcinst2 libogdi4.1 libopenal-data libopenal1 libopencolorio2.1t64 libopencv-core406t64 libopencv-imgcodecs406t64 libopencv-imgproc406t64 libopencv-videoio406t64 libopenexr-3-1-30 libopenimageio2.4t64 libopenmpt0t64 libopenvdb10.0t64 libopus0 liborc-0.4-0t64 libosdcpu3.5.0t64 libosdgpu3.5.0t64 libplacebo338 libpocketsphinx3 libpoppler134 libpostproc57 libpotrace0 libproj25 libpugixml1v5 libpulse0 libpystring0 libqhull-r8.0 librav1e0 libraw1394-11 librist4 librsvg2-2 librsvg2-common librttopo1 librubberband2 libsamplerate0 libsdl2-2.0-0 libserd-0-0 libshine3 libsndfile1 libsndio7.0 libsocket++1 libsord-0-0 libsoxr0 libspatialite8t64 libspeex1 libsphinxbase3t64 libspnav0 libsratom-0-0 libsrt1.5-gnutls libssh-gcrypt-4 libsuperlu6 libsvtav1enc1d1 libswresample4 libswscale7 libsz2 libtbb12 libtbbbind-2-5 libtbbmalloc2 libtheora0 libtwolame0 libudfread0 libunibreak5 liburiparser1 libva-drm2 libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvisual-0.4-0 libvorbisenc2 libvpl2 libvpx9 libx264-164 libx265-199 libxcb-shape0 libxerces-c3.2t64 libxnvctrl0 libxv1 libxvidcore4 libyaml-cpp0.8 libzimg2 libzix-0-0 libzvbi-common libzvbi0t64 mesa-va-drivers mesa-vdpau-drivers ocl-icd-libopencl1 pocketsphinx-en-us poppler-data proj-bin proj-data unixodbc-common va-driver-all vdpau-driver-all 0 upgraded, 179 newly installed, 0 to remove and 86 not upgraded. Need to get 228 MB of archives. After this operation, 708 MB of additional disk space will be used. Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B] Get:2 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 poppler-data all 0.4.12-1 [2060 kB] Get:3 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 blender-data all 4.0.2+dfsg-1ubuntu8 [35.9 MB] Get:4 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libva2 amd64 2.20.0-2build1 [66.2 kB] Get:5 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libva-drm2 amd64 2.20.0-2build1 [7124 B] Get:6 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libva-x11-2 amd64 2.20.0-2build1 [12.0 kB] Get:7 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libvdpau1 amd64 1.5-2build1 [27.8 kB] Get:8 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libvpl2 amd64 2023.3.0-1build1 [99.8 kB] Get:9 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 ocl-icd-libopencl1 amd64 2.3.2-1build1 [38.5 kB] Get:10 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavutil58 amd64 7:6.1.1-3ubuntu5 [401 kB] Get:11 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcodec2-1.2 amd64 1.2.0-2build1 [8998 kB] Get:12 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libdav1d7 amd64 1.4.1-1build1 [604 kB] Get:13 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgsm1 amd64 1.0.22-1build1 [27.8 kB] Get:14 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhwy1t64 amd64 1.0.7-8.1build1 [584 kB] Get:15 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libjxl0.7 amd64 0.7.0-10.2ubuntu6 [999 kB] Get:16 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libmp3lame0 amd64 3.100-6build1 [142 kB] Get:17 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libopus0 amd64 1.4-1build1 [208 kB] Get:18 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librav1e0 amd64 0.7.1-2 [1022 kB] Get:19 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 librsvg2-2 amd64 2.58.0+dfsg-1build1 [2135 kB] Get:20 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libshine3 amd64 3.1.1-2build1 [23.2 kB] Get:21 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libspeex1 amd64 1.2.1-2ubuntu2.24.04.1 [59.6 kB] Get:22 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsvtav1enc1d1 amd64 1.7.0+dfsg-2build1 [2425 kB] Get:23 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsoxr0 amd64 0.1.3-4build3 [80.0 kB] Get:24 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libswresample4 amd64 7:6.1.1-3ubuntu5 [63.8 kB] Get:25 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libtheora0 amd64 1.1.1+dfsg.1-16.1build3 [211 kB] Get:26 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libtwolame0 amd64 0.4.0-2build3 [52.3 kB] Get:27 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libvorbisenc2 amd64 1.3.7-1build3 [80.8 kB] Get:28 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libvpx9 amd64 1.14.0-1ubuntu2.1 [1143 kB] Get:29 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libx264-164 amd64 2:0.164.3108+git31e19f9-1 [604 kB] Get:30 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libx265-199 amd64 3.5-2build1 [1226 kB] Get:31 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libxvidcore4 amd64 2:1.3.7-1build1 [219 kB] Get:32 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzvbi-common all 0.2.42-2 [42.4 kB] Get:33 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzvbi0t64 amd64 0.2.42-2 [261 kB] Get:34 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavcodec60 amd64 7:6.1.1-3ubuntu5 [5851 kB] Get:35 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libraw1394-11 amd64 2.1.2-2build3 [26.2 kB] Get:36 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libavc1394-0 amd64 0.5.4-5build3 [15.4 kB] Get:37 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libunibreak5 amd64 5.1-2build1 [25.0 kB] Get:38 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libass9 amd64 1:0.17.1-2build1 [104 kB] Get:39 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libudfread0 amd64 1.1.2-1build1 [19.0 kB] Get:40 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libbluray2 amd64 1:1.3.4-1build1 [159 kB] Get:41 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libchromaprint1 amd64 1.5.1-5 [30.5 kB] Get:42 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgme0 amd64 0.6.3-7build1 [134 kB] Get:43 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpg123-0t64 amd64 1.32.5-1ubuntu1.1 [169 kB] Get:44 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenmpt0t64 amd64 0.7.3-1.1build3 [647 kB] Get:45 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcjson1 amd64 1.7.17-1 [24.8 kB] Get:46 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libmbedcrypto7t64 amd64 2.28.8-1 [209 kB] Get:47 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librist4 amd64 0.2.10+dfsg-2 [74.9 kB] Get:48 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsrt1.5-gnutls amd64 1.5.3-1build2 [316 kB] Get:49 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libssh-gcrypt-4 amd64 0.10.6-2build2 [223 kB] Get:50 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavformat60 amd64 7:6.1.1-3ubuntu5 [1153 kB] Get:51 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libbs2b0 amd64 3.1.0+dfsg-7build1 [10.6 kB] Get:52 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libflite1 amd64 2.2-6build3 [13.6 MB] Get:53 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libserd-0-0 amd64 0.32.2-1 [43.6 kB] Get:54 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzix-0-0 amd64 0.4.2-2build1 [23.6 kB] Get:55 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsord-0-0 amd64 0.16.16-2build1 [15.8 kB] Get:56 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsratom-0-0 amd64 0.6.16-1build1 [17.3 kB] Get:57 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 liblilv-0-0 amd64 0.24.22-1build1 [41.0 kB] Get:58 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libmysofa1 amd64 1.3.2+dfsg-2ubuntu2 [1158 kB] Get:59 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libplacebo338 amd64 6.338.2-2build1 [2654 kB] Get:60 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libblas3 amd64 3.12.0-3build1.1 [238 kB] Get:61 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 liblapack3 amd64 3.12.0-3build1.1 [2646 kB] Get:62 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libasyncns0 amd64 0.8-6build4 [11.3 kB] Get:63 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libflac12t64 amd64 1.4.3+ds-2.1ubuntu2 [197 kB] Get:64 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libsndfile1 amd64 1.2.2-1ubuntu5 [208 kB] Get:65 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libpulse0 amd64 1:16.1+dfsg1-2ubuntu10.1 [292 kB] Get:66 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsphinxbase3t64 amd64 0.8+5prealpha+1-17build2 [126 kB] Get:67 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpocketsphinx3 amd64 0.8.0+real5prealpha+1-15ubuntu5 [133 kB] Get:68 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpostproc57 amd64 7:6.1.1-3ubuntu5 [49.9 kB] Get:69 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libsamplerate0 amd64 0.2.2-4build1 [1344 kB] Get:70 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librubberband2 amd64 3.3.0+dfsg-2build1 [130 kB] Get:71 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libswscale7 amd64 7:6.1.1-3ubuntu5 [193 kB] Get:72 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libvidstab1.1 amd64 1.1.0-2build1 [38.5 kB] Get:73 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libzimg2 amd64 3.0.5+ds1-1build1 [254 kB] Get:74 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavfilter9 amd64 7:6.1.1-3ubuntu5 [4235 kB] Get:75 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcaca0 amd64 0.99.beta20-4build2 [208 kB] Get:76 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libcdio19t64 amd64 2.1.0-4.1ubuntu1.2 [62.4 kB] Get:77 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcdio-cdda2t64 amd64 10.2+2.0.1-1.1build2 [16.5 kB] Get:78 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcdio-paranoia2t64 amd64 10.2+2.0.1-1.1build2 [16.6 kB] Get:79 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libdc1394-25 amd64 2.2.6-4build1 [90.1 kB] Get:80 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libiec61883-0 amd64 1.2.0-6build1 [24.5 kB] Get:81 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libjack-jackd2-0 amd64 1.9.21~dfsg-3ubuntu3 [289 kB] Get:82 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenal-data all 1:1.23.1-4build1 [161 kB] Get:83 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsndio7.0 amd64 1.9.0-0.3build3 [29.6 kB] Get:84 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenal1 amd64 1:1.23.1-4build1 [540 kB] Get:85 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-0 amd64 0.2.2-1build2 [16.5 kB] Get:86 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libsdl2-2.0-0 amd64 2.30.0+dfsg-1build3 [685 kB] Get:87 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libxcb-shape0 amd64 1.15-1ubuntu2 [6100 B] Get:88 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libxv1 amd64 2:1.0.11-1.1build1 [10.7 kB] Get:89 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libavdevice60 amd64 7:6.1.1-3ubuntu5 [82.3 kB] Get:90 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-thread1.83.0 amd64 1.83.0-2.1ubuntu3.1 [276 kB] Get:91 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-locale1.83.0 amd64 1.83.0-2.1ubuntu3.1 [413 kB] Get:92 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libtbbmalloc2 amd64 2021.11.0-2ubuntu2 [60.5 kB] Get:93 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhwloc15 amd64 2.10.0-1build1 [172 kB] Get:94 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libtbbbind-2-5 amd64 2021.11.0-2ubuntu2 [16.4 kB] Get:95 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libtbb12 amd64 2021.11.0-2ubuntu2 [106 kB] Get:96 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libembree4-4 amd64 4.3.0+dfsg-2 [9265 kB] Get:97 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libfftw3-single3 amd64 3.3.10-1ubuntu3 [868 kB] Get:98 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libimath-3-1-29t64 amd64 3.1.9-3.1ubuntu2 [72.2 kB] Get:99 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libjemalloc2 amd64 5.3.0-2build1 [256 kB] Get:100 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpystring0 amd64 1.1.4-1build1 [28.4 kB] Get:101 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libyaml-cpp0.8 amd64 0.8.0+dfsg-6build1 [115 kB] Get:102 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencolorio2.1t64 amd64 2.1.3+dfsg-1.1build3 [1470 kB] Get:103 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenexr-3-1-30 amd64 3.1.5-5.1build3 [1004 kB] Get:104 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libdcmtk17t64 amd64 3.6.7-9.1build4 [5329 kB] Get:105 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgif7 amd64 5.2.2-1ubuntu1 [35.2 kB] Get:106 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-core406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [1202 kB] Get:107 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-imgproc406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [1460 kB] Get:108 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libexif12 amd64 0.6.24-1build2 [87.9 kB] Get:109 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgphoto2-port12t64 amd64 2.5.31-2.1build2 [58.6 kB] Get:110 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgphoto2-6t64 amd64 2.5.31-2.1build2 [735 kB] Get:111 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 liborc-0.4-0t64 amd64 1:0.4.38-1ubuntu0.1 [207 kB] Get:112 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer-plugins-base1.0-0 amd64 1.24.2-1ubuntu0.2 [862 kB] Get:113 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 gdal-data all 3.8.4+dfsg-3ubuntu3 [261 kB] Get:114 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 gdal-plugins amd64 3.8.4+dfsg-3ubuntu3 [24.8 kB] Get:115 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libaec0 amd64 1.1.2-1build1 [22.9 kB] Get:116 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libarpack2t64 amd64 3.9.1-1.1build2 [106 kB] Get:117 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsuperlu6 amd64 6.0.1+dfsg1-1build1 [180 kB] Get:118 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libarmadillo12 amd64 1:12.6.7+dfsg-1build2 [106 kB] Get:119 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libblosc1 amd64 1.21.5+ds-1build1 [36.2 kB] Get:120 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcfitsio10t64 amd64 4.3.1-1.1build2 [528 kB] Get:121 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 libminizip1t64 amd64 1:1.3.dfsg-3.1ubuntu2.1 [22.2 kB] Get:122 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libfreexl1 amd64 2.0.0-1build2 [41.7 kB] Get:123 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libfyba0t64 amd64 4.1.1-11build1 [119 kB] Get:124 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgeos3.12.1t64 amd64 3.12.1-3build1 [849 kB] Get:125 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgeos-c1t64 amd64 3.12.1-3build1 [94.5 kB] Get:126 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 proj-data all 9.4.0-1build2 [7885 kB] Get:127 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libproj25 amd64 9.4.0-1build2 [1396 kB] Get:128 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgeotiff5 amd64 1.7.1-5build1 [62.9 kB] Get:129 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhdf4-0-alt amd64 4.2.16-4build1 [282 kB] Get:130 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsz2 amd64 1.1.2-1build1 [5476 B] Get:131 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhdf5-103-1t64 amd64 1.10.10+repack-3.1ubuntu4 [1270 kB] Get:132 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 liburiparser1 amd64 0.9.7+dfsg-2build1 [35.8 kB] Get:133 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libkmlbase1t64 amd64 1.3.0-12build1 [49.9 kB] Get:134 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libkmldom1t64 amd64 1.3.0-12build1 [156 kB] Get:135 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libkmlengine1t64 amd64 1.3.0-12build1 [71.4 kB] Get:136 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhdf5-hl-100t64 amd64 1.10.10+repack-3.1ubuntu4 [56.0 kB] Get:137 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libnetcdf19t64 amd64 1:4.9.2-5ubuntu4 [473 kB] Get:138 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 unixodbc-common all 2.3.12-1ubuntu0.24.04.1 [8806 B] Get:139 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libodbcinst2 amd64 2.3.12-1ubuntu0.24.04.1 [30.7 kB] Get:140 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libogdi4.1 amd64 4.1.1+ds-3build1 [226 kB] Get:141 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libpoppler134 amd64 24.02.0-1ubuntu9.2 [1114 kB] Get:142 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libqhull-r8.0 amd64 2020.2-6build1 [193 kB] Get:143 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 librttopo1 amd64 1.1.0-3build2 [191 kB] Get:144 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libspatialite8t64 amd64 5.1.0-3build1 [1919 kB] Get:145 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libxerces-c3.2t64 amd64 3.2.4+debian-1.2ubuntu2 [919 kB] Get:146 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgdal34t64 amd64 3.8.4+dfsg-3ubuntu3 [8346 kB] Get:147 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libcharls2 amd64 2.4.2-2build2 [90.4 kB] Get:148 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libsocket++1 amd64 1.12.13+git20131030.5d039ba-1build1 [83.1 kB] Get:149 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libgdcm3.0t64 amd64 3.0.22-2.1ubuntu1 [2160 kB] Get:150 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-imgcodecs406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [128 kB] Get:151 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopencv-videoio406t64 amd64 4.6.0+dfsg-13.1ubuntu1 [199 kB] Get:152 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-iostreams1.83.0 amd64 1.83.0-2.1ubuntu3.1 [259 kB] Get:153 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 liblog4cplus-2.0.5t64 amd64 2.0.8-1.1ubuntu3 [188 kB] Get:154 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenvdb10.0t64 amd64 10.0.1-2.1build5 [4138 kB] Get:155 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libopenimageio2.4t64 amd64 2.4.17.0+dfsg-1.1build4 [2751 kB] Get:156 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libosdcpu3.5.0t64 amd64 3.5.0-2.1build1 [373 kB] Get:157 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libosdgpu3.5.0t64 amd64 3.5.0-2.1build1 [149 kB] Get:158 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpotrace0 amd64 1.16-2build1 [17.7 kB] Get:159 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libpugixml1v5 amd64 1.14-0.1build1 [91.9 kB] Get:160 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libspnav0 amd64 1.1-2 [15.0 kB] Get:161 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 blender amd64 4.0.2+dfsg-1ubuntu8 [25.6 MB] Get:162 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libcdparanoia0 amd64 3.10.2+debian-14build3 [48.5 kB] Get:163 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libvisual-0.4-0 amd64 0.4.2-2build1 [115 kB] Get:164 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-plugins-base amd64 1.24.2-1ubuntu0.2 [721 kB] Get:165 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libigdgmm12 amd64 22.3.17+ds1-1 [145 kB] Get:166 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 intel-media-va-driver amd64 24.1.0+dfsg1-1 [4022 kB] Get:167 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libaacs0 amd64 0.11.1-2build1 [62.9 kB] Get:168 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libbdplus0 amd64 0.2.0-3build1 [52.2 kB] Get:169 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-plugin-1-gtk amd64 0.2.2-1build2 [22.2 kB] Get:170 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libgphoto2-l10n all 2.5.31-2.1build2 [15.0 kB] Get:171 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 librsvg2-common amd64 2.58.0+dfsg-1build1 [11.8 kB] Get:172 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libxnvctrl0 amd64 510.47.03-0ubuntu4 [12.6 kB] Get:173 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 mesa-va-drivers amd64 24.0.9-0ubuntu0.3 [4246 kB] Get:174 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 mesa-vdpau-drivers amd64 24.0.9-0ubuntu0.3 [3904 kB] Get:175 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 i965-va-driver amd64 2.4.1+dfsg1-1build2 [332 kB] Get:176 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 va-driver-all amd64 2.20.0-2build1 [4844 B] Get:177 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 vdpau-driver-all amd64 1.5-2build1 [4414 B] Get:178 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 libhwloc-plugins amd64 2.10.0-1build1 [15.7 kB] Get:179 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 pocketsphinx-en-us all 0.8.0+real5prealpha+1-15ubuntu5 [27.4 MB] Get:180 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 proj-bin amd64 9.4.0-1build2 [164 kB] Fetched 228 MB in 10s (24.0 MB/s) Selecting previously unselected package poppler-data. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 220388 files and directories currently installed.) Preparing to unpack .../000-poppler-data_0.4.12-1_all.deb ... Unpacking poppler-data (0.4.12-1) ... Selecting previously unselected package blender-data. Preparing to unpack .../001-blender-data_4.0.2+dfsg-1ubuntu8_all.deb ... Unpacking blender-data (4.0.2+dfsg-1ubuntu8) ... Selecting previously unselected package libva2:amd64. Preparing to unpack .../002-libva2_2.20.0-2build1_amd64.deb ... Unpacking libva2:amd64 (2.20.0-2build1) ... Selecting previously unselected package libva-drm2:amd64. Preparing to unpack .../003-libva-drm2_2.20.0-2build1_amd64.deb ... Unpacking libva-drm2:amd64 (2.20.0-2build1) ... Selecting previously unselected package libva-x11-2:amd64. Preparing to unpack .../004-libva-x11-2_2.20.0-2build1_amd64.deb ... Unpacking libva-x11-2:amd64 (2.20.0-2build1) ... Selecting previously unselected package libvdpau1:amd64. Preparing to unpack .../005-libvdpau1_1.5-2build1_amd64.deb ... Unpacking libvdpau1:amd64 (1.5-2build1) ... Selecting previously unselected package libvpl2. Preparing to unpack .../006-libvpl2_2023.3.0-1build1_amd64.deb ... Unpacking libvpl2 (2023.3.0-1build1) ... Selecting previously unselected package ocl-icd-libopencl1:amd64. Preparing to unpack .../007-ocl-icd-libopencl1_2.3.2-1build1_amd64.deb ... Unpacking ocl-icd-libopencl1:amd64 (2.3.2-1build1) ... Selecting previously unselected package libavutil58:amd64. Preparing to unpack .../008-libavutil58_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libavutil58:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libcodec2-1.2:amd64. Preparing to unpack .../009-libcodec2-1.2_1.2.0-2build1_amd64.deb ... Unpacking libcodec2-1.2:amd64 (1.2.0-2build1) ... Selecting previously unselected package libdav1d7:amd64. Preparing to unpack .../010-libdav1d7_1.4.1-1build1_amd64.deb ... Unpacking libdav1d7:amd64 (1.4.1-1build1) ... Selecting previously unselected package libgsm1:amd64. Preparing to unpack .../011-libgsm1_1.0.22-1build1_amd64.deb ... Unpacking libgsm1:amd64 (1.0.22-1build1) ... Selecting previously unselected package libhwy1t64:amd64. Preparing to unpack .../012-libhwy1t64_1.0.7-8.1build1_amd64.deb ... Unpacking libhwy1t64:amd64 (1.0.7-8.1build1) ... Selecting previously unselected package libjxl0.7:amd64. Preparing to unpack .../013-libjxl0.7_0.7.0-10.2ubuntu6_amd64.deb ... Unpacking libjxl0.7:amd64 (0.7.0-10.2ubuntu6) ... Selecting previously unselected package libmp3lame0:amd64. Preparing to unpack .../014-libmp3lame0_3.100-6build1_amd64.deb ... Unpacking libmp3lame0:amd64 (3.100-6build1) ... Selecting previously unselected package libopus0:amd64. Preparing to unpack .../015-libopus0_1.4-1build1_amd64.deb ... Unpacking libopus0:amd64 (1.4-1build1) ... Selecting previously unselected package librav1e0:amd64. Preparing to unpack .../016-librav1e0_0.7.1-2_amd64.deb ... Unpacking librav1e0:amd64 (0.7.1-2) ... Selecting previously unselected package librsvg2-2:amd64. Preparing to unpack .../017-librsvg2-2_2.58.0+dfsg-1build1_amd64.deb ... Unpacking librsvg2-2:amd64 (2.58.0+dfsg-1build1) ... Selecting previously unselected package libshine3:amd64. Preparing to unpack .../018-libshine3_3.1.1-2build1_amd64.deb ... Unpacking libshine3:amd64 (3.1.1-2build1) ... Selecting previously unselected package libspeex1:amd64. Preparing to unpack .../019-libspeex1_1.2.1-2ubuntu2.24.04.1_amd64.deb ... Unpacking libspeex1:amd64 (1.2.1-2ubuntu2.24.04.1) ... Selecting previously unselected package libsvtav1enc1d1:amd64. Preparing to unpack .../020-libsvtav1enc1d1_1.7.0+dfsg-2build1_amd64.deb ... Unpacking libsvtav1enc1d1:amd64 (1.7.0+dfsg-2build1) ... Selecting previously unselected package libsoxr0:amd64. Preparing to unpack .../021-libsoxr0_0.1.3-4build3_amd64.deb ... Unpacking libsoxr0:amd64 (0.1.3-4build3) ... Selecting previously unselected package libswresample4:amd64. Preparing to unpack .../022-libswresample4_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libswresample4:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libtheora0:amd64. Preparing to unpack .../023-libtheora0_1.1.1+dfsg.1-16.1build3_amd64.deb ... Unpacking libtheora0:amd64 (1.1.1+dfsg.1-16.1build3) ... Selecting previously unselected package libtwolame0:amd64. Preparing to unpack .../024-libtwolame0_0.4.0-2build3_amd64.deb ... Unpacking libtwolame0:amd64 (0.4.0-2build3) ... Selecting previously unselected package libvorbisenc2:amd64. Preparing to unpack .../025-libvorbisenc2_1.3.7-1build3_amd64.deb ... Unpacking libvorbisenc2:amd64 (1.3.7-1build3) ... Selecting previously unselected package libvpx9:amd64. Preparing to unpack .../026-libvpx9_1.14.0-1ubuntu2.1_amd64.deb ... Unpacking libvpx9:amd64 (1.14.0-1ubuntu2.1) ... Selecting previously unselected package libx264-164:amd64. Preparing to unpack .../027-libx264-164_2%3a0.164.3108+git31e19f9-1_amd64.deb ... Unpacking libx264-164:amd64 (2:0.164.3108+git31e19f9-1) ... Selecting previously unselected package libx265-199:amd64. Preparing to unpack .../028-libx265-199_3.5-2build1_amd64.deb ... Unpacking libx265-199:amd64 (3.5-2build1) ... Selecting previously unselected package libxvidcore4:amd64. Preparing to unpack .../029-libxvidcore4_2%3a1.3.7-1build1_amd64.deb ... Unpacking libxvidcore4:amd64 (2:1.3.7-1build1) ... Selecting previously unselected package libzvbi-common. Preparing to unpack .../030-libzvbi-common_0.2.42-2_all.deb ... Unpacking libzvbi-common (0.2.42-2) ... Selecting previously unselected package libzvbi0t64:amd64. Preparing to unpack .../031-libzvbi0t64_0.2.42-2_amd64.deb ... Unpacking libzvbi0t64:amd64 (0.2.42-2) ... Selecting previously unselected package libavcodec60:amd64. Preparing to unpack .../032-libavcodec60_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libavcodec60:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libraw1394-11:amd64. Preparing to unpack .../033-libraw1394-11_2.1.2-2build3_amd64.deb ... Unpacking libraw1394-11:amd64 (2.1.2-2build3) ... Selecting previously unselected package libavc1394-0:amd64. Preparing to unpack .../034-libavc1394-0_0.5.4-5build3_amd64.deb ... Unpacking libavc1394-0:amd64 (0.5.4-5build3) ... Selecting previously unselected package libunibreak5:amd64. Preparing to unpack .../035-libunibreak5_5.1-2build1_amd64.deb ... Unpacking libunibreak5:amd64 (5.1-2build1) ... Selecting previously unselected package libass9:amd64. Preparing to unpack .../036-libass9_1%3a0.17.1-2build1_amd64.deb ... Unpacking libass9:amd64 (1:0.17.1-2build1) ... Selecting previously unselected package libudfread0:amd64. Preparing to unpack .../037-libudfread0_1.1.2-1build1_amd64.deb ... Unpacking libudfread0:amd64 (1.1.2-1build1) ... Selecting previously unselected package libbluray2:amd64. Preparing to unpack .../038-libbluray2_1%3a1.3.4-1build1_amd64.deb ... Unpacking libbluray2:amd64 (1:1.3.4-1build1) ... Selecting previously unselected package libchromaprint1:amd64. Preparing to unpack .../039-libchromaprint1_1.5.1-5_amd64.deb ... Unpacking libchromaprint1:amd64 (1.5.1-5) ... Selecting previously unselected package libgme0:amd64. Preparing to unpack .../040-libgme0_0.6.3-7build1_amd64.deb ... Unpacking libgme0:amd64 (0.6.3-7build1) ... Selecting previously unselected package libmpg123-0t64:amd64. Preparing to unpack .../041-libmpg123-0t64_1.32.5-1ubuntu1.1_amd64.deb ... Unpacking libmpg123-0t64:amd64 (1.32.5-1ubuntu1.1) ... Selecting previously unselected package libopenmpt0t64:amd64. Preparing to unpack .../042-libopenmpt0t64_0.7.3-1.1build3_amd64.deb ... Unpacking libopenmpt0t64:amd64 (0.7.3-1.1build3) ... Selecting previously unselected package libcjson1:amd64. Preparing to unpack .../043-libcjson1_1.7.17-1_amd64.deb ... Unpacking libcjson1:amd64 (1.7.17-1) ... Selecting previously unselected package libmbedcrypto7t64:amd64. Preparing to unpack .../044-libmbedcrypto7t64_2.28.8-1_amd64.deb ... Unpacking libmbedcrypto7t64:amd64 (2.28.8-1) ... Selecting previously unselected package librist4:amd64. Preparing to unpack .../045-librist4_0.2.10+dfsg-2_amd64.deb ... Unpacking librist4:amd64 (0.2.10+dfsg-2) ... Selecting previously unselected package libsrt1.5-gnutls:amd64. Preparing to unpack .../046-libsrt1.5-gnutls_1.5.3-1build2_amd64.deb ... Unpacking libsrt1.5-gnutls:amd64 (1.5.3-1build2) ... Selecting previously unselected package libssh-gcrypt-4:amd64. Preparing to unpack .../047-libssh-gcrypt-4_0.10.6-2build2_amd64.deb ... Unpacking libssh-gcrypt-4:amd64 (0.10.6-2build2) ... Selecting previously unselected package libavformat60:amd64. Preparing to unpack .../048-libavformat60_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libavformat60:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libbs2b0:amd64. Preparing to unpack .../049-libbs2b0_3.1.0+dfsg-7build1_amd64.deb ... Unpacking libbs2b0:amd64 (3.1.0+dfsg-7build1) ... Selecting previously unselected package libflite1:amd64. Preparing to unpack .../050-libflite1_2.2-6build3_amd64.deb ... Unpacking libflite1:amd64 (2.2-6build3) ... Selecting previously unselected package libserd-0-0:amd64. Preparing to unpack .../051-libserd-0-0_0.32.2-1_amd64.deb ... Unpacking libserd-0-0:amd64 (0.32.2-1) ... Selecting previously unselected package libzix-0-0:amd64. Preparing to unpack .../052-libzix-0-0_0.4.2-2build1_amd64.deb ... Unpacking libzix-0-0:amd64 (0.4.2-2build1) ... Selecting previously unselected package libsord-0-0:amd64. Preparing to unpack .../053-libsord-0-0_0.16.16-2build1_amd64.deb ... Unpacking libsord-0-0:amd64 (0.16.16-2build1) ... Selecting previously unselected package libsratom-0-0:amd64. Preparing to unpack .../054-libsratom-0-0_0.6.16-1build1_amd64.deb ... Unpacking libsratom-0-0:amd64 (0.6.16-1build1) ... Selecting previously unselected package liblilv-0-0:amd64. Preparing to unpack .../055-liblilv-0-0_0.24.22-1build1_amd64.deb ... Unpacking liblilv-0-0:amd64 (0.24.22-1build1) ... Selecting previously unselected package libmysofa1:amd64. Preparing to unpack .../056-libmysofa1_1.3.2+dfsg-2ubuntu2_amd64.deb ... Unpacking libmysofa1:amd64 (1.3.2+dfsg-2ubuntu2) ... Selecting previously unselected package libplacebo338:amd64. Preparing to unpack .../057-libplacebo338_6.338.2-2build1_amd64.deb ... Unpacking libplacebo338:amd64 (6.338.2-2build1) ... Selecting previously unselected package libblas3:amd64. Preparing to unpack .../058-libblas3_3.12.0-3build1.1_amd64.deb ... Unpacking libblas3:amd64 (3.12.0-3build1.1) ... Selecting previously unselected package liblapack3:amd64. Preparing to unpack .../059-liblapack3_3.12.0-3build1.1_amd64.deb ... Unpacking liblapack3:amd64 (3.12.0-3build1.1) ... Selecting previously unselected package libasyncns0:amd64. Preparing to unpack .../060-libasyncns0_0.8-6build4_amd64.deb ... Unpacking libasyncns0:amd64 (0.8-6build4) ... Selecting previously unselected package libflac12t64:amd64. Preparing to unpack .../061-libflac12t64_1.4.3+ds-2.1ubuntu2_amd64.deb ... Unpacking libflac12t64:amd64 (1.4.3+ds-2.1ubuntu2) ... Selecting previously unselected package libsndfile1:amd64. Preparing to unpack .../062-libsndfile1_1.2.2-1ubuntu5_amd64.deb ... Unpacking libsndfile1:amd64 (1.2.2-1ubuntu5) ... Selecting previously unselected package libpulse0:amd64. Preparing to unpack .../063-libpulse0_1%3a16.1+dfsg1-2ubuntu10.1_amd64.deb ... Unpacking libpulse0:amd64 (1:16.1+dfsg1-2ubuntu10.1) ... Selecting previously unselected package libsphinxbase3t64:amd64. Preparing to unpack .../064-libsphinxbase3t64_0.8+5prealpha+1-17build2_amd64.deb ... Unpacking libsphinxbase3t64:amd64 (0.8+5prealpha+1-17build2) ... Selecting previously unselected package libpocketsphinx3:amd64. Preparing to unpack .../065-libpocketsphinx3_0.8.0+real5prealpha+1-15ubuntu5_amd64.deb ... Unpacking libpocketsphinx3:amd64 (0.8.0+real5prealpha+1-15ubuntu5) ... Selecting previously unselected package libpostproc57:amd64. Preparing to unpack .../066-libpostproc57_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libpostproc57:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libsamplerate0:amd64. Preparing to unpack .../067-libsamplerate0_0.2.2-4build1_amd64.deb ... Unpacking libsamplerate0:amd64 (0.2.2-4build1) ... Selecting previously unselected package librubberband2:amd64. Preparing to unpack .../068-librubberband2_3.3.0+dfsg-2build1_amd64.deb ... Unpacking librubberband2:amd64 (3.3.0+dfsg-2build1) ... Selecting previously unselected package libswscale7:amd64. Preparing to unpack .../069-libswscale7_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libswscale7:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libvidstab1.1:amd64. Preparing to unpack .../070-libvidstab1.1_1.1.0-2build1_amd64.deb ... Unpacking libvidstab1.1:amd64 (1.1.0-2build1) ... Selecting previously unselected package libzimg2:amd64. Preparing to unpack .../071-libzimg2_3.0.5+ds1-1build1_amd64.deb ... Unpacking libzimg2:amd64 (3.0.5+ds1-1build1) ... Selecting previously unselected package libavfilter9:amd64. Preparing to unpack .../072-libavfilter9_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libavfilter9:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libcaca0:amd64. Preparing to unpack .../073-libcaca0_0.99.beta20-4build2_amd64.deb ... Unpacking libcaca0:amd64 (0.99.beta20-4build2) ... Selecting previously unselected package libcdio19t64:amd64. Preparing to unpack .../074-libcdio19t64_2.1.0-4.1ubuntu1.2_amd64.deb ... Unpacking libcdio19t64:amd64 (2.1.0-4.1ubuntu1.2) ... Selecting previously unselected package libcdio-cdda2t64:amd64. Preparing to unpack .../075-libcdio-cdda2t64_10.2+2.0.1-1.1build2_amd64.deb ... Unpacking libcdio-cdda2t64:amd64 (10.2+2.0.1-1.1build2) ... Selecting previously unselected package libcdio-paranoia2t64:amd64. Preparing to unpack .../076-libcdio-paranoia2t64_10.2+2.0.1-1.1build2_amd64.deb ... Unpacking libcdio-paranoia2t64:amd64 (10.2+2.0.1-1.1build2) ... Selecting previously unselected package libdc1394-25:amd64. Preparing to unpack .../077-libdc1394-25_2.2.6-4build1_amd64.deb ... Unpacking libdc1394-25:amd64 (2.2.6-4build1) ... Selecting previously unselected package libiec61883-0:amd64. Preparing to unpack .../078-libiec61883-0_1.2.0-6build1_amd64.deb ... Unpacking libiec61883-0:amd64 (1.2.0-6build1) ... Selecting previously unselected package libjack-jackd2-0:amd64. Preparing to unpack .../079-libjack-jackd2-0_1.9.21~dfsg-3ubuntu3_amd64.deb ... Unpacking libjack-jackd2-0:amd64 (1.9.21~dfsg-3ubuntu3) ... Selecting previously unselected package libopenal-data. Preparing to unpack .../080-libopenal-data_1%3a1.23.1-4build1_all.deb ... Unpacking libopenal-data (1:1.23.1-4build1) ... Selecting previously unselected package libsndio7.0:amd64. Preparing to unpack .../081-libsndio7.0_1.9.0-0.3build3_amd64.deb ... Unpacking libsndio7.0:amd64 (1.9.0-0.3build3) ... Selecting previously unselected package libopenal1:amd64. Preparing to unpack .../082-libopenal1_1%3a1.23.1-4build1_amd64.deb ... Unpacking libopenal1:amd64 (1:1.23.1-4build1) ... Selecting previously unselected package libdecor-0-0:amd64. Preparing to unpack .../083-libdecor-0-0_0.2.2-1build2_amd64.deb ... Unpacking libdecor-0-0:amd64 (0.2.2-1build2) ... Selecting previously unselected package libsdl2-2.0-0:amd64. Preparing to unpack .../084-libsdl2-2.0-0_2.30.0+dfsg-1build3_amd64.deb ... Unpacking libsdl2-2.0-0:amd64 (2.30.0+dfsg-1build3) ... Selecting previously unselected package libxcb-shape0:amd64. Preparing to unpack .../085-libxcb-shape0_1.15-1ubuntu2_amd64.deb ... Unpacking libxcb-shape0:amd64 (1.15-1ubuntu2) ... Selecting previously unselected package libxv1:amd64. Preparing to unpack .../086-libxv1_2%3a1.0.11-1.1build1_amd64.deb ... Unpacking libxv1:amd64 (2:1.0.11-1.1build1) ... Selecting previously unselected package libavdevice60:amd64. Preparing to unpack .../087-libavdevice60_7%3a6.1.1-3ubuntu5_amd64.deb ... Unpacking libavdevice60:amd64 (7:6.1.1-3ubuntu5) ... Selecting previously unselected package libboost-thread1.83.0:amd64. Preparing to unpack .../088-libboost-thread1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ... Unpacking libboost-thread1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ... Selecting previously unselected package libboost-locale1.83.0:amd64. Preparing to unpack .../089-libboost-locale1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ... Unpacking libboost-locale1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ... Selecting previously unselected package libtbbmalloc2:amd64. Preparing to unpack .../090-libtbbmalloc2_2021.11.0-2ubuntu2_amd64.deb ... Unpacking libtbbmalloc2:amd64 (2021.11.0-2ubuntu2) ... Selecting previously unselected package libhwloc15:amd64. Preparing to unpack .../091-libhwloc15_2.10.0-1build1_amd64.deb ... Unpacking libhwloc15:amd64 (2.10.0-1build1) ... Selecting previously unselected package libtbbbind-2-5:amd64. Preparing to unpack .../092-libtbbbind-2-5_2021.11.0-2ubuntu2_amd64.deb ... Unpacking libtbbbind-2-5:amd64 (2021.11.0-2ubuntu2) ... Selecting previously unselected package libtbb12:amd64. Preparing to unpack .../093-libtbb12_2021.11.0-2ubuntu2_amd64.deb ... Unpacking libtbb12:amd64 (2021.11.0-2ubuntu2) ... Selecting previously unselected package libembree4-4:amd64. Preparing to unpack .../094-libembree4-4_4.3.0+dfsg-2_amd64.deb ... Unpacking libembree4-4:amd64 (4.3.0+dfsg-2) ... Selecting previously unselected package libfftw3-single3:amd64. Preparing to unpack .../095-libfftw3-single3_3.3.10-1ubuntu3_amd64.deb ... Unpacking libfftw3-single3:amd64 (3.3.10-1ubuntu3) ... Selecting previously unselected package libimath-3-1-29t64:amd64. Preparing to unpack .../096-libimath-3-1-29t64_3.1.9-3.1ubuntu2_amd64.deb ... Unpacking libimath-3-1-29t64:amd64 (3.1.9-3.1ubuntu2) ... Selecting previously unselected package libjemalloc2:amd64. Preparing to unpack .../097-libjemalloc2_5.3.0-2build1_amd64.deb ... Unpacking libjemalloc2:amd64 (5.3.0-2build1) ... Selecting previously unselected package libpystring0:amd64. Preparing to unpack .../098-libpystring0_1.1.4-1build1_amd64.deb ... Unpacking libpystring0:amd64 (1.1.4-1build1) ... Selecting previously unselected package libyaml-cpp0.8:amd64. Preparing to unpack .../099-libyaml-cpp0.8_0.8.0+dfsg-6build1_amd64.deb ... Unpacking libyaml-cpp0.8:amd64 (0.8.0+dfsg-6build1) ... Selecting previously unselected package libopencolorio2.1t64:amd64. Preparing to unpack .../100-libopencolorio2.1t64_2.1.3+dfsg-1.1build3_amd64.deb ... Unpacking libopencolorio2.1t64:amd64 (2.1.3+dfsg-1.1build3) ... Selecting previously unselected package libopenexr-3-1-30:amd64. Preparing to unpack .../101-libopenexr-3-1-30_3.1.5-5.1build3_amd64.deb ... Unpacking libopenexr-3-1-30:amd64 (3.1.5-5.1build3) ... Selecting previously unselected package libdcmtk17t64:amd64. Preparing to unpack .../102-libdcmtk17t64_3.6.7-9.1build4_amd64.deb ... Unpacking libdcmtk17t64:amd64 (3.6.7-9.1build4) ... Selecting previously unselected package libgif7:amd64. Preparing to unpack .../103-libgif7_5.2.2-1ubuntu1_amd64.deb ... Unpacking libgif7:amd64 (5.2.2-1ubuntu1) ... Selecting previously unselected package libopencv-core406t64:amd64. Preparing to unpack .../104-libopencv-core406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ... Unpacking libopencv-core406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Selecting previously unselected package libopencv-imgproc406t64:amd64. Preparing to unpack .../105-libopencv-imgproc406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ... Unpacking libopencv-imgproc406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Selecting previously unselected package libexif12:amd64. Preparing to unpack .../106-libexif12_0.6.24-1build2_amd64.deb ... Unpacking libexif12:amd64 (0.6.24-1build2) ... Selecting previously unselected package libgphoto2-port12t64:amd64. Preparing to unpack .../107-libgphoto2-port12t64_2.5.31-2.1build2_amd64.deb ... Unpacking libgphoto2-port12t64:amd64 (2.5.31-2.1build2) ... Selecting previously unselected package libgphoto2-6t64:amd64. Preparing to unpack .../108-libgphoto2-6t64_2.5.31-2.1build2_amd64.deb ... Unpacking libgphoto2-6t64:amd64 (2.5.31-2.1build2) ... Selecting previously unselected package liborc-0.4-0t64:amd64. Preparing to unpack .../109-liborc-0.4-0t64_1%3a0.4.38-1ubuntu0.1_amd64.deb ... Unpacking liborc-0.4-0t64:amd64 (1:0.4.38-1ubuntu0.1) ... Selecting previously unselected package libgstreamer-plugins-base1.0-0:amd64. Preparing to unpack .../110-libgstreamer-plugins-base1.0-0_1.24.2-1ubuntu0.2_amd64.deb ... Unpacking libgstreamer-plugins-base1.0-0:amd64 (1.24.2-1ubuntu0.2) ... Selecting previously unselected package gdal-data. Preparing to unpack .../111-gdal-data_3.8.4+dfsg-3ubuntu3_all.deb ... Unpacking gdal-data (3.8.4+dfsg-3ubuntu3) ... Selecting previously unselected package gdal-plugins:amd64. Preparing to unpack .../112-gdal-plugins_3.8.4+dfsg-3ubuntu3_amd64.deb ... Unpacking gdal-plugins:amd64 (3.8.4+dfsg-3ubuntu3) ... Selecting previously unselected package libaec0:amd64. Preparing to unpack .../113-libaec0_1.1.2-1build1_amd64.deb ... Unpacking libaec0:amd64 (1.1.2-1build1) ... Selecting previously unselected package libarpack2t64:amd64. Preparing to unpack .../114-libarpack2t64_3.9.1-1.1build2_amd64.deb ... Unpacking libarpack2t64:amd64 (3.9.1-1.1build2) ... Selecting previously unselected package libsuperlu6:amd64. Preparing to unpack .../115-libsuperlu6_6.0.1+dfsg1-1build1_amd64.deb ... Unpacking libsuperlu6:amd64 (6.0.1+dfsg1-1build1) ... Selecting previously unselected package libarmadillo12. Preparing to unpack .../116-libarmadillo12_1%3a12.6.7+dfsg-1build2_amd64.deb ... Unpacking libarmadillo12 (1:12.6.7+dfsg-1build2) ... Selecting previously unselected package libblosc1:amd64. Preparing to unpack .../117-libblosc1_1.21.5+ds-1build1_amd64.deb ... Unpacking libblosc1:amd64 (1.21.5+ds-1build1) ... Selecting previously unselected package libcfitsio10t64:amd64. Preparing to unpack .../118-libcfitsio10t64_4.3.1-1.1build2_amd64.deb ... Unpacking libcfitsio10t64:amd64 (4.3.1-1.1build2) ... Selecting previously unselected package libminizip1t64:amd64. Preparing to unpack .../119-libminizip1t64_1%3a1.3.dfsg-3.1ubuntu2.1_amd64.deb ... Unpacking libminizip1t64:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ... Selecting previously unselected package libfreexl1:amd64. Preparing to unpack .../120-libfreexl1_2.0.0-1build2_amd64.deb ... Unpacking libfreexl1:amd64 (2.0.0-1build2) ... Selecting previously unselected package libfyba0t64:amd64. Preparing to unpack .../121-libfyba0t64_4.1.1-11build1_amd64.deb ... Unpacking libfyba0t64:amd64 (4.1.1-11build1) ... Selecting previously unselected package libgeos3.12.1t64:amd64. Preparing to unpack .../122-libgeos3.12.1t64_3.12.1-3build1_amd64.deb ... Unpacking libgeos3.12.1t64:amd64 (3.12.1-3build1) ... Selecting previously unselected package libgeos-c1t64:amd64. Preparing to unpack .../123-libgeos-c1t64_3.12.1-3build1_amd64.deb ... Unpacking libgeos-c1t64:amd64 (3.12.1-3build1) ... Selecting previously unselected package proj-data. Preparing to unpack .../124-proj-data_9.4.0-1build2_all.deb ... Unpacking proj-data (9.4.0-1build2) ... Selecting previously unselected package libproj25:amd64. Preparing to unpack .../125-libproj25_9.4.0-1build2_amd64.deb ... Unpacking libproj25:amd64 (9.4.0-1build2) ... Selecting previously unselected package libgeotiff5:amd64. Preparing to unpack .../126-libgeotiff5_1.7.1-5build1_amd64.deb ... Unpacking libgeotiff5:amd64 (1.7.1-5build1) ... Selecting previously unselected package libhdf4-0-alt:amd64. Preparing to unpack .../127-libhdf4-0-alt_4.2.16-4build1_amd64.deb ... Unpacking libhdf4-0-alt:amd64 (4.2.16-4build1) ... Selecting previously unselected package libsz2:amd64. Preparing to unpack .../128-libsz2_1.1.2-1build1_amd64.deb ... Unpacking libsz2:amd64 (1.1.2-1build1) ... Selecting previously unselected package libhdf5-103-1t64:amd64. Preparing to unpack .../129-libhdf5-103-1t64_1.10.10+repack-3.1ubuntu4_amd64.deb ... Unpacking libhdf5-103-1t64:amd64 (1.10.10+repack-3.1ubuntu4) ... Selecting previously unselected package liburiparser1:amd64. Preparing to unpack .../130-liburiparser1_0.9.7+dfsg-2build1_amd64.deb ... Unpacking liburiparser1:amd64 (0.9.7+dfsg-2build1) ... Selecting previously unselected package libkmlbase1t64:amd64. Preparing to unpack .../131-libkmlbase1t64_1.3.0-12build1_amd64.deb ... Unpacking libkmlbase1t64:amd64 (1.3.0-12build1) ... Selecting previously unselected package libkmldom1t64:amd64. Preparing to unpack .../132-libkmldom1t64_1.3.0-12build1_amd64.deb ... Unpacking libkmldom1t64:amd64 (1.3.0-12build1) ... Selecting previously unselected package libkmlengine1t64:amd64. Preparing to unpack .../133-libkmlengine1t64_1.3.0-12build1_amd64.deb ... Unpacking libkmlengine1t64:amd64 (1.3.0-12build1) ... Selecting previously unselected package libhdf5-hl-100t64:amd64. Preparing to unpack .../134-libhdf5-hl-100t64_1.10.10+repack-3.1ubuntu4_amd64.deb ... Unpacking libhdf5-hl-100t64:amd64 (1.10.10+repack-3.1ubuntu4) ... Selecting previously unselected package libnetcdf19t64:amd64. Preparing to unpack .../135-libnetcdf19t64_1%3a4.9.2-5ubuntu4_amd64.deb ... Unpacking libnetcdf19t64:amd64 (1:4.9.2-5ubuntu4) ... Selecting previously unselected package unixodbc-common. Preparing to unpack .../136-unixodbc-common_2.3.12-1ubuntu0.24.04.1_all.deb ... Unpacking unixodbc-common (2.3.12-1ubuntu0.24.04.1) ... Selecting previously unselected package libodbcinst2:amd64. Preparing to unpack .../137-libodbcinst2_2.3.12-1ubuntu0.24.04.1_amd64.deb ... Unpacking libodbcinst2:amd64 (2.3.12-1ubuntu0.24.04.1) ... Selecting previously unselected package libogdi4.1:amd64. Preparing to unpack .../138-libogdi4.1_4.1.1+ds-3build1_amd64.deb ... Unpacking libogdi4.1:amd64 (4.1.1+ds-3build1) ... Selecting previously unselected package libpoppler134:amd64. Preparing to unpack .../139-libpoppler134_24.02.0-1ubuntu9.2_amd64.deb ... Unpacking libpoppler134:amd64 (24.02.0-1ubuntu9.2) ... Selecting previously unselected package libqhull-r8.0:amd64. Preparing to unpack .../140-libqhull-r8.0_2020.2-6build1_amd64.deb ... Unpacking libqhull-r8.0:amd64 (2020.2-6build1) ... Selecting previously unselected package librttopo1:amd64. Preparing to unpack .../141-librttopo1_1.1.0-3build2_amd64.deb ... Unpacking librttopo1:amd64 (1.1.0-3build2) ... Selecting previously unselected package libspatialite8t64:amd64. Preparing to unpack .../142-libspatialite8t64_5.1.0-3build1_amd64.deb ... Unpacking libspatialite8t64:amd64 (5.1.0-3build1) ... Selecting previously unselected package libxerces-c3.2t64:amd64. Preparing to unpack .../143-libxerces-c3.2t64_3.2.4+debian-1.2ubuntu2_amd64.deb ... Unpacking libxerces-c3.2t64:amd64 (3.2.4+debian-1.2ubuntu2) ... Selecting previously unselected package libgdal34t64:amd64. Preparing to unpack .../144-libgdal34t64_3.8.4+dfsg-3ubuntu3_amd64.deb ... Unpacking libgdal34t64:amd64 (3.8.4+dfsg-3ubuntu3) ... Selecting previously unselected package libcharls2:amd64. Preparing to unpack .../145-libcharls2_2.4.2-2build2_amd64.deb ... Unpacking libcharls2:amd64 (2.4.2-2build2) ... Selecting previously unselected package libsocket++1:amd64. Preparing to unpack .../146-libsocket++1_1.12.13+git20131030.5d039ba-1build1_amd64.deb ... Unpacking libsocket++1:amd64 (1.12.13+git20131030.5d039ba-1build1) ... Selecting previously unselected package libgdcm3.0t64:amd64. Preparing to unpack .../147-libgdcm3.0t64_3.0.22-2.1ubuntu1_amd64.deb ... Unpacking libgdcm3.0t64:amd64 (3.0.22-2.1ubuntu1) ... Selecting previously unselected package libopencv-imgcodecs406t64:amd64. Preparing to unpack .../148-libopencv-imgcodecs406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ... Unpacking libopencv-imgcodecs406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Selecting previously unselected package libopencv-videoio406t64:amd64. Preparing to unpack .../149-libopencv-videoio406t64_4.6.0+dfsg-13.1ubuntu1_amd64.deb ... Unpacking libopencv-videoio406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Selecting previously unselected package libboost-iostreams1.83.0:amd64. Preparing to unpack .../150-libboost-iostreams1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ... Unpacking libboost-iostreams1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ... Selecting previously unselected package liblog4cplus-2.0.5t64:amd64. Preparing to unpack .../151-liblog4cplus-2.0.5t64_2.0.8-1.1ubuntu3_amd64.deb ... Unpacking liblog4cplus-2.0.5t64:amd64 (2.0.8-1.1ubuntu3) ... Selecting previously unselected package libopenvdb10.0t64:amd64. Preparing to unpack .../152-libopenvdb10.0t64_10.0.1-2.1build5_amd64.deb ... Unpacking libopenvdb10.0t64:amd64 (10.0.1-2.1build5) ... Selecting previously unselected package libopenimageio2.4t64:amd64. Preparing to unpack .../153-libopenimageio2.4t64_2.4.17.0+dfsg-1.1build4_amd64.deb ... Unpacking libopenimageio2.4t64:amd64 (2.4.17.0+dfsg-1.1build4) ... Selecting previously unselected package libosdcpu3.5.0t64:amd64. Preparing to unpack .../154-libosdcpu3.5.0t64_3.5.0-2.1build1_amd64.deb ... Unpacking libosdcpu3.5.0t64:amd64 (3.5.0-2.1build1) ... Selecting previously unselected package libosdgpu3.5.0t64:amd64. Preparing to unpack .../155-libosdgpu3.5.0t64_3.5.0-2.1build1_amd64.deb ... Unpacking libosdgpu3.5.0t64:amd64 (3.5.0-2.1build1) ... Selecting previously unselected package libpotrace0:amd64. Preparing to unpack .../156-libpotrace0_1.16-2build1_amd64.deb ... Unpacking libpotrace0:amd64 (1.16-2build1) ... Selecting previously unselected package libpugixml1v5:amd64. Preparing to unpack .../157-libpugixml1v5_1.14-0.1build1_amd64.deb ... Unpacking libpugixml1v5:amd64 (1.14-0.1build1) ... Selecting previously unselected package libspnav0. Preparing to unpack .../158-libspnav0_1.1-2_amd64.deb ... Unpacking libspnav0 (1.1-2) ... Selecting previously unselected package blender. Preparing to unpack .../159-blender_4.0.2+dfsg-1ubuntu8_amd64.deb ... Unpacking blender (4.0.2+dfsg-1ubuntu8) ... Selecting previously unselected package libcdparanoia0:amd64. Preparing to unpack .../160-libcdparanoia0_3.10.2+debian-14build3_amd64.deb ... Unpacking libcdparanoia0:amd64 (3.10.2+debian-14build3) ... Selecting previously unselected package libvisual-0.4-0:amd64. Preparing to unpack .../161-libvisual-0.4-0_0.4.2-2build1_amd64.deb ... Unpacking libvisual-0.4-0:amd64 (0.4.2-2build1) ... Selecting previously unselected package gstreamer1.0-plugins-base:amd64. Preparing to unpack .../162-gstreamer1.0-plugins-base_1.24.2-1ubuntu0.2_amd64.deb ... Unpacking gstreamer1.0-plugins-base:amd64 (1.24.2-1ubuntu0.2) ... Selecting previously unselected package libigdgmm12:amd64. Preparing to unpack .../163-libigdgmm12_22.3.17+ds1-1_amd64.deb ... Unpacking libigdgmm12:amd64 (22.3.17+ds1-1) ... Selecting previously unselected package intel-media-va-driver:amd64. Preparing to unpack .../164-intel-media-va-driver_24.1.0+dfsg1-1_amd64.deb ... Unpacking intel-media-va-driver:amd64 (24.1.0+dfsg1-1) ... Selecting previously unselected package libaacs0:amd64. Preparing to unpack .../165-libaacs0_0.11.1-2build1_amd64.deb ... Unpacking libaacs0:amd64 (0.11.1-2build1) ... Selecting previously unselected package libbdplus0:amd64. Preparing to unpack .../166-libbdplus0_0.2.0-3build1_amd64.deb ... Unpacking libbdplus0:amd64 (0.2.0-3build1) ... Selecting previously unselected package libdecor-0-plugin-1-gtk:amd64. Preparing to unpack .../167-libdecor-0-plugin-1-gtk_0.2.2-1build2_amd64.deb ... Unpacking libdecor-0-plugin-1-gtk:amd64 (0.2.2-1build2) ... Selecting previously unselected package libgphoto2-l10n. Preparing to unpack .../168-libgphoto2-l10n_2.5.31-2.1build2_all.deb ... Unpacking libgphoto2-l10n (2.5.31-2.1build2) ... Selecting previously unselected package librsvg2-common:amd64. Preparing to unpack .../169-librsvg2-common_2.58.0+dfsg-1build1_amd64.deb ... Unpacking librsvg2-common:amd64 (2.58.0+dfsg-1build1) ... Selecting previously unselected package libxnvctrl0:amd64. Preparing to unpack .../170-libxnvctrl0_510.47.03-0ubuntu4_amd64.deb ... Unpacking libxnvctrl0:amd64 (510.47.03-0ubuntu4) ... Selecting previously unselected package mesa-va-drivers:amd64. Preparing to unpack .../171-mesa-va-drivers_24.0.9-0ubuntu0.3_amd64.deb ... Unpacking mesa-va-drivers:amd64 (24.0.9-0ubuntu0.3) ... Selecting previously unselected package mesa-vdpau-drivers:amd64. Preparing to unpack .../172-mesa-vdpau-drivers_24.0.9-0ubuntu0.3_amd64.deb ... Unpacking mesa-vdpau-drivers:amd64 (24.0.9-0ubuntu0.3) ... Selecting previously unselected package i965-va-driver:amd64. Preparing to unpack .../173-i965-va-driver_2.4.1+dfsg1-1build2_amd64.deb ... Unpacking i965-va-driver:amd64 (2.4.1+dfsg1-1build2) ... Selecting previously unselected package va-driver-all:amd64. Preparing to unpack .../174-va-driver-all_2.20.0-2build1_amd64.deb ... Unpacking va-driver-all:amd64 (2.20.0-2build1) ... Selecting previously unselected package vdpau-driver-all:amd64. Preparing to unpack .../175-vdpau-driver-all_1.5-2build1_amd64.deb ... Unpacking vdpau-driver-all:amd64 (1.5-2build1) ... Selecting previously unselected package libhwloc-plugins:amd64. Preparing to unpack .../176-libhwloc-plugins_2.10.0-1build1_amd64.deb ... Unpacking libhwloc-plugins:amd64 (2.10.0-1build1) ... Selecting previously unselected package pocketsphinx-en-us. Preparing to unpack .../177-pocketsphinx-en-us_0.8.0+real5prealpha+1-15ubuntu5_all.deb ... Unpacking pocketsphinx-en-us (0.8.0+real5prealpha+1-15ubuntu5) ... Selecting previously unselected package proj-bin. Preparing to unpack .../178-proj-bin_9.4.0-1build2_amd64.deb ... Unpacking proj-bin (9.4.0-1build2) ... Setting up libgme0:amd64 (0.6.3-7build1) ... Setting up libchromaprint1:amd64 (1.5.1-5) ... Setting up libssh-gcrypt-4:amd64 (0.10.6-2build2) ... Setting up libhwy1t64:amd64 (1.0.7-8.1build1) ... Setting up libtbbmalloc2:amd64 (2021.11.0-2ubuntu2) ... Setting up libudfread0:amd64 (1.1.2-1build1) ... Setting up libcdparanoia0:amd64 (3.10.2+debian-14build3) ... Setting up liblog4cplus-2.0.5t64:amd64 (2.0.8-1.1ubuntu3) ... Setting up libraw1394-11:amd64 (2.1.2-2build3) ... Setting up libfftw3-single3:amd64 (3.3.10-1ubuntu3) ... Setting up libspeex1:amd64 (1.2.1-2ubuntu2.24.04.1) ... Setting up proj-data (9.4.0-1build2) ... Setting up libshine3:amd64 (3.1.1-2build1) ... Setting up libcaca0:amd64 (0.99.beta20-4build2) ... Setting up libvpl2 (2023.3.0-1build1) ... Setting up libx264-164:amd64 (2:0.164.3108+git31e19f9-1) ... Setting up libtwolame0:amd64 (0.4.0-2build3) ... Setting up libmbedcrypto7t64:amd64 (2.28.8-1) ... Setting up libproj25:amd64 (9.4.0-1build2) ... Setting up libogdi4.1:amd64 (4.1.1+ds-3build1) ... Setting up libpoppler134:amd64 (24.02.0-1ubuntu9.2) ... Setting up libgsm1:amd64 (1.0.22-1build1) ... Setting up libcharls2:amd64 (2.4.2-2build2) ... Setting up libvisual-0.4-0:amd64 (0.4.2-2build1) ... Setting up libgeos3.12.1t64:amd64 (3.12.1-3build1) ... Setting up libsoxr0:amd64 (0.1.3-4build3) ... Setting up libzix-0-0:amd64 (0.4.2-2build1) ... Setting up libdcmtk17t64:amd64 (3.6.7-9.1build4) ... Setting up libcodec2-1.2:amd64 (1.2.0-2build1) ... Setting up libgeos-c1t64:amd64 (3.12.1-3build1) ... Setting up libyaml-cpp0.8:amd64 (0.8.0+dfsg-6build1) ... Setting up libmysofa1:amd64 (1.3.2+dfsg-2ubuntu2) ... Setting up libxcb-shape0:amd64 (1.15-1ubuntu2) ... Setting up libcdio19t64:amd64 (2.1.0-4.1ubuntu1.2) ... Setting up libboost-thread1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ... Setting up proj-bin (9.4.0-1build2) ... Setting up libqhull-r8.0:amd64 (2020.2-6build1) ... Setting up libsvtav1enc1d1:amd64 (1.7.0+dfsg-2build1) ... Setting up libigdgmm12:amd64 (22.3.17+ds1-1) ... Setting up libjemalloc2:amd64 (5.3.0-2build1) ... Setting up libmpg123-0t64:amd64 (1.32.5-1ubuntu1.1) ... Setting up libxerces-c3.2t64:amd64 (3.2.4+debian-1.2ubuntu2) ... Setting up libcjson1:amd64 (1.7.17-1) ... Setting up libxvidcore4:amd64 (2:1.3.7-1build1) ... Setting up libgphoto2-l10n (2.5.31-2.1build2) ... Setting up librav1e0:amd64 (0.7.1-2) ... Setting up libaec0:amd64 (1.1.2-1build1) ... Setting up gdal-data (3.8.4+dfsg-3ubuntu3) ... Setting up libpugixml1v5:amd64 (1.14-0.1build1) ... Setting up libgeotiff5:amd64 (1.7.1-5build1) ... Setting up poppler-data (0.4.12-1) ... Setting up liborc-0.4-0t64:amd64 (1:0.4.38-1ubuntu0.1) ... Setting up libcdio-cdda2t64:amd64 (10.2+2.0.1-1.1build2) ... Setting up libxnvctrl0:amd64 (510.47.03-0ubuntu4) ... Setting up librist4:amd64 (0.2.10+dfsg-2) ... Setting up librsvg2-2:amd64 (2.58.0+dfsg-1build1) ... Setting up libblas3:amd64 (3.12.0-3build1.1) ... update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode Setting up libplacebo338:amd64 (6.338.2-2build1) ... Setting up libcfitsio10t64:amd64 (4.3.1-1.1build2) ... Setting up libva2:amd64 (2.20.0-2build1) ... Setting up libboost-iostreams1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ... Setting up libopus0:amd64 (1.4-1build1) ... Setting up libexif12:amd64 (0.6.24-1build2) ... Setting up libcdio-paranoia2t64:amd64 (10.2+2.0.1-1.1build2) ... Setting up libdc1394-25:amd64 (2.2.6-4build1) ... Setting up intel-media-va-driver:amd64 (24.1.0+dfsg1-1) ... Setting up libxv1:amd64 (2:1.0.11-1.1build1) ... Setting up libhwloc15:amd64 (2.10.0-1build1) ... Setting up libimath-3-1-29t64:amd64 (3.1.9-3.1ubuntu2) ... Setting up libunibreak5:amd64 (5.1-2build1) ... Setting up unixodbc-common (2.3.12-1ubuntu0.24.04.1) ... Setting up libsocket++1:amd64 (1.12.13+git20131030.5d039ba-1build1) ... Setting up libaacs0:amd64 (0.11.1-2build1) ... Setting up libjxl0.7:amd64 (0.7.0-10.2ubuntu6) ... Setting up librsvg2-common:amd64 (2.58.0+dfsg-1build1) ... Setting up pocketsphinx-en-us (0.8.0+real5prealpha+1-15ubuntu5) ... Setting up libhdf4-0-alt:amd64 (4.2.16-4build1) ... Setting up libx265-199:amd64 (3.5-2build1) ... Setting up libosdcpu3.5.0t64:amd64 (3.5.0-2.1build1) ... Setting up libsndio7.0:amd64 (1.9.0-0.3build3) ... Setting up libgif7:amd64 (5.2.2-1ubuntu1) ... Setting up liburiparser1:amd64 (0.9.7+dfsg-2build1) ... Setting up libbdplus0:amd64 (0.2.0-3build1) ... Setting up libvidstab1.1:amd64 (1.1.0-2build1) ... Setting up libfyba0t64:amd64 (4.1.1-11build1) ... Setting up libvpx9:amd64 (1.14.0-1ubuntu2.1) ... Setting up librttopo1:amd64 (1.1.0-3build2) ... Setting up libsrt1.5-gnutls:amd64 (1.5.3-1build2) ... Setting up libflite1:amd64 (2.2-6build3) ... Setting up libdav1d7:amd64 (1.4.1-1build1) ... Setting up libva-drm2:amd64 (2.20.0-2build1) ... Setting up blender-data (4.0.2+dfsg-1ubuntu8) ... Setting up libminizip1t64:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ... Setting up ocl-icd-libopencl1:amd64 (2.3.2-1build1) ... Setting up libasyncns0:amd64 (0.8-6build4) ... Setting up libvdpau1:amd64 (1.5-2build1) ... Setting up libbs2b0:amd64 (3.1.0+dfsg-7build1) ... Setting up libtheora0:amd64 (1.1.1+dfsg.1-16.1build3) ... Setting up libblosc1:amd64 (1.21.5+ds-1build1) ... Setting up libdecor-0-0:amd64 (0.2.2-1build2) ... Setting up libzimg2:amd64 (3.0.5+ds1-1build1) ... Setting up libopenal-data (1:1.23.1-4build1) ... Setting up libpystring0:amd64 (1.1.4-1build1) ... Setting up libgphoto2-port12t64:amd64 (2.5.31-2.1build2) ... Setting up libflac12t64:amd64 (1.4.3+ds-2.1ubuntu2) ... Setting up mesa-va-drivers:amd64 (24.0.9-0ubuntu0.3) ... Setting up libbluray2:amd64 (1:1.3.4-1build1) ... Setting up libkmlbase1t64:amd64 (1.3.0-12build1) ... Setting up libsamplerate0:amd64 (0.2.2-4build1) ... Setting up libva-x11-2:amd64 (2.20.0-2build1) ... Setting up libdecor-0-plugin-1-gtk:amd64 (0.2.2-1build2) ... Setting up libopenmpt0t64:amd64 (0.7.3-1.1build3) ... Setting up libzvbi-common (0.2.42-2) ... Setting up libmp3lame0:amd64 (3.100-6build1) ... Setting up libsz2:amd64 (1.1.2-1build1) ... Setting up i965-va-driver:amd64 (2.4.1+dfsg1-1build2) ... Setting up libvorbisenc2:amd64 (1.3.7-1build3) ... Setting up libspnav0 (1.1-2) ... Setting up libiec61883-0:amd64 (1.2.0-6build1) ... Setting up gdal-plugins:amd64 (3.8.4+dfsg-3ubuntu3) ... Setting up libserd-0-0:amd64 (0.32.2-1) ... Setting up libpotrace0:amd64 (1.16-2build1) ... Setting up libavc1394-0:amd64 (0.5.4-5build3) ... Setting up libgdcm3.0t64:amd64 (3.0.22-2.1ubuntu1) ... Setting up mesa-vdpau-drivers:amd64 (24.0.9-0ubuntu0.3) ... Setting up libosdgpu3.5.0t64:amd64 (3.5.0-2.1build1) ... Setting up libodbcinst2:amd64 (2.3.12-1ubuntu0.24.04.1) ... Setting up liblapack3:amd64 (3.12.0-3build1.1) ... update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode Setting up libarpack2t64:amd64 (3.9.1-1.1build2) ... Setting up libzvbi0t64:amd64 (0.2.42-2) ... Setting up libboost-locale1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ... Setting up libgstreamer-plugins-base1.0-0:amd64 (1.24.2-1ubuntu0.2) ... Setting up libavutil58:amd64 (7:6.1.1-3ubuntu5) ... Setting up libopenal1:amd64 (1:1.23.1-4build1) ... Setting up libsuperlu6:amd64 (6.0.1+dfsg1-1build1) ... Setting up libhwloc-plugins:amd64 (2.10.0-1build1) ... Setting up libtbbbind-2-5:amd64 (2021.11.0-2ubuntu2) ... Setting up libkmldom1t64:amd64 (1.3.0-12build1) ... Setting up gstreamer1.0-plugins-base:amd64 (1.24.2-1ubuntu0.2) ... Setting up libass9:amd64 (1:0.17.1-2build1) ... Setting up libswresample4:amd64 (7:6.1.1-3ubuntu5) ... Setting up va-driver-all:amd64 (2.20.0-2build1) ... Setting up libgphoto2-6t64:amd64 (2.5.31-2.1build2) ... No diversion 'diversion of /lib/udev/hwdb.d/20-libgphoto2-6.hwdb to /lib/udev/hwdb.d/20-libgphoto2-6.hwdb.usr-is-merged by usr-is-merged', none removed. No diversion 'diversion of /lib/udev/rules.d/60-libgphoto2-6.rules to /lib/udev/rules.d/60-libgphoto2-6.rules.usr-is-merged by usr-is-merged', none removed. Setting up libopencolorio2.1t64:amd64 (2.1.3+dfsg-1.1build3) ... Setting up libopenexr-3-1-30:amd64 (3.1.5-5.1build3) ... Setting up libavcodec60:amd64 (7:6.1.1-3ubuntu5) ... Setting up librubberband2:amd64 (3.3.0+dfsg-2build1) ... Setting up libjack-jackd2-0:amd64 (1.9.21~dfsg-3ubuntu3) ... Setting up vdpau-driver-all:amd64 (1.5-2build1) ... Setting up libfreexl1:amd64 (2.0.0-1build2) ... Setting up libsord-0-0:amd64 (0.16.16-2build1) ... Setting up libpostproc57:amd64 (7:6.1.1-3ubuntu5) ... Setting up libsratom-0-0:amd64 (0.6.16-1build1) ... Setting up libsndfile1:amd64 (1.2.2-1ubuntu5) ... Setting up libhdf5-103-1t64:amd64 (1.10.10+repack-3.1ubuntu4) ... Setting up liblilv-0-0:amd64 (0.24.22-1build1) ... Setting up libarmadillo12 (1:12.6.7+dfsg-1build2) ... Setting up libswscale7:amd64 (7:6.1.1-3ubuntu5) ... Setting up libspatialite8t64:amd64 (5.1.0-3build1) ... Setting up libhdf5-hl-100t64:amd64 (1.10.10+repack-3.1ubuntu4) ... Setting up libnetcdf19t64:amd64 (1:4.9.2-5ubuntu4) ... Setting up libpulse0:amd64 (1:16.1+dfsg1-2ubuntu10.1) ... Setting up libtbb12:amd64 (2021.11.0-2ubuntu2) ... Setting up libavformat60:amd64 (7:6.1.1-3ubuntu5) ... Setting up libkmlengine1t64:amd64 (1.3.0-12build1) ... Setting up libsphinxbase3t64:amd64 (0.8+5prealpha+1-17build2) ... Setting up libgdal34t64:amd64 (3.8.4+dfsg-3ubuntu3) ... Setting up libembree4-4:amd64 (4.3.0+dfsg-2) ... Setting up libsdl2-2.0-0:amd64 (2.30.0+dfsg-1build3) ... Setting up libopencv-core406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Setting up libopenvdb10.0t64:amd64 (10.0.1-2.1build5) ... Setting up libpocketsphinx3:amd64 (0.8.0+real5prealpha+1-15ubuntu5) ... Setting up libopencv-imgproc406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Setting up libopencv-imgcodecs406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Setting up libavfilter9:amd64 (7:6.1.1-3ubuntu5) ... Setting up libopencv-videoio406t64:amd64 (4.6.0+dfsg-13.1ubuntu1) ... Setting up libavdevice60:amd64 (7:6.1.1-3ubuntu5) ... Setting up libopenimageio2.4t64:amd64 (2.4.17.0+dfsg-1.1build4) ... Setting up blender (4.0.2+dfsg-1ubuntu8) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for libc-bin (2.39-0ubuntu8.3) ... Processing triggers for man-db (2.12.0-4build2) ... Processing triggers for udev (255.4-1ubuntu8.4) ... Processing triggers for libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ... Processing triggers for fontconfig (2.15.0-1.1ubuntu2) ... Running kernel seems to be up-to-date. Restarting services... Service restarts being deferred: systemctl restart runner-provisioner.service No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host. polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/apps/spiral/temp/blender polyglot/scripts/core.ps1/GetFullPath / Path: ./build.py / Location: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender / ResolvedLocation: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender polyglot/scripts/core.ps1/GetFullPath / FullPath: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender/build.py blender / Path: /home/runner/work/polyglot/polyglot/apps/spiral/temp/blender/build.py Blender 4.0.2 Fra:1 Mem:9.24M (Peak 9.24M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Synchronizing object | Cube Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Initializing Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Waiting for render to start Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Loading render kernels (may take a few minutes the first time) Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Scene Fra:1 Mem:9.15M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Shaders Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Procedurals Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Background Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Camera Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes Flags Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Copying Transformations to device Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Applying Static Transformations Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems | Copying Particles to device Fra:1 Mem:9.24M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes Fra:1 Mem:9.25M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Computing attributes Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Copying Attributes to device Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building BVH Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.04M, Peak:0.04M | Scene, ViewLayer | Updating Scene BVH | Building BVH 0% Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Scene BVH | Copying BVH to device Fra:1 Mem:9.26M (Peak 9.29M) | Time:00:00.00 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Mesh | Computing normals Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Mesh | Copying Mesh to device Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Objects Flags Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Primitive Offsets Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Images Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Camera Volume Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.11M, Peak:0.11M | Scene, ViewLayer | Updating Lookup Tables Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Lights Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Lights | Computing distribution Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Lights | Computing tree Fra:1 Mem:9.29M (Peak 9.29M) | Time:00:00.00 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Integrator Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Updating Film Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.11M, Peak:16.19M | Scene, ViewLayer | Updating Lookup Tables Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Updating Baking Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Updating Device | Writing constant memory Build without OpenImageDenoiser No device available to denoise on Fra:1 Mem:25.29M (Peak 25.29M) | Time:00:00.00 | Mem:16.19M, Peak:16.19M | Scene, ViewLayer | Build without OpenImageDenoiser Traceback (most recent call last): File "/home/runner/work/polyglot/polyglot/apps/spiral/temp/blender/build.py", line 54, in <module> bpy.ops.render.render(write_still=True) File "/usr/share/blender/scripts/modules/bpy/ops.py", line 109, in __call__ ret = _op_call(self.idname_py(), kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: Error: Build without OpenImageDenoiser Error: Build without OpenImageDenoiser Error: Build without OpenImageDenoiser Error: Build without OpenImageDenoiser Blender quit
In [ ]:
{ pwsh ../apps/spiral/vscode/build.ps1 } | Invoke-Block
bun install v1.2.1 (ce532901) + @types/node@22.10.10 + @types/vscode@1.96.0 + @vscode/vsce@3.2.1 + npm-check-updates@17.1.14 + typescript@5.5.0-dev.20240514 + vscode@1.1.37 225 packages installed [624.00ms] Blocked 1 postinstall. Run `bun pm untrusted` for details. polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/apps/spiral/vscode polyglot/scripts/core.ps1/GetFullPath / Path: ./LICENSE / Location: /home/runner/work/polyglot/polyglot/apps/spiral/vscode / ResolvedLocation: /home/runner/work/polyglot/polyglot/apps/spiral/vscode polyglot/scripts/core.ps1/GetFullPath / FullPath: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE polyglot/scripts/core.ps1/EnsureSymbolicLink / Parent: /home/runner/work/polyglot/polyglot/apps/spiral/vscode / Path: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/apps/spiral/vscode polyglot/scripts/core.ps1/GetFullPath / Path: ../../../LICENSE / Location: /home/runner/work/polyglot/polyglot/apps/spiral/vscode / ResolvedLocation: /home/runner/work/polyglot/polyglot/apps/spiral/vscode polyglot/scripts/core.ps1/GetFullPath / FullPath: /home/runner/work/polyglot/polyglot/LICENSE polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: /home / End: runner/work/polyglot/polyglot/LICENSE polyglot/scripts/core.ps1/EnsureSymbolicLink / FullPath: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE / Target: /home/runner/work/polyglot/polyglot/LICENSE / ResolvedTarget: /home/runner/work/polyglot/polyglot/LICENSE polyglot/scripts/core.ps1/EnsureSymbolicLink / Creating symlink: /home/runner/work/polyglot/polyglot/apps/spiral/vscode/LICENSE -> /home/runner/work/polyglot/polyglot/LICENSE out/src/extension.js 2.4kb out/media/cellOutputScrollButtons.js 1.9kb ⚡ Done in 3ms ::warning::Neither a .vscodeignore file nor a "files" property in package.json was found. To ensure only necessary files are included in your extension, add a .vscodeignore file or specify the "files" property in package.json. More info: https://aka.ms/vscode-vscodeignore%0A Files included in the VSIX: spiral-vscode-0.0.1.vsix ├─ [Content_Types].xml ├─ extension.vsixmanifest └─ extension/ ├─ .gitignore [0.01 KB] ├─ LICENSE.txt [33.71 KB] ├─ build.ps1 [0.37 KB] ├─ bun.lockb [86.98 KB] ├─ compile.ps1 [0.44 KB] ├─ package.json [1.55 KB] ├─ media/ │ └─ cellOutputScrollButtons.ts [1.8 KB] ├─ out/ │ ├─ media/ │ │ └─ cellOutputScrollButtons.js [1.86 KB] │ └─ src/ │ └─ extension.js [2.44 KB] └─ src/ └─ extension.ts [1.38 KB] Packaged: out/spiral-vscode-0.0.1.vsix (12 files, 49.02 KB)
In [ ]:
{ pwsh ../apps/ipfs/build.ps1 } | Invoke-Block
bun install v1.2.1 (ce532901) + @types/node@22.10.10 + npm-check-updates@17.1.14 + typescript@5.5.0-dev.20240401 + nft.storage@7.2.0 220 packages installed [1157.00ms] Blocked 1 postinstall. Run `bun pm untrusted` for details.
In [ ]:
{ pwsh ./outdated.ps1 } | Invoke-Block
Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 Resolving dependency graph... Outdated packages found: Group: Main * Argu 6.2.4 -> 6.2.5 * Expecto 11.0.0-alpha2 -> 11.0.0-alpha4 * Expecto.FsCheck 11.0.0-alpha2 -> 11.0.0-alpha4-fscheck2 * FsCheck 3.0.0-rc3 -> 2.16.6 * Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 9.0.1 * Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 9.0.1 * Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 9.0.1 * Microsoft.AspNetCore.SignalR.Client 7.0 -> 9.0.1 * Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 9.0.1 * Microsoft.AspNetCore.SignalR.Common 7.0 -> 9.0.1 * Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 9.0.1 * Microsoft.Bcl.AsyncInterfaces 9.0 -> 9.0.1 * Microsoft.Extensions.DependencyInjection 9.0 -> 9.0.1 * Microsoft.Extensions.DependencyInjection.Abstractions 9.0 -> 9.0.1 * Microsoft.Extensions.Features 7.0 -> 9.0.1 * Microsoft.Extensions.Logging 9.0 -> 9.0.1 * Microsoft.Extensions.Logging.Abstractions 9.0 -> 9.0.1 * Microsoft.Extensions.Options 9.0 -> 9.0.1 * Microsoft.Extensions.Primitives 9.0 -> 9.0.1 * System.CodeDom 9.0 -> 9.0.1 * System.Configuration.ConfigurationManager 9.0 -> 9.0.1 * System.Diagnostics.EventLog 9.0 -> 9.0.1 * System.Management 7.0 -> 9.0.1 * System.Security.Cryptography.ProtectedData 9.0 -> 9.0.1 * System.Threading.Channels 9.0 -> 9.0.1 Total time taken: 5 seconds CheckToml / toml: /home/runner/work/polyglot/polyglot/workspace/Cargo.toml chat_contract_tests ================ Name Project Compat Latest Kind Platform ---- ------- ------ ------ ---- -------- android-tzdata 0.1.1 --- Removed Normal cfg(target_os = "android") android_system_properties 0.1.5 --- Removed Normal cfg(target_os = "android") autocfg 1.4.0 --- Removed Build --- bumpalo 3.16.0 --- Removed Normal --- cc 1.2.4 --- Removed Build --- cfg-if 1.0.0 --- Removed Normal --- chrono 0.4.39 --- Removed Normal --- core-foundation-sys 0.8.7 --- Removed Normal cfg(any(target_os = "macos", target_os = "ios")) equivalent 1.0.1 Removed Removed Normal --- hashbrown 0.15.2 0.12.3 0.12.3 Normal --- iana-time-zone 0.1.61 --- Removed Normal cfg(unix) iana-time-zone-haiku 0.1.2 --- Removed Normal cfg(target_os = "haiku") indexmap 2.7.0 1.9.3 1.9.3 Normal --- jobserver 0.1.32 --- Removed Normal --- js-sys 0.3.76 --- Removed Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) js-sys 0.3.76 --- Removed Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) libc 0.2.168 --- Removed Normal --- libc 0.2.168 --- Removed Normal cfg(unix) libm 0.2.11 --- Removed Normal --- log 0.4.22 --- Removed Normal --- near-sandbox-utils 0.8.0 --- 0.9.0 Build --- near-sandbox-utils 0.9.0 0.8.0 --- Normal --- num-traits 0.2.19 --- Removed Normal --- once_cell 1.20.2 --- Removed Normal --- proc-macro2 1.0.92 --- Removed Normal --- quote 1.0.37 --- Removed Normal --- serde 1.0.216 --- Removed Normal --- serde_derive 1.0.216 --- Removed Normal --- shlex 1.3.0 --- Removed Normal --- syn 2.0.90 --- Removed Normal --- unicode-ident 1.0.14 --- Removed Normal --- wasm-bindgen 0.2.99 --- Removed Normal --- wasm-bindgen 0.2.99 --- Removed Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) wasm-bindgen 0.2.99 --- Removed Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) wasm-bindgen-backend 0.2.99 --- Removed Normal --- wasm-bindgen-macro 0.2.99 --- Removed Normal --- wasm-bindgen-macro-support 0.2.99 --- Removed Normal --- wasm-bindgen-shared 0.2.99 --- Removed Normal --- windows-core 0.52.0 --- Removed Normal cfg(target_os = "windows") windows-targets 0.52.6 --- Removed Normal --- windows-targets 0.52.6 --- Removed Normal cfg(windows) windows_aarch64_gnullvm 0.52.6 --- Removed Normal aarch64-pc-windows-gnullvm windows_aarch64_msvc 0.52.6 --- Removed Normal cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib))) windows_i686_gnu 0.52.6 --- Removed Normal cfg(all(target_arch = "x86", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) windows_i686_gnullvm 0.52.6 --- Removed Normal i686-pc-windows-gnullvm windows_i686_msvc 0.52.6 --- Removed Normal cfg(all(target_arch = "x86", target_env = "msvc", not(windows_raw_dylib))) windows_x86_64_gnu 0.52.6 --- Removed Normal cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) windows_x86_64_gnullvm 0.52.6 --- Removed Normal x86_64-pc-windows-gnullvm windows_x86_64_msvc 0.52.6 --- Removed Normal cfg(all(any(target_arch = "x86_64", target_arch = "arm64ec"), target_env = "msvc", not(windows_raw_dylib))) CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/chat/contract/Cargo.toml Name Project Compat Latest Kind Platform ---- ------- ------ ------ ---- -------- android_system_properties->libc 0.2.168 0.2.169 0.2.169 Normal --- borsh 1.5.3 1.5.5 1.5.5 Normal --- borsh->borsh-derive 1.5.3 1.5.5 1.5.5 Normal --- borsh-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- borsh-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- borsh-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- bs58->tinyvec 1.8.0 1.8.1 1.8.1 Normal --- cc->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) chrono->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) chrono->serde 1.0.216 1.0.217 1.0.217 Normal --- chrono->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) cpufeatures->libc 0.2.168 0.2.169 0.2.169 Normal aarch64-linux-android darling_core->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- darling_core->quote 1.0.37 1.0.38 1.0.38 Normal --- darling_core->syn 2.0.90 2.0.96 2.0.96 Normal --- darling_macro->quote 1.0.37 1.0.38 1.0.38 Normal --- darling_macro->syn 2.0.90 2.0.96 2.0.96 Normal --- data-encoding-macro->data-encoding 2.6.0 2.7.0 2.7.0 Normal --- data-encoding-macro->data-encoding-macro-internal 0.1.13 0.1.14 0.1.14 Normal --- data-encoding-macro-internal->data-encoding 2.6.0 2.7.0 2.7.0 Normal --- data-encoding-macro-internal->syn 1.0.109 2.0.96 2.0.96 Normal --- fable_library_rust->uuid 1.11.0 1.12.1 1.12.1 Normal --- futures-macro->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- futures-macro->quote 1.0.37 1.0.38 1.0.38 Normal --- futures-macro->syn 2.0.90 2.0.96 2.0.96 Normal --- futures-util->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- getrandom->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown")) getrandom->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) getrandom->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown")) iana-time-zone->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone-haiku->cc 1.2.4 1.2.10 1.2.10 Build --- indexmap->serde 1.0.216 1.0.217 1.0.217 Normal --- jobserver->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) js-sys->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal --- multibase->data-encoding 2.6.0 2.7.0 2.7.0 Normal --- multibase->data-encoding-macro 0.1.15 0.1.16 0.1.16 Normal --- near-account-id->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-account-id->serde 1.0.216 1.0.217 1.0.217 Normal --- near-gas->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-gas->serde 1.0.216 1.0.217 1.0.217 Normal --- near-sdk 5.6.0 5.7.0 5.7.0 Normal --- near-sdk->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-sdk->near-sdk-macros 5.6.0 5.7.0 5.7.0 Normal --- near-sdk->serde 1.0.216 1.0.217 1.0.217 Normal --- near-sdk->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-sdk-macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- near-sdk-macros->quote 1.0.37 1.0.38 1.0.38 Normal --- near-sdk-macros->serde 1.0.216 1.0.217 1.0.217 Normal --- near-sdk-macros->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-sdk-macros->syn 2.0.90 2.0.96 2.0.96 Normal --- near-token->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-token->serde 1.0.216 1.0.217 1.0.217 Normal --- num_cpus->libc 0.2.168 0.2.169 0.2.169 Normal cfg(not(windows)) proc-macro2->unicode-ident 1.0.14 1.0.16 1.0.16 Normal --- quote->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde->serde_derive 1.0.216 1.0.217 1.0.217 Normal --- serde_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- serde_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- serde_json->ryu 1.0.18 1.0.19 1.0.19 Normal --- serde_json->serde 1.0.216 1.0.217 1.0.217 Normal --- serde_spanned->serde 1.0.216 1.0.217 1.0.217 Normal --- sha2->cpufeatures 0.2.16 0.2.17 0.2.17 Normal cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86")) strum_macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- strum_macros->quote 1.0.37 1.0.38 1.0.38 Normal --- strum_macros->rustversion 1.0.18 1.0.19 1.0.19 Normal --- strum_macros->syn 2.0.90 2.0.96 2.0.96 Normal --- syn->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- syn->quote 1.0.37 1.0.38 1.0.38 Normal --- syn->unicode-ident 1.0.14 1.0.16 1.0.16 Normal --- toml_datetime->serde 1.0.216 1.0.217 1.0.217 Normal --- toml_edit->indexmap 2.7.0 2.7.1 2.7.1 Normal --- toml_edit->serde 1.0.216 1.0.217 1.0.217 Normal --- toml_edit->winnow 0.6.20 0.6.25 0.6.25 Normal --- wasm-bindgen->wasm-bindgen-macro 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-backend->bumpalo 3.16.0 3.17.0 3.17.0 Normal --- wasm-bindgen-backend->log 0.4.22 0.4.25 0.4.25 Normal --- wasm-bindgen-backend->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- wasm-bindgen-backend->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-backend->syn 2.0.90 2.0.96 2.0.96 Normal --- wasm-bindgen-backend->wasm-bindgen-shared 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-macro->wasm-bindgen-macro-support 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro-support->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- wasm-bindgen-macro-support->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-macro-support->syn 2.0.90 2.0.96 2.0.96 Normal --- wasm-bindgen-macro-support->wasm-bindgen-backend 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro-support->wasm-bindgen-shared 0.2.99 0.2.100 0.2.100 Normal --- wee_alloc->libc 0.2.168 0.2.169 0.2.169 Normal cfg(all(unix, not(target_arch = "wasm32"))) CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/chat/contract/tests/Cargo.toml Name Project Compat Latest Kind Platform ---- ------- ------ ------ ---- -------- actix->bitflags 2.6.0 2.8.0 2.8.0 Normal --- actix->log 0.4.22 0.4.25 0.4.25 Normal --- actix->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- actix->tokio 1.42.0 1.43.0 1.43.0 Normal --- actix-macros->quote 1.0.37 1.0.38 1.0.38 Normal --- actix-macros->syn 2.0.90 2.0.96 2.0.96 Normal --- actix-rt->tokio 1.42.0 1.43.0 1.43.0 Normal --- actix_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- actix_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- actix_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- aes->cpufeatures 0.2.16 0.2.17 0.2.17 Normal cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86")) android_system_properties->libc 0.2.168 0.2.169 0.2.169 Normal --- android_system_properties->libc 0.2.168 0.2.169 Removed Normal --- anstream->anstyle-wincon 3.0.6 3.0.7 3.0.7 Normal cfg(windows) anyhow 1.0.94 1.0.95 1.0.95 Normal --- async-channel->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- async-executor->futures-lite 2.5.0 2.6.0 2.6.0 Normal --- async-io->futures-lite 2.5.0 2.6.0 2.6.0 Normal --- async-io->log 0.4.22 0.4.25 0.4.25 Normal --- async-io->rustix 0.37.27 0.37.28 0.37.28 Normal --- async-io->rustix 0.38.42 0.38.44 0.38.44 Normal --- async-lock->event-listener 5.3.1 5.4.0 5.4.0 Normal --- async-lock->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- async-process->rustix 0.38.42 0.38.44 0.38.44 Normal cfg(unix) async-recursion->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- async-recursion->quote 1.0.37 1.0.38 1.0.38 Normal --- async-recursion->syn 2.0.90 2.0.96 2.0.96 Normal --- async-signal->rustix 0.38.42 0.38.44 0.38.44 Normal cfg(unix) async-stream->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- async-stream-impl->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- async-stream-impl->quote 1.0.37 1.0.38 1.0.38 Normal --- async-stream-impl->syn 2.0.90 2.0.96 2.0.96 Normal --- async-trait->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- async-trait->quote 1.0.37 1.0.38 1.0.38 Normal --- async-trait->syn 2.0.90 2.0.96 2.0.96 Normal --- atty->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) axum->async-trait 0.1.83 0.1.85 0.1.85 Normal --- axum->hyper 0.14.31 0.14.32 0.14.32 Normal --- axum->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- axum->rustversion 1.0.18 1.0.19 1.0.19 Development --- axum->serde 1.0.216 1.0.217 1.0.217 Normal --- axum-core->async-trait 0.1.83 0.1.85 0.1.85 Normal --- axum-core->rustversion 1.0.18 1.0.19 1.0.19 Build --- backtrace->cc 1.2.4 1.2.10 1.2.10 Build --- backtrace->libc 0.2.168 0.2.169 0.2.169 Normal cfg(not(all(windows, target_env = "msvc", not(target_vendor = "uwp")))) binary-install->anyhow 1.0.94 1.0.95 1.0.95 Normal --- bip39->serde 1.0.216 1.0.217 1.0.217 Normal --- blocking->futures-lite 2.5.0 2.6.0 2.6.0 Normal --- borsh->borsh-derive 1.5.3 1.5.5 1.5.5 Normal --- borsh-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- borsh-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- borsh-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- bs58->tinyvec 1.8.0 1.8.1 1.8.1 Normal --- bytecheck_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- bytecheck_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- bytesize->serde 1.0.216 1.0.217 1.0.217 Normal --- bzip2->libc 0.2.168 0.2.169 0.2.169 Normal --- bzip2-sys->cc 1.2.4 1.2.10 1.2.10 Build --- bzip2-sys->libc 0.2.168 0.2.169 0.2.169 Normal --- camino->serde 1.0.216 1.0.217 1.0.217 Normal --- cargo-near->clap 4.5.23 4.5.27 4.5.27 Normal --- cargo-near->env_logger 0.11.5 0.11.6 0.11.6 Normal --- cargo-near->log 0.4.22 0.4.25 0.4.25 Normal --- cargo-near->serde_json 1.0.133 1.0.138 1.0.138 Normal --- cargo-platform->serde 1.0.216 1.0.217 1.0.217 Normal --- cargo-util->anyhow 1.0.94 1.0.95 1.0.95 Normal --- cargo-util->libc 0.2.168 0.2.169 0.2.169 Normal --- cargo-util->log 0.4.22 0.4.25 0.4.25 Normal --- cargo-util->tempfile 3.14.0 3.16.0 3.16.0 Normal --- cargo_metadata->semver 1.0.24 1.0.25 1.0.25 Normal --- cargo_metadata->serde 1.0.216 1.0.217 1.0.217 Normal --- cargo_metadata->serde_json 1.0.133 1.0.138 1.0.138 Normal --- cc->jobserver 0.1.32 --- Removed Normal --- cc->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) cc->libc 0.2.168 0.2.169 Removed Normal cfg(unix) cc->shlex 1.3.0 --- Removed Normal --- chrono->android-tzdata 0.1.1 --- Removed Normal cfg(target_os = "android") chrono->iana-time-zone 0.1.61 --- Removed Normal cfg(unix) chrono->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) chrono->js-sys 0.3.76 0.3.77 Removed Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) chrono->num-traits 0.2.19 --- Removed Normal --- chrono->serde 1.0.216 1.0.217 1.0.217 Normal --- chrono->serde 1.0.216 1.0.217 Removed Normal --- chrono->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) chrono->wasm-bindgen 0.2.99 0.2.100 Removed Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) chrono->windows-targets 0.52.6 --- Removed Normal cfg(windows) clap->clap_builder 4.5.23 4.5.27 4.5.27 Normal --- clap->clap_derive 4.5.18 4.5.24 4.5.24 Normal --- clap_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- clap_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- clap_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- commoncrypto-sys->libc 0.2.168 0.2.169 0.2.169 Normal --- console->encode_unicode 0.3.6 1.0.0 1.0.0 Normal cfg(windows) console->lazy_static 1.5.0 Removed Removed Normal --- console->libc 0.2.168 0.2.169 0.2.169 Normal --- console->unicode-width 0.1.14 0.2.0 0.2.0 Normal --- console->windows-sys 0.52.0 0.59.0 0.59.0 Normal cfg(windows) core-foundation->libc 0.2.168 0.2.169 0.2.169 Normal --- cpufeatures->libc 0.2.168 0.2.169 0.2.169 Normal aarch64-linux-android crossterm->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) crypto-hash->openssl 0.10.68 0.10.69 0.10.69 Normal cfg(not(any(target_os = "windows", target_os = "macos", target_os = "ios"))) csv->ryu 1.0.18 1.0.19 1.0.19 Normal --- csv->serde 1.0.216 1.0.217 1.0.217 Normal --- curve25519-dalek->cpufeatures 0.2.16 0.2.17 0.2.17 Normal cfg(target_arch = "x86_64") curve25519-dalek-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- curve25519-dalek-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- curve25519-dalek-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- darling_core->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- darling_core->quote 1.0.37 1.0.38 1.0.38 Normal --- darling_core->syn 2.0.90 2.0.96 2.0.96 Normal --- darling_macro->quote 1.0.37 1.0.38 1.0.38 Normal --- darling_macro->syn 2.0.90 2.0.96 2.0.96 Normal --- deranged->serde 1.0.216 1.0.217 1.0.217 Normal --- derivative->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- derivative->quote 1.0.37 1.0.38 1.0.38 Normal --- derive_arbitrary->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- derive_arbitrary->quote 1.0.37 1.0.38 1.0.38 Normal --- derive_arbitrary->syn 2.0.90 2.0.96 2.0.96 Normal --- derive_more->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- derive_more->quote 1.0.37 1.0.38 1.0.38 Normal --- derive_more->syn 2.0.90 2.0.96 2.0.96 Normal --- dirs-sys->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) dirs-sys-next->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) displaydoc->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- displaydoc->quote 1.0.37 1.0.38 1.0.38 Normal --- displaydoc->syn 2.0.90 2.0.96 2.0.96 Normal --- elementtree->xml-rs 0.8.24 0.8.25 0.8.25 Normal --- enum-map-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- enum-map-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- enum-map-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- enumflags2->enumflags2_derive 0.7.10 0.7.11 0.7.11 Normal --- enumflags2->serde 1.0.216 1.0.217 1.0.217 Normal --- enumflags2_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- enumflags2_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- enumflags2_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- env_filter->log 0.4.22 0.4.25 0.4.25 Normal --- env_logger->env_filter 0.1.2 0.1.3 0.1.3 Normal --- env_logger->log 0.4.22 0.4.25 0.4.25 Normal --- errno->libc 0.2.168 0.2.169 0.2.169 Normal cfg(target_os = "hermit") event-listener->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- event-listener-strategy->event-listener 5.3.1 5.4.0 5.4.0 Normal --- event-listener-strategy->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- filetime->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) flate2->miniz_oxide 0.8.0 0.8.3 0.8.3 Normal --- fs2->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) futures-lite->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- futures-macro->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- futures-macro->quote 1.0.37 1.0.38 1.0.38 Normal --- futures-macro->syn 2.0.90 2.0.96 2.0.96 Normal --- futures-util->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- getrandom->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown")) getrandom->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) getrandom->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown")) goblin->log 0.4.22 0.4.25 0.4.25 Normal --- h2->indexmap 2.7.0 2.7.1 2.7.1 Normal --- h2->tokio 1.42.0 1.43.0 1.43.0 Normal --- hashbrown->serde 1.0.216 1.0.217 1.0.217 Normal --- hermit-abi->libc 0.2.168 0.2.169 0.2.169 Normal --- hex->serde 1.0.216 1.0.217 1.0.217 Normal --- home->windows-sys 0.52.0 0.59.0 0.59.0 Normal cfg(windows) http-body->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- http-body-util->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- hyper->httparse 1.9.5 1.10.0 1.10.0 Normal --- hyper->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- hyper->tokio 1.42.0 1.43.0 1.43.0 Normal --- hyper-rustls->hyper 1.5.1 1.6.0 1.6.0 Normal --- hyper-rustls->rustls 0.23.20 0.23.21 0.23.21 Normal --- hyper-rustls->rustls-pki-types 1.10.1 1.11.0 1.11.0 Normal --- hyper-rustls->tokio 1.42.0 1.43.0 1.43.0 Normal --- hyper-timeout->hyper 0.14.31 0.14.32 0.14.32 Normal --- hyper-timeout->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- hyper-timeout->tokio 1.42.0 1.43.0 1.43.0 Normal --- hyper-tls->hyper 1.5.1 1.6.0 1.6.0 Normal --- hyper-tls->native-tls 0.2.12 0.2.13 0.2.13 Normal --- hyper-tls->tokio 1.42.0 1.43.0 1.43.0 Normal --- hyper-util->hyper 1.5.1 1.6.0 1.6.0 Normal --- hyper-util->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- hyper-util->tokio 1.42.0 1.43.0 1.43.0 Normal --- iana-time-zone->android_system_properties 0.1.5 --- Removed Normal cfg(target_os = "android") iana-time-zone->core-foundation-sys 0.8.7 --- Removed Normal cfg(any(target_os = "macos", target_os = "ios")) iana-time-zone->iana-time-zone-haiku 0.1.2 --- Removed Normal cfg(target_os = "haiku") iana-time-zone->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone->js-sys 0.3.76 0.3.77 Removed Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone->wasm-bindgen 0.2.99 0.2.100 Removed Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone->windows-core 0.52.0 --- Removed Normal cfg(target_os = "windows") iana-time-zone-haiku->cc 1.2.4 1.2.10 1.2.10 Build --- iana-time-zone-haiku->cc 1.2.4 1.2.10 Removed Build --- icu_provider_macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- icu_provider_macros->quote 1.0.37 1.0.38 1.0.38 Normal --- icu_provider_macros->syn 2.0.90 2.0.96 2.0.96 Normal --- indexmap->equivalent 1.0.1 Removed Removed Normal --- indexmap->hashbrown 0.15.2 0.12.3 0.12.3 Normal --- indexmap->serde 1.0.216 1.0.217 1.0.217 Normal --- indicatif->console 0.15.8 0.15.10 0.15.10 Normal --- inquire->bitflags 2.6.0 2.8.0 2.8.0 Normal --- interactive-clap-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- interactive-clap-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- io-lifetimes->libc 0.2.168 0.2.169 0.2.169 Normal cfg(not(windows)) is-terminal->libc 0.2.168 0.2.169 0.2.169 Normal cfg(any(unix, target_os = "wasi")) is-terminal->windows-sys 0.52.0 0.59.0 0.59.0 Normal cfg(windows) jobserver->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) jobserver->libc 0.2.168 0.2.169 Removed Normal cfg(unix) js-sys->once_cell 1.20.2 --- Removed Normal --- js-sys->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal --- js-sys->wasm-bindgen 0.2.99 0.2.100 Removed Normal --- json-patch->serde 1.0.216 1.0.217 1.0.217 Normal --- json-patch->serde_json 1.0.133 1.0.138 1.0.138 Normal --- jsonptr->serde 1.0.216 1.0.217 1.0.217 Normal --- jsonptr->serde_json 1.0.133 1.0.138 1.0.138 Normal --- keccak->cpufeatures 0.2.16 0.2.17 0.2.17 Normal cfg(target_arch = "aarch64") libredox->bitflags 2.6.0 2.8.0 2.8.0 Normal --- libredox->libc 0.2.168 0.2.169 0.2.169 Normal --- linked-hash-map->serde 1.0.216 1.0.217 1.0.217 Normal --- linux-keyutils->bitflags 2.6.0 2.8.0 2.8.0 Normal --- linux-keyutils->libc 0.2.168 0.2.169 0.2.169 Normal --- memmap2->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) mio->libc 0.2.168 0.2.169 0.2.169 Normal cfg(target_os = "hermit") mio->libc 0.2.168 0.2.169 0.2.169 Normal cfg(target_os = "wasi") mio->log 0.4.22 0.4.25 0.4.25 Normal --- native-tls->libc 0.2.168 0.2.169 0.2.169 Normal cfg(target_vendor = "apple") native-tls->log 0.4.22 0.4.25 0.4.25 Normal cfg(not(any(target_os = "windows", target_vendor = "apple"))) native-tls->openssl 0.10.68 0.10.69 0.10.69 Normal cfg(not(any(target_os = "windows", target_vendor = "apple"))) native-tls->openssl-probe 0.1.5 0.1.6 0.1.6 Normal cfg(not(any(target_os = "windows", target_vendor = "apple"))) native-tls->security-framework-sys 2.12.1 2.14.0 2.14.0 Normal cfg(target_vendor = "apple") native-tls->tempfile 3.14.0 3.16.0 3.16.0 Development --- near-abi->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-abi->semver 1.0.24 1.0.25 1.0.25 Normal --- near-abi->serde 1.0.216 1.0.217 1.0.217 Normal --- near-abi-client->anyhow 1.0.94 1.0.95 1.0.95 Normal --- near-abi-client->quote 1.0.37 1.0.38 1.0.38 Normal --- near-abi-client-impl->anyhow 1.0.94 1.0.95 1.0.95 Normal --- near-abi-client-impl->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- near-abi-client-impl->quote 1.0.37 1.0.38 1.0.38 Normal --- near-abi-client-impl->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-account-id->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-account-id->serde 1.0.216 1.0.217 1.0.217 Normal --- near-async->serde 1.0.216 1.0.217 1.0.217 Normal --- near-async->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-async->tokio 1.42.0 1.43.0 1.43.0 Normal --- near-async-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- near-async-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- near-async-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- near-chain-configs->anyhow 1.0.94 1.0.95 1.0.95 Normal --- near-chain-configs->serde 1.0.216 1.0.217 1.0.217 Normal --- near-chain-configs->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-cli-rs->clap 4.5.23 4.5.27 4.5.27 Normal --- near-cli-rs->indicatif 0.17.9 0.17.11 0.17.11 Normal --- near-cli-rs->open 5.3.1 5.3.2 5.3.2 Normal --- near-cli-rs->openssl 0.10.68 0.10.69 0.10.69 Normal --- near-cli-rs->reqwest 0.12.9 0.12.12 0.12.12 Normal --- near-cli-rs->serde 1.0.216 1.0.217 1.0.217 Normal --- near-cli-rs->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-cli-rs->tokio 1.42.0 1.43.0 1.43.0 Normal --- near-cli-rs->tracing-indicatif 0.3.8 0.3.9 0.3.9 Normal --- near-config-utils->anyhow 1.0.94 1.0.95 1.0.95 Normal --- near-crypto->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-crypto->serde 1.0.216 1.0.217 1.0.217 Normal --- near-crypto->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-gas->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-gas->serde 1.0.216 1.0.217 1.0.217 Normal --- near-jsonrpc-client->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-jsonrpc-client->log 0.4.22 0.4.25 0.4.25 Normal --- near-jsonrpc-client->reqwest 0.12.9 0.12.12 0.12.12 Normal --- near-jsonrpc-client->serde 1.0.216 1.0.217 1.0.217 Normal --- near-jsonrpc-client->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-jsonrpc-primitives->serde 1.0.216 1.0.217 1.0.217 Normal --- near-jsonrpc-primitives->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-o11y->clap 4.5.23 4.5.27 4.5.27 Normal --- near-o11y->serde 1.0.216 1.0.217 1.0.217 Normal --- near-o11y->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-o11y->tokio 1.42.0 1.43.0 1.43.0 Normal --- near-parameters->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-parameters->serde 1.0.216 1.0.217 1.0.217 Normal --- near-performance-metrics->libc 0.2.168 0.2.169 0.2.169 Normal --- near-performance-metrics->tokio 1.42.0 1.43.0 1.43.0 Normal --- near-primitives->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-primitives->serde 1.0.216 1.0.217 1.0.217 Normal --- near-primitives->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-primitives->serde_with 3.11.0 3.12.0 3.12.0 Normal --- near-primitives-core->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-primitives-core->serde 1.0.216 1.0.217 1.0.217 Normal --- near-rpc-error-core->quote 1.0.37 1.0.38 1.0.38 Normal --- near-rpc-error-core->serde 1.0.216 1.0.217 1.0.217 Normal --- near-rpc-error-core->syn 2.0.90 2.0.96 2.0.96 Normal --- near-rpc-error-macro->serde 1.0.216 1.0.217 1.0.217 Normal --- near-rpc-error-macro->syn 2.0.90 2.0.96 2.0.96 Normal --- near-sandbox-utils 0.12.0 0.13.0 0.13.0 Normal --- near-sandbox-utils->anyhow 1.0.94 1.0.95 1.0.95 Normal --- near-sandbox-utils->chrono 0.4.39 --- Removed Normal --- near-sandbox-utils->home 0.5.9 0.5.11 0.5.11 Normal --- near-sandbox-utils->tokio 1.42.0 1.43.0 1.43.0 Normal --- near-sdk 5.6.0 5.7.0 5.7.0 Normal --- near-sdk->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-sdk->near-sdk-macros 5.6.0 5.7.0 5.7.0 Normal --- near-sdk->serde 1.0.216 1.0.217 1.0.217 Normal --- near-sdk->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-sdk-macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- near-sdk-macros->quote 1.0.37 1.0.38 1.0.38 Normal --- near-sdk-macros->serde 1.0.216 1.0.217 1.0.217 Normal --- near-sdk-macros->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-sdk-macros->syn 2.0.90 2.0.96 2.0.96 Normal --- near-socialdb-client->serde 1.0.216 1.0.217 1.0.217 Normal --- near-socialdb-client->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-time->serde 1.0.216 1.0.217 1.0.217 Normal --- near-time->tokio 1.42.0 1.43.0 1.43.0 Normal --- near-token->borsh 1.5.3 1.5.5 1.5.5 Normal --- near-token->serde 1.0.216 1.0.217 1.0.217 Normal --- near-workspaces->async-trait 0.1.83 0.1.85 0.1.85 Normal --- near-workspaces->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) near-workspaces->near-sandbox-utils 0.8.0 --- 0.9.0 Build --- near-workspaces->near-sandbox-utils 0.9.0 0.8.0 --- Normal --- near-workspaces->reqwest 0.12.9 0.12.12 0.12.12 Normal --- near-workspaces->serde 1.0.216 1.0.217 1.0.217 Normal --- near-workspaces->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near-workspaces->tempfile 3.14.0 3.16.0 3.16.0 Normal --- near-workspaces->tokio 1.42.0 1.43.0 1.43.0 Normal --- near_schemafy_core->serde 1.0.216 1.0.217 1.0.217 Normal --- near_schemafy_core->serde_json 1.0.133 1.0.138 1.0.138 Normal --- near_schemafy_lib->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- near_schemafy_lib->quote 1.0.37 1.0.38 1.0.38 Normal --- near_schemafy_lib->serde 1.0.216 1.0.217 1.0.217 Normal --- near_schemafy_lib->serde_derive 1.0.216 1.0.217 1.0.217 Normal --- near_schemafy_lib->serde_json 1.0.133 1.0.138 1.0.138 Normal --- nix->libc 0.2.168 0.2.169 0.2.169 Normal --- num-rational->serde 1.0.216 1.0.217 1.0.217 Normal --- num-traits->autocfg 1.4.0 --- Removed Build --- num-traits->libm 0.2.11 --- Removed Normal --- num_cpus->libc 0.2.168 0.2.169 0.2.169 Normal cfg(not(windows)) open->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) openssl->bitflags 2.6.0 2.8.0 2.8.0 Normal --- openssl->libc 0.2.168 0.2.169 0.2.169 Normal --- openssl-macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- openssl-macros->quote 1.0.37 1.0.38 1.0.38 Normal --- openssl-macros->syn 2.0.90 2.0.96 2.0.96 Normal --- openssl-src->cc 1.2.4 1.2.10 1.2.10 Normal --- openssl-sys->cc 1.2.4 1.2.10 1.2.10 Build --- openssl-sys->libc 0.2.168 0.2.169 0.2.169 Normal --- opentelemetry->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", not(target_os = "wasi"))) opentelemetry->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- opentelemetry-otlp->async-trait 0.1.83 0.1.85 0.1.85 Normal --- opentelemetry-otlp->tokio 1.42.0 1.43.0 1.43.0 Normal --- opentelemetry_sdk->async-trait 0.1.83 0.1.85 0.1.85 Normal --- opentelemetry_sdk->glob 0.3.1 0.3.2 0.3.2 Normal --- opentelemetry_sdk->ordered-float 4.5.0 4.6.0 4.6.0 Normal --- opentelemetry_sdk->tokio 1.42.0 1.43.0 1.43.0 Normal --- ordered-stream->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- parking_lot_core->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) pin-project->pin-project-internal 1.1.7 1.1.8 1.1.8 Normal --- pin-project-internal->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- pin-project-internal->quote 1.0.37 1.0.38 1.0.38 Normal --- pin-project-internal->syn 2.0.90 2.0.96 2.0.96 Normal --- polling->libc 0.2.168 0.2.169 0.2.169 Normal cfg(any(unix, target_os = "fuchsia", target_os = "vxworks")) polling->log 0.4.22 0.4.25 0.4.25 Normal --- polling->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal cfg(windows) polling->rustix 0.38.42 0.38.44 0.38.44 Normal cfg(any(unix, target_os = "fuchsia", target_os = "vxworks")) prettyplease->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- prettytable->is-terminal 0.4.13 0.4.15 0.4.15 Normal --- proc-macro-error->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- proc-macro-error->quote 1.0.37 1.0.38 1.0.38 Normal --- proc-macro-error-attr->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- proc-macro-error-attr->quote 1.0.37 1.0.38 1.0.38 Normal --- proc-macro2->unicode-ident 1.0.14 1.0.16 1.0.16 Normal --- proc-macro2->unicode-ident 1.0.14 1.0.16 Removed Normal --- prost-derive->anyhow 1.0.94 1.0.95 1.0.95 Normal --- prost-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- prost-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- prost-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- ptr_meta_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- ptr_meta_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- quote->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- quote->proc-macro2 1.0.92 1.0.93 Removed Normal --- rand->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) redox_syscall->bitflags 2.6.0 2.8.0 2.8.0 Normal --- reqwest->hyper 1.5.1 1.6.0 1.6.0 Normal cfg(not(target_arch = "wasm32")) reqwest->hyper-rustls 0.27.3 0.27.5 0.27.5 Normal cfg(not(target_arch = "wasm32")) reqwest->ipnet 2.10.1 2.11.0 2.11.0 Normal cfg(not(target_arch = "wasm32")) reqwest->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(target_arch = "wasm32") reqwest->log 0.4.22 0.4.25 0.4.25 Normal cfg(not(target_arch = "wasm32")) reqwest->native-tls 0.2.12 0.2.13 0.2.13 Normal cfg(not(target_arch = "wasm32")) reqwest->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal cfg(not(target_arch = "wasm32")) reqwest->serde 1.0.216 1.0.217 1.0.217 Normal --- reqwest->serde_json 1.0.133 1.0.138 1.0.138 Normal --- reqwest->tokio 1.42.0 1.43.0 1.43.0 Normal cfg(not(target_arch = "wasm32")) reqwest->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(target_arch = "wasm32") reqwest->wasm-bindgen-futures 0.4.49 0.4.50 0.4.50 Normal cfg(target_arch = "wasm32") reqwest->web-sys 0.3.76 0.3.77 0.3.77 Normal cfg(target_arch = "wasm32") ring->cc 1.2.4 1.2.10 1.2.10 Build --- ring->libc 0.2.168 0.2.169 0.2.169 Normal cfg(all(any(target_os = "android", target_os = "linux"), any(target_arch = "aarch64", target_arch = "arm"))) rkyv->tinyvec 1.8.0 1.8.1 1.8.1 Normal --- rkyv->uuid 1.11.0 1.12.1 1.12.1 Normal --- rkyv_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- rkyv_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- rust_decimal->borsh 1.5.3 1.5.5 1.5.5 Normal --- rust_decimal->serde 1.0.216 1.0.217 1.0.217 Normal --- rust_decimal->serde_json 1.0.133 1.0.138 1.0.138 Normal --- rustc_version->semver 1.0.24 1.0.25 1.0.25 Normal --- rustix->bitflags 2.6.0 2.8.0 2.8.0 Normal --- rustix->libc 0.2.168 0.2.169 0.2.169 Development --- rustix->linux-raw-sys 0.4.14 0.4.15 0.4.15 Normal cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_endian = "little", target_arch = "s390x"), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))) rustls->log 0.4.22 0.4.25 0.4.25 Normal --- rustls->rustls-pki-types 1.10.1 1.11.0 1.11.0 Normal --- rustls-pemfile->rustls-pki-types 1.10.1 1.11.0 1.11.0 Normal --- rustls-webpki->rustls-pki-types 1.10.1 1.11.0 1.11.0 Normal --- schemars->serde 1.0.216 1.0.217 1.0.217 Normal --- schemars->serde_json 1.0.133 1.0.138 1.0.138 Normal --- schemars_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- schemars_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- schemars_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- scroll_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- scroll_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- scroll_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- secp256k1-sys->cc 1.2.4 1.2.10 1.2.10 Build --- secret-service->serde 1.0.216 1.0.217 1.0.217 Normal --- security-framework->bitflags 2.6.0 2.8.0 2.8.0 Normal --- security-framework->libc 0.2.168 0.2.169 0.2.169 Normal --- security-framework->security-framework-sys 2.12.1 2.14.0 2.14.0 Normal --- security-framework-sys->libc 0.2.168 0.2.169 0.2.169 Normal --- semver->serde 1.0.216 1.0.217 1.0.217 Normal --- serde->serde_derive 1.0.216 1.0.217 1.0.217 Normal --- serde->serde_derive 1.0.216 1.0.217 Removed Normal --- serde_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde_derive->proc-macro2 1.0.92 1.0.93 Removed Normal --- serde_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- serde_derive->quote 1.0.37 1.0.38 Removed Normal --- serde_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- serde_derive->syn 2.0.90 2.0.96 Removed Normal --- serde_derive_internals->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde_derive_internals->quote 1.0.37 1.0.38 1.0.38 Normal --- serde_derive_internals->syn 2.0.90 2.0.96 2.0.96 Normal --- serde_json 1.0.133 1.0.138 1.0.138 Normal --- serde_json->ryu 1.0.18 1.0.19 1.0.19 Normal --- serde_json->serde 1.0.216 1.0.217 1.0.217 Normal --- serde_repr->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde_repr->quote 1.0.37 1.0.38 1.0.38 Normal --- serde_repr->syn 2.0.90 2.0.96 2.0.96 Normal --- serde_spanned->serde 1.0.216 1.0.217 1.0.217 Normal --- serde_urlencoded->ryu 1.0.18 1.0.19 1.0.19 Normal --- serde_urlencoded->serde 1.0.216 1.0.217 1.0.217 Normal --- serde_with->indexmap 2.7.0 1.9.3 1.9.3 Normal --- serde_with->serde 1.0.216 1.0.217 1.0.217 Normal --- serde_with->serde_derive 1.0.216 1.0.217 1.0.217 Normal --- serde_with->serde_json 1.0.133 1.0.138 1.0.138 Normal --- serde_with->serde_with_macros 3.11.0 3.12.0 3.12.0 Normal --- serde_with_macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde_with_macros->quote 1.0.37 1.0.38 1.0.38 Normal --- serde_with_macros->syn 2.0.90 2.0.96 2.0.96 Normal --- serde_yaml->indexmap 2.7.0 2.7.1 2.7.1 Normal --- serde_yaml->ryu 1.0.18 1.0.19 1.0.19 Normal --- serde_yaml->serde 1.0.216 1.0.217 1.0.217 Normal --- sha1->cpufeatures 0.2.16 0.2.17 0.2.17 Normal cfg(any(target_arch = "aarch64", target_arch = "x86", target_arch = "x86_64")) sha2->cpufeatures 0.2.16 0.2.17 0.2.17 Normal cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86")) signal-hook->libc 0.2.168 0.2.169 0.2.169 Normal --- signal-hook-mio->libc 0.2.168 0.2.169 0.2.169 Normal --- signal-hook-registry->libc 0.2.168 0.2.169 0.2.169 Normal --- smart-default->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- smart-default->quote 1.0.37 1.0.38 1.0.38 Normal --- smart-default->syn 2.0.90 2.0.96 2.0.96 Normal --- socket2->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) string_cache->serde 1.0.216 1.0.217 1.0.217 Normal --- strum_macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- strum_macros->quote 1.0.37 1.0.38 1.0.38 Normal --- strum_macros->rustversion 1.0.18 1.0.19 1.0.19 Normal --- strum_macros->syn 2.0.90 2.0.96 2.0.96 Normal --- symbolic-debuginfo->serde 1.0.216 1.0.217 1.0.217 Normal --- symbolic-debuginfo->serde_json 1.0.133 1.0.138 1.0.138 Normal --- syn->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- syn->proc-macro2 1.0.92 1.0.93 Removed Normal --- syn->quote 1.0.37 1.0.38 1.0.38 Normal --- syn->quote 1.0.37 1.0.38 Removed Normal --- syn->unicode-ident 1.0.14 1.0.16 1.0.16 Normal --- syn->unicode-ident 1.0.14 1.0.16 Removed Normal --- synstructure->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- synstructure->quote 1.0.37 1.0.38 1.0.38 Normal --- synstructure->syn 2.0.90 2.0.96 2.0.96 Normal --- system-configuration->bitflags 2.6.0 2.8.0 2.8.0 Normal --- system-configuration-sys->libc 0.2.168 0.2.169 0.2.169 Normal --- tar->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) tar->xattr 1.3.1 1.4.0 1.4.0 Normal cfg(unix) tempfile->rustix 0.38.42 0.38.44 0.38.44 Normal cfg(any(unix, target_os = "wasi")) term->rustversion 1.0.18 1.0.19 1.0.19 Normal cfg(windows) thiserror-impl->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- thiserror-impl->quote 1.0.37 1.0.38 1.0.38 Normal --- thiserror-impl->syn 2.0.90 2.0.96 2.0.96 Normal --- time->serde 1.0.216 1.0.217 1.0.217 Normal --- tokio 1.42.0 1.43.0 1.43.0 Normal --- tokio->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) tokio->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- tokio->tokio-macros 2.4.0 2.5.0 2.5.0 Normal --- tokio-io-timeout->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- tokio-io-timeout->tokio 1.42.0 1.43.0 1.43.0 Normal --- tokio-macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- tokio-macros->quote 1.0.37 1.0.38 1.0.38 Normal --- tokio-macros->syn 2.0.90 2.0.96 2.0.96 Normal --- tokio-native-tls->native-tls 0.2.12 0.2.13 0.2.13 Normal --- tokio-native-tls->tokio 1.42.0 1.43.0 1.43.0 Normal --- tokio-retry->pin-project 1.1.7 1.1.8 1.1.8 Normal --- tokio-retry->tokio 1.42.0 1.43.0 1.43.0 Normal --- tokio-rustls->rustls 0.23.20 0.23.21 0.23.21 Normal --- tokio-rustls->tokio 1.42.0 1.43.0 1.43.0 Normal --- tokio-stream->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- tokio-stream->tokio 1.42.0 1.43.0 1.43.0 Normal --- tokio-util->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- tokio-util->tokio 1.42.0 1.43.0 1.43.0 Normal --- toml->serde 1.0.216 1.0.217 1.0.217 Normal --- toml_datetime->serde 1.0.216 1.0.217 1.0.217 Normal --- toml_edit->indexmap 2.7.0 2.7.1 2.7.1 Normal --- toml_edit->serde 1.0.216 1.0.217 1.0.217 Normal --- toml_edit->winnow 0.6.20 0.6.25 0.6.25 Normal --- tonic->async-trait 0.1.83 0.1.85 0.1.85 Normal --- tonic->hyper 0.14.31 0.14.32 0.14.32 Normal --- tonic->pin-project 1.1.7 1.1.8 1.1.8 Normal --- tonic->tokio 1.42.0 1.43.0 1.43.0 Normal --- tower->pin-project 1.1.7 1.1.8 1.1.8 Normal --- tower->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- tower->tokio 1.42.0 1.43.0 1.43.0 Normal --- tracing->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- tracing-attributes->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- tracing-attributes->quote 1.0.37 1.0.38 1.0.38 Normal --- tracing-attributes->syn 2.0.90 2.0.96 2.0.96 Normal --- tracing-core->valuable 0.1.0 0.1.1 0.1.1 Normal cfg(tracing_unstable) tracing-indicatif->indicatif 0.17.9 0.17.11 0.17.11 Normal --- tracing-log->log 0.4.22 0.4.25 0.4.25 Normal --- tracing-opentelemetry->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", not(target_os = "wasi"))) uds_windows->tempfile 3.14.0 3.16.0 3.16.0 Normal cfg(windows) uint->crunchy 0.2.2 0.2.3 0.2.3 Normal --- unicode-normalization->tinyvec 1.8.0 1.8.1 1.8.1 Normal --- ureq->log 0.4.22 0.4.25 0.4.25 Normal --- ureq->rustls 0.23.20 0.23.21 0.23.21 Normal --- ureq->rustls-pki-types 1.10.1 1.11.0 1.11.0 Normal --- url->serde 1.0.216 1.0.217 1.0.217 Normal --- vt100->log 0.4.22 0.4.25 0.4.25 Normal --- vte_generate_state_changes->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- vte_generate_state_changes->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen->cfg-if 1.0.0 --- Removed Normal --- wasm-bindgen->once_cell 1.20.2 --- Removed Normal --- wasm-bindgen->wasm-bindgen-macro 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen->wasm-bindgen-macro 0.2.99 0.2.100 Removed Normal --- wasm-bindgen-backend->bumpalo 3.16.0 3.17.0 3.17.0 Normal --- wasm-bindgen-backend->bumpalo 3.16.0 3.17.0 Removed Normal --- wasm-bindgen-backend->log 0.4.22 0.4.25 0.4.25 Normal --- wasm-bindgen-backend->log 0.4.22 0.4.25 Removed Normal --- wasm-bindgen-backend->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- wasm-bindgen-backend->proc-macro2 1.0.92 1.0.93 Removed Normal --- wasm-bindgen-backend->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-backend->quote 1.0.37 1.0.38 Removed Normal --- wasm-bindgen-backend->syn 2.0.90 2.0.96 2.0.96 Normal --- wasm-bindgen-backend->syn 2.0.90 2.0.96 Removed Normal --- wasm-bindgen-backend->wasm-bindgen-shared 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-backend->wasm-bindgen-shared 0.2.99 0.2.100 Removed Normal --- wasm-bindgen-futures->js-sys 0.3.76 0.3.77 0.3.77 Normal --- wasm-bindgen-futures->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-futures->web-sys 0.3.76 0.3.77 0.3.77 Normal cfg(target_feature = "atomics") wasm-bindgen-macro->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-macro->quote 1.0.37 1.0.38 Removed Normal --- wasm-bindgen-macro->wasm-bindgen-macro-support 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro->wasm-bindgen-macro-support 0.2.99 0.2.100 Removed Normal --- wasm-bindgen-macro-support->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- wasm-bindgen-macro-support->proc-macro2 1.0.92 1.0.93 Removed Normal --- wasm-bindgen-macro-support->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-macro-support->quote 1.0.37 1.0.38 Removed Normal --- wasm-bindgen-macro-support->syn 2.0.90 2.0.96 2.0.96 Normal --- wasm-bindgen-macro-support->syn 2.0.90 2.0.96 Removed Normal --- wasm-bindgen-macro-support->wasm-bindgen-backend 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro-support->wasm-bindgen-backend 0.2.99 0.2.100 Removed Normal --- wasm-bindgen-macro-support->wasm-bindgen-shared 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro-support->wasm-bindgen-shared 0.2.99 0.2.100 Removed Normal --- wasmparser->bitflags 2.6.0 2.8.0 2.8.0 Normal --- wasmparser->indexmap 2.7.0 2.7.1 2.7.1 Normal --- wasmparser->semver 1.0.24 1.0.25 1.0.25 Normal --- wasmparser->serde 1.0.216 1.0.217 1.0.217 Normal --- web-sys->js-sys 0.3.76 0.3.77 0.3.77 Normal --- web-sys->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal --- web-time->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_family = "wasm", target_os = "unknown")) web-time->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_family = "wasm", target_os = "unknown")) webpki-roots->rustls-pki-types 1.10.1 1.11.0 1.11.0 Normal --- wee_alloc->libc 0.2.168 0.2.169 0.2.169 Normal cfg(all(unix, not(target_arch = "wasm32"))) windows-core->windows-targets 0.52.6 --- Removed Normal --- windows-targets->windows_aarch64_gnullvm 0.52.6 --- Removed Normal aarch64-pc-windows-gnullvm windows-targets->windows_aarch64_msvc 0.52.6 --- Removed Normal cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib))) windows-targets->windows_i686_gnu 0.52.6 --- Removed Normal cfg(all(target_arch = "x86", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) windows-targets->windows_i686_gnullvm 0.52.6 --- Removed Normal i686-pc-windows-gnullvm windows-targets->windows_i686_msvc 0.52.6 --- Removed Normal cfg(all(target_arch = "x86", target_env = "msvc", not(windows_raw_dylib))) windows-targets->windows_x86_64_gnu 0.52.6 --- Removed Normal cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) windows-targets->windows_x86_64_gnullvm 0.52.6 --- Removed Normal x86_64-pc-windows-gnullvm windows-targets->windows_x86_64_msvc 0.52.6 --- Removed Normal cfg(all(any(target_arch = "x86_64", target_arch = "arm64ec"), target_env = "msvc", not(windows_raw_dylib))) xattr->libc 0.2.168 0.2.169 0.2.169 Normal cfg(any(target_os = "freebsd", target_os = "netbsd")) xattr->linux-raw-sys 0.4.14 0.4.15 0.4.15 Normal cfg(target_os = "linux") xattr->rustix 0.38.42 0.38.44 0.38.44 Normal --- xdg-home->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) yoke->serde 1.0.216 1.0.217 1.0.217 Normal --- yoke-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- yoke-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- yoke-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- zbus->async-trait 0.1.83 0.1.85 0.1.85 Normal --- zbus->enumflags2 0.7.10 0.7.11 0.7.11 Normal --- zbus->serde 1.0.216 1.0.217 1.0.217 Normal --- zbus_macros->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- zbus_macros->quote 1.0.37 1.0.38 1.0.38 Normal --- zbus_names->serde 1.0.216 1.0.217 1.0.217 Normal --- zerocopy-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- zerocopy-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- zerocopy-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- zerofrom-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- zerofrom-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- zerofrom-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- zerovec-derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- zerovec-derive->quote 1.0.37 1.0.38 1.0.38 Normal --- zerovec-derive->syn 2.0.90 2.0.96 2.0.96 Normal --- zstd-safe->libc 0.2.168 0.2.169 0.2.169 Normal --- zstd-sys->cc 1.2.4 1.2.10 1.2.10 Build --- zvariant->enumflags2 0.7.10 0.7.11 0.7.11 Normal --- zvariant->libc 0.2.168 0.2.169 0.2.169 Normal --- zvariant->serde 1.0.216 1.0.217 1.0.217 Normal --- zvariant_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- zvariant_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- zvariant_utils->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- zvariant_utils->quote 1.0.37 1.0.38 1.0.38 Normal --- CheckToml / toml: /home/runner/work/polyglot/polyglot/apps/plot/Cargo.toml Name Project Compat Latest Kind Platform ---- ------- ------ ------ ---- -------- android_system_properties->libc 0.2.168 0.2.169 0.2.169 Normal --- cc->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) chrono->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) chrono->serde 1.0.216 1.0.217 1.0.217 Normal --- chrono->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))) cpufeatures->libc 0.2.168 0.2.169 0.2.169 Normal aarch64-linux-android fable_library_rust->uuid 1.11.0 1.12.1 1.12.1 Normal --- futures-macro->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- futures-macro->quote 1.0.37 1.0.38 1.0.38 Normal --- futures-macro->syn 2.0.90 2.0.96 2.0.96 Normal --- futures-util->pin-project-lite 0.2.15 0.2.16 0.2.16 Normal --- getrandom->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown")) getrandom->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) getrandom->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown")) iana-time-zone->js-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_arch = "wasm32", target_os = "unknown")) iana-time-zone-haiku->cc 1.2.4 1.2.10 1.2.10 Build --- jobserver->libc 0.2.168 0.2.169 0.2.169 Normal cfg(unix) js-sys->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal --- num_cpus->libc 0.2.168 0.2.169 0.2.169 Normal cfg(not(windows)) plotters->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal cfg(all(target_arch = "wasm32", not(target_os = "wasi"))) plotters->web-sys 0.3.76 0.3.77 0.3.77 Normal cfg(all(target_arch = "wasm32", not(target_os = "wasi"))) proc-macro2->unicode-ident 1.0.14 1.0.16 1.0.16 Normal --- quote->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde->serde_derive 1.0.216 1.0.217 1.0.217 Normal --- serde_derive->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- serde_derive->quote 1.0.37 1.0.38 1.0.38 Normal --- serde_derive->syn 2.0.90 2.0.96 2.0.96 Normal --- serde_json 1.0.133 1.0.138 1.0.138 Normal --- serde_json->ryu 1.0.18 1.0.19 1.0.19 Normal --- serde_json->serde 1.0.216 1.0.217 1.0.217 Normal --- sha2->cpufeatures 0.2.16 0.2.17 0.2.17 Normal cfg(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86")) syn->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- syn->quote 1.0.37 1.0.38 1.0.38 Normal --- syn->unicode-ident 1.0.14 1.0.16 1.0.16 Normal --- wasm-bindgen->wasm-bindgen-macro 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-backend->bumpalo 3.16.0 3.17.0 3.17.0 Normal --- wasm-bindgen-backend->log 0.4.22 0.4.25 0.4.25 Normal --- wasm-bindgen-backend->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- wasm-bindgen-backend->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-backend->syn 2.0.90 2.0.96 2.0.96 Normal --- wasm-bindgen-backend->wasm-bindgen-shared 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-macro->wasm-bindgen-macro-support 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro-support->proc-macro2 1.0.92 1.0.93 1.0.93 Normal --- wasm-bindgen-macro-support->quote 1.0.37 1.0.38 1.0.38 Normal --- wasm-bindgen-macro-support->syn 2.0.90 2.0.96 2.0.96 Normal --- wasm-bindgen-macro-support->wasm-bindgen-backend 0.2.99 0.2.100 0.2.100 Normal --- wasm-bindgen-macro-support->wasm-bindgen-shared 0.2.99 0.2.100 0.2.100 Normal --- web-sys->js-sys 0.3.76 0.3.77 0.3.77 Normal --- web-sys->wasm-bindgen 0.2.99 0.2.100 0.2.100 Normal --- CheckJson / json: /home/runner/work/polyglot/polyglot $ npm-check-updates --target greatest Using bun Checking /home/runner/work/polyglot/polyglot/package.json @types/node ~22.10 → ~22.12 Run ncu --target greatest -u to upgrade package.json CheckJson / json: /home/runner/work/polyglot/polyglot/apps/ipfs $ npm-check-updates --target greatest Using bun Checking /home/runner/work/polyglot/polyglot/apps/ipfs/package.json @types/node ~22.10 → ~22.12 Run ncu --target greatest -u to upgrade package.json CheckJson / json: /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension $ npm-check-updates --target greatest Using bun Checking /home/runner/work/polyglot/polyglot/apps/spiral/temp/extension/package.json @playwright/test 1.44.0 → 1.51.0-alpha-2025-01-29 @types/chrome ~0.0.268 → ~0.0.299 Run ncu --target greatest -u to upgrade package.json CheckJson / json: /home/runner/work/polyglot/polyglot/apps/spiral/vscode $ npm-check-updates --target greatest Using bun Checking /home/runner/work/polyglot/polyglot/apps/spiral/vscode/package.json @types/node ~22.10 → ~22.12 Run ncu --target greatest -u to upgrade package.json CheckJson / json: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/VS Code Plugin $ npm-check-updates --target greatest Checking /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language/VS Code Plugin/package.json @microsoft/signalr 8.0.0 → 8.0.7 @types/node ~22.10 → ~22.12 @types/vscode ~1.95 → ~1.96 Run ncu --target greatest -u to upgrade package.json