added day 11 and updated all days with string change
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 11 Dec 2020 14:25:57 +0000 (08:25 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 11 Dec 2020 14:25:57 +0000 (08:25 -0600)
13 files changed:
day1.onyx
day10.onyx
day11.onyx [new file with mode: 0644]
day2.onyx
day3.onyx
day4.onyx
day5.onyx
day6.onyx
day7.onyx
day8.onyx
day9.onyx
input/day11.txt [new file with mode: 0644]
out.wasm

index 8c7f56f1161adb74cda5b5c13816e2281a0524b9..f54127f63f61131166e612b6b3aed9c0ce013148 100644 (file)
--- a/day1.onyx
+++ b/day1.onyx
@@ -4,7 +4,7 @@ package main
 
 use package core
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day1.txt");
     contents_orig := contents;
     defer cfree(contents_orig.data);
@@ -15,7 +15,7 @@ main :: proc (args: [] cstring) {
 
     while num := 1; num > 0 {
         // This sets num to be 0 if there is no number
-        str.read_u32(^contents, ^num); 
+        string.read_u32(^contents, ^num); 
         if num != 0 do array.push(^nums, num);
     }
 
index a2181d059866b32e408f4f7a3b5288ae572a6d48..53498135a518ba7120c795cec6320ee35943db90 100644 (file)
@@ -1,7 +1,7 @@
 #include_file "core/std/wasi"
 
 use package core
-use package core.str.reader as reader
+use package core.string.reader as reader
 
 count_ending_paths :: proc (nums: [..] u32) -> u64 {
     tally: [..] u64;
@@ -24,7 +24,7 @@ count_ending_paths :: proc (nums: [..] u32) -> u64 {
     return tally[0];
 }
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day10.txt");
     defer cfree(contents.data);
 
diff --git a/day11.onyx b/day11.onyx
new file mode 100644 (file)
index 0000000..b637a5c
--- /dev/null
@@ -0,0 +1,107 @@
+#include_file "core/std/wasi"
+
+use package core
+use package core.string.reader as reader
+
+GameOfSeats :: struct {
+    width  : u32;
+    height : u32;
+    seats  : [..] SeatState;
+    temp   : [..] SeatState;
+}
+
+SeatState :: enum (u8) { OOB; Floor; Empty; Occupied; }
+
+gos_get_seat :: proc (use gos: ^GameOfSeats, x: i32, y: i32) -> SeatState {
+    if x < 0 || y < 0 || x >= width || y >= height do return SeatState.OOB;
+    return seats[x + y * width];
+}
+
+gos_set_temp :: proc (use gos: ^GameOfSeats, x: i32, y: i32, state: SeatState) {
+    if x < 0 || y < 0 || x >= width || y >= height do return;
+    temp[x + y * width] = state;
+}
+
+gos_neighbors :: proc (use gos: ^GameOfSeats, x: i32, y: i32, state := SeatState.Occupied) -> u32 {
+    count := 0;
+
+    for dy: -1 .. 2 {
+        for dx: -1 .. 2 {
+            if dy == 0 && dx == 0 do continue;
+
+            t := 1;
+            seat := gos_get_seat(gos, x + dx, y + dy);
+            while seat == SeatState.Floor {
+                t += 1;
+                seat = gos_get_seat(gos, x + dx * t, y + dy * t);
+            }
+
+            if seat == state do count += 1;
+        }
+    }
+
+    return count;
+}
+
+gos_iter :: proc (use gos: ^GameOfSeats) -> bool {
+    for i: 0 .. seats.count do temp[i] = seats[i];
+
+    changed := false;
+    for y: 0 .. height {
+        for x: 0 .. width {
+            occ_neighbors := gos_neighbors(gos, x, y);
+
+            switch gos_get_seat(gos, x, y) {
+                case SeatState.Empty do if occ_neighbors == 0 {
+                    gos_set_temp(gos, x, y, SeatState.Occupied);
+                    changed = true;
+                }
+
+                case SeatState.Occupied do if occ_neighbors >= 5 {
+                    gos_set_temp(gos, x, y, SeatState.Empty);
+                    changed = true;
+                }
+            }
+        }
+    }
+
+    for i: 0 .. seats.count do seats[i] = temp[i];
+
+    return changed;
+}
+
+main :: proc (args: [] cstr) {
+    contents := file.get_contents("input/day11.txt");
+    defer cfree(contents.data);
+
+    file := reader.make(contents);
+
+    gos : GameOfSeats;
+    array.init(^gos.seats, 32);
+    defer array.free(^gos.seats);
+
+    gos.height = 0;
+
+    while !reader.empty(^file) {
+        line := reader.read_line(^file);
+        for ch: line do switch ch {
+            case #char "." do array.push(^gos.seats, SeatState.Floor);
+            case #char "L" do array.push(^gos.seats, SeatState.Empty);
+            case #char "#" do array.push(^gos.seats, SeatState.Occupied);
+        }
+
+        gos.width = line.count;
+        gos.height += 1;
+    }
+
+    array.init(^gos.temp, gos.seats.count);
+    defer array.free(^gos.temp);
+
+    while gos_iter(^gos) ---
+
+    occupied := 0;
+    for s: gos.seats do if s == SeatState.Occupied do occupied += 1;
+    
+    printf("Occupied: %i\n", occupied);
+}
+
index daa3e802e738d8adaededb1ccf847b9357f2ef74..8eea3de2b546419aaf04fbfdcdc69feb2ca71e9a 100644 (file)
--- a/day2.onyx
+++ b/day2.onyx
@@ -4,7 +4,7 @@ package main
 
 use package core
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day2.txt");
     contents_orig := contents;
     defer cfree(contents_orig.data);
@@ -13,17 +13,17 @@ main :: proc (args: [] cstring) {
     lo : u32;
     hi : u32;
     ch : u8;
-    pw : string = "";
+    pw : str = "";
 
     while true {
-        str.read_u32(^contents, ^lo);
+        string.read_u32(^contents, ^lo);
         if lo == 0 do break;
-        str.discard_chars(^contents);
-        str.read_u32(^contents, ^hi);
-        str.discard_chars(^contents);
-        str.read_char(^contents, ^ch);
-        str.discard_chars(^contents, 2);
-        str.read_line(^contents, ^pw);
+        string.discard_chars(^contents);
+        string.read_u32(^contents, ^hi);
+        string.discard_chars(^contents);
+        string.read_char(^contents, ^ch);
+        string.discard_chars(^contents, 2);
+        string.read_line(^contents, ^pw);
 
         // Part 1
         // count := 0;
index e81d9f24634b106c7784ee5a5a68ba8c5ef5541f..c885126addbf70c397b35efe092ed4c2006b39ce 100644 (file)
--- a/day3.onyx
+++ b/day3.onyx
@@ -18,7 +18,7 @@ line_interp_at :: proc (use li: LineInterp, t: i32) -> Point {
     return Point.{ ox + dx * t, oy + dy * t };
 }
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day3.txt");
     contents_orig := contents;
     defer cfree(contents_orig.data);
@@ -30,8 +30,8 @@ main :: proc (args: [] cstring) {
     width := 0;
     height := 0;
     while true {
-        line: string = "";
-        str.read_line(^contents, ^line);
+        line := "";
+        string.read_line(^contents, ^line);
         if line.count == 0 do break;
 
         width = line.count;
index ba958ebcf55c1072ffd004f0c5b1bd36cc8c4618..20bcc33097dc219f23f5ef33bac0ad038f9bdcd4 100644 (file)
--- a/day4.onyx
+++ b/day4.onyx
@@ -3,22 +3,22 @@
 use package core
 
 // Returns the number of fields
-process_passport :: proc (contents: ^string) -> u32 {
+process_passport :: proc (contents: ^str) -> u32 {
     field_count := 0;
 
     while true {
-        line: string;
-        str.read_line(contents, ^line);
+        line: str;
+        string.read_line(contents, ^line);
         if line.count == 0 do break;
 
-        fields := str.split(line, #char " ");
+        fields := string.split(line, #char " ");
         defer cfree(fields.data);
 
         for field: fields {
-            data := str.split(field, #char ":");
+            data := string.split(field, #char ":");
             defer cfree(data.data);
 
-            if !str.equal(data[0], "cid") {
+            if !string.equal(data[0], "cid") {
                 field_count += 1;
             }
         }
@@ -29,7 +29,7 @@ process_passport :: proc (contents: ^string) -> u32 {
 
 // This does not include part 2 because it is gross and
 // not worth the effort to implement it.
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day4.txt");
     contents_data := contents.data;
     defer cfree(contents_data);
index 21a913b50072b4d1dddcc51785b5cf3977c08acc..b22a009e9a15905b3127113c255cc7e473c20f53 100644 (file)
--- a/day5.onyx
+++ b/day5.onyx
@@ -2,7 +2,7 @@
 
 use package core
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day5.txt");
     contents_data := contents.data;
     defer cfree(contents_data);
@@ -14,8 +14,8 @@ main :: proc (args: [] cstring) {
     max_val := 0;
 
     while true {
-        line: string;
-        str.read_line(^contents, ^line);
+        line: str;
+        string.read_line(^contents, ^line);
         if line.count == 0 do break;
 
         val := 0;
index db02e442ebe92f3cc64f536d48ab01404e27b944..9e3de37746b8206bd91663ff50417ef22a062b14 100644 (file)
--- a/day6.onyx
+++ b/day6.onyx
@@ -2,13 +2,13 @@
 
 use package core
 
-part_1 :: proc (contents: ^string) -> u32 {
+part_1 :: proc (contents: ^str) -> u32 {
     chars : [26] bool;
     for ^ch: chars do *ch = false;
 
     while true {
-        line: string;
-        str.read_line(contents, ^line);
+        line: str;
+        string.read_line(contents, ^line);
         if line.count == 0 do break;
 
         for ch: line do chars[~~ch - cast(u32) #char "a"] = true;
@@ -20,14 +20,14 @@ part_1 :: proc (contents: ^string) -> u32 {
     return sum;
 }
 
-part_2 :: proc (contents: ^string) -> u32 {
+part_2 :: proc (contents: ^str) -> u32 {
     chars : [26] u32;
     for ^ch: chars do *ch = 0;
 
     person_count := 0;
     while true {
-        line: string;
-        str.read_line(contents, ^line);
+        line: str;
+        string.read_line(contents, ^line);
         if line.count == 0 do break;
         person_count += 1;
 
@@ -40,7 +40,7 @@ part_2 :: proc (contents: ^string) -> u32 {
     return sum;
 }
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day6.txt");
     contents_data := contents.data;
     defer cfree(contents_data);
index c3a8cd406adb5e64559c392a84d7418f4e43e80e..82622d2ef27577bf1381e2763b94c92578fcee1b 100644 (file)
--- a/day7.onyx
+++ b/day7.onyx
@@ -1,6 +1,7 @@
 #include_file "core/std/wasi"
 
 use package core
+use package core.string.reader as reader
 
 BagGraph :: struct {
     nodes : [..] ^BagNode;
@@ -8,7 +9,7 @@ BagGraph :: struct {
 }
 
 BagNode :: struct {
-    color : string;
+    color : str;
     // Part 1
     // contained_in : [..] BagContainment;
 
@@ -31,7 +32,7 @@ bg_free :: proc (use graph: ^BagGraph) {
     strmap.free(^node_map);
 }
 
-bg_get_node :: proc (use graph: ^BagGraph, name: string) -> ^BagNode {
+bg_get_node :: proc (use graph: ^BagGraph, name: str) -> ^BagNode {
     node := strmap.get(^node_map, name);
 
     if node == null {
@@ -43,37 +44,37 @@ bg_get_node :: proc (use graph: ^BagGraph, name: string) -> ^BagNode {
         node.color = name;
 
         array.push(^nodes, node);
-        strmap.put(^node_map, name, node);
+        strmap.put(^node_map, node.color, node);
     }
 
     return node;
 }
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day7.txt");
-    contents_data := contents.data;
-    defer cfree(contents_data);
+    defer cfree(contents.data);
+
+    file := reader.make(contents);
 
     graph : BagGraph;
     bg_init(^graph);
     defer bg_free(^graph);
 
     while true {
-        name := str.read_until(^contents, #char " ", 1);
+        name := reader.read_until(^file, 1, #char " ");
         if name.count == 0 do break;
 
         container := bg_get_node(^graph, name);
 
-        str.read_until(^contents, #char " ", 2);
+        reader.read_until(^file, 2, #char " ");
 
         while true {
-            if str.starts_with(contents, " no") do break;
+            if reader.starts_with(^file, " no") do break;
 
-            count : u32;
-            str.read_u32(^contents, ^count);
-            str.discard_chars(^contents, 1);
+            count := reader.read_u32(^file);
+            reader.skip_bytes(^file, 1);
 
-            contained_name := str.read_until(^contents, #char " ", 1);
+            contained_name := reader.read_until(^file, 1, #char " ");
             contained := bg_get_node(^graph, contained_name);
 
             // Part 1
@@ -88,13 +89,13 @@ main :: proc (args: [] cstring) {
                 count = count
             });
 
-            bag_word := str.read_until_either(^contents, 1, #char " ", #char "\n");
+            bag_word := reader.read_until(^file, 1, #char " ", #char "\n");
             if bag_word[bag_word.count - 1] == #char "." do break;
         }
 
-        str.advance_line(^contents);
+        reader.advance_line(^file);
     }
-    
+
     // Part 1
     // to_process_bags : [..] ^BagNode;
     // processed_bags: [..] ^BagNode;
index 52234c93d8f8bb52338ba0b5e808beec57134427..111c1050257c6852c6c404679ae4d54020b504f0 100644 (file)
--- a/day8.onyx
+++ b/day8.onyx
@@ -1,7 +1,7 @@
 #include_file "core/std/wasi"
 
 use package core
-use package core.str.reader as reader
+use package core.string.reader as reader
 
 OpCode :: enum (u16) {
     Nop; Acc; Jmp;
@@ -44,7 +44,7 @@ get_acc_value :: proc (instrs: [..] Instruction, ret_acc: ^i32) -> bool {
     return succ;
 }
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day8.txt");
     defer cfree(contents.data);
 
@@ -66,9 +66,9 @@ main :: proc (args: [] cstring) {
         if sign == #char "-" do val *= -1;
 
         opcode : OpCode;
-        if     str.equal(word, "nop") do opcode = OpCode.Nop;
-        elseif str.equal(word, "acc") do opcode = OpCode.Acc;
-        elseif str.equal(word, "jmp") do opcode = OpCode.Jmp;
+        if     string.equal(word, "nop") do opcode = OpCode.Nop;
+        elseif string.equal(word, "acc") do opcode = OpCode.Acc;
+        elseif string.equal(word, "jmp") do opcode = OpCode.Jmp;
 
         array.push(^instrs, Instruction.{
             opcode  = opcode,
index 6040c1d853f91e7a870ff4633de69a9f151fac4e..9dd31af637d250bb66e187e7ea04889e05353f8e 100644 (file)
--- a/day9.onyx
+++ b/day9.onyx
@@ -1,7 +1,7 @@
 #include_file "core/std/wasi"
 
 use package core
-use package core.str.reader as reader
+use package core.string.reader as reader
 
 StartEnd :: struct { start: i32; end: i32; }
 
@@ -27,7 +27,7 @@ find_contiguous_subarray_with_sum :: proc (nums: [..] u64, sum: u64) -> StartEnd
     return StartEnd.{ start, end };
 }
 
-main :: proc (args: [] cstring) {
+main :: proc (args: [] cstr) {
     contents := file.get_contents("input/day9.txt");
     defer cfree(contents.data);
 
diff --git a/input/day11.txt b/input/day11.txt
new file mode 100644 (file)
index 0000000..977ae5f
--- /dev/null
@@ -0,0 +1,90 @@
+LLLLL.LLLLLL.LLLLLLLLL.LLL.LL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLL.LLLLLLL
+LLLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLL.LLLL.L.LLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLL
+LLLLL.L.LLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLL.L.LLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+L.LL.L.L.LL.....L.L..L.LL.L.L.L.....L..LLL.L.....L.L...LL..L.....L...L..L.LLLL..L.LL......L.L.L.
+LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.L.LLLLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLL.
+LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+......LL..LLLL.L...LL.....L.L.......L..L.LL....L.LLL........L.L.L.LL.....L.........L....L......L
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLL.LL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL..LLLLLLL..LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLL.LLLL.LLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.L.LLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.L.LLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLL..LLLLL.LLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLL.L.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+.L...L...L.....L...L....L.LL.LLL.LL...LL.L..L...L......L..LL..L..LL..L.L......L.L.LLL......L.L..
+LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLL.LLLLLLLLLLLLLLLLL.L.LLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLL.L.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LL.LL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+...........LLL.....LLL.....LL.L..........L..L.L.L...L.L.....L........L......L..L..L...LL....L.L.
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLL.LLLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLL.LLLL.L.LLLL.LLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLL.LLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLL.LLLLLLL.L.LLLLLLLL
+LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLL.L.LLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+.LLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLL.LLLLLLLLLLLLL
+L.......LL...LL...L..L.....L..LL..L.L.LLL.L.L..L.LL.L.........L....LLLL..LL..L.L..L..LLLL..LL.L.
+LLLLL.LLLLLL.LLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLL.LLLLLL..LLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LL.LLLLLLLL
+LLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+....LLL.LL....L.L.........L.L............L..L...L.LLLL......L...L.L..L....L.......L..L..........
+LLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL..LLLLLLLL.LLLLLL.LL.L.LLLLL.LLLLLL.LLLLLL.LLLLLLL.LLLLLLLL
+LLLLLLLLLLLL.LL.L.LLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.L..LLL..LLLLLLLLL.LLLLLL.LLLL.L.LLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLL..LLLLL.LLLLLLLLL.LLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+.L..LLLL..L.L.LLL.......LL.LL.LL......L.L....L.LLL.......L...L.L.LL...LL.....L.L....L.L...L.L...
+LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLL
+LLLLL.LL.LLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLL..LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLL..LLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLL.LL
+LLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLL
+LLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLLLLLL.LLLLLLLLLLLLLLLLLLL
+.L..L..LLL....LL......LL.L.L..LL..LL....L...L..L.L.L...L..L..L.LLLL.L....L.....L..L...L...LLL...
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.L.LLLLLL.LLLL.LLL.LLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LL.LLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLLLLL..LLLLLLLLLLLLLL.LLLLLL.LL.LLLLLLLLLLL.L.LLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+..LL.LL.L.LL.L...L..L..L..L...LL........L......LL.LLLL.......L..LLL.L.L....L.....L..LL..L.LL.LL.
+LLLLL.LLLL.L.LLLLL.LLL.LLLLLL.LLLLLLL.LL.LLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL..LLLLL.LLLLLLL.LLLL.LLLLLLLLLLL.LLLL..LLLL.LLLLLLLLLLL.LLLLLLLLLLLLL.LLLL
+LLLLL.LLLLLLLLLLLLLLL.L.LLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLL..LLLLLLLLLLLLLLL.L.LLLLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LL.LL.LLL.LL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL..LLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
+.LL..LL.L.LL......L.L.LL...L..LL..LL...L..L.L..LL...L.L..L.....L.LLL..L..LL.L..L.......L..LLL...
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLL.LLLLLLLLLLLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLL..LLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL..LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLL.LLLLLLLLL.LLLL.LLL.L.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL
+LLLLL.LLL.LL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LL.LLL.LLLL.LLLLL.LLLLLL.LL.L.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.L.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+.L.L....LLL.L.L........L..L....L..L...LL..L..LLL..L.L....L..L.LL....LL.L.L.....L........L..L.L..
+LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLL.LL.LLLLLLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLL.LLL
+LLLLL.LLLLLL.LLLLLLLLLLLLLL.L.LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLLL.LL..LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.L.LLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+LLLLLLLLLLLL.LLLLLLLLLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL
+LLLL..L.LLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL
+LLLLL..LLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLL..LLLLLLLLL.LLLLLLLL
+LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.L.LL..LLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL
index ac69ff6db5ad55c9b829c92ce1af9e28b7bd37ff..06c3250c91d0e8f83e5fe3263419add086c0c045 100644 (file)
Binary files a/out.wasm and b/out.wasm differ